diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -8,7 +8,7 @@
 
 ## Version
 
-`0.5.0`
+`1.0.0`
 
 
 ## Description
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,2 +1,3 @@
-import           Distribution.Simple
+import Distribution.Simple
+
 main = defaultMain
diff --git a/gen/Gogol/Compute.hs b/gen/Gogol/Compute.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute.hs
@@ -0,0 +1,11380 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates and runs virtual machines on Google Cloud Platform.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference>
+module Gogol.Compute
+  ( -- * Configuration
+    computeService,
+
+    -- * OAuth Scopes
+    CloudPlatform'FullControl,
+    Compute'FullControl,
+    Compute'Readonly,
+    Devstorage'FullControl,
+    Devstorage'ReadOnly,
+    Devstorage'ReadWrite,
+
+    -- * Resources
+
+    -- ** compute.acceleratorTypes.aggregatedList
+    ComputeAcceleratorTypesAggregatedListResource,
+    ComputeAcceleratorTypesAggregatedList (..),
+    newComputeAcceleratorTypesAggregatedList,
+
+    -- ** compute.acceleratorTypes.get
+    ComputeAcceleratorTypesGetResource,
+    ComputeAcceleratorTypesGet (..),
+    newComputeAcceleratorTypesGet,
+
+    -- ** compute.acceleratorTypes.list
+    ComputeAcceleratorTypesListResource,
+    ComputeAcceleratorTypesList (..),
+    newComputeAcceleratorTypesList,
+
+    -- ** compute.addresses.aggregatedList
+    ComputeAddressesAggregatedListResource,
+    ComputeAddressesAggregatedList (..),
+    newComputeAddressesAggregatedList,
+
+    -- ** compute.addresses.delete
+    ComputeAddressesDeleteResource,
+    ComputeAddressesDelete (..),
+    newComputeAddressesDelete,
+
+    -- ** compute.addresses.get
+    ComputeAddressesGetResource,
+    ComputeAddressesGet (..),
+    newComputeAddressesGet,
+
+    -- ** compute.addresses.insert
+    ComputeAddressesInsertResource,
+    ComputeAddressesInsert (..),
+    newComputeAddressesInsert,
+
+    -- ** compute.addresses.list
+    ComputeAddressesListResource,
+    ComputeAddressesList (..),
+    newComputeAddressesList,
+
+    -- ** compute.addresses.move
+    ComputeAddressesMoveResource,
+    ComputeAddressesMove (..),
+    newComputeAddressesMove,
+
+    -- ** compute.addresses.setLabels
+    ComputeAddressesSetLabelsResource,
+    ComputeAddressesSetLabels (..),
+    newComputeAddressesSetLabels,
+
+    -- ** compute.autoscalers.aggregatedList
+    ComputeAutoscalersAggregatedListResource,
+    ComputeAutoscalersAggregatedList (..),
+    newComputeAutoscalersAggregatedList,
+
+    -- ** compute.autoscalers.delete
+    ComputeAutoscalersDeleteResource,
+    ComputeAutoscalersDelete (..),
+    newComputeAutoscalersDelete,
+
+    -- ** compute.autoscalers.get
+    ComputeAutoscalersGetResource,
+    ComputeAutoscalersGet (..),
+    newComputeAutoscalersGet,
+
+    -- ** compute.autoscalers.insert
+    ComputeAutoscalersInsertResource,
+    ComputeAutoscalersInsert (..),
+    newComputeAutoscalersInsert,
+
+    -- ** compute.autoscalers.list
+    ComputeAutoscalersListResource,
+    ComputeAutoscalersList (..),
+    newComputeAutoscalersList,
+
+    -- ** compute.autoscalers.patch
+    ComputeAutoscalersPatchResource,
+    ComputeAutoscalersPatch (..),
+    newComputeAutoscalersPatch,
+
+    -- ** compute.autoscalers.update
+    ComputeAutoscalersUpdateResource,
+    ComputeAutoscalersUpdate (..),
+    newComputeAutoscalersUpdate,
+
+    -- ** compute.backendBuckets.addSignedUrlKey
+    ComputeBackendBucketsAddSignedUrlKeyResource,
+    ComputeBackendBucketsAddSignedUrlKey (..),
+    newComputeBackendBucketsAddSignedUrlKey,
+
+    -- ** compute.backendBuckets.delete
+    ComputeBackendBucketsDeleteResource,
+    ComputeBackendBucketsDelete (..),
+    newComputeBackendBucketsDelete,
+
+    -- ** compute.backendBuckets.deleteSignedUrlKey
+    ComputeBackendBucketsDeleteSignedUrlKeyResource,
+    ComputeBackendBucketsDeleteSignedUrlKey (..),
+    newComputeBackendBucketsDeleteSignedUrlKey,
+
+    -- ** compute.backendBuckets.get
+    ComputeBackendBucketsGetResource,
+    ComputeBackendBucketsGet (..),
+    newComputeBackendBucketsGet,
+
+    -- ** compute.backendBuckets.getIamPolicy
+    ComputeBackendBucketsGetIamPolicyResource,
+    ComputeBackendBucketsGetIamPolicy (..),
+    newComputeBackendBucketsGetIamPolicy,
+
+    -- ** compute.backendBuckets.insert
+    ComputeBackendBucketsInsertResource,
+    ComputeBackendBucketsInsert (..),
+    newComputeBackendBucketsInsert,
+
+    -- ** compute.backendBuckets.list
+    ComputeBackendBucketsListResource,
+    ComputeBackendBucketsList (..),
+    newComputeBackendBucketsList,
+
+    -- ** compute.backendBuckets.patch
+    ComputeBackendBucketsPatchResource,
+    ComputeBackendBucketsPatch (..),
+    newComputeBackendBucketsPatch,
+
+    -- ** compute.backendBuckets.setEdgeSecurityPolicy
+    ComputeBackendBucketsSetEdgeSecurityPolicyResource,
+    ComputeBackendBucketsSetEdgeSecurityPolicy (..),
+    newComputeBackendBucketsSetEdgeSecurityPolicy,
+
+    -- ** compute.backendBuckets.setIamPolicy
+    ComputeBackendBucketsSetIamPolicyResource,
+    ComputeBackendBucketsSetIamPolicy (..),
+    newComputeBackendBucketsSetIamPolicy,
+
+    -- ** compute.backendBuckets.testIamPermissions
+    ComputeBackendBucketsTestIamPermissionsResource,
+    ComputeBackendBucketsTestIamPermissions (..),
+    newComputeBackendBucketsTestIamPermissions,
+
+    -- ** compute.backendBuckets.update
+    ComputeBackendBucketsUpdateResource,
+    ComputeBackendBucketsUpdate (..),
+    newComputeBackendBucketsUpdate,
+
+    -- ** compute.backendServices.addSignedUrlKey
+    ComputeBackendServicesAddSignedUrlKeyResource,
+    ComputeBackendServicesAddSignedUrlKey (..),
+    newComputeBackendServicesAddSignedUrlKey,
+
+    -- ** compute.backendServices.aggregatedList
+    ComputeBackendServicesAggregatedListResource,
+    ComputeBackendServicesAggregatedList (..),
+    newComputeBackendServicesAggregatedList,
+
+    -- ** compute.backendServices.delete
+    ComputeBackendServicesDeleteResource,
+    ComputeBackendServicesDelete (..),
+    newComputeBackendServicesDelete,
+
+    -- ** compute.backendServices.deleteSignedUrlKey
+    ComputeBackendServicesDeleteSignedUrlKeyResource,
+    ComputeBackendServicesDeleteSignedUrlKey (..),
+    newComputeBackendServicesDeleteSignedUrlKey,
+
+    -- ** compute.backendServices.get
+    ComputeBackendServicesGetResource,
+    ComputeBackendServicesGet (..),
+    newComputeBackendServicesGet,
+
+    -- ** compute.backendServices.getHealth
+    ComputeBackendServicesGetHealthResource,
+    ComputeBackendServicesGetHealth (..),
+    newComputeBackendServicesGetHealth,
+
+    -- ** compute.backendServices.getIamPolicy
+    ComputeBackendServicesGetIamPolicyResource,
+    ComputeBackendServicesGetIamPolicy (..),
+    newComputeBackendServicesGetIamPolicy,
+
+    -- ** compute.backendServices.insert
+    ComputeBackendServicesInsertResource,
+    ComputeBackendServicesInsert (..),
+    newComputeBackendServicesInsert,
+
+    -- ** compute.backendServices.list
+    ComputeBackendServicesListResource,
+    ComputeBackendServicesList (..),
+    newComputeBackendServicesList,
+
+    -- ** compute.backendServices.listUsable
+    ComputeBackendServicesListUsableResource,
+    ComputeBackendServicesListUsable (..),
+    newComputeBackendServicesListUsable,
+
+    -- ** compute.backendServices.patch
+    ComputeBackendServicesPatchResource,
+    ComputeBackendServicesPatch (..),
+    newComputeBackendServicesPatch,
+
+    -- ** compute.backendServices.setEdgeSecurityPolicy
+    ComputeBackendServicesSetEdgeSecurityPolicyResource,
+    ComputeBackendServicesSetEdgeSecurityPolicy (..),
+    newComputeBackendServicesSetEdgeSecurityPolicy,
+
+    -- ** compute.backendServices.setIamPolicy
+    ComputeBackendServicesSetIamPolicyResource,
+    ComputeBackendServicesSetIamPolicy (..),
+    newComputeBackendServicesSetIamPolicy,
+
+    -- ** compute.backendServices.setSecurityPolicy
+    ComputeBackendServicesSetSecurityPolicyResource,
+    ComputeBackendServicesSetSecurityPolicy (..),
+    newComputeBackendServicesSetSecurityPolicy,
+
+    -- ** compute.backendServices.testIamPermissions
+    ComputeBackendServicesTestIamPermissionsResource,
+    ComputeBackendServicesTestIamPermissions (..),
+    newComputeBackendServicesTestIamPermissions,
+
+    -- ** compute.backendServices.update
+    ComputeBackendServicesUpdateResource,
+    ComputeBackendServicesUpdate (..),
+    newComputeBackendServicesUpdate,
+
+    -- ** compute.diskTypes.aggregatedList
+    ComputeDiskTypesAggregatedListResource,
+    ComputeDiskTypesAggregatedList (..),
+    newComputeDiskTypesAggregatedList,
+
+    -- ** compute.diskTypes.get
+    ComputeDiskTypesGetResource,
+    ComputeDiskTypesGet (..),
+    newComputeDiskTypesGet,
+
+    -- ** compute.diskTypes.list
+    ComputeDiskTypesListResource,
+    ComputeDiskTypesList (..),
+    newComputeDiskTypesList,
+
+    -- ** compute.disks.addResourcePolicies
+    ComputeDisksAddResourcePoliciesResource,
+    ComputeDisksAddResourcePolicies (..),
+    newComputeDisksAddResourcePolicies,
+
+    -- ** compute.disks.aggregatedList
+    ComputeDisksAggregatedListResource,
+    ComputeDisksAggregatedList (..),
+    newComputeDisksAggregatedList,
+
+    -- ** compute.disks.bulkInsert
+    ComputeDisksBulkInsertResource,
+    ComputeDisksBulkInsert (..),
+    newComputeDisksBulkInsert,
+
+    -- ** compute.disks.createSnapshot
+    ComputeDisksCreateSnapshotResource,
+    ComputeDisksCreateSnapshot (..),
+    newComputeDisksCreateSnapshot,
+
+    -- ** compute.disks.delete
+    ComputeDisksDeleteResource,
+    ComputeDisksDelete (..),
+    newComputeDisksDelete,
+
+    -- ** compute.disks.get
+    ComputeDisksGetResource,
+    ComputeDisksGet (..),
+    newComputeDisksGet,
+
+    -- ** compute.disks.getIamPolicy
+    ComputeDisksGetIamPolicyResource,
+    ComputeDisksGetIamPolicy (..),
+    newComputeDisksGetIamPolicy,
+
+    -- ** compute.disks.insert
+    ComputeDisksInsertResource,
+    ComputeDisksInsert (..),
+    newComputeDisksInsert,
+
+    -- ** compute.disks.list
+    ComputeDisksListResource,
+    ComputeDisksList (..),
+    newComputeDisksList,
+
+    -- ** compute.disks.removeResourcePolicies
+    ComputeDisksRemoveResourcePoliciesResource,
+    ComputeDisksRemoveResourcePolicies (..),
+    newComputeDisksRemoveResourcePolicies,
+
+    -- ** compute.disks.resize
+    ComputeDisksResizeResource,
+    ComputeDisksResize (..),
+    newComputeDisksResize,
+
+    -- ** compute.disks.setIamPolicy
+    ComputeDisksSetIamPolicyResource,
+    ComputeDisksSetIamPolicy (..),
+    newComputeDisksSetIamPolicy,
+
+    -- ** compute.disks.setLabels
+    ComputeDisksSetLabelsResource,
+    ComputeDisksSetLabels (..),
+    newComputeDisksSetLabels,
+
+    -- ** compute.disks.startAsyncReplication
+    ComputeDisksStartAsyncReplicationResource,
+    ComputeDisksStartAsyncReplication (..),
+    newComputeDisksStartAsyncReplication,
+
+    -- ** compute.disks.stopAsyncReplication
+    ComputeDisksStopAsyncReplicationResource,
+    ComputeDisksStopAsyncReplication (..),
+    newComputeDisksStopAsyncReplication,
+
+    -- ** compute.disks.stopGroupAsyncReplication
+    ComputeDisksStopGroupAsyncReplicationResource,
+    ComputeDisksStopGroupAsyncReplication (..),
+    newComputeDisksStopGroupAsyncReplication,
+
+    -- ** compute.disks.testIamPermissions
+    ComputeDisksTestIamPermissionsResource,
+    ComputeDisksTestIamPermissions (..),
+    newComputeDisksTestIamPermissions,
+
+    -- ** compute.disks.update
+    ComputeDisksUpdateResource,
+    ComputeDisksUpdate (..),
+    newComputeDisksUpdate,
+
+    -- ** compute.externalVpnGateways.delete
+    ComputeExternalVpnGatewaysDeleteResource,
+    ComputeExternalVpnGatewaysDelete (..),
+    newComputeExternalVpnGatewaysDelete,
+
+    -- ** compute.externalVpnGateways.get
+    ComputeExternalVpnGatewaysGetResource,
+    ComputeExternalVpnGatewaysGet (..),
+    newComputeExternalVpnGatewaysGet,
+
+    -- ** compute.externalVpnGateways.insert
+    ComputeExternalVpnGatewaysInsertResource,
+    ComputeExternalVpnGatewaysInsert (..),
+    newComputeExternalVpnGatewaysInsert,
+
+    -- ** compute.externalVpnGateways.list
+    ComputeExternalVpnGatewaysListResource,
+    ComputeExternalVpnGatewaysList (..),
+    newComputeExternalVpnGatewaysList,
+
+    -- ** compute.externalVpnGateways.setLabels
+    ComputeExternalVpnGatewaysSetLabelsResource,
+    ComputeExternalVpnGatewaysSetLabels (..),
+    newComputeExternalVpnGatewaysSetLabels,
+
+    -- ** compute.externalVpnGateways.testIamPermissions
+    ComputeExternalVpnGatewaysTestIamPermissionsResource,
+    ComputeExternalVpnGatewaysTestIamPermissions (..),
+    newComputeExternalVpnGatewaysTestIamPermissions,
+
+    -- ** compute.firewallPolicies.addAssociation
+    ComputeFirewallPoliciesAddAssociationResource,
+    ComputeFirewallPoliciesAddAssociation (..),
+    newComputeFirewallPoliciesAddAssociation,
+
+    -- ** compute.firewallPolicies.addRule
+    ComputeFirewallPoliciesAddRuleResource,
+    ComputeFirewallPoliciesAddRule (..),
+    newComputeFirewallPoliciesAddRule,
+
+    -- ** compute.firewallPolicies.cloneRules
+    ComputeFirewallPoliciesCloneRulesResource,
+    ComputeFirewallPoliciesCloneRules (..),
+    newComputeFirewallPoliciesCloneRules,
+
+    -- ** compute.firewallPolicies.delete
+    ComputeFirewallPoliciesDeleteResource,
+    ComputeFirewallPoliciesDelete (..),
+    newComputeFirewallPoliciesDelete,
+
+    -- ** compute.firewallPolicies.get
+    ComputeFirewallPoliciesGetResource,
+    ComputeFirewallPoliciesGet (..),
+    newComputeFirewallPoliciesGet,
+
+    -- ** compute.firewallPolicies.getAssociation
+    ComputeFirewallPoliciesGetAssociationResource,
+    ComputeFirewallPoliciesGetAssociation (..),
+    newComputeFirewallPoliciesGetAssociation,
+
+    -- ** compute.firewallPolicies.getIamPolicy
+    ComputeFirewallPoliciesGetIamPolicyResource,
+    ComputeFirewallPoliciesGetIamPolicy (..),
+    newComputeFirewallPoliciesGetIamPolicy,
+
+    -- ** compute.firewallPolicies.getRule
+    ComputeFirewallPoliciesGetRuleResource,
+    ComputeFirewallPoliciesGetRule (..),
+    newComputeFirewallPoliciesGetRule,
+
+    -- ** compute.firewallPolicies.insert
+    ComputeFirewallPoliciesInsertResource,
+    ComputeFirewallPoliciesInsert (..),
+    newComputeFirewallPoliciesInsert,
+
+    -- ** compute.firewallPolicies.list
+    ComputeFirewallPoliciesListResource,
+    ComputeFirewallPoliciesList (..),
+    newComputeFirewallPoliciesList,
+
+    -- ** compute.firewallPolicies.listAssociations
+    ComputeFirewallPoliciesListAssociationsResource,
+    ComputeFirewallPoliciesListAssociations (..),
+    newComputeFirewallPoliciesListAssociations,
+
+    -- ** compute.firewallPolicies.move
+    ComputeFirewallPoliciesMoveResource,
+    ComputeFirewallPoliciesMove (..),
+    newComputeFirewallPoliciesMove,
+
+    -- ** compute.firewallPolicies.patch
+    ComputeFirewallPoliciesPatchResource,
+    ComputeFirewallPoliciesPatch (..),
+    newComputeFirewallPoliciesPatch,
+
+    -- ** compute.firewallPolicies.patchRule
+    ComputeFirewallPoliciesPatchRuleResource,
+    ComputeFirewallPoliciesPatchRule (..),
+    newComputeFirewallPoliciesPatchRule,
+
+    -- ** compute.firewallPolicies.removeAssociation
+    ComputeFirewallPoliciesRemoveAssociationResource,
+    ComputeFirewallPoliciesRemoveAssociation (..),
+    newComputeFirewallPoliciesRemoveAssociation,
+
+    -- ** compute.firewallPolicies.removeRule
+    ComputeFirewallPoliciesRemoveRuleResource,
+    ComputeFirewallPoliciesRemoveRule (..),
+    newComputeFirewallPoliciesRemoveRule,
+
+    -- ** compute.firewallPolicies.setIamPolicy
+    ComputeFirewallPoliciesSetIamPolicyResource,
+    ComputeFirewallPoliciesSetIamPolicy (..),
+    newComputeFirewallPoliciesSetIamPolicy,
+
+    -- ** compute.firewallPolicies.testIamPermissions
+    ComputeFirewallPoliciesTestIamPermissionsResource,
+    ComputeFirewallPoliciesTestIamPermissions (..),
+    newComputeFirewallPoliciesTestIamPermissions,
+
+    -- ** compute.firewalls.delete
+    ComputeFirewallsDeleteResource,
+    ComputeFirewallsDelete (..),
+    newComputeFirewallsDelete,
+
+    -- ** compute.firewalls.get
+    ComputeFirewallsGetResource,
+    ComputeFirewallsGet (..),
+    newComputeFirewallsGet,
+
+    -- ** compute.firewalls.insert
+    ComputeFirewallsInsertResource,
+    ComputeFirewallsInsert (..),
+    newComputeFirewallsInsert,
+
+    -- ** compute.firewalls.list
+    ComputeFirewallsListResource,
+    ComputeFirewallsList (..),
+    newComputeFirewallsList,
+
+    -- ** compute.firewalls.patch
+    ComputeFirewallsPatchResource,
+    ComputeFirewallsPatch (..),
+    newComputeFirewallsPatch,
+
+    -- ** compute.firewalls.update
+    ComputeFirewallsUpdateResource,
+    ComputeFirewallsUpdate (..),
+    newComputeFirewallsUpdate,
+
+    -- ** compute.forwardingRules.aggregatedList
+    ComputeForwardingRulesAggregatedListResource,
+    ComputeForwardingRulesAggregatedList (..),
+    newComputeForwardingRulesAggregatedList,
+
+    -- ** compute.forwardingRules.delete
+    ComputeForwardingRulesDeleteResource,
+    ComputeForwardingRulesDelete (..),
+    newComputeForwardingRulesDelete,
+
+    -- ** compute.forwardingRules.get
+    ComputeForwardingRulesGetResource,
+    ComputeForwardingRulesGet (..),
+    newComputeForwardingRulesGet,
+
+    -- ** compute.forwardingRules.insert
+    ComputeForwardingRulesInsertResource,
+    ComputeForwardingRulesInsert (..),
+    newComputeForwardingRulesInsert,
+
+    -- ** compute.forwardingRules.list
+    ComputeForwardingRulesListResource,
+    ComputeForwardingRulesList (..),
+    newComputeForwardingRulesList,
+
+    -- ** compute.forwardingRules.patch
+    ComputeForwardingRulesPatchResource,
+    ComputeForwardingRulesPatch (..),
+    newComputeForwardingRulesPatch,
+
+    -- ** compute.forwardingRules.setLabels
+    ComputeForwardingRulesSetLabelsResource,
+    ComputeForwardingRulesSetLabels (..),
+    newComputeForwardingRulesSetLabels,
+
+    -- ** compute.forwardingRules.setTarget
+    ComputeForwardingRulesSetTargetResource,
+    ComputeForwardingRulesSetTarget (..),
+    newComputeForwardingRulesSetTarget,
+
+    -- ** compute.globalAddresses.delete
+    ComputeGlobalAddressesDeleteResource,
+    ComputeGlobalAddressesDelete (..),
+    newComputeGlobalAddressesDelete,
+
+    -- ** compute.globalAddresses.get
+    ComputeGlobalAddressesGetResource,
+    ComputeGlobalAddressesGet (..),
+    newComputeGlobalAddressesGet,
+
+    -- ** compute.globalAddresses.insert
+    ComputeGlobalAddressesInsertResource,
+    ComputeGlobalAddressesInsert (..),
+    newComputeGlobalAddressesInsert,
+
+    -- ** compute.globalAddresses.list
+    ComputeGlobalAddressesListResource,
+    ComputeGlobalAddressesList (..),
+    newComputeGlobalAddressesList,
+
+    -- ** compute.globalAddresses.move
+    ComputeGlobalAddressesMoveResource,
+    ComputeGlobalAddressesMove (..),
+    newComputeGlobalAddressesMove,
+
+    -- ** compute.globalAddresses.setLabels
+    ComputeGlobalAddressesSetLabelsResource,
+    ComputeGlobalAddressesSetLabels (..),
+    newComputeGlobalAddressesSetLabels,
+
+    -- ** compute.globalForwardingRules.delete
+    ComputeGlobalForwardingRulesDeleteResource,
+    ComputeGlobalForwardingRulesDelete (..),
+    newComputeGlobalForwardingRulesDelete,
+
+    -- ** compute.globalForwardingRules.get
+    ComputeGlobalForwardingRulesGetResource,
+    ComputeGlobalForwardingRulesGet (..),
+    newComputeGlobalForwardingRulesGet,
+
+    -- ** compute.globalForwardingRules.insert
+    ComputeGlobalForwardingRulesInsertResource,
+    ComputeGlobalForwardingRulesInsert (..),
+    newComputeGlobalForwardingRulesInsert,
+
+    -- ** compute.globalForwardingRules.list
+    ComputeGlobalForwardingRulesListResource,
+    ComputeGlobalForwardingRulesList (..),
+    newComputeGlobalForwardingRulesList,
+
+    -- ** compute.globalForwardingRules.patch
+    ComputeGlobalForwardingRulesPatchResource,
+    ComputeGlobalForwardingRulesPatch (..),
+    newComputeGlobalForwardingRulesPatch,
+
+    -- ** compute.globalForwardingRules.setLabels
+    ComputeGlobalForwardingRulesSetLabelsResource,
+    ComputeGlobalForwardingRulesSetLabels (..),
+    newComputeGlobalForwardingRulesSetLabels,
+
+    -- ** compute.globalForwardingRules.setTarget
+    ComputeGlobalForwardingRulesSetTargetResource,
+    ComputeGlobalForwardingRulesSetTarget (..),
+    newComputeGlobalForwardingRulesSetTarget,
+
+    -- ** compute.globalNetworkEndpointGroups.attachNetworkEndpoints
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpointsResource,
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints,
+
+    -- ** compute.globalNetworkEndpointGroups.delete
+    ComputeGlobalNetworkEndpointGroupsDeleteResource,
+    ComputeGlobalNetworkEndpointGroupsDelete (..),
+    newComputeGlobalNetworkEndpointGroupsDelete,
+
+    -- ** compute.globalNetworkEndpointGroups.detachNetworkEndpoints
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpointsResource,
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints,
+
+    -- ** compute.globalNetworkEndpointGroups.get
+    ComputeGlobalNetworkEndpointGroupsGetResource,
+    ComputeGlobalNetworkEndpointGroupsGet (..),
+    newComputeGlobalNetworkEndpointGroupsGet,
+
+    -- ** compute.globalNetworkEndpointGroups.insert
+    ComputeGlobalNetworkEndpointGroupsInsertResource,
+    ComputeGlobalNetworkEndpointGroupsInsert (..),
+    newComputeGlobalNetworkEndpointGroupsInsert,
+
+    -- ** compute.globalNetworkEndpointGroups.list
+    ComputeGlobalNetworkEndpointGroupsListResource,
+    ComputeGlobalNetworkEndpointGroupsList (..),
+    newComputeGlobalNetworkEndpointGroupsList,
+
+    -- ** compute.globalNetworkEndpointGroups.listNetworkEndpoints
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpointsResource,
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsListNetworkEndpoints,
+
+    -- ** compute.globalOperations.aggregatedList
+    ComputeGlobalOperationsAggregatedListResource,
+    ComputeGlobalOperationsAggregatedList (..),
+    newComputeGlobalOperationsAggregatedList,
+
+    -- ** compute.globalOperations.delete
+    ComputeGlobalOperationsDeleteResource,
+    ComputeGlobalOperationsDelete (..),
+    newComputeGlobalOperationsDelete,
+
+    -- ** compute.globalOperations.get
+    ComputeGlobalOperationsGetResource,
+    ComputeGlobalOperationsGet (..),
+    newComputeGlobalOperationsGet,
+
+    -- ** compute.globalOperations.list
+    ComputeGlobalOperationsListResource,
+    ComputeGlobalOperationsList (..),
+    newComputeGlobalOperationsList,
+
+    -- ** compute.globalOperations.wait
+    ComputeGlobalOperationsWaitResource,
+    ComputeGlobalOperationsWait (..),
+    newComputeGlobalOperationsWait,
+
+    -- ** compute.globalOrganizationOperations.delete
+    ComputeGlobalOrganizationOperationsDeleteResource,
+    ComputeGlobalOrganizationOperationsDelete (..),
+    newComputeGlobalOrganizationOperationsDelete,
+
+    -- ** compute.globalOrganizationOperations.get
+    ComputeGlobalOrganizationOperationsGetResource,
+    ComputeGlobalOrganizationOperationsGet (..),
+    newComputeGlobalOrganizationOperationsGet,
+
+    -- ** compute.globalOrganizationOperations.list
+    ComputeGlobalOrganizationOperationsListResource,
+    ComputeGlobalOrganizationOperationsList (..),
+    newComputeGlobalOrganizationOperationsList,
+
+    -- ** compute.globalPublicDelegatedPrefixes.delete
+    ComputeGlobalPublicDelegatedPrefixesDeleteResource,
+    ComputeGlobalPublicDelegatedPrefixesDelete (..),
+    newComputeGlobalPublicDelegatedPrefixesDelete,
+
+    -- ** compute.globalPublicDelegatedPrefixes.get
+    ComputeGlobalPublicDelegatedPrefixesGetResource,
+    ComputeGlobalPublicDelegatedPrefixesGet (..),
+    newComputeGlobalPublicDelegatedPrefixesGet,
+
+    -- ** compute.globalPublicDelegatedPrefixes.insert
+    ComputeGlobalPublicDelegatedPrefixesInsertResource,
+    ComputeGlobalPublicDelegatedPrefixesInsert (..),
+    newComputeGlobalPublicDelegatedPrefixesInsert,
+
+    -- ** compute.globalPublicDelegatedPrefixes.list
+    ComputeGlobalPublicDelegatedPrefixesListResource,
+    ComputeGlobalPublicDelegatedPrefixesList (..),
+    newComputeGlobalPublicDelegatedPrefixesList,
+
+    -- ** compute.globalPublicDelegatedPrefixes.patch
+    ComputeGlobalPublicDelegatedPrefixesPatchResource,
+    ComputeGlobalPublicDelegatedPrefixesPatch (..),
+    newComputeGlobalPublicDelegatedPrefixesPatch,
+
+    -- ** compute.healthChecks.aggregatedList
+    ComputeHealthChecksAggregatedListResource,
+    ComputeHealthChecksAggregatedList (..),
+    newComputeHealthChecksAggregatedList,
+
+    -- ** compute.healthChecks.delete
+    ComputeHealthChecksDeleteResource,
+    ComputeHealthChecksDelete (..),
+    newComputeHealthChecksDelete,
+
+    -- ** compute.healthChecks.get
+    ComputeHealthChecksGetResource,
+    ComputeHealthChecksGet (..),
+    newComputeHealthChecksGet,
+
+    -- ** compute.healthChecks.insert
+    ComputeHealthChecksInsertResource,
+    ComputeHealthChecksInsert (..),
+    newComputeHealthChecksInsert,
+
+    -- ** compute.healthChecks.list
+    ComputeHealthChecksListResource,
+    ComputeHealthChecksList (..),
+    newComputeHealthChecksList,
+
+    -- ** compute.healthChecks.patch
+    ComputeHealthChecksPatchResource,
+    ComputeHealthChecksPatch (..),
+    newComputeHealthChecksPatch,
+
+    -- ** compute.healthChecks.update
+    ComputeHealthChecksUpdateResource,
+    ComputeHealthChecksUpdate (..),
+    newComputeHealthChecksUpdate,
+
+    -- ** compute.httpHealthChecks.delete
+    ComputeHttpHealthChecksDeleteResource,
+    ComputeHttpHealthChecksDelete (..),
+    newComputeHttpHealthChecksDelete,
+
+    -- ** compute.httpHealthChecks.get
+    ComputeHttpHealthChecksGetResource,
+    ComputeHttpHealthChecksGet (..),
+    newComputeHttpHealthChecksGet,
+
+    -- ** compute.httpHealthChecks.insert
+    ComputeHttpHealthChecksInsertResource,
+    ComputeHttpHealthChecksInsert (..),
+    newComputeHttpHealthChecksInsert,
+
+    -- ** compute.httpHealthChecks.list
+    ComputeHttpHealthChecksListResource,
+    ComputeHttpHealthChecksList (..),
+    newComputeHttpHealthChecksList,
+
+    -- ** compute.httpHealthChecks.patch
+    ComputeHttpHealthChecksPatchResource,
+    ComputeHttpHealthChecksPatch (..),
+    newComputeHttpHealthChecksPatch,
+
+    -- ** compute.httpHealthChecks.update
+    ComputeHttpHealthChecksUpdateResource,
+    ComputeHttpHealthChecksUpdate (..),
+    newComputeHttpHealthChecksUpdate,
+
+    -- ** compute.httpsHealthChecks.delete
+    ComputeHttpsHealthChecksDeleteResource,
+    ComputeHttpsHealthChecksDelete (..),
+    newComputeHttpsHealthChecksDelete,
+
+    -- ** compute.httpsHealthChecks.get
+    ComputeHttpsHealthChecksGetResource,
+    ComputeHttpsHealthChecksGet (..),
+    newComputeHttpsHealthChecksGet,
+
+    -- ** compute.httpsHealthChecks.insert
+    ComputeHttpsHealthChecksInsertResource,
+    ComputeHttpsHealthChecksInsert (..),
+    newComputeHttpsHealthChecksInsert,
+
+    -- ** compute.httpsHealthChecks.list
+    ComputeHttpsHealthChecksListResource,
+    ComputeHttpsHealthChecksList (..),
+    newComputeHttpsHealthChecksList,
+
+    -- ** compute.httpsHealthChecks.patch
+    ComputeHttpsHealthChecksPatchResource,
+    ComputeHttpsHealthChecksPatch (..),
+    newComputeHttpsHealthChecksPatch,
+
+    -- ** compute.httpsHealthChecks.update
+    ComputeHttpsHealthChecksUpdateResource,
+    ComputeHttpsHealthChecksUpdate (..),
+    newComputeHttpsHealthChecksUpdate,
+
+    -- ** compute.imageFamilyViews.get
+    ComputeImageFamilyViewsGetResource,
+    ComputeImageFamilyViewsGet (..),
+    newComputeImageFamilyViewsGet,
+
+    -- ** compute.images.delete
+    ComputeImagesDeleteResource,
+    ComputeImagesDelete (..),
+    newComputeImagesDelete,
+
+    -- ** compute.images.deprecate
+    ComputeImagesDeprecateResource,
+    ComputeImagesDeprecate (..),
+    newComputeImagesDeprecate,
+
+    -- ** compute.images.get
+    ComputeImagesGetResource,
+    ComputeImagesGet (..),
+    newComputeImagesGet,
+
+    -- ** compute.images.getFromFamily
+    ComputeImagesGetFromFamilyResource,
+    ComputeImagesGetFromFamily (..),
+    newComputeImagesGetFromFamily,
+
+    -- ** compute.images.getIamPolicy
+    ComputeImagesGetIamPolicyResource,
+    ComputeImagesGetIamPolicy (..),
+    newComputeImagesGetIamPolicy,
+
+    -- ** compute.images.insert
+    ComputeImagesInsertResource,
+    ComputeImagesInsert (..),
+    newComputeImagesInsert,
+
+    -- ** compute.images.list
+    ComputeImagesListResource,
+    ComputeImagesList (..),
+    newComputeImagesList,
+
+    -- ** compute.images.patch
+    ComputeImagesPatchResource,
+    ComputeImagesPatch (..),
+    newComputeImagesPatch,
+
+    -- ** compute.images.setIamPolicy
+    ComputeImagesSetIamPolicyResource,
+    ComputeImagesSetIamPolicy (..),
+    newComputeImagesSetIamPolicy,
+
+    -- ** compute.images.setLabels
+    ComputeImagesSetLabelsResource,
+    ComputeImagesSetLabels (..),
+    newComputeImagesSetLabels,
+
+    -- ** compute.images.testIamPermissions
+    ComputeImagesTestIamPermissionsResource,
+    ComputeImagesTestIamPermissions (..),
+    newComputeImagesTestIamPermissions,
+
+    -- ** compute.instanceGroupManagerResizeRequests.cancel
+    ComputeInstanceGroupManagerResizeRequestsCancelResource,
+    ComputeInstanceGroupManagerResizeRequestsCancel (..),
+    newComputeInstanceGroupManagerResizeRequestsCancel,
+
+    -- ** compute.instanceGroupManagerResizeRequests.delete
+    ComputeInstanceGroupManagerResizeRequestsDeleteResource,
+    ComputeInstanceGroupManagerResizeRequestsDelete (..),
+    newComputeInstanceGroupManagerResizeRequestsDelete,
+
+    -- ** compute.instanceGroupManagerResizeRequests.get
+    ComputeInstanceGroupManagerResizeRequestsGetResource,
+    ComputeInstanceGroupManagerResizeRequestsGet (..),
+    newComputeInstanceGroupManagerResizeRequestsGet,
+
+    -- ** compute.instanceGroupManagerResizeRequests.insert
+    ComputeInstanceGroupManagerResizeRequestsInsertResource,
+    ComputeInstanceGroupManagerResizeRequestsInsert (..),
+    newComputeInstanceGroupManagerResizeRequestsInsert,
+
+    -- ** compute.instanceGroupManagerResizeRequests.list
+    ComputeInstanceGroupManagerResizeRequestsListResource,
+    ComputeInstanceGroupManagerResizeRequestsList (..),
+    newComputeInstanceGroupManagerResizeRequestsList,
+
+    -- ** compute.instanceGroupManagers.abandonInstances
+    ComputeInstanceGroupManagersAbandonInstancesResource,
+    ComputeInstanceGroupManagersAbandonInstances (..),
+    newComputeInstanceGroupManagersAbandonInstances,
+
+    -- ** compute.instanceGroupManagers.aggregatedList
+    ComputeInstanceGroupManagersAggregatedListResource,
+    ComputeInstanceGroupManagersAggregatedList (..),
+    newComputeInstanceGroupManagersAggregatedList,
+
+    -- ** compute.instanceGroupManagers.applyUpdatesToInstances
+    ComputeInstanceGroupManagersApplyUpdatesToInstancesResource,
+    ComputeInstanceGroupManagersApplyUpdatesToInstances (..),
+    newComputeInstanceGroupManagersApplyUpdatesToInstances,
+
+    -- ** compute.instanceGroupManagers.createInstances
+    ComputeInstanceGroupManagersCreateInstancesResource,
+    ComputeInstanceGroupManagersCreateInstances (..),
+    newComputeInstanceGroupManagersCreateInstances,
+
+    -- ** compute.instanceGroupManagers.delete
+    ComputeInstanceGroupManagersDeleteResource,
+    ComputeInstanceGroupManagersDelete (..),
+    newComputeInstanceGroupManagersDelete,
+
+    -- ** compute.instanceGroupManagers.deleteInstances
+    ComputeInstanceGroupManagersDeleteInstancesResource,
+    ComputeInstanceGroupManagersDeleteInstances (..),
+    newComputeInstanceGroupManagersDeleteInstances,
+
+    -- ** compute.instanceGroupManagers.deletePerInstanceConfigs
+    ComputeInstanceGroupManagersDeletePerInstanceConfigsResource,
+    ComputeInstanceGroupManagersDeletePerInstanceConfigs (..),
+    newComputeInstanceGroupManagersDeletePerInstanceConfigs,
+
+    -- ** compute.instanceGroupManagers.get
+    ComputeInstanceGroupManagersGetResource,
+    ComputeInstanceGroupManagersGet (..),
+    newComputeInstanceGroupManagersGet,
+
+    -- ** compute.instanceGroupManagers.insert
+    ComputeInstanceGroupManagersInsertResource,
+    ComputeInstanceGroupManagersInsert (..),
+    newComputeInstanceGroupManagersInsert,
+
+    -- ** compute.instanceGroupManagers.list
+    ComputeInstanceGroupManagersListResource,
+    ComputeInstanceGroupManagersList (..),
+    newComputeInstanceGroupManagersList,
+
+    -- ** compute.instanceGroupManagers.listErrors
+    ComputeInstanceGroupManagersListErrorsResource,
+    ComputeInstanceGroupManagersListErrors (..),
+    newComputeInstanceGroupManagersListErrors,
+
+    -- ** compute.instanceGroupManagers.listManagedInstances
+    ComputeInstanceGroupManagersListManagedInstancesResource,
+    ComputeInstanceGroupManagersListManagedInstances (..),
+    newComputeInstanceGroupManagersListManagedInstances,
+
+    -- ** compute.instanceGroupManagers.listPerInstanceConfigs
+    ComputeInstanceGroupManagersListPerInstanceConfigsResource,
+    ComputeInstanceGroupManagersListPerInstanceConfigs (..),
+    newComputeInstanceGroupManagersListPerInstanceConfigs,
+
+    -- ** compute.instanceGroupManagers.patch
+    ComputeInstanceGroupManagersPatchResource,
+    ComputeInstanceGroupManagersPatch (..),
+    newComputeInstanceGroupManagersPatch,
+
+    -- ** compute.instanceGroupManagers.patchPerInstanceConfigs
+    ComputeInstanceGroupManagersPatchPerInstanceConfigsResource,
+    ComputeInstanceGroupManagersPatchPerInstanceConfigs (..),
+    newComputeInstanceGroupManagersPatchPerInstanceConfigs,
+
+    -- ** compute.instanceGroupManagers.recreateInstances
+    ComputeInstanceGroupManagersRecreateInstancesResource,
+    ComputeInstanceGroupManagersRecreateInstances (..),
+    newComputeInstanceGroupManagersRecreateInstances,
+
+    -- ** compute.instanceGroupManagers.resize
+    ComputeInstanceGroupManagersResizeResource,
+    ComputeInstanceGroupManagersResize (..),
+    newComputeInstanceGroupManagersResize,
+
+    -- ** compute.instanceGroupManagers.resumeInstances
+    ComputeInstanceGroupManagersResumeInstancesResource,
+    ComputeInstanceGroupManagersResumeInstances (..),
+    newComputeInstanceGroupManagersResumeInstances,
+
+    -- ** compute.instanceGroupManagers.setInstanceTemplate
+    ComputeInstanceGroupManagersSetInstanceTemplateResource,
+    ComputeInstanceGroupManagersSetInstanceTemplate (..),
+    newComputeInstanceGroupManagersSetInstanceTemplate,
+
+    -- ** compute.instanceGroupManagers.setTargetPools
+    ComputeInstanceGroupManagersSetTargetPoolsResource,
+    ComputeInstanceGroupManagersSetTargetPools (..),
+    newComputeInstanceGroupManagersSetTargetPools,
+
+    -- ** compute.instanceGroupManagers.startInstances
+    ComputeInstanceGroupManagersStartInstancesResource,
+    ComputeInstanceGroupManagersStartInstances (..),
+    newComputeInstanceGroupManagersStartInstances,
+
+    -- ** compute.instanceGroupManagers.stopInstances
+    ComputeInstanceGroupManagersStopInstancesResource,
+    ComputeInstanceGroupManagersStopInstances (..),
+    newComputeInstanceGroupManagersStopInstances,
+
+    -- ** compute.instanceGroupManagers.suspendInstances
+    ComputeInstanceGroupManagersSuspendInstancesResource,
+    ComputeInstanceGroupManagersSuspendInstances (..),
+    newComputeInstanceGroupManagersSuspendInstances,
+
+    -- ** compute.instanceGroupManagers.updatePerInstanceConfigs
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigsResource,
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigs (..),
+    newComputeInstanceGroupManagersUpdatePerInstanceConfigs,
+
+    -- ** compute.instanceGroups.addInstances
+    ComputeInstanceGroupsAddInstancesResource,
+    ComputeInstanceGroupsAddInstances (..),
+    newComputeInstanceGroupsAddInstances,
+
+    -- ** compute.instanceGroups.aggregatedList
+    ComputeInstanceGroupsAggregatedListResource,
+    ComputeInstanceGroupsAggregatedList (..),
+    newComputeInstanceGroupsAggregatedList,
+
+    -- ** compute.instanceGroups.delete
+    ComputeInstanceGroupsDeleteResource,
+    ComputeInstanceGroupsDelete (..),
+    newComputeInstanceGroupsDelete,
+
+    -- ** compute.instanceGroups.get
+    ComputeInstanceGroupsGetResource,
+    ComputeInstanceGroupsGet (..),
+    newComputeInstanceGroupsGet,
+
+    -- ** compute.instanceGroups.insert
+    ComputeInstanceGroupsInsertResource,
+    ComputeInstanceGroupsInsert (..),
+    newComputeInstanceGroupsInsert,
+
+    -- ** compute.instanceGroups.list
+    ComputeInstanceGroupsListResource,
+    ComputeInstanceGroupsList (..),
+    newComputeInstanceGroupsList,
+
+    -- ** compute.instanceGroups.listInstances
+    ComputeInstanceGroupsListInstancesResource,
+    ComputeInstanceGroupsListInstances (..),
+    newComputeInstanceGroupsListInstances,
+
+    -- ** compute.instanceGroups.removeInstances
+    ComputeInstanceGroupsRemoveInstancesResource,
+    ComputeInstanceGroupsRemoveInstances (..),
+    newComputeInstanceGroupsRemoveInstances,
+
+    -- ** compute.instanceGroups.setNamedPorts
+    ComputeInstanceGroupsSetNamedPortsResource,
+    ComputeInstanceGroupsSetNamedPorts (..),
+    newComputeInstanceGroupsSetNamedPorts,
+
+    -- ** compute.instanceSettings.get
+    ComputeInstanceSettingsGetResource,
+    ComputeInstanceSettingsGet (..),
+    newComputeInstanceSettingsGet,
+
+    -- ** compute.instanceSettings.patch
+    ComputeInstanceSettingsPatchResource,
+    ComputeInstanceSettingsPatch (..),
+    newComputeInstanceSettingsPatch,
+
+    -- ** compute.instanceTemplates.aggregatedList
+    ComputeInstanceTemplatesAggregatedListResource,
+    ComputeInstanceTemplatesAggregatedList (..),
+    newComputeInstanceTemplatesAggregatedList,
+
+    -- ** compute.instanceTemplates.delete
+    ComputeInstanceTemplatesDeleteResource,
+    ComputeInstanceTemplatesDelete (..),
+    newComputeInstanceTemplatesDelete,
+
+    -- ** compute.instanceTemplates.get
+    ComputeInstanceTemplatesGetResource,
+    ComputeInstanceTemplatesGet (..),
+    newComputeInstanceTemplatesGet,
+
+    -- ** compute.instanceTemplates.getIamPolicy
+    ComputeInstanceTemplatesGetIamPolicyResource,
+    ComputeInstanceTemplatesGetIamPolicy (..),
+    newComputeInstanceTemplatesGetIamPolicy,
+
+    -- ** compute.instanceTemplates.insert
+    ComputeInstanceTemplatesInsertResource,
+    ComputeInstanceTemplatesInsert (..),
+    newComputeInstanceTemplatesInsert,
+
+    -- ** compute.instanceTemplates.list
+    ComputeInstanceTemplatesListResource,
+    ComputeInstanceTemplatesList (..),
+    newComputeInstanceTemplatesList,
+
+    -- ** compute.instanceTemplates.setIamPolicy
+    ComputeInstanceTemplatesSetIamPolicyResource,
+    ComputeInstanceTemplatesSetIamPolicy (..),
+    newComputeInstanceTemplatesSetIamPolicy,
+
+    -- ** compute.instanceTemplates.testIamPermissions
+    ComputeInstanceTemplatesTestIamPermissionsResource,
+    ComputeInstanceTemplatesTestIamPermissions (..),
+    newComputeInstanceTemplatesTestIamPermissions,
+
+    -- ** compute.instances.addAccessConfig
+    ComputeInstancesAddAccessConfigResource,
+    ComputeInstancesAddAccessConfig (..),
+    newComputeInstancesAddAccessConfig,
+
+    -- ** compute.instances.addResourcePolicies
+    ComputeInstancesAddResourcePoliciesResource,
+    ComputeInstancesAddResourcePolicies (..),
+    newComputeInstancesAddResourcePolicies,
+
+    -- ** compute.instances.aggregatedList
+    ComputeInstancesAggregatedListResource,
+    ComputeInstancesAggregatedList (..),
+    newComputeInstancesAggregatedList,
+
+    -- ** compute.instances.attachDisk
+    ComputeInstancesAttachDiskResource,
+    ComputeInstancesAttachDisk (..),
+    newComputeInstancesAttachDisk,
+
+    -- ** compute.instances.bulkInsert
+    ComputeInstancesBulkInsertResource,
+    ComputeInstancesBulkInsert (..),
+    newComputeInstancesBulkInsert,
+
+    -- ** compute.instances.delete
+    ComputeInstancesDeleteResource,
+    ComputeInstancesDelete (..),
+    newComputeInstancesDelete,
+
+    -- ** compute.instances.deleteAccessConfig
+    ComputeInstancesDeleteAccessConfigResource,
+    ComputeInstancesDeleteAccessConfig (..),
+    newComputeInstancesDeleteAccessConfig,
+
+    -- ** compute.instances.detachDisk
+    ComputeInstancesDetachDiskResource,
+    ComputeInstancesDetachDisk (..),
+    newComputeInstancesDetachDisk,
+
+    -- ** compute.instances.get
+    ComputeInstancesGetResource,
+    ComputeInstancesGet (..),
+    newComputeInstancesGet,
+
+    -- ** compute.instances.getEffectiveFirewalls
+    ComputeInstancesGetEffectiveFirewallsResource,
+    ComputeInstancesGetEffectiveFirewalls (..),
+    newComputeInstancesGetEffectiveFirewalls,
+
+    -- ** compute.instances.getGuestAttributes
+    ComputeInstancesGetGuestAttributesResource,
+    ComputeInstancesGetGuestAttributes (..),
+    newComputeInstancesGetGuestAttributes,
+
+    -- ** compute.instances.getIamPolicy
+    ComputeInstancesGetIamPolicyResource,
+    ComputeInstancesGetIamPolicy (..),
+    newComputeInstancesGetIamPolicy,
+
+    -- ** compute.instances.getScreenshot
+    ComputeInstancesGetScreenshotResource,
+    ComputeInstancesGetScreenshot (..),
+    newComputeInstancesGetScreenshot,
+
+    -- ** compute.instances.getSerialPortOutput
+    ComputeInstancesGetSerialPortOutputResource,
+    ComputeInstancesGetSerialPortOutput (..),
+    newComputeInstancesGetSerialPortOutput,
+
+    -- ** compute.instances.getShieldedInstanceIdentity
+    ComputeInstancesGetShieldedInstanceIdentityResource,
+    ComputeInstancesGetShieldedInstanceIdentity (..),
+    newComputeInstancesGetShieldedInstanceIdentity,
+
+    -- ** compute.instances.insert
+    ComputeInstancesInsertResource,
+    ComputeInstancesInsert (..),
+    newComputeInstancesInsert,
+
+    -- ** compute.instances.list
+    ComputeInstancesListResource,
+    ComputeInstancesList (..),
+    newComputeInstancesList,
+
+    -- ** compute.instances.listReferrers
+    ComputeInstancesListReferrersResource,
+    ComputeInstancesListReferrers (..),
+    newComputeInstancesListReferrers,
+
+    -- ** compute.instances.performMaintenance
+    ComputeInstancesPerformMaintenanceResource,
+    ComputeInstancesPerformMaintenance (..),
+    newComputeInstancesPerformMaintenance,
+
+    -- ** compute.instances.removeResourcePolicies
+    ComputeInstancesRemoveResourcePoliciesResource,
+    ComputeInstancesRemoveResourcePolicies (..),
+    newComputeInstancesRemoveResourcePolicies,
+
+    -- ** compute.instances.reportHostAsFaulty
+    ComputeInstancesReportHostAsFaultyResource,
+    ComputeInstancesReportHostAsFaulty (..),
+    newComputeInstancesReportHostAsFaulty,
+
+    -- ** compute.instances.reset
+    ComputeInstancesResetResource,
+    ComputeInstancesReset (..),
+    newComputeInstancesReset,
+
+    -- ** compute.instances.resume
+    ComputeInstancesResumeResource,
+    ComputeInstancesResume (..),
+    newComputeInstancesResume,
+
+    -- ** compute.instances.sendDiagnosticInterrupt
+    ComputeInstancesSendDiagnosticInterruptResource,
+    ComputeInstancesSendDiagnosticInterrupt (..),
+    newComputeInstancesSendDiagnosticInterrupt,
+
+    -- ** compute.instances.setDeletionProtection
+    ComputeInstancesSetDeletionProtectionResource,
+    ComputeInstancesSetDeletionProtection (..),
+    newComputeInstancesSetDeletionProtection,
+
+    -- ** compute.instances.setDiskAutoDelete
+    ComputeInstancesSetDiskAutoDeleteResource,
+    ComputeInstancesSetDiskAutoDelete (..),
+    newComputeInstancesSetDiskAutoDelete,
+
+    -- ** compute.instances.setIamPolicy
+    ComputeInstancesSetIamPolicyResource,
+    ComputeInstancesSetIamPolicy (..),
+    newComputeInstancesSetIamPolicy,
+
+    -- ** compute.instances.setLabels
+    ComputeInstancesSetLabelsResource,
+    ComputeInstancesSetLabels (..),
+    newComputeInstancesSetLabels,
+
+    -- ** compute.instances.setMachineResources
+    ComputeInstancesSetMachineResourcesResource,
+    ComputeInstancesSetMachineResources (..),
+    newComputeInstancesSetMachineResources,
+
+    -- ** compute.instances.setMachineType
+    ComputeInstancesSetMachineTypeResource,
+    ComputeInstancesSetMachineType (..),
+    newComputeInstancesSetMachineType,
+
+    -- ** compute.instances.setMetadata
+    ComputeInstancesSetMetadataResource,
+    ComputeInstancesSetMetadata (..),
+    newComputeInstancesSetMetadata,
+
+    -- ** compute.instances.setMinCpuPlatform
+    ComputeInstancesSetMinCpuPlatformResource,
+    ComputeInstancesSetMinCpuPlatform (..),
+    newComputeInstancesSetMinCpuPlatform,
+
+    -- ** compute.instances.setName
+    ComputeInstancesSetNameResource,
+    ComputeInstancesSetName (..),
+    newComputeInstancesSetName,
+
+    -- ** compute.instances.setScheduling
+    ComputeInstancesSetSchedulingResource,
+    ComputeInstancesSetScheduling (..),
+    newComputeInstancesSetScheduling,
+
+    -- ** compute.instances.setSecurityPolicy
+    ComputeInstancesSetSecurityPolicyResource,
+    ComputeInstancesSetSecurityPolicy (..),
+    newComputeInstancesSetSecurityPolicy,
+
+    -- ** compute.instances.setServiceAccount
+    ComputeInstancesSetServiceAccountResource,
+    ComputeInstancesSetServiceAccount (..),
+    newComputeInstancesSetServiceAccount,
+
+    -- ** compute.instances.setShieldedInstanceIntegrityPolicy
+    ComputeInstancesSetShieldedInstanceIntegrityPolicyResource,
+    ComputeInstancesSetShieldedInstanceIntegrityPolicy (..),
+    newComputeInstancesSetShieldedInstanceIntegrityPolicy,
+
+    -- ** compute.instances.setTags
+    ComputeInstancesSetTagsResource,
+    ComputeInstancesSetTags (..),
+    newComputeInstancesSetTags,
+
+    -- ** compute.instances.simulateMaintenanceEvent
+    ComputeInstancesSimulateMaintenanceEventResource,
+    ComputeInstancesSimulateMaintenanceEvent (..),
+    newComputeInstancesSimulateMaintenanceEvent,
+
+    -- ** compute.instances.start
+    ComputeInstancesStartResource,
+    ComputeInstancesStart (..),
+    newComputeInstancesStart,
+
+    -- ** compute.instances.startWithEncryptionKey
+    ComputeInstancesStartWithEncryptionKeyResource,
+    ComputeInstancesStartWithEncryptionKey (..),
+    newComputeInstancesStartWithEncryptionKey,
+
+    -- ** compute.instances.stop
+    ComputeInstancesStopResource,
+    ComputeInstancesStop (..),
+    newComputeInstancesStop,
+
+    -- ** compute.instances.suspend
+    ComputeInstancesSuspendResource,
+    ComputeInstancesSuspend (..),
+    newComputeInstancesSuspend,
+
+    -- ** compute.instances.testIamPermissions
+    ComputeInstancesTestIamPermissionsResource,
+    ComputeInstancesTestIamPermissions (..),
+    newComputeInstancesTestIamPermissions,
+
+    -- ** compute.instances.update
+    ComputeInstancesUpdateResource,
+    ComputeInstancesUpdate (..),
+    newComputeInstancesUpdate,
+
+    -- ** compute.instances.updateAccessConfig
+    ComputeInstancesUpdateAccessConfigResource,
+    ComputeInstancesUpdateAccessConfig (..),
+    newComputeInstancesUpdateAccessConfig,
+
+    -- ** compute.instances.updateDisplayDevice
+    ComputeInstancesUpdateDisplayDeviceResource,
+    ComputeInstancesUpdateDisplayDevice (..),
+    newComputeInstancesUpdateDisplayDevice,
+
+    -- ** compute.instances.updateNetworkInterface
+    ComputeInstancesUpdateNetworkInterfaceResource,
+    ComputeInstancesUpdateNetworkInterface (..),
+    newComputeInstancesUpdateNetworkInterface,
+
+    -- ** compute.instances.updateShieldedInstanceConfig
+    ComputeInstancesUpdateShieldedInstanceConfigResource,
+    ComputeInstancesUpdateShieldedInstanceConfig (..),
+    newComputeInstancesUpdateShieldedInstanceConfig,
+
+    -- ** compute.instantSnapshots.aggregatedList
+    ComputeInstantSnapshotsAggregatedListResource,
+    ComputeInstantSnapshotsAggregatedList (..),
+    newComputeInstantSnapshotsAggregatedList,
+
+    -- ** compute.instantSnapshots.delete
+    ComputeInstantSnapshotsDeleteResource,
+    ComputeInstantSnapshotsDelete (..),
+    newComputeInstantSnapshotsDelete,
+
+    -- ** compute.instantSnapshots.get
+    ComputeInstantSnapshotsGetResource,
+    ComputeInstantSnapshotsGet (..),
+    newComputeInstantSnapshotsGet,
+
+    -- ** compute.instantSnapshots.getIamPolicy
+    ComputeInstantSnapshotsGetIamPolicyResource,
+    ComputeInstantSnapshotsGetIamPolicy (..),
+    newComputeInstantSnapshotsGetIamPolicy,
+
+    -- ** compute.instantSnapshots.insert
+    ComputeInstantSnapshotsInsertResource,
+    ComputeInstantSnapshotsInsert (..),
+    newComputeInstantSnapshotsInsert,
+
+    -- ** compute.instantSnapshots.list
+    ComputeInstantSnapshotsListResource,
+    ComputeInstantSnapshotsList (..),
+    newComputeInstantSnapshotsList,
+
+    -- ** compute.instantSnapshots.setIamPolicy
+    ComputeInstantSnapshotsSetIamPolicyResource,
+    ComputeInstantSnapshotsSetIamPolicy (..),
+    newComputeInstantSnapshotsSetIamPolicy,
+
+    -- ** compute.instantSnapshots.setLabels
+    ComputeInstantSnapshotsSetLabelsResource,
+    ComputeInstantSnapshotsSetLabels (..),
+    newComputeInstantSnapshotsSetLabels,
+
+    -- ** compute.instantSnapshots.testIamPermissions
+    ComputeInstantSnapshotsTestIamPermissionsResource,
+    ComputeInstantSnapshotsTestIamPermissions (..),
+    newComputeInstantSnapshotsTestIamPermissions,
+
+    -- ** compute.interconnectAttachments.aggregatedList
+    ComputeInterconnectAttachmentsAggregatedListResource,
+    ComputeInterconnectAttachmentsAggregatedList (..),
+    newComputeInterconnectAttachmentsAggregatedList,
+
+    -- ** compute.interconnectAttachments.delete
+    ComputeInterconnectAttachmentsDeleteResource,
+    ComputeInterconnectAttachmentsDelete (..),
+    newComputeInterconnectAttachmentsDelete,
+
+    -- ** compute.interconnectAttachments.get
+    ComputeInterconnectAttachmentsGetResource,
+    ComputeInterconnectAttachmentsGet (..),
+    newComputeInterconnectAttachmentsGet,
+
+    -- ** compute.interconnectAttachments.insert
+    ComputeInterconnectAttachmentsInsertResource,
+    ComputeInterconnectAttachmentsInsert (..),
+    newComputeInterconnectAttachmentsInsert,
+
+    -- ** compute.interconnectAttachments.list
+    ComputeInterconnectAttachmentsListResource,
+    ComputeInterconnectAttachmentsList (..),
+    newComputeInterconnectAttachmentsList,
+
+    -- ** compute.interconnectAttachments.patch
+    ComputeInterconnectAttachmentsPatchResource,
+    ComputeInterconnectAttachmentsPatch (..),
+    newComputeInterconnectAttachmentsPatch,
+
+    -- ** compute.interconnectAttachments.setLabels
+    ComputeInterconnectAttachmentsSetLabelsResource,
+    ComputeInterconnectAttachmentsSetLabels (..),
+    newComputeInterconnectAttachmentsSetLabels,
+
+    -- ** compute.interconnectLocations.get
+    ComputeInterconnectLocationsGetResource,
+    ComputeInterconnectLocationsGet (..),
+    newComputeInterconnectLocationsGet,
+
+    -- ** compute.interconnectLocations.list
+    ComputeInterconnectLocationsListResource,
+    ComputeInterconnectLocationsList (..),
+    newComputeInterconnectLocationsList,
+
+    -- ** compute.interconnectRemoteLocations.get
+    ComputeInterconnectRemoteLocationsGetResource,
+    ComputeInterconnectRemoteLocationsGet (..),
+    newComputeInterconnectRemoteLocationsGet,
+
+    -- ** compute.interconnectRemoteLocations.list
+    ComputeInterconnectRemoteLocationsListResource,
+    ComputeInterconnectRemoteLocationsList (..),
+    newComputeInterconnectRemoteLocationsList,
+
+    -- ** compute.interconnects.delete
+    ComputeInterconnectsDeleteResource,
+    ComputeInterconnectsDelete (..),
+    newComputeInterconnectsDelete,
+
+    -- ** compute.interconnects.get
+    ComputeInterconnectsGetResource,
+    ComputeInterconnectsGet (..),
+    newComputeInterconnectsGet,
+
+    -- ** compute.interconnects.getDiagnostics
+    ComputeInterconnectsGetDiagnosticsResource,
+    ComputeInterconnectsGetDiagnostics (..),
+    newComputeInterconnectsGetDiagnostics,
+
+    -- ** compute.interconnects.getMacsecConfig
+    ComputeInterconnectsGetMacsecConfigResource,
+    ComputeInterconnectsGetMacsecConfig (..),
+    newComputeInterconnectsGetMacsecConfig,
+
+    -- ** compute.interconnects.insert
+    ComputeInterconnectsInsertResource,
+    ComputeInterconnectsInsert (..),
+    newComputeInterconnectsInsert,
+
+    -- ** compute.interconnects.list
+    ComputeInterconnectsListResource,
+    ComputeInterconnectsList (..),
+    newComputeInterconnectsList,
+
+    -- ** compute.interconnects.patch
+    ComputeInterconnectsPatchResource,
+    ComputeInterconnectsPatch (..),
+    newComputeInterconnectsPatch,
+
+    -- ** compute.interconnects.setLabels
+    ComputeInterconnectsSetLabelsResource,
+    ComputeInterconnectsSetLabels (..),
+    newComputeInterconnectsSetLabels,
+
+    -- ** compute.licenseCodes.get
+    ComputeLicenseCodesGetResource,
+    ComputeLicenseCodesGet (..),
+    newComputeLicenseCodesGet,
+
+    -- ** compute.licenseCodes.testIamPermissions
+    ComputeLicenseCodesTestIamPermissionsResource,
+    ComputeLicenseCodesTestIamPermissions (..),
+    newComputeLicenseCodesTestIamPermissions,
+
+    -- ** compute.licenses.delete
+    ComputeLicensesDeleteResource,
+    ComputeLicensesDelete (..),
+    newComputeLicensesDelete,
+
+    -- ** compute.licenses.get
+    ComputeLicensesGetResource,
+    ComputeLicensesGet (..),
+    newComputeLicensesGet,
+
+    -- ** compute.licenses.getIamPolicy
+    ComputeLicensesGetIamPolicyResource,
+    ComputeLicensesGetIamPolicy (..),
+    newComputeLicensesGetIamPolicy,
+
+    -- ** compute.licenses.insert
+    ComputeLicensesInsertResource,
+    ComputeLicensesInsert (..),
+    newComputeLicensesInsert,
+
+    -- ** compute.licenses.list
+    ComputeLicensesListResource,
+    ComputeLicensesList (..),
+    newComputeLicensesList,
+
+    -- ** compute.licenses.setIamPolicy
+    ComputeLicensesSetIamPolicyResource,
+    ComputeLicensesSetIamPolicy (..),
+    newComputeLicensesSetIamPolicy,
+
+    -- ** compute.licenses.testIamPermissions
+    ComputeLicensesTestIamPermissionsResource,
+    ComputeLicensesTestIamPermissions (..),
+    newComputeLicensesTestIamPermissions,
+
+    -- ** compute.machineImages.delete
+    ComputeMachineImagesDeleteResource,
+    ComputeMachineImagesDelete (..),
+    newComputeMachineImagesDelete,
+
+    -- ** compute.machineImages.get
+    ComputeMachineImagesGetResource,
+    ComputeMachineImagesGet (..),
+    newComputeMachineImagesGet,
+
+    -- ** compute.machineImages.getIamPolicy
+    ComputeMachineImagesGetIamPolicyResource,
+    ComputeMachineImagesGetIamPolicy (..),
+    newComputeMachineImagesGetIamPolicy,
+
+    -- ** compute.machineImages.insert
+    ComputeMachineImagesInsertResource,
+    ComputeMachineImagesInsert (..),
+    newComputeMachineImagesInsert,
+
+    -- ** compute.machineImages.list
+    ComputeMachineImagesListResource,
+    ComputeMachineImagesList (..),
+    newComputeMachineImagesList,
+
+    -- ** compute.machineImages.setIamPolicy
+    ComputeMachineImagesSetIamPolicyResource,
+    ComputeMachineImagesSetIamPolicy (..),
+    newComputeMachineImagesSetIamPolicy,
+
+    -- ** compute.machineImages.testIamPermissions
+    ComputeMachineImagesTestIamPermissionsResource,
+    ComputeMachineImagesTestIamPermissions (..),
+    newComputeMachineImagesTestIamPermissions,
+
+    -- ** compute.machineTypes.aggregatedList
+    ComputeMachineTypesAggregatedListResource,
+    ComputeMachineTypesAggregatedList (..),
+    newComputeMachineTypesAggregatedList,
+
+    -- ** compute.machineTypes.get
+    ComputeMachineTypesGetResource,
+    ComputeMachineTypesGet (..),
+    newComputeMachineTypesGet,
+
+    -- ** compute.machineTypes.list
+    ComputeMachineTypesListResource,
+    ComputeMachineTypesList (..),
+    newComputeMachineTypesList,
+
+    -- ** compute.networkAttachments.aggregatedList
+    ComputeNetworkAttachmentsAggregatedListResource,
+    ComputeNetworkAttachmentsAggregatedList (..),
+    newComputeNetworkAttachmentsAggregatedList,
+
+    -- ** compute.networkAttachments.delete
+    ComputeNetworkAttachmentsDeleteResource,
+    ComputeNetworkAttachmentsDelete (..),
+    newComputeNetworkAttachmentsDelete,
+
+    -- ** compute.networkAttachments.get
+    ComputeNetworkAttachmentsGetResource,
+    ComputeNetworkAttachmentsGet (..),
+    newComputeNetworkAttachmentsGet,
+
+    -- ** compute.networkAttachments.getIamPolicy
+    ComputeNetworkAttachmentsGetIamPolicyResource,
+    ComputeNetworkAttachmentsGetIamPolicy (..),
+    newComputeNetworkAttachmentsGetIamPolicy,
+
+    -- ** compute.networkAttachments.insert
+    ComputeNetworkAttachmentsInsertResource,
+    ComputeNetworkAttachmentsInsert (..),
+    newComputeNetworkAttachmentsInsert,
+
+    -- ** compute.networkAttachments.list
+    ComputeNetworkAttachmentsListResource,
+    ComputeNetworkAttachmentsList (..),
+    newComputeNetworkAttachmentsList,
+
+    -- ** compute.networkAttachments.patch
+    ComputeNetworkAttachmentsPatchResource,
+    ComputeNetworkAttachmentsPatch (..),
+    newComputeNetworkAttachmentsPatch,
+
+    -- ** compute.networkAttachments.setIamPolicy
+    ComputeNetworkAttachmentsSetIamPolicyResource,
+    ComputeNetworkAttachmentsSetIamPolicy (..),
+    newComputeNetworkAttachmentsSetIamPolicy,
+
+    -- ** compute.networkAttachments.testIamPermissions
+    ComputeNetworkAttachmentsTestIamPermissionsResource,
+    ComputeNetworkAttachmentsTestIamPermissions (..),
+    newComputeNetworkAttachmentsTestIamPermissions,
+
+    -- ** compute.networkEdgeSecurityServices.aggregatedList
+    ComputeNetworkEdgeSecurityServicesAggregatedListResource,
+    ComputeNetworkEdgeSecurityServicesAggregatedList (..),
+    newComputeNetworkEdgeSecurityServicesAggregatedList,
+
+    -- ** compute.networkEdgeSecurityServices.delete
+    ComputeNetworkEdgeSecurityServicesDeleteResource,
+    ComputeNetworkEdgeSecurityServicesDelete (..),
+    newComputeNetworkEdgeSecurityServicesDelete,
+
+    -- ** compute.networkEdgeSecurityServices.get
+    ComputeNetworkEdgeSecurityServicesGetResource,
+    ComputeNetworkEdgeSecurityServicesGet (..),
+    newComputeNetworkEdgeSecurityServicesGet,
+
+    -- ** compute.networkEdgeSecurityServices.insert
+    ComputeNetworkEdgeSecurityServicesInsertResource,
+    ComputeNetworkEdgeSecurityServicesInsert (..),
+    newComputeNetworkEdgeSecurityServicesInsert,
+
+    -- ** compute.networkEdgeSecurityServices.patch
+    ComputeNetworkEdgeSecurityServicesPatchResource,
+    ComputeNetworkEdgeSecurityServicesPatch (..),
+    newComputeNetworkEdgeSecurityServicesPatch,
+
+    -- ** compute.networkEndpointGroups.aggregatedList
+    ComputeNetworkEndpointGroupsAggregatedListResource,
+    ComputeNetworkEndpointGroupsAggregatedList (..),
+    newComputeNetworkEndpointGroupsAggregatedList,
+
+    -- ** compute.networkEndpointGroups.attachNetworkEndpoints
+    ComputeNetworkEndpointGroupsAttachNetworkEndpointsResource,
+    ComputeNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsAttachNetworkEndpoints,
+
+    -- ** compute.networkEndpointGroups.delete
+    ComputeNetworkEndpointGroupsDeleteResource,
+    ComputeNetworkEndpointGroupsDelete (..),
+    newComputeNetworkEndpointGroupsDelete,
+
+    -- ** compute.networkEndpointGroups.detachNetworkEndpoints
+    ComputeNetworkEndpointGroupsDetachNetworkEndpointsResource,
+    ComputeNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsDetachNetworkEndpoints,
+
+    -- ** compute.networkEndpointGroups.get
+    ComputeNetworkEndpointGroupsGetResource,
+    ComputeNetworkEndpointGroupsGet (..),
+    newComputeNetworkEndpointGroupsGet,
+
+    -- ** compute.networkEndpointGroups.insert
+    ComputeNetworkEndpointGroupsInsertResource,
+    ComputeNetworkEndpointGroupsInsert (..),
+    newComputeNetworkEndpointGroupsInsert,
+
+    -- ** compute.networkEndpointGroups.list
+    ComputeNetworkEndpointGroupsListResource,
+    ComputeNetworkEndpointGroupsList (..),
+    newComputeNetworkEndpointGroupsList,
+
+    -- ** compute.networkEndpointGroups.listNetworkEndpoints
+    ComputeNetworkEndpointGroupsListNetworkEndpointsResource,
+    ComputeNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsListNetworkEndpoints,
+
+    -- ** compute.networkEndpointGroups.testIamPermissions
+    ComputeNetworkEndpointGroupsTestIamPermissionsResource,
+    ComputeNetworkEndpointGroupsTestIamPermissions (..),
+    newComputeNetworkEndpointGroupsTestIamPermissions,
+
+    -- ** compute.networkFirewallPolicies.addAssociation
+    ComputeNetworkFirewallPoliciesAddAssociationResource,
+    ComputeNetworkFirewallPoliciesAddAssociation (..),
+    newComputeNetworkFirewallPoliciesAddAssociation,
+
+    -- ** compute.networkFirewallPolicies.addPacketMirroringRule
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRuleResource,
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesAddPacketMirroringRule,
+
+    -- ** compute.networkFirewallPolicies.addRule
+    ComputeNetworkFirewallPoliciesAddRuleResource,
+    ComputeNetworkFirewallPoliciesAddRule (..),
+    newComputeNetworkFirewallPoliciesAddRule,
+
+    -- ** compute.networkFirewallPolicies.aggregatedList
+    ComputeNetworkFirewallPoliciesAggregatedListResource,
+    ComputeNetworkFirewallPoliciesAggregatedList (..),
+    newComputeNetworkFirewallPoliciesAggregatedList,
+
+    -- ** compute.networkFirewallPolicies.cloneRules
+    ComputeNetworkFirewallPoliciesCloneRulesResource,
+    ComputeNetworkFirewallPoliciesCloneRules (..),
+    newComputeNetworkFirewallPoliciesCloneRules,
+
+    -- ** compute.networkFirewallPolicies.delete
+    ComputeNetworkFirewallPoliciesDeleteResource,
+    ComputeNetworkFirewallPoliciesDelete (..),
+    newComputeNetworkFirewallPoliciesDelete,
+
+    -- ** compute.networkFirewallPolicies.get
+    ComputeNetworkFirewallPoliciesGetResource,
+    ComputeNetworkFirewallPoliciesGet (..),
+    newComputeNetworkFirewallPoliciesGet,
+
+    -- ** compute.networkFirewallPolicies.getAssociation
+    ComputeNetworkFirewallPoliciesGetAssociationResource,
+    ComputeNetworkFirewallPoliciesGetAssociation (..),
+    newComputeNetworkFirewallPoliciesGetAssociation,
+
+    -- ** compute.networkFirewallPolicies.getIamPolicy
+    ComputeNetworkFirewallPoliciesGetIamPolicyResource,
+    ComputeNetworkFirewallPoliciesGetIamPolicy (..),
+    newComputeNetworkFirewallPoliciesGetIamPolicy,
+
+    -- ** compute.networkFirewallPolicies.getPacketMirroringRule
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRuleResource,
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesGetPacketMirroringRule,
+
+    -- ** compute.networkFirewallPolicies.getRule
+    ComputeNetworkFirewallPoliciesGetRuleResource,
+    ComputeNetworkFirewallPoliciesGetRule (..),
+    newComputeNetworkFirewallPoliciesGetRule,
+
+    -- ** compute.networkFirewallPolicies.insert
+    ComputeNetworkFirewallPoliciesInsertResource,
+    ComputeNetworkFirewallPoliciesInsert (..),
+    newComputeNetworkFirewallPoliciesInsert,
+
+    -- ** compute.networkFirewallPolicies.list
+    ComputeNetworkFirewallPoliciesListResource,
+    ComputeNetworkFirewallPoliciesList (..),
+    newComputeNetworkFirewallPoliciesList,
+
+    -- ** compute.networkFirewallPolicies.patch
+    ComputeNetworkFirewallPoliciesPatchResource,
+    ComputeNetworkFirewallPoliciesPatch (..),
+    newComputeNetworkFirewallPoliciesPatch,
+
+    -- ** compute.networkFirewallPolicies.patchPacketMirroringRule
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRuleResource,
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesPatchPacketMirroringRule,
+
+    -- ** compute.networkFirewallPolicies.patchRule
+    ComputeNetworkFirewallPoliciesPatchRuleResource,
+    ComputeNetworkFirewallPoliciesPatchRule (..),
+    newComputeNetworkFirewallPoliciesPatchRule,
+
+    -- ** compute.networkFirewallPolicies.removeAssociation
+    ComputeNetworkFirewallPoliciesRemoveAssociationResource,
+    ComputeNetworkFirewallPoliciesRemoveAssociation (..),
+    newComputeNetworkFirewallPoliciesRemoveAssociation,
+
+    -- ** compute.networkFirewallPolicies.removePacketMirroringRule
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRuleResource,
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesRemovePacketMirroringRule,
+
+    -- ** compute.networkFirewallPolicies.removeRule
+    ComputeNetworkFirewallPoliciesRemoveRuleResource,
+    ComputeNetworkFirewallPoliciesRemoveRule (..),
+    newComputeNetworkFirewallPoliciesRemoveRule,
+
+    -- ** compute.networkFirewallPolicies.setIamPolicy
+    ComputeNetworkFirewallPoliciesSetIamPolicyResource,
+    ComputeNetworkFirewallPoliciesSetIamPolicy (..),
+    newComputeNetworkFirewallPoliciesSetIamPolicy,
+
+    -- ** compute.networkFirewallPolicies.testIamPermissions
+    ComputeNetworkFirewallPoliciesTestIamPermissionsResource,
+    ComputeNetworkFirewallPoliciesTestIamPermissions (..),
+    newComputeNetworkFirewallPoliciesTestIamPermissions,
+
+    -- ** compute.networkProfiles.get
+    ComputeNetworkProfilesGetResource,
+    ComputeNetworkProfilesGet (..),
+    newComputeNetworkProfilesGet,
+
+    -- ** compute.networkProfiles.list
+    ComputeNetworkProfilesListResource,
+    ComputeNetworkProfilesList (..),
+    newComputeNetworkProfilesList,
+
+    -- ** compute.networks.addPeering
+    ComputeNetworksAddPeeringResource,
+    ComputeNetworksAddPeering (..),
+    newComputeNetworksAddPeering,
+
+    -- ** compute.networks.delete
+    ComputeNetworksDeleteResource,
+    ComputeNetworksDelete (..),
+    newComputeNetworksDelete,
+
+    -- ** compute.networks.get
+    ComputeNetworksGetResource,
+    ComputeNetworksGet (..),
+    newComputeNetworksGet,
+
+    -- ** compute.networks.getEffectiveFirewalls
+    ComputeNetworksGetEffectiveFirewallsResource,
+    ComputeNetworksGetEffectiveFirewalls (..),
+    newComputeNetworksGetEffectiveFirewalls,
+
+    -- ** compute.networks.insert
+    ComputeNetworksInsertResource,
+    ComputeNetworksInsert (..),
+    newComputeNetworksInsert,
+
+    -- ** compute.networks.list
+    ComputeNetworksListResource,
+    ComputeNetworksList (..),
+    newComputeNetworksList,
+
+    -- ** compute.networks.listPeeringRoutes
+    ComputeNetworksListPeeringRoutesResource,
+    ComputeNetworksListPeeringRoutes (..),
+    newComputeNetworksListPeeringRoutes,
+
+    -- ** compute.networks.patch
+    ComputeNetworksPatchResource,
+    ComputeNetworksPatch (..),
+    newComputeNetworksPatch,
+
+    -- ** compute.networks.removePeering
+    ComputeNetworksRemovePeeringResource,
+    ComputeNetworksRemovePeering (..),
+    newComputeNetworksRemovePeering,
+
+    -- ** compute.networks.switchToCustomMode
+    ComputeNetworksSwitchToCustomModeResource,
+    ComputeNetworksSwitchToCustomMode (..),
+    newComputeNetworksSwitchToCustomMode,
+
+    -- ** compute.networks.updatePeering
+    ComputeNetworksUpdatePeeringResource,
+    ComputeNetworksUpdatePeering (..),
+    newComputeNetworksUpdatePeering,
+
+    -- ** compute.nodeGroups.addNodes
+    ComputeNodeGroupsAddNodesResource,
+    ComputeNodeGroupsAddNodes (..),
+    newComputeNodeGroupsAddNodes,
+
+    -- ** compute.nodeGroups.aggregatedList
+    ComputeNodeGroupsAggregatedListResource,
+    ComputeNodeGroupsAggregatedList (..),
+    newComputeNodeGroupsAggregatedList,
+
+    -- ** compute.nodeGroups.delete
+    ComputeNodeGroupsDeleteResource,
+    ComputeNodeGroupsDelete (..),
+    newComputeNodeGroupsDelete,
+
+    -- ** compute.nodeGroups.deleteNodes
+    ComputeNodeGroupsDeleteNodesResource,
+    ComputeNodeGroupsDeleteNodes (..),
+    newComputeNodeGroupsDeleteNodes,
+
+    -- ** compute.nodeGroups.get
+    ComputeNodeGroupsGetResource,
+    ComputeNodeGroupsGet (..),
+    newComputeNodeGroupsGet,
+
+    -- ** compute.nodeGroups.getIamPolicy
+    ComputeNodeGroupsGetIamPolicyResource,
+    ComputeNodeGroupsGetIamPolicy (..),
+    newComputeNodeGroupsGetIamPolicy,
+
+    -- ** compute.nodeGroups.insert
+    ComputeNodeGroupsInsertResource,
+    ComputeNodeGroupsInsert (..),
+    newComputeNodeGroupsInsert,
+
+    -- ** compute.nodeGroups.list
+    ComputeNodeGroupsListResource,
+    ComputeNodeGroupsList (..),
+    newComputeNodeGroupsList,
+
+    -- ** compute.nodeGroups.listNodes
+    ComputeNodeGroupsListNodesResource,
+    ComputeNodeGroupsListNodes (..),
+    newComputeNodeGroupsListNodes,
+
+    -- ** compute.nodeGroups.patch
+    ComputeNodeGroupsPatchResource,
+    ComputeNodeGroupsPatch (..),
+    newComputeNodeGroupsPatch,
+
+    -- ** compute.nodeGroups.performMaintenance
+    ComputeNodeGroupsPerformMaintenanceResource,
+    ComputeNodeGroupsPerformMaintenance (..),
+    newComputeNodeGroupsPerformMaintenance,
+
+    -- ** compute.nodeGroups.setIamPolicy
+    ComputeNodeGroupsSetIamPolicyResource,
+    ComputeNodeGroupsSetIamPolicy (..),
+    newComputeNodeGroupsSetIamPolicy,
+
+    -- ** compute.nodeGroups.setNodeTemplate
+    ComputeNodeGroupsSetNodeTemplateResource,
+    ComputeNodeGroupsSetNodeTemplate (..),
+    newComputeNodeGroupsSetNodeTemplate,
+
+    -- ** compute.nodeGroups.simulateMaintenanceEvent
+    ComputeNodeGroupsSimulateMaintenanceEventResource,
+    ComputeNodeGroupsSimulateMaintenanceEvent (..),
+    newComputeNodeGroupsSimulateMaintenanceEvent,
+
+    -- ** compute.nodeGroups.testIamPermissions
+    ComputeNodeGroupsTestIamPermissionsResource,
+    ComputeNodeGroupsTestIamPermissions (..),
+    newComputeNodeGroupsTestIamPermissions,
+
+    -- ** compute.nodeTemplates.aggregatedList
+    ComputeNodeTemplatesAggregatedListResource,
+    ComputeNodeTemplatesAggregatedList (..),
+    newComputeNodeTemplatesAggregatedList,
+
+    -- ** compute.nodeTemplates.delete
+    ComputeNodeTemplatesDeleteResource,
+    ComputeNodeTemplatesDelete (..),
+    newComputeNodeTemplatesDelete,
+
+    -- ** compute.nodeTemplates.get
+    ComputeNodeTemplatesGetResource,
+    ComputeNodeTemplatesGet (..),
+    newComputeNodeTemplatesGet,
+
+    -- ** compute.nodeTemplates.getIamPolicy
+    ComputeNodeTemplatesGetIamPolicyResource,
+    ComputeNodeTemplatesGetIamPolicy (..),
+    newComputeNodeTemplatesGetIamPolicy,
+
+    -- ** compute.nodeTemplates.insert
+    ComputeNodeTemplatesInsertResource,
+    ComputeNodeTemplatesInsert (..),
+    newComputeNodeTemplatesInsert,
+
+    -- ** compute.nodeTemplates.list
+    ComputeNodeTemplatesListResource,
+    ComputeNodeTemplatesList (..),
+    newComputeNodeTemplatesList,
+
+    -- ** compute.nodeTemplates.setIamPolicy
+    ComputeNodeTemplatesSetIamPolicyResource,
+    ComputeNodeTemplatesSetIamPolicy (..),
+    newComputeNodeTemplatesSetIamPolicy,
+
+    -- ** compute.nodeTemplates.testIamPermissions
+    ComputeNodeTemplatesTestIamPermissionsResource,
+    ComputeNodeTemplatesTestIamPermissions (..),
+    newComputeNodeTemplatesTestIamPermissions,
+
+    -- ** compute.nodeTypes.aggregatedList
+    ComputeNodeTypesAggregatedListResource,
+    ComputeNodeTypesAggregatedList (..),
+    newComputeNodeTypesAggregatedList,
+
+    -- ** compute.nodeTypes.get
+    ComputeNodeTypesGetResource,
+    ComputeNodeTypesGet (..),
+    newComputeNodeTypesGet,
+
+    -- ** compute.nodeTypes.list
+    ComputeNodeTypesListResource,
+    ComputeNodeTypesList (..),
+    newComputeNodeTypesList,
+
+    -- ** compute.packetMirrorings.aggregatedList
+    ComputePacketMirroringsAggregatedListResource,
+    ComputePacketMirroringsAggregatedList (..),
+    newComputePacketMirroringsAggregatedList,
+
+    -- ** compute.packetMirrorings.delete
+    ComputePacketMirroringsDeleteResource,
+    ComputePacketMirroringsDelete (..),
+    newComputePacketMirroringsDelete,
+
+    -- ** compute.packetMirrorings.get
+    ComputePacketMirroringsGetResource,
+    ComputePacketMirroringsGet (..),
+    newComputePacketMirroringsGet,
+
+    -- ** compute.packetMirrorings.insert
+    ComputePacketMirroringsInsertResource,
+    ComputePacketMirroringsInsert (..),
+    newComputePacketMirroringsInsert,
+
+    -- ** compute.packetMirrorings.list
+    ComputePacketMirroringsListResource,
+    ComputePacketMirroringsList (..),
+    newComputePacketMirroringsList,
+
+    -- ** compute.packetMirrorings.patch
+    ComputePacketMirroringsPatchResource,
+    ComputePacketMirroringsPatch (..),
+    newComputePacketMirroringsPatch,
+
+    -- ** compute.packetMirrorings.testIamPermissions
+    ComputePacketMirroringsTestIamPermissionsResource,
+    ComputePacketMirroringsTestIamPermissions (..),
+    newComputePacketMirroringsTestIamPermissions,
+
+    -- ** compute.projects.disableXpnHost
+    ComputeProjectsDisableXpnHostResource,
+    ComputeProjectsDisableXpnHost (..),
+    newComputeProjectsDisableXpnHost,
+
+    -- ** compute.projects.disableXpnResource
+    ComputeProjectsDisableXpnResourceResource,
+    ComputeProjectsDisableXpnResource (..),
+    newComputeProjectsDisableXpnResource,
+
+    -- ** compute.projects.enableXpnHost
+    ComputeProjectsEnableXpnHostResource,
+    ComputeProjectsEnableXpnHost (..),
+    newComputeProjectsEnableXpnHost,
+
+    -- ** compute.projects.enableXpnResource
+    ComputeProjectsEnableXpnResourceResource,
+    ComputeProjectsEnableXpnResource (..),
+    newComputeProjectsEnableXpnResource,
+
+    -- ** compute.projects.get
+    ComputeProjectsGetResource,
+    ComputeProjectsGet (..),
+    newComputeProjectsGet,
+
+    -- ** compute.projects.getXpnHost
+    ComputeProjectsGetXpnHostResource,
+    ComputeProjectsGetXpnHost (..),
+    newComputeProjectsGetXpnHost,
+
+    -- ** compute.projects.getXpnResources
+    ComputeProjectsGetXpnResourcesResource,
+    ComputeProjectsGetXpnResources (..),
+    newComputeProjectsGetXpnResources,
+
+    -- ** compute.projects.listXpnHosts
+    ComputeProjectsListXpnHostsResource,
+    ComputeProjectsListXpnHosts (..),
+    newComputeProjectsListXpnHosts,
+
+    -- ** compute.projects.moveDisk
+    ComputeProjectsMoveDiskResource,
+    ComputeProjectsMoveDisk (..),
+    newComputeProjectsMoveDisk,
+
+    -- ** compute.projects.moveInstance
+    ComputeProjectsMoveInstanceResource,
+    ComputeProjectsMoveInstance (..),
+    newComputeProjectsMoveInstance,
+
+    -- ** compute.projects.setCloudArmorTier
+    ComputeProjectsSetCloudArmorTierResource,
+    ComputeProjectsSetCloudArmorTier (..),
+    newComputeProjectsSetCloudArmorTier,
+
+    -- ** compute.projects.setCommonInstanceMetadata
+    ComputeProjectsSetCommonInstanceMetadataResource,
+    ComputeProjectsSetCommonInstanceMetadata (..),
+    newComputeProjectsSetCommonInstanceMetadata,
+
+    -- ** compute.projects.setDefaultNetworkTier
+    ComputeProjectsSetDefaultNetworkTierResource,
+    ComputeProjectsSetDefaultNetworkTier (..),
+    newComputeProjectsSetDefaultNetworkTier,
+
+    -- ** compute.projects.setUsageExportBucket
+    ComputeProjectsSetUsageExportBucketResource,
+    ComputeProjectsSetUsageExportBucket (..),
+    newComputeProjectsSetUsageExportBucket,
+
+    -- ** compute.publicAdvertisedPrefixes.announce
+    ComputePublicAdvertisedPrefixesAnnounceResource,
+    ComputePublicAdvertisedPrefixesAnnounce (..),
+    newComputePublicAdvertisedPrefixesAnnounce,
+
+    -- ** compute.publicAdvertisedPrefixes.delete
+    ComputePublicAdvertisedPrefixesDeleteResource,
+    ComputePublicAdvertisedPrefixesDelete (..),
+    newComputePublicAdvertisedPrefixesDelete,
+
+    -- ** compute.publicAdvertisedPrefixes.get
+    ComputePublicAdvertisedPrefixesGetResource,
+    ComputePublicAdvertisedPrefixesGet (..),
+    newComputePublicAdvertisedPrefixesGet,
+
+    -- ** compute.publicAdvertisedPrefixes.insert
+    ComputePublicAdvertisedPrefixesInsertResource,
+    ComputePublicAdvertisedPrefixesInsert (..),
+    newComputePublicAdvertisedPrefixesInsert,
+
+    -- ** compute.publicAdvertisedPrefixes.list
+    ComputePublicAdvertisedPrefixesListResource,
+    ComputePublicAdvertisedPrefixesList (..),
+    newComputePublicAdvertisedPrefixesList,
+
+    -- ** compute.publicAdvertisedPrefixes.patch
+    ComputePublicAdvertisedPrefixesPatchResource,
+    ComputePublicAdvertisedPrefixesPatch (..),
+    newComputePublicAdvertisedPrefixesPatch,
+
+    -- ** compute.publicAdvertisedPrefixes.withdraw
+    ComputePublicAdvertisedPrefixesWithdrawResource,
+    ComputePublicAdvertisedPrefixesWithdraw (..),
+    newComputePublicAdvertisedPrefixesWithdraw,
+
+    -- ** compute.publicDelegatedPrefixes.aggregatedList
+    ComputePublicDelegatedPrefixesAggregatedListResource,
+    ComputePublicDelegatedPrefixesAggregatedList (..),
+    newComputePublicDelegatedPrefixesAggregatedList,
+
+    -- ** compute.publicDelegatedPrefixes.announce
+    ComputePublicDelegatedPrefixesAnnounceResource,
+    ComputePublicDelegatedPrefixesAnnounce (..),
+    newComputePublicDelegatedPrefixesAnnounce,
+
+    -- ** compute.publicDelegatedPrefixes.delete
+    ComputePublicDelegatedPrefixesDeleteResource,
+    ComputePublicDelegatedPrefixesDelete (..),
+    newComputePublicDelegatedPrefixesDelete,
+
+    -- ** compute.publicDelegatedPrefixes.get
+    ComputePublicDelegatedPrefixesGetResource,
+    ComputePublicDelegatedPrefixesGet (..),
+    newComputePublicDelegatedPrefixesGet,
+
+    -- ** compute.publicDelegatedPrefixes.insert
+    ComputePublicDelegatedPrefixesInsertResource,
+    ComputePublicDelegatedPrefixesInsert (..),
+    newComputePublicDelegatedPrefixesInsert,
+
+    -- ** compute.publicDelegatedPrefixes.list
+    ComputePublicDelegatedPrefixesListResource,
+    ComputePublicDelegatedPrefixesList (..),
+    newComputePublicDelegatedPrefixesList,
+
+    -- ** compute.publicDelegatedPrefixes.patch
+    ComputePublicDelegatedPrefixesPatchResource,
+    ComputePublicDelegatedPrefixesPatch (..),
+    newComputePublicDelegatedPrefixesPatch,
+
+    -- ** compute.publicDelegatedPrefixes.withdraw
+    ComputePublicDelegatedPrefixesWithdrawResource,
+    ComputePublicDelegatedPrefixesWithdraw (..),
+    newComputePublicDelegatedPrefixesWithdraw,
+
+    -- ** compute.regionAutoscalers.delete
+    ComputeRegionAutoscalersDeleteResource,
+    ComputeRegionAutoscalersDelete (..),
+    newComputeRegionAutoscalersDelete,
+
+    -- ** compute.regionAutoscalers.get
+    ComputeRegionAutoscalersGetResource,
+    ComputeRegionAutoscalersGet (..),
+    newComputeRegionAutoscalersGet,
+
+    -- ** compute.regionAutoscalers.insert
+    ComputeRegionAutoscalersInsertResource,
+    ComputeRegionAutoscalersInsert (..),
+    newComputeRegionAutoscalersInsert,
+
+    -- ** compute.regionAutoscalers.list
+    ComputeRegionAutoscalersListResource,
+    ComputeRegionAutoscalersList (..),
+    newComputeRegionAutoscalersList,
+
+    -- ** compute.regionAutoscalers.patch
+    ComputeRegionAutoscalersPatchResource,
+    ComputeRegionAutoscalersPatch (..),
+    newComputeRegionAutoscalersPatch,
+
+    -- ** compute.regionAutoscalers.update
+    ComputeRegionAutoscalersUpdateResource,
+    ComputeRegionAutoscalersUpdate (..),
+    newComputeRegionAutoscalersUpdate,
+
+    -- ** compute.regionBackendServices.delete
+    ComputeRegionBackendServicesDeleteResource,
+    ComputeRegionBackendServicesDelete (..),
+    newComputeRegionBackendServicesDelete,
+
+    -- ** compute.regionBackendServices.get
+    ComputeRegionBackendServicesGetResource,
+    ComputeRegionBackendServicesGet (..),
+    newComputeRegionBackendServicesGet,
+
+    -- ** compute.regionBackendServices.getHealth
+    ComputeRegionBackendServicesGetHealthResource,
+    ComputeRegionBackendServicesGetHealth (..),
+    newComputeRegionBackendServicesGetHealth,
+
+    -- ** compute.regionBackendServices.getIamPolicy
+    ComputeRegionBackendServicesGetIamPolicyResource,
+    ComputeRegionBackendServicesGetIamPolicy (..),
+    newComputeRegionBackendServicesGetIamPolicy,
+
+    -- ** compute.regionBackendServices.insert
+    ComputeRegionBackendServicesInsertResource,
+    ComputeRegionBackendServicesInsert (..),
+    newComputeRegionBackendServicesInsert,
+
+    -- ** compute.regionBackendServices.list
+    ComputeRegionBackendServicesListResource,
+    ComputeRegionBackendServicesList (..),
+    newComputeRegionBackendServicesList,
+
+    -- ** compute.regionBackendServices.listUsable
+    ComputeRegionBackendServicesListUsableResource,
+    ComputeRegionBackendServicesListUsable (..),
+    newComputeRegionBackendServicesListUsable,
+
+    -- ** compute.regionBackendServices.patch
+    ComputeRegionBackendServicesPatchResource,
+    ComputeRegionBackendServicesPatch (..),
+    newComputeRegionBackendServicesPatch,
+
+    -- ** compute.regionBackendServices.setIamPolicy
+    ComputeRegionBackendServicesSetIamPolicyResource,
+    ComputeRegionBackendServicesSetIamPolicy (..),
+    newComputeRegionBackendServicesSetIamPolicy,
+
+    -- ** compute.regionBackendServices.setSecurityPolicy
+    ComputeRegionBackendServicesSetSecurityPolicyResource,
+    ComputeRegionBackendServicesSetSecurityPolicy (..),
+    newComputeRegionBackendServicesSetSecurityPolicy,
+
+    -- ** compute.regionBackendServices.testIamPermissions
+    ComputeRegionBackendServicesTestIamPermissionsResource,
+    ComputeRegionBackendServicesTestIamPermissions (..),
+    newComputeRegionBackendServicesTestIamPermissions,
+
+    -- ** compute.regionBackendServices.update
+    ComputeRegionBackendServicesUpdateResource,
+    ComputeRegionBackendServicesUpdate (..),
+    newComputeRegionBackendServicesUpdate,
+
+    -- ** compute.regionCommitments.aggregatedList
+    ComputeRegionCommitmentsAggregatedListResource,
+    ComputeRegionCommitmentsAggregatedList (..),
+    newComputeRegionCommitmentsAggregatedList,
+
+    -- ** compute.regionCommitments.get
+    ComputeRegionCommitmentsGetResource,
+    ComputeRegionCommitmentsGet (..),
+    newComputeRegionCommitmentsGet,
+
+    -- ** compute.regionCommitments.insert
+    ComputeRegionCommitmentsInsertResource,
+    ComputeRegionCommitmentsInsert (..),
+    newComputeRegionCommitmentsInsert,
+
+    -- ** compute.regionCommitments.list
+    ComputeRegionCommitmentsListResource,
+    ComputeRegionCommitmentsList (..),
+    newComputeRegionCommitmentsList,
+
+    -- ** compute.regionCommitments.update
+    ComputeRegionCommitmentsUpdateResource,
+    ComputeRegionCommitmentsUpdate (..),
+    newComputeRegionCommitmentsUpdate,
+
+    -- ** compute.regionDiskTypes.get
+    ComputeRegionDiskTypesGetResource,
+    ComputeRegionDiskTypesGet (..),
+    newComputeRegionDiskTypesGet,
+
+    -- ** compute.regionDiskTypes.list
+    ComputeRegionDiskTypesListResource,
+    ComputeRegionDiskTypesList (..),
+    newComputeRegionDiskTypesList,
+
+    -- ** compute.regionDisks.addResourcePolicies
+    ComputeRegionDisksAddResourcePoliciesResource,
+    ComputeRegionDisksAddResourcePolicies (..),
+    newComputeRegionDisksAddResourcePolicies,
+
+    -- ** compute.regionDisks.bulkInsert
+    ComputeRegionDisksBulkInsertResource,
+    ComputeRegionDisksBulkInsert (..),
+    newComputeRegionDisksBulkInsert,
+
+    -- ** compute.regionDisks.createSnapshot
+    ComputeRegionDisksCreateSnapshotResource,
+    ComputeRegionDisksCreateSnapshot (..),
+    newComputeRegionDisksCreateSnapshot,
+
+    -- ** compute.regionDisks.delete
+    ComputeRegionDisksDeleteResource,
+    ComputeRegionDisksDelete (..),
+    newComputeRegionDisksDelete,
+
+    -- ** compute.regionDisks.get
+    ComputeRegionDisksGetResource,
+    ComputeRegionDisksGet (..),
+    newComputeRegionDisksGet,
+
+    -- ** compute.regionDisks.getIamPolicy
+    ComputeRegionDisksGetIamPolicyResource,
+    ComputeRegionDisksGetIamPolicy (..),
+    newComputeRegionDisksGetIamPolicy,
+
+    -- ** compute.regionDisks.insert
+    ComputeRegionDisksInsertResource,
+    ComputeRegionDisksInsert (..),
+    newComputeRegionDisksInsert,
+
+    -- ** compute.regionDisks.list
+    ComputeRegionDisksListResource,
+    ComputeRegionDisksList (..),
+    newComputeRegionDisksList,
+
+    -- ** compute.regionDisks.removeResourcePolicies
+    ComputeRegionDisksRemoveResourcePoliciesResource,
+    ComputeRegionDisksRemoveResourcePolicies (..),
+    newComputeRegionDisksRemoveResourcePolicies,
+
+    -- ** compute.regionDisks.resize
+    ComputeRegionDisksResizeResource,
+    ComputeRegionDisksResize (..),
+    newComputeRegionDisksResize,
+
+    -- ** compute.regionDisks.setIamPolicy
+    ComputeRegionDisksSetIamPolicyResource,
+    ComputeRegionDisksSetIamPolicy (..),
+    newComputeRegionDisksSetIamPolicy,
+
+    -- ** compute.regionDisks.setLabels
+    ComputeRegionDisksSetLabelsResource,
+    ComputeRegionDisksSetLabels (..),
+    newComputeRegionDisksSetLabels,
+
+    -- ** compute.regionDisks.startAsyncReplication
+    ComputeRegionDisksStartAsyncReplicationResource,
+    ComputeRegionDisksStartAsyncReplication (..),
+    newComputeRegionDisksStartAsyncReplication,
+
+    -- ** compute.regionDisks.stopAsyncReplication
+    ComputeRegionDisksStopAsyncReplicationResource,
+    ComputeRegionDisksStopAsyncReplication (..),
+    newComputeRegionDisksStopAsyncReplication,
+
+    -- ** compute.regionDisks.stopGroupAsyncReplication
+    ComputeRegionDisksStopGroupAsyncReplicationResource,
+    ComputeRegionDisksStopGroupAsyncReplication (..),
+    newComputeRegionDisksStopGroupAsyncReplication,
+
+    -- ** compute.regionDisks.testIamPermissions
+    ComputeRegionDisksTestIamPermissionsResource,
+    ComputeRegionDisksTestIamPermissions (..),
+    newComputeRegionDisksTestIamPermissions,
+
+    -- ** compute.regionDisks.update
+    ComputeRegionDisksUpdateResource,
+    ComputeRegionDisksUpdate (..),
+    newComputeRegionDisksUpdate,
+
+    -- ** compute.regionHealthCheckServices.delete
+    ComputeRegionHealthCheckServicesDeleteResource,
+    ComputeRegionHealthCheckServicesDelete (..),
+    newComputeRegionHealthCheckServicesDelete,
+
+    -- ** compute.regionHealthCheckServices.get
+    ComputeRegionHealthCheckServicesGetResource,
+    ComputeRegionHealthCheckServicesGet (..),
+    newComputeRegionHealthCheckServicesGet,
+
+    -- ** compute.regionHealthCheckServices.insert
+    ComputeRegionHealthCheckServicesInsertResource,
+    ComputeRegionHealthCheckServicesInsert (..),
+    newComputeRegionHealthCheckServicesInsert,
+
+    -- ** compute.regionHealthCheckServices.list
+    ComputeRegionHealthCheckServicesListResource,
+    ComputeRegionHealthCheckServicesList (..),
+    newComputeRegionHealthCheckServicesList,
+
+    -- ** compute.regionHealthCheckServices.patch
+    ComputeRegionHealthCheckServicesPatchResource,
+    ComputeRegionHealthCheckServicesPatch (..),
+    newComputeRegionHealthCheckServicesPatch,
+
+    -- ** compute.regionHealthChecks.delete
+    ComputeRegionHealthChecksDeleteResource,
+    ComputeRegionHealthChecksDelete (..),
+    newComputeRegionHealthChecksDelete,
+
+    -- ** compute.regionHealthChecks.get
+    ComputeRegionHealthChecksGetResource,
+    ComputeRegionHealthChecksGet (..),
+    newComputeRegionHealthChecksGet,
+
+    -- ** compute.regionHealthChecks.insert
+    ComputeRegionHealthChecksInsertResource,
+    ComputeRegionHealthChecksInsert (..),
+    newComputeRegionHealthChecksInsert,
+
+    -- ** compute.regionHealthChecks.list
+    ComputeRegionHealthChecksListResource,
+    ComputeRegionHealthChecksList (..),
+    newComputeRegionHealthChecksList,
+
+    -- ** compute.regionHealthChecks.patch
+    ComputeRegionHealthChecksPatchResource,
+    ComputeRegionHealthChecksPatch (..),
+    newComputeRegionHealthChecksPatch,
+
+    -- ** compute.regionHealthChecks.update
+    ComputeRegionHealthChecksUpdateResource,
+    ComputeRegionHealthChecksUpdate (..),
+    newComputeRegionHealthChecksUpdate,
+
+    -- ** compute.regionInstanceGroupManagers.abandonInstances
+    ComputeRegionInstanceGroupManagersAbandonInstancesResource,
+    ComputeRegionInstanceGroupManagersAbandonInstances (..),
+    newComputeRegionInstanceGroupManagersAbandonInstances,
+
+    -- ** compute.regionInstanceGroupManagers.applyUpdatesToInstances
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstancesResource,
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstances (..),
+    newComputeRegionInstanceGroupManagersApplyUpdatesToInstances,
+
+    -- ** compute.regionInstanceGroupManagers.createInstances
+    ComputeRegionInstanceGroupManagersCreateInstancesResource,
+    ComputeRegionInstanceGroupManagersCreateInstances (..),
+    newComputeRegionInstanceGroupManagersCreateInstances,
+
+    -- ** compute.regionInstanceGroupManagers.delete
+    ComputeRegionInstanceGroupManagersDeleteResource,
+    ComputeRegionInstanceGroupManagersDelete (..),
+    newComputeRegionInstanceGroupManagersDelete,
+
+    -- ** compute.regionInstanceGroupManagers.deleteInstances
+    ComputeRegionInstanceGroupManagersDeleteInstancesResource,
+    ComputeRegionInstanceGroupManagersDeleteInstances (..),
+    newComputeRegionInstanceGroupManagersDeleteInstances,
+
+    -- ** compute.regionInstanceGroupManagers.deletePerInstanceConfigs
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigsResource,
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersDeletePerInstanceConfigs,
+
+    -- ** compute.regionInstanceGroupManagers.get
+    ComputeRegionInstanceGroupManagersGetResource,
+    ComputeRegionInstanceGroupManagersGet (..),
+    newComputeRegionInstanceGroupManagersGet,
+
+    -- ** compute.regionInstanceGroupManagers.insert
+    ComputeRegionInstanceGroupManagersInsertResource,
+    ComputeRegionInstanceGroupManagersInsert (..),
+    newComputeRegionInstanceGroupManagersInsert,
+
+    -- ** compute.regionInstanceGroupManagers.list
+    ComputeRegionInstanceGroupManagersListResource,
+    ComputeRegionInstanceGroupManagersList (..),
+    newComputeRegionInstanceGroupManagersList,
+
+    -- ** compute.regionInstanceGroupManagers.listErrors
+    ComputeRegionInstanceGroupManagersListErrorsResource,
+    ComputeRegionInstanceGroupManagersListErrors (..),
+    newComputeRegionInstanceGroupManagersListErrors,
+
+    -- ** compute.regionInstanceGroupManagers.listManagedInstances
+    ComputeRegionInstanceGroupManagersListManagedInstancesResource,
+    ComputeRegionInstanceGroupManagersListManagedInstances (..),
+    newComputeRegionInstanceGroupManagersListManagedInstances,
+
+    -- ** compute.regionInstanceGroupManagers.listPerInstanceConfigs
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigsResource,
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersListPerInstanceConfigs,
+
+    -- ** compute.regionInstanceGroupManagers.patch
+    ComputeRegionInstanceGroupManagersPatchResource,
+    ComputeRegionInstanceGroupManagersPatch (..),
+    newComputeRegionInstanceGroupManagersPatch,
+
+    -- ** compute.regionInstanceGroupManagers.patchPerInstanceConfigs
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigsResource,
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersPatchPerInstanceConfigs,
+
+    -- ** compute.regionInstanceGroupManagers.recreateInstances
+    ComputeRegionInstanceGroupManagersRecreateInstancesResource,
+    ComputeRegionInstanceGroupManagersRecreateInstances (..),
+    newComputeRegionInstanceGroupManagersRecreateInstances,
+
+    -- ** compute.regionInstanceGroupManagers.resize
+    ComputeRegionInstanceGroupManagersResizeResource,
+    ComputeRegionInstanceGroupManagersResize (..),
+    newComputeRegionInstanceGroupManagersResize,
+
+    -- ** compute.regionInstanceGroupManagers.resumeInstances
+    ComputeRegionInstanceGroupManagersResumeInstancesResource,
+    ComputeRegionInstanceGroupManagersResumeInstances (..),
+    newComputeRegionInstanceGroupManagersResumeInstances,
+
+    -- ** compute.regionInstanceGroupManagers.setInstanceTemplate
+    ComputeRegionInstanceGroupManagersSetInstanceTemplateResource,
+    ComputeRegionInstanceGroupManagersSetInstanceTemplate (..),
+    newComputeRegionInstanceGroupManagersSetInstanceTemplate,
+
+    -- ** compute.regionInstanceGroupManagers.setTargetPools
+    ComputeRegionInstanceGroupManagersSetTargetPoolsResource,
+    ComputeRegionInstanceGroupManagersSetTargetPools (..),
+    newComputeRegionInstanceGroupManagersSetTargetPools,
+
+    -- ** compute.regionInstanceGroupManagers.startInstances
+    ComputeRegionInstanceGroupManagersStartInstancesResource,
+    ComputeRegionInstanceGroupManagersStartInstances (..),
+    newComputeRegionInstanceGroupManagersStartInstances,
+
+    -- ** compute.regionInstanceGroupManagers.stopInstances
+    ComputeRegionInstanceGroupManagersStopInstancesResource,
+    ComputeRegionInstanceGroupManagersStopInstances (..),
+    newComputeRegionInstanceGroupManagersStopInstances,
+
+    -- ** compute.regionInstanceGroupManagers.suspendInstances
+    ComputeRegionInstanceGroupManagersSuspendInstancesResource,
+    ComputeRegionInstanceGroupManagersSuspendInstances (..),
+    newComputeRegionInstanceGroupManagersSuspendInstances,
+
+    -- ** compute.regionInstanceGroupManagers.updatePerInstanceConfigs
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigsResource,
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs,
+
+    -- ** compute.regionInstanceGroups.get
+    ComputeRegionInstanceGroupsGetResource,
+    ComputeRegionInstanceGroupsGet (..),
+    newComputeRegionInstanceGroupsGet,
+
+    -- ** compute.regionInstanceGroups.list
+    ComputeRegionInstanceGroupsListResource,
+    ComputeRegionInstanceGroupsList (..),
+    newComputeRegionInstanceGroupsList,
+
+    -- ** compute.regionInstanceGroups.listInstances
+    ComputeRegionInstanceGroupsListInstancesResource,
+    ComputeRegionInstanceGroupsListInstances (..),
+    newComputeRegionInstanceGroupsListInstances,
+
+    -- ** compute.regionInstanceGroups.setNamedPorts
+    ComputeRegionInstanceGroupsSetNamedPortsResource,
+    ComputeRegionInstanceGroupsSetNamedPorts (..),
+    newComputeRegionInstanceGroupsSetNamedPorts,
+
+    -- ** compute.regionInstanceTemplates.delete
+    ComputeRegionInstanceTemplatesDeleteResource,
+    ComputeRegionInstanceTemplatesDelete (..),
+    newComputeRegionInstanceTemplatesDelete,
+
+    -- ** compute.regionInstanceTemplates.get
+    ComputeRegionInstanceTemplatesGetResource,
+    ComputeRegionInstanceTemplatesGet (..),
+    newComputeRegionInstanceTemplatesGet,
+
+    -- ** compute.regionInstanceTemplates.insert
+    ComputeRegionInstanceTemplatesInsertResource,
+    ComputeRegionInstanceTemplatesInsert (..),
+    newComputeRegionInstanceTemplatesInsert,
+
+    -- ** compute.regionInstanceTemplates.list
+    ComputeRegionInstanceTemplatesListResource,
+    ComputeRegionInstanceTemplatesList (..),
+    newComputeRegionInstanceTemplatesList,
+
+    -- ** compute.regionInstances.bulkInsert
+    ComputeRegionInstancesBulkInsertResource,
+    ComputeRegionInstancesBulkInsert (..),
+    newComputeRegionInstancesBulkInsert,
+
+    -- ** compute.regionInstantSnapshots.delete
+    ComputeRegionInstantSnapshotsDeleteResource,
+    ComputeRegionInstantSnapshotsDelete (..),
+    newComputeRegionInstantSnapshotsDelete,
+
+    -- ** compute.regionInstantSnapshots.get
+    ComputeRegionInstantSnapshotsGetResource,
+    ComputeRegionInstantSnapshotsGet (..),
+    newComputeRegionInstantSnapshotsGet,
+
+    -- ** compute.regionInstantSnapshots.getIamPolicy
+    ComputeRegionInstantSnapshotsGetIamPolicyResource,
+    ComputeRegionInstantSnapshotsGetIamPolicy (..),
+    newComputeRegionInstantSnapshotsGetIamPolicy,
+
+    -- ** compute.regionInstantSnapshots.insert
+    ComputeRegionInstantSnapshotsInsertResource,
+    ComputeRegionInstantSnapshotsInsert (..),
+    newComputeRegionInstantSnapshotsInsert,
+
+    -- ** compute.regionInstantSnapshots.list
+    ComputeRegionInstantSnapshotsListResource,
+    ComputeRegionInstantSnapshotsList (..),
+    newComputeRegionInstantSnapshotsList,
+
+    -- ** compute.regionInstantSnapshots.setIamPolicy
+    ComputeRegionInstantSnapshotsSetIamPolicyResource,
+    ComputeRegionInstantSnapshotsSetIamPolicy (..),
+    newComputeRegionInstantSnapshotsSetIamPolicy,
+
+    -- ** compute.regionInstantSnapshots.setLabels
+    ComputeRegionInstantSnapshotsSetLabelsResource,
+    ComputeRegionInstantSnapshotsSetLabels (..),
+    newComputeRegionInstantSnapshotsSetLabels,
+
+    -- ** compute.regionInstantSnapshots.testIamPermissions
+    ComputeRegionInstantSnapshotsTestIamPermissionsResource,
+    ComputeRegionInstantSnapshotsTestIamPermissions (..),
+    newComputeRegionInstantSnapshotsTestIamPermissions,
+
+    -- ** compute.regionNetworkEndpointGroups.attachNetworkEndpoints
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpointsResource,
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints,
+
+    -- ** compute.regionNetworkEndpointGroups.delete
+    ComputeRegionNetworkEndpointGroupsDeleteResource,
+    ComputeRegionNetworkEndpointGroupsDelete (..),
+    newComputeRegionNetworkEndpointGroupsDelete,
+
+    -- ** compute.regionNetworkEndpointGroups.detachNetworkEndpoints
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpointsResource,
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints,
+
+    -- ** compute.regionNetworkEndpointGroups.get
+    ComputeRegionNetworkEndpointGroupsGetResource,
+    ComputeRegionNetworkEndpointGroupsGet (..),
+    newComputeRegionNetworkEndpointGroupsGet,
+
+    -- ** compute.regionNetworkEndpointGroups.insert
+    ComputeRegionNetworkEndpointGroupsInsertResource,
+    ComputeRegionNetworkEndpointGroupsInsert (..),
+    newComputeRegionNetworkEndpointGroupsInsert,
+
+    -- ** compute.regionNetworkEndpointGroups.list
+    ComputeRegionNetworkEndpointGroupsListResource,
+    ComputeRegionNetworkEndpointGroupsList (..),
+    newComputeRegionNetworkEndpointGroupsList,
+
+    -- ** compute.regionNetworkEndpointGroups.listNetworkEndpoints
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpointsResource,
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsListNetworkEndpoints,
+
+    -- ** compute.regionNetworkFirewallPolicies.addAssociation
+    ComputeRegionNetworkFirewallPoliciesAddAssociationResource,
+    ComputeRegionNetworkFirewallPoliciesAddAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesAddAssociation,
+
+    -- ** compute.regionNetworkFirewallPolicies.addRule
+    ComputeRegionNetworkFirewallPoliciesAddRuleResource,
+    ComputeRegionNetworkFirewallPoliciesAddRule (..),
+    newComputeRegionNetworkFirewallPoliciesAddRule,
+
+    -- ** compute.regionNetworkFirewallPolicies.cloneRules
+    ComputeRegionNetworkFirewallPoliciesCloneRulesResource,
+    ComputeRegionNetworkFirewallPoliciesCloneRules (..),
+    newComputeRegionNetworkFirewallPoliciesCloneRules,
+
+    -- ** compute.regionNetworkFirewallPolicies.delete
+    ComputeRegionNetworkFirewallPoliciesDeleteResource,
+    ComputeRegionNetworkFirewallPoliciesDelete (..),
+    newComputeRegionNetworkFirewallPoliciesDelete,
+
+    -- ** compute.regionNetworkFirewallPolicies.get
+    ComputeRegionNetworkFirewallPoliciesGetResource,
+    ComputeRegionNetworkFirewallPoliciesGet (..),
+    newComputeRegionNetworkFirewallPoliciesGet,
+
+    -- ** compute.regionNetworkFirewallPolicies.getAssociation
+    ComputeRegionNetworkFirewallPoliciesGetAssociationResource,
+    ComputeRegionNetworkFirewallPoliciesGetAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesGetAssociation,
+
+    -- ** compute.regionNetworkFirewallPolicies.getEffectiveFirewalls
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewallsResource,
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls (..),
+    newComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls,
+
+    -- ** compute.regionNetworkFirewallPolicies.getIamPolicy
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicyResource,
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicy (..),
+    newComputeRegionNetworkFirewallPoliciesGetIamPolicy,
+
+    -- ** compute.regionNetworkFirewallPolicies.getRule
+    ComputeRegionNetworkFirewallPoliciesGetRuleResource,
+    ComputeRegionNetworkFirewallPoliciesGetRule (..),
+    newComputeRegionNetworkFirewallPoliciesGetRule,
+
+    -- ** compute.regionNetworkFirewallPolicies.insert
+    ComputeRegionNetworkFirewallPoliciesInsertResource,
+    ComputeRegionNetworkFirewallPoliciesInsert (..),
+    newComputeRegionNetworkFirewallPoliciesInsert,
+
+    -- ** compute.regionNetworkFirewallPolicies.list
+    ComputeRegionNetworkFirewallPoliciesListResource,
+    ComputeRegionNetworkFirewallPoliciesList (..),
+    newComputeRegionNetworkFirewallPoliciesList,
+
+    -- ** compute.regionNetworkFirewallPolicies.patch
+    ComputeRegionNetworkFirewallPoliciesPatchResource,
+    ComputeRegionNetworkFirewallPoliciesPatch (..),
+    newComputeRegionNetworkFirewallPoliciesPatch,
+
+    -- ** compute.regionNetworkFirewallPolicies.patchRule
+    ComputeRegionNetworkFirewallPoliciesPatchRuleResource,
+    ComputeRegionNetworkFirewallPoliciesPatchRule (..),
+    newComputeRegionNetworkFirewallPoliciesPatchRule,
+
+    -- ** compute.regionNetworkFirewallPolicies.removeAssociation
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociationResource,
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesRemoveAssociation,
+
+    -- ** compute.regionNetworkFirewallPolicies.removeRule
+    ComputeRegionNetworkFirewallPoliciesRemoveRuleResource,
+    ComputeRegionNetworkFirewallPoliciesRemoveRule (..),
+    newComputeRegionNetworkFirewallPoliciesRemoveRule,
+
+    -- ** compute.regionNetworkFirewallPolicies.setIamPolicy
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicyResource,
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicy (..),
+    newComputeRegionNetworkFirewallPoliciesSetIamPolicy,
+
+    -- ** compute.regionNetworkFirewallPolicies.testIamPermissions
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissionsResource,
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissions (..),
+    newComputeRegionNetworkFirewallPoliciesTestIamPermissions,
+
+    -- ** compute.regionNotificationEndpoints.delete
+    ComputeRegionNotificationEndpointsDeleteResource,
+    ComputeRegionNotificationEndpointsDelete (..),
+    newComputeRegionNotificationEndpointsDelete,
+
+    -- ** compute.regionNotificationEndpoints.get
+    ComputeRegionNotificationEndpointsGetResource,
+    ComputeRegionNotificationEndpointsGet (..),
+    newComputeRegionNotificationEndpointsGet,
+
+    -- ** compute.regionNotificationEndpoints.insert
+    ComputeRegionNotificationEndpointsInsertResource,
+    ComputeRegionNotificationEndpointsInsert (..),
+    newComputeRegionNotificationEndpointsInsert,
+
+    -- ** compute.regionNotificationEndpoints.list
+    ComputeRegionNotificationEndpointsListResource,
+    ComputeRegionNotificationEndpointsList (..),
+    newComputeRegionNotificationEndpointsList,
+
+    -- ** compute.regionOperations.delete
+    ComputeRegionOperationsDeleteResource,
+    ComputeRegionOperationsDelete (..),
+    newComputeRegionOperationsDelete,
+
+    -- ** compute.regionOperations.get
+    ComputeRegionOperationsGetResource,
+    ComputeRegionOperationsGet (..),
+    newComputeRegionOperationsGet,
+
+    -- ** compute.regionOperations.list
+    ComputeRegionOperationsListResource,
+    ComputeRegionOperationsList (..),
+    newComputeRegionOperationsList,
+
+    -- ** compute.regionOperations.wait
+    ComputeRegionOperationsWaitResource,
+    ComputeRegionOperationsWait (..),
+    newComputeRegionOperationsWait,
+
+    -- ** compute.regionSecurityPolicies.addRule
+    ComputeRegionSecurityPoliciesAddRuleResource,
+    ComputeRegionSecurityPoliciesAddRule (..),
+    newComputeRegionSecurityPoliciesAddRule,
+
+    -- ** compute.regionSecurityPolicies.delete
+    ComputeRegionSecurityPoliciesDeleteResource,
+    ComputeRegionSecurityPoliciesDelete (..),
+    newComputeRegionSecurityPoliciesDelete,
+
+    -- ** compute.regionSecurityPolicies.get
+    ComputeRegionSecurityPoliciesGetResource,
+    ComputeRegionSecurityPoliciesGet (..),
+    newComputeRegionSecurityPoliciesGet,
+
+    -- ** compute.regionSecurityPolicies.getRule
+    ComputeRegionSecurityPoliciesGetRuleResource,
+    ComputeRegionSecurityPoliciesGetRule (..),
+    newComputeRegionSecurityPoliciesGetRule,
+
+    -- ** compute.regionSecurityPolicies.insert
+    ComputeRegionSecurityPoliciesInsertResource,
+    ComputeRegionSecurityPoliciesInsert (..),
+    newComputeRegionSecurityPoliciesInsert,
+
+    -- ** compute.regionSecurityPolicies.list
+    ComputeRegionSecurityPoliciesListResource,
+    ComputeRegionSecurityPoliciesList (..),
+    newComputeRegionSecurityPoliciesList,
+
+    -- ** compute.regionSecurityPolicies.patch
+    ComputeRegionSecurityPoliciesPatchResource,
+    ComputeRegionSecurityPoliciesPatch (..),
+    newComputeRegionSecurityPoliciesPatch,
+
+    -- ** compute.regionSecurityPolicies.patchRule
+    ComputeRegionSecurityPoliciesPatchRuleResource,
+    ComputeRegionSecurityPoliciesPatchRule (..),
+    newComputeRegionSecurityPoliciesPatchRule,
+
+    -- ** compute.regionSecurityPolicies.removeRule
+    ComputeRegionSecurityPoliciesRemoveRuleResource,
+    ComputeRegionSecurityPoliciesRemoveRule (..),
+    newComputeRegionSecurityPoliciesRemoveRule,
+
+    -- ** compute.regionSecurityPolicies.setLabels
+    ComputeRegionSecurityPoliciesSetLabelsResource,
+    ComputeRegionSecurityPoliciesSetLabels (..),
+    newComputeRegionSecurityPoliciesSetLabels,
+
+    -- ** compute.regionSslCertificates.delete
+    ComputeRegionSslCertificatesDeleteResource,
+    ComputeRegionSslCertificatesDelete (..),
+    newComputeRegionSslCertificatesDelete,
+
+    -- ** compute.regionSslCertificates.get
+    ComputeRegionSslCertificatesGetResource,
+    ComputeRegionSslCertificatesGet (..),
+    newComputeRegionSslCertificatesGet,
+
+    -- ** compute.regionSslCertificates.insert
+    ComputeRegionSslCertificatesInsertResource,
+    ComputeRegionSslCertificatesInsert (..),
+    newComputeRegionSslCertificatesInsert,
+
+    -- ** compute.regionSslCertificates.list
+    ComputeRegionSslCertificatesListResource,
+    ComputeRegionSslCertificatesList (..),
+    newComputeRegionSslCertificatesList,
+
+    -- ** compute.regionSslPolicies.delete
+    ComputeRegionSslPoliciesDeleteResource,
+    ComputeRegionSslPoliciesDelete (..),
+    newComputeRegionSslPoliciesDelete,
+
+    -- ** compute.regionSslPolicies.get
+    ComputeRegionSslPoliciesGetResource,
+    ComputeRegionSslPoliciesGet (..),
+    newComputeRegionSslPoliciesGet,
+
+    -- ** compute.regionSslPolicies.insert
+    ComputeRegionSslPoliciesInsertResource,
+    ComputeRegionSslPoliciesInsert (..),
+    newComputeRegionSslPoliciesInsert,
+
+    -- ** compute.regionSslPolicies.list
+    ComputeRegionSslPoliciesListResource,
+    ComputeRegionSslPoliciesList (..),
+    newComputeRegionSslPoliciesList,
+
+    -- ** compute.regionSslPolicies.listAvailableFeatures
+    ComputeRegionSslPoliciesListAvailableFeaturesResource,
+    ComputeRegionSslPoliciesListAvailableFeatures (..),
+    newComputeRegionSslPoliciesListAvailableFeatures,
+
+    -- ** compute.regionSslPolicies.patch
+    ComputeRegionSslPoliciesPatchResource,
+    ComputeRegionSslPoliciesPatch (..),
+    newComputeRegionSslPoliciesPatch,
+
+    -- ** compute.regionTargetHttpProxies.delete
+    ComputeRegionTargetHttpProxiesDeleteResource,
+    ComputeRegionTargetHttpProxiesDelete (..),
+    newComputeRegionTargetHttpProxiesDelete,
+
+    -- ** compute.regionTargetHttpProxies.get
+    ComputeRegionTargetHttpProxiesGetResource,
+    ComputeRegionTargetHttpProxiesGet (..),
+    newComputeRegionTargetHttpProxiesGet,
+
+    -- ** compute.regionTargetHttpProxies.insert
+    ComputeRegionTargetHttpProxiesInsertResource,
+    ComputeRegionTargetHttpProxiesInsert (..),
+    newComputeRegionTargetHttpProxiesInsert,
+
+    -- ** compute.regionTargetHttpProxies.list
+    ComputeRegionTargetHttpProxiesListResource,
+    ComputeRegionTargetHttpProxiesList (..),
+    newComputeRegionTargetHttpProxiesList,
+
+    -- ** compute.regionTargetHttpProxies.setUrlMap
+    ComputeRegionTargetHttpProxiesSetUrlMapResource,
+    ComputeRegionTargetHttpProxiesSetUrlMap (..),
+    newComputeRegionTargetHttpProxiesSetUrlMap,
+
+    -- ** compute.regionTargetHttpsProxies.delete
+    ComputeRegionTargetHttpsProxiesDeleteResource,
+    ComputeRegionTargetHttpsProxiesDelete (..),
+    newComputeRegionTargetHttpsProxiesDelete,
+
+    -- ** compute.regionTargetHttpsProxies.get
+    ComputeRegionTargetHttpsProxiesGetResource,
+    ComputeRegionTargetHttpsProxiesGet (..),
+    newComputeRegionTargetHttpsProxiesGet,
+
+    -- ** compute.regionTargetHttpsProxies.insert
+    ComputeRegionTargetHttpsProxiesInsertResource,
+    ComputeRegionTargetHttpsProxiesInsert (..),
+    newComputeRegionTargetHttpsProxiesInsert,
+
+    -- ** compute.regionTargetHttpsProxies.list
+    ComputeRegionTargetHttpsProxiesListResource,
+    ComputeRegionTargetHttpsProxiesList (..),
+    newComputeRegionTargetHttpsProxiesList,
+
+    -- ** compute.regionTargetHttpsProxies.patch
+    ComputeRegionTargetHttpsProxiesPatchResource,
+    ComputeRegionTargetHttpsProxiesPatch (..),
+    newComputeRegionTargetHttpsProxiesPatch,
+
+    -- ** compute.regionTargetHttpsProxies.setSslCertificates
+    ComputeRegionTargetHttpsProxiesSetSslCertificatesResource,
+    ComputeRegionTargetHttpsProxiesSetSslCertificates (..),
+    newComputeRegionTargetHttpsProxiesSetSslCertificates,
+
+    -- ** compute.regionTargetHttpsProxies.setUrlMap
+    ComputeRegionTargetHttpsProxiesSetUrlMapResource,
+    ComputeRegionTargetHttpsProxiesSetUrlMap (..),
+    newComputeRegionTargetHttpsProxiesSetUrlMap,
+
+    -- ** compute.regionTargetTcpProxies.delete
+    ComputeRegionTargetTcpProxiesDeleteResource,
+    ComputeRegionTargetTcpProxiesDelete (..),
+    newComputeRegionTargetTcpProxiesDelete,
+
+    -- ** compute.regionTargetTcpProxies.get
+    ComputeRegionTargetTcpProxiesGetResource,
+    ComputeRegionTargetTcpProxiesGet (..),
+    newComputeRegionTargetTcpProxiesGet,
+
+    -- ** compute.regionTargetTcpProxies.insert
+    ComputeRegionTargetTcpProxiesInsertResource,
+    ComputeRegionTargetTcpProxiesInsert (..),
+    newComputeRegionTargetTcpProxiesInsert,
+
+    -- ** compute.regionTargetTcpProxies.list
+    ComputeRegionTargetTcpProxiesListResource,
+    ComputeRegionTargetTcpProxiesList (..),
+    newComputeRegionTargetTcpProxiesList,
+
+    -- ** compute.regionUrlMaps.delete
+    ComputeRegionUrlMapsDeleteResource,
+    ComputeRegionUrlMapsDelete (..),
+    newComputeRegionUrlMapsDelete,
+
+    -- ** compute.regionUrlMaps.get
+    ComputeRegionUrlMapsGetResource,
+    ComputeRegionUrlMapsGet (..),
+    newComputeRegionUrlMapsGet,
+
+    -- ** compute.regionUrlMaps.insert
+    ComputeRegionUrlMapsInsertResource,
+    ComputeRegionUrlMapsInsert (..),
+    newComputeRegionUrlMapsInsert,
+
+    -- ** compute.regionUrlMaps.list
+    ComputeRegionUrlMapsListResource,
+    ComputeRegionUrlMapsList (..),
+    newComputeRegionUrlMapsList,
+
+    -- ** compute.regionUrlMaps.patch
+    ComputeRegionUrlMapsPatchResource,
+    ComputeRegionUrlMapsPatch (..),
+    newComputeRegionUrlMapsPatch,
+
+    -- ** compute.regionUrlMaps.update
+    ComputeRegionUrlMapsUpdateResource,
+    ComputeRegionUrlMapsUpdate (..),
+    newComputeRegionUrlMapsUpdate,
+
+    -- ** compute.regionUrlMaps.validate
+    ComputeRegionUrlMapsValidateResource,
+    ComputeRegionUrlMapsValidate (..),
+    newComputeRegionUrlMapsValidate,
+
+    -- ** compute.regionZones.list
+    ComputeRegionZonesListResource,
+    ComputeRegionZonesList (..),
+    newComputeRegionZonesList,
+
+    -- ** compute.regions.get
+    ComputeRegionsGetResource,
+    ComputeRegionsGet (..),
+    newComputeRegionsGet,
+
+    -- ** compute.regions.list
+    ComputeRegionsListResource,
+    ComputeRegionsList (..),
+    newComputeRegionsList,
+
+    -- ** compute.reservations.aggregatedList
+    ComputeReservationsAggregatedListResource,
+    ComputeReservationsAggregatedList (..),
+    newComputeReservationsAggregatedList,
+
+    -- ** compute.reservations.delete
+    ComputeReservationsDeleteResource,
+    ComputeReservationsDelete (..),
+    newComputeReservationsDelete,
+
+    -- ** compute.reservations.get
+    ComputeReservationsGetResource,
+    ComputeReservationsGet (..),
+    newComputeReservationsGet,
+
+    -- ** compute.reservations.getIamPolicy
+    ComputeReservationsGetIamPolicyResource,
+    ComputeReservationsGetIamPolicy (..),
+    newComputeReservationsGetIamPolicy,
+
+    -- ** compute.reservations.insert
+    ComputeReservationsInsertResource,
+    ComputeReservationsInsert (..),
+    newComputeReservationsInsert,
+
+    -- ** compute.reservations.list
+    ComputeReservationsListResource,
+    ComputeReservationsList (..),
+    newComputeReservationsList,
+
+    -- ** compute.reservations.resize
+    ComputeReservationsResizeResource,
+    ComputeReservationsResize (..),
+    newComputeReservationsResize,
+
+    -- ** compute.reservations.setIamPolicy
+    ComputeReservationsSetIamPolicyResource,
+    ComputeReservationsSetIamPolicy (..),
+    newComputeReservationsSetIamPolicy,
+
+    -- ** compute.reservations.testIamPermissions
+    ComputeReservationsTestIamPermissionsResource,
+    ComputeReservationsTestIamPermissions (..),
+    newComputeReservationsTestIamPermissions,
+
+    -- ** compute.reservations.update
+    ComputeReservationsUpdateResource,
+    ComputeReservationsUpdate (..),
+    newComputeReservationsUpdate,
+
+    -- ** compute.resourcePolicies.aggregatedList
+    ComputeResourcePoliciesAggregatedListResource,
+    ComputeResourcePoliciesAggregatedList (..),
+    newComputeResourcePoliciesAggregatedList,
+
+    -- ** compute.resourcePolicies.delete
+    ComputeResourcePoliciesDeleteResource,
+    ComputeResourcePoliciesDelete (..),
+    newComputeResourcePoliciesDelete,
+
+    -- ** compute.resourcePolicies.get
+    ComputeResourcePoliciesGetResource,
+    ComputeResourcePoliciesGet (..),
+    newComputeResourcePoliciesGet,
+
+    -- ** compute.resourcePolicies.getIamPolicy
+    ComputeResourcePoliciesGetIamPolicyResource,
+    ComputeResourcePoliciesGetIamPolicy (..),
+    newComputeResourcePoliciesGetIamPolicy,
+
+    -- ** compute.resourcePolicies.insert
+    ComputeResourcePoliciesInsertResource,
+    ComputeResourcePoliciesInsert (..),
+    newComputeResourcePoliciesInsert,
+
+    -- ** compute.resourcePolicies.list
+    ComputeResourcePoliciesListResource,
+    ComputeResourcePoliciesList (..),
+    newComputeResourcePoliciesList,
+
+    -- ** compute.resourcePolicies.patch
+    ComputeResourcePoliciesPatchResource,
+    ComputeResourcePoliciesPatch (..),
+    newComputeResourcePoliciesPatch,
+
+    -- ** compute.resourcePolicies.setIamPolicy
+    ComputeResourcePoliciesSetIamPolicyResource,
+    ComputeResourcePoliciesSetIamPolicy (..),
+    newComputeResourcePoliciesSetIamPolicy,
+
+    -- ** compute.resourcePolicies.testIamPermissions
+    ComputeResourcePoliciesTestIamPermissionsResource,
+    ComputeResourcePoliciesTestIamPermissions (..),
+    newComputeResourcePoliciesTestIamPermissions,
+
+    -- ** compute.routers.aggregatedList
+    ComputeRoutersAggregatedListResource,
+    ComputeRoutersAggregatedList (..),
+    newComputeRoutersAggregatedList,
+
+    -- ** compute.routers.delete
+    ComputeRoutersDeleteResource,
+    ComputeRoutersDelete (..),
+    newComputeRoutersDelete,
+
+    -- ** compute.routers.deleteRoutePolicy
+    ComputeRoutersDeleteRoutePolicyResource,
+    ComputeRoutersDeleteRoutePolicy (..),
+    newComputeRoutersDeleteRoutePolicy,
+
+    -- ** compute.routers.get
+    ComputeRoutersGetResource,
+    ComputeRoutersGet (..),
+    newComputeRoutersGet,
+
+    -- ** compute.routers.getNatIpInfo
+    ComputeRoutersGetNatIpInfoResource,
+    ComputeRoutersGetNatIpInfo (..),
+    newComputeRoutersGetNatIpInfo,
+
+    -- ** compute.routers.getNatMappingInfo
+    ComputeRoutersGetNatMappingInfoResource,
+    ComputeRoutersGetNatMappingInfo (..),
+    newComputeRoutersGetNatMappingInfo,
+
+    -- ** compute.routers.getRoutePolicy
+    ComputeRoutersGetRoutePolicyResource,
+    ComputeRoutersGetRoutePolicy (..),
+    newComputeRoutersGetRoutePolicy,
+
+    -- ** compute.routers.getRouterStatus
+    ComputeRoutersGetRouterStatusResource,
+    ComputeRoutersGetRouterStatus (..),
+    newComputeRoutersGetRouterStatus,
+
+    -- ** compute.routers.insert
+    ComputeRoutersInsertResource,
+    ComputeRoutersInsert (..),
+    newComputeRoutersInsert,
+
+    -- ** compute.routers.list
+    ComputeRoutersListResource,
+    ComputeRoutersList (..),
+    newComputeRoutersList,
+
+    -- ** compute.routers.listBgpRoutes
+    ComputeRoutersListBgpRoutesResource,
+    ComputeRoutersListBgpRoutes (..),
+    newComputeRoutersListBgpRoutes,
+
+    -- ** compute.routers.listRoutePolicies
+    ComputeRoutersListRoutePoliciesResource,
+    ComputeRoutersListRoutePolicies (..),
+    newComputeRoutersListRoutePolicies,
+
+    -- ** compute.routers.patch
+    ComputeRoutersPatchResource,
+    ComputeRoutersPatch (..),
+    newComputeRoutersPatch,
+
+    -- ** compute.routers.patchRoutePolicy
+    ComputeRoutersPatchRoutePolicyResource,
+    ComputeRoutersPatchRoutePolicy (..),
+    newComputeRoutersPatchRoutePolicy,
+
+    -- ** compute.routers.preview
+    ComputeRoutersPreviewResource,
+    ComputeRoutersPreview (..),
+    newComputeRoutersPreview,
+
+    -- ** compute.routers.update
+    ComputeRoutersUpdateResource,
+    ComputeRoutersUpdate (..),
+    newComputeRoutersUpdate,
+
+    -- ** compute.routers.updateRoutePolicy
+    ComputeRoutersUpdateRoutePolicyResource,
+    ComputeRoutersUpdateRoutePolicy (..),
+    newComputeRoutersUpdateRoutePolicy,
+
+    -- ** compute.routes.delete
+    ComputeRoutesDeleteResource,
+    ComputeRoutesDelete (..),
+    newComputeRoutesDelete,
+
+    -- ** compute.routes.get
+    ComputeRoutesGetResource,
+    ComputeRoutesGet (..),
+    newComputeRoutesGet,
+
+    -- ** compute.routes.insert
+    ComputeRoutesInsertResource,
+    ComputeRoutesInsert (..),
+    newComputeRoutesInsert,
+
+    -- ** compute.routes.list
+    ComputeRoutesListResource,
+    ComputeRoutesList (..),
+    newComputeRoutesList,
+
+    -- ** compute.securityPolicies.addRule
+    ComputeSecurityPoliciesAddRuleResource,
+    ComputeSecurityPoliciesAddRule (..),
+    newComputeSecurityPoliciesAddRule,
+
+    -- ** compute.securityPolicies.aggregatedList
+    ComputeSecurityPoliciesAggregatedListResource,
+    ComputeSecurityPoliciesAggregatedList (..),
+    newComputeSecurityPoliciesAggregatedList,
+
+    -- ** compute.securityPolicies.delete
+    ComputeSecurityPoliciesDeleteResource,
+    ComputeSecurityPoliciesDelete (..),
+    newComputeSecurityPoliciesDelete,
+
+    -- ** compute.securityPolicies.get
+    ComputeSecurityPoliciesGetResource,
+    ComputeSecurityPoliciesGet (..),
+    newComputeSecurityPoliciesGet,
+
+    -- ** compute.securityPolicies.getRule
+    ComputeSecurityPoliciesGetRuleResource,
+    ComputeSecurityPoliciesGetRule (..),
+    newComputeSecurityPoliciesGetRule,
+
+    -- ** compute.securityPolicies.insert
+    ComputeSecurityPoliciesInsertResource,
+    ComputeSecurityPoliciesInsert (..),
+    newComputeSecurityPoliciesInsert,
+
+    -- ** compute.securityPolicies.list
+    ComputeSecurityPoliciesListResource,
+    ComputeSecurityPoliciesList (..),
+    newComputeSecurityPoliciesList,
+
+    -- ** compute.securityPolicies.listPreconfiguredExpressionSets
+    ComputeSecurityPoliciesListPreconfiguredExpressionSetsResource,
+    ComputeSecurityPoliciesListPreconfiguredExpressionSets (..),
+    newComputeSecurityPoliciesListPreconfiguredExpressionSets,
+
+    -- ** compute.securityPolicies.patch
+    ComputeSecurityPoliciesPatchResource,
+    ComputeSecurityPoliciesPatch (..),
+    newComputeSecurityPoliciesPatch,
+
+    -- ** compute.securityPolicies.patchRule
+    ComputeSecurityPoliciesPatchRuleResource,
+    ComputeSecurityPoliciesPatchRule (..),
+    newComputeSecurityPoliciesPatchRule,
+
+    -- ** compute.securityPolicies.removeRule
+    ComputeSecurityPoliciesRemoveRuleResource,
+    ComputeSecurityPoliciesRemoveRule (..),
+    newComputeSecurityPoliciesRemoveRule,
+
+    -- ** compute.securityPolicies.setLabels
+    ComputeSecurityPoliciesSetLabelsResource,
+    ComputeSecurityPoliciesSetLabels (..),
+    newComputeSecurityPoliciesSetLabels,
+
+    -- ** compute.serviceAttachments.aggregatedList
+    ComputeServiceAttachmentsAggregatedListResource,
+    ComputeServiceAttachmentsAggregatedList (..),
+    newComputeServiceAttachmentsAggregatedList,
+
+    -- ** compute.serviceAttachments.delete
+    ComputeServiceAttachmentsDeleteResource,
+    ComputeServiceAttachmentsDelete (..),
+    newComputeServiceAttachmentsDelete,
+
+    -- ** compute.serviceAttachments.get
+    ComputeServiceAttachmentsGetResource,
+    ComputeServiceAttachmentsGet (..),
+    newComputeServiceAttachmentsGet,
+
+    -- ** compute.serviceAttachments.getIamPolicy
+    ComputeServiceAttachmentsGetIamPolicyResource,
+    ComputeServiceAttachmentsGetIamPolicy (..),
+    newComputeServiceAttachmentsGetIamPolicy,
+
+    -- ** compute.serviceAttachments.insert
+    ComputeServiceAttachmentsInsertResource,
+    ComputeServiceAttachmentsInsert (..),
+    newComputeServiceAttachmentsInsert,
+
+    -- ** compute.serviceAttachments.list
+    ComputeServiceAttachmentsListResource,
+    ComputeServiceAttachmentsList (..),
+    newComputeServiceAttachmentsList,
+
+    -- ** compute.serviceAttachments.patch
+    ComputeServiceAttachmentsPatchResource,
+    ComputeServiceAttachmentsPatch (..),
+    newComputeServiceAttachmentsPatch,
+
+    -- ** compute.serviceAttachments.setIamPolicy
+    ComputeServiceAttachmentsSetIamPolicyResource,
+    ComputeServiceAttachmentsSetIamPolicy (..),
+    newComputeServiceAttachmentsSetIamPolicy,
+
+    -- ** compute.serviceAttachments.testIamPermissions
+    ComputeServiceAttachmentsTestIamPermissionsResource,
+    ComputeServiceAttachmentsTestIamPermissions (..),
+    newComputeServiceAttachmentsTestIamPermissions,
+
+    -- ** compute.snapshotSettings.get
+    ComputeSnapshotSettingsGetResource,
+    ComputeSnapshotSettingsGet (..),
+    newComputeSnapshotSettingsGet,
+
+    -- ** compute.snapshotSettings.patch
+    ComputeSnapshotSettingsPatchResource,
+    ComputeSnapshotSettingsPatch (..),
+    newComputeSnapshotSettingsPatch,
+
+    -- ** compute.snapshots.delete
+    ComputeSnapshotsDeleteResource,
+    ComputeSnapshotsDelete (..),
+    newComputeSnapshotsDelete,
+
+    -- ** compute.snapshots.get
+    ComputeSnapshotsGetResource,
+    ComputeSnapshotsGet (..),
+    newComputeSnapshotsGet,
+
+    -- ** compute.snapshots.getIamPolicy
+    ComputeSnapshotsGetIamPolicyResource,
+    ComputeSnapshotsGetIamPolicy (..),
+    newComputeSnapshotsGetIamPolicy,
+
+    -- ** compute.snapshots.insert
+    ComputeSnapshotsInsertResource,
+    ComputeSnapshotsInsert (..),
+    newComputeSnapshotsInsert,
+
+    -- ** compute.snapshots.list
+    ComputeSnapshotsListResource,
+    ComputeSnapshotsList (..),
+    newComputeSnapshotsList,
+
+    -- ** compute.snapshots.setIamPolicy
+    ComputeSnapshotsSetIamPolicyResource,
+    ComputeSnapshotsSetIamPolicy (..),
+    newComputeSnapshotsSetIamPolicy,
+
+    -- ** compute.snapshots.setLabels
+    ComputeSnapshotsSetLabelsResource,
+    ComputeSnapshotsSetLabels (..),
+    newComputeSnapshotsSetLabels,
+
+    -- ** compute.snapshots.testIamPermissions
+    ComputeSnapshotsTestIamPermissionsResource,
+    ComputeSnapshotsTestIamPermissions (..),
+    newComputeSnapshotsTestIamPermissions,
+
+    -- ** compute.sslCertificates.aggregatedList
+    ComputeSslCertificatesAggregatedListResource,
+    ComputeSslCertificatesAggregatedList (..),
+    newComputeSslCertificatesAggregatedList,
+
+    -- ** compute.sslCertificates.delete
+    ComputeSslCertificatesDeleteResource,
+    ComputeSslCertificatesDelete (..),
+    newComputeSslCertificatesDelete,
+
+    -- ** compute.sslCertificates.get
+    ComputeSslCertificatesGetResource,
+    ComputeSslCertificatesGet (..),
+    newComputeSslCertificatesGet,
+
+    -- ** compute.sslCertificates.insert
+    ComputeSslCertificatesInsertResource,
+    ComputeSslCertificatesInsert (..),
+    newComputeSslCertificatesInsert,
+
+    -- ** compute.sslCertificates.list
+    ComputeSslCertificatesListResource,
+    ComputeSslCertificatesList (..),
+    newComputeSslCertificatesList,
+
+    -- ** compute.sslPolicies.aggregatedList
+    ComputeSslPoliciesAggregatedListResource,
+    ComputeSslPoliciesAggregatedList (..),
+    newComputeSslPoliciesAggregatedList,
+
+    -- ** compute.sslPolicies.delete
+    ComputeSslPoliciesDeleteResource,
+    ComputeSslPoliciesDelete (..),
+    newComputeSslPoliciesDelete,
+
+    -- ** compute.sslPolicies.get
+    ComputeSslPoliciesGetResource,
+    ComputeSslPoliciesGet (..),
+    newComputeSslPoliciesGet,
+
+    -- ** compute.sslPolicies.insert
+    ComputeSslPoliciesInsertResource,
+    ComputeSslPoliciesInsert (..),
+    newComputeSslPoliciesInsert,
+
+    -- ** compute.sslPolicies.list
+    ComputeSslPoliciesListResource,
+    ComputeSslPoliciesList (..),
+    newComputeSslPoliciesList,
+
+    -- ** compute.sslPolicies.listAvailableFeatures
+    ComputeSslPoliciesListAvailableFeaturesResource,
+    ComputeSslPoliciesListAvailableFeatures (..),
+    newComputeSslPoliciesListAvailableFeatures,
+
+    -- ** compute.sslPolicies.patch
+    ComputeSslPoliciesPatchResource,
+    ComputeSslPoliciesPatch (..),
+    newComputeSslPoliciesPatch,
+
+    -- ** compute.storagePoolTypes.aggregatedList
+    ComputeStoragePoolTypesAggregatedListResource,
+    ComputeStoragePoolTypesAggregatedList (..),
+    newComputeStoragePoolTypesAggregatedList,
+
+    -- ** compute.storagePoolTypes.get
+    ComputeStoragePoolTypesGetResource,
+    ComputeStoragePoolTypesGet (..),
+    newComputeStoragePoolTypesGet,
+
+    -- ** compute.storagePoolTypes.list
+    ComputeStoragePoolTypesListResource,
+    ComputeStoragePoolTypesList (..),
+    newComputeStoragePoolTypesList,
+
+    -- ** compute.storagePools.aggregatedList
+    ComputeStoragePoolsAggregatedListResource,
+    ComputeStoragePoolsAggregatedList (..),
+    newComputeStoragePoolsAggregatedList,
+
+    -- ** compute.storagePools.delete
+    ComputeStoragePoolsDeleteResource,
+    ComputeStoragePoolsDelete (..),
+    newComputeStoragePoolsDelete,
+
+    -- ** compute.storagePools.get
+    ComputeStoragePoolsGetResource,
+    ComputeStoragePoolsGet (..),
+    newComputeStoragePoolsGet,
+
+    -- ** compute.storagePools.getIamPolicy
+    ComputeStoragePoolsGetIamPolicyResource,
+    ComputeStoragePoolsGetIamPolicy (..),
+    newComputeStoragePoolsGetIamPolicy,
+
+    -- ** compute.storagePools.insert
+    ComputeStoragePoolsInsertResource,
+    ComputeStoragePoolsInsert (..),
+    newComputeStoragePoolsInsert,
+
+    -- ** compute.storagePools.list
+    ComputeStoragePoolsListResource,
+    ComputeStoragePoolsList (..),
+    newComputeStoragePoolsList,
+
+    -- ** compute.storagePools.listDisks
+    ComputeStoragePoolsListDisksResource,
+    ComputeStoragePoolsListDisks (..),
+    newComputeStoragePoolsListDisks,
+
+    -- ** compute.storagePools.setIamPolicy
+    ComputeStoragePoolsSetIamPolicyResource,
+    ComputeStoragePoolsSetIamPolicy (..),
+    newComputeStoragePoolsSetIamPolicy,
+
+    -- ** compute.storagePools.testIamPermissions
+    ComputeStoragePoolsTestIamPermissionsResource,
+    ComputeStoragePoolsTestIamPermissions (..),
+    newComputeStoragePoolsTestIamPermissions,
+
+    -- ** compute.storagePools.update
+    ComputeStoragePoolsUpdateResource,
+    ComputeStoragePoolsUpdate (..),
+    newComputeStoragePoolsUpdate,
+
+    -- ** compute.subnetworks.aggregatedList
+    ComputeSubnetworksAggregatedListResource,
+    ComputeSubnetworksAggregatedList (..),
+    newComputeSubnetworksAggregatedList,
+
+    -- ** compute.subnetworks.delete
+    ComputeSubnetworksDeleteResource,
+    ComputeSubnetworksDelete (..),
+    newComputeSubnetworksDelete,
+
+    -- ** compute.subnetworks.expandIpCidrRange
+    ComputeSubnetworksExpandIpCidrRangeResource,
+    ComputeSubnetworksExpandIpCidrRange (..),
+    newComputeSubnetworksExpandIpCidrRange,
+
+    -- ** compute.subnetworks.get
+    ComputeSubnetworksGetResource,
+    ComputeSubnetworksGet (..),
+    newComputeSubnetworksGet,
+
+    -- ** compute.subnetworks.getIamPolicy
+    ComputeSubnetworksGetIamPolicyResource,
+    ComputeSubnetworksGetIamPolicy (..),
+    newComputeSubnetworksGetIamPolicy,
+
+    -- ** compute.subnetworks.insert
+    ComputeSubnetworksInsertResource,
+    ComputeSubnetworksInsert (..),
+    newComputeSubnetworksInsert,
+
+    -- ** compute.subnetworks.list
+    ComputeSubnetworksListResource,
+    ComputeSubnetworksList (..),
+    newComputeSubnetworksList,
+
+    -- ** compute.subnetworks.listUsable
+    ComputeSubnetworksListUsableResource,
+    ComputeSubnetworksListUsable (..),
+    newComputeSubnetworksListUsable,
+
+    -- ** compute.subnetworks.patch
+    ComputeSubnetworksPatchResource,
+    ComputeSubnetworksPatch (..),
+    newComputeSubnetworksPatch,
+
+    -- ** compute.subnetworks.setIamPolicy
+    ComputeSubnetworksSetIamPolicyResource,
+    ComputeSubnetworksSetIamPolicy (..),
+    newComputeSubnetworksSetIamPolicy,
+
+    -- ** compute.subnetworks.setPrivateIpGoogleAccess
+    ComputeSubnetworksSetPrivateIpGoogleAccessResource,
+    ComputeSubnetworksSetPrivateIpGoogleAccess (..),
+    newComputeSubnetworksSetPrivateIpGoogleAccess,
+
+    -- ** compute.subnetworks.testIamPermissions
+    ComputeSubnetworksTestIamPermissionsResource,
+    ComputeSubnetworksTestIamPermissions (..),
+    newComputeSubnetworksTestIamPermissions,
+
+    -- ** compute.targetGrpcProxies.delete
+    ComputeTargetGrpcProxiesDeleteResource,
+    ComputeTargetGrpcProxiesDelete (..),
+    newComputeTargetGrpcProxiesDelete,
+
+    -- ** compute.targetGrpcProxies.get
+    ComputeTargetGrpcProxiesGetResource,
+    ComputeTargetGrpcProxiesGet (..),
+    newComputeTargetGrpcProxiesGet,
+
+    -- ** compute.targetGrpcProxies.insert
+    ComputeTargetGrpcProxiesInsertResource,
+    ComputeTargetGrpcProxiesInsert (..),
+    newComputeTargetGrpcProxiesInsert,
+
+    -- ** compute.targetGrpcProxies.list
+    ComputeTargetGrpcProxiesListResource,
+    ComputeTargetGrpcProxiesList (..),
+    newComputeTargetGrpcProxiesList,
+
+    -- ** compute.targetGrpcProxies.patch
+    ComputeTargetGrpcProxiesPatchResource,
+    ComputeTargetGrpcProxiesPatch (..),
+    newComputeTargetGrpcProxiesPatch,
+
+    -- ** compute.targetHttpProxies.aggregatedList
+    ComputeTargetHttpProxiesAggregatedListResource,
+    ComputeTargetHttpProxiesAggregatedList (..),
+    newComputeTargetHttpProxiesAggregatedList,
+
+    -- ** compute.targetHttpProxies.delete
+    ComputeTargetHttpProxiesDeleteResource,
+    ComputeTargetHttpProxiesDelete (..),
+    newComputeTargetHttpProxiesDelete,
+
+    -- ** compute.targetHttpProxies.get
+    ComputeTargetHttpProxiesGetResource,
+    ComputeTargetHttpProxiesGet (..),
+    newComputeTargetHttpProxiesGet,
+
+    -- ** compute.targetHttpProxies.insert
+    ComputeTargetHttpProxiesInsertResource,
+    ComputeTargetHttpProxiesInsert (..),
+    newComputeTargetHttpProxiesInsert,
+
+    -- ** compute.targetHttpProxies.list
+    ComputeTargetHttpProxiesListResource,
+    ComputeTargetHttpProxiesList (..),
+    newComputeTargetHttpProxiesList,
+
+    -- ** compute.targetHttpProxies.patch
+    ComputeTargetHttpProxiesPatchResource,
+    ComputeTargetHttpProxiesPatch (..),
+    newComputeTargetHttpProxiesPatch,
+
+    -- ** compute.targetHttpProxies.setUrlMap
+    ComputeTargetHttpProxiesSetUrlMapResource,
+    ComputeTargetHttpProxiesSetUrlMap (..),
+    newComputeTargetHttpProxiesSetUrlMap,
+
+    -- ** compute.targetHttpsProxies.aggregatedList
+    ComputeTargetHttpsProxiesAggregatedListResource,
+    ComputeTargetHttpsProxiesAggregatedList (..),
+    newComputeTargetHttpsProxiesAggregatedList,
+
+    -- ** compute.targetHttpsProxies.delete
+    ComputeTargetHttpsProxiesDeleteResource,
+    ComputeTargetHttpsProxiesDelete (..),
+    newComputeTargetHttpsProxiesDelete,
+
+    -- ** compute.targetHttpsProxies.get
+    ComputeTargetHttpsProxiesGetResource,
+    ComputeTargetHttpsProxiesGet (..),
+    newComputeTargetHttpsProxiesGet,
+
+    -- ** compute.targetHttpsProxies.insert
+    ComputeTargetHttpsProxiesInsertResource,
+    ComputeTargetHttpsProxiesInsert (..),
+    newComputeTargetHttpsProxiesInsert,
+
+    -- ** compute.targetHttpsProxies.list
+    ComputeTargetHttpsProxiesListResource,
+    ComputeTargetHttpsProxiesList (..),
+    newComputeTargetHttpsProxiesList,
+
+    -- ** compute.targetHttpsProxies.patch
+    ComputeTargetHttpsProxiesPatchResource,
+    ComputeTargetHttpsProxiesPatch (..),
+    newComputeTargetHttpsProxiesPatch,
+
+    -- ** compute.targetHttpsProxies.setCertificateMap
+    ComputeTargetHttpsProxiesSetCertificateMapResource,
+    ComputeTargetHttpsProxiesSetCertificateMap (..),
+    newComputeTargetHttpsProxiesSetCertificateMap,
+
+    -- ** compute.targetHttpsProxies.setQuicOverride
+    ComputeTargetHttpsProxiesSetQuicOverrideResource,
+    ComputeTargetHttpsProxiesSetQuicOverride (..),
+    newComputeTargetHttpsProxiesSetQuicOverride,
+
+    -- ** compute.targetHttpsProxies.setSslCertificates
+    ComputeTargetHttpsProxiesSetSslCertificatesResource,
+    ComputeTargetHttpsProxiesSetSslCertificates (..),
+    newComputeTargetHttpsProxiesSetSslCertificates,
+
+    -- ** compute.targetHttpsProxies.setSslPolicy
+    ComputeTargetHttpsProxiesSetSslPolicyResource,
+    ComputeTargetHttpsProxiesSetSslPolicy (..),
+    newComputeTargetHttpsProxiesSetSslPolicy,
+
+    -- ** compute.targetHttpsProxies.setUrlMap
+    ComputeTargetHttpsProxiesSetUrlMapResource,
+    ComputeTargetHttpsProxiesSetUrlMap (..),
+    newComputeTargetHttpsProxiesSetUrlMap,
+
+    -- ** compute.targetInstances.aggregatedList
+    ComputeTargetInstancesAggregatedListResource,
+    ComputeTargetInstancesAggregatedList (..),
+    newComputeTargetInstancesAggregatedList,
+
+    -- ** compute.targetInstances.delete
+    ComputeTargetInstancesDeleteResource,
+    ComputeTargetInstancesDelete (..),
+    newComputeTargetInstancesDelete,
+
+    -- ** compute.targetInstances.get
+    ComputeTargetInstancesGetResource,
+    ComputeTargetInstancesGet (..),
+    newComputeTargetInstancesGet,
+
+    -- ** compute.targetInstances.insert
+    ComputeTargetInstancesInsertResource,
+    ComputeTargetInstancesInsert (..),
+    newComputeTargetInstancesInsert,
+
+    -- ** compute.targetInstances.list
+    ComputeTargetInstancesListResource,
+    ComputeTargetInstancesList (..),
+    newComputeTargetInstancesList,
+
+    -- ** compute.targetInstances.setSecurityPolicy
+    ComputeTargetInstancesSetSecurityPolicyResource,
+    ComputeTargetInstancesSetSecurityPolicy (..),
+    newComputeTargetInstancesSetSecurityPolicy,
+
+    -- ** compute.targetPools.addHealthCheck
+    ComputeTargetPoolsAddHealthCheckResource,
+    ComputeTargetPoolsAddHealthCheck (..),
+    newComputeTargetPoolsAddHealthCheck,
+
+    -- ** compute.targetPools.addInstance
+    ComputeTargetPoolsAddInstanceResource,
+    ComputeTargetPoolsAddInstance (..),
+    newComputeTargetPoolsAddInstance,
+
+    -- ** compute.targetPools.aggregatedList
+    ComputeTargetPoolsAggregatedListResource,
+    ComputeTargetPoolsAggregatedList (..),
+    newComputeTargetPoolsAggregatedList,
+
+    -- ** compute.targetPools.delete
+    ComputeTargetPoolsDeleteResource,
+    ComputeTargetPoolsDelete (..),
+    newComputeTargetPoolsDelete,
+
+    -- ** compute.targetPools.get
+    ComputeTargetPoolsGetResource,
+    ComputeTargetPoolsGet (..),
+    newComputeTargetPoolsGet,
+
+    -- ** compute.targetPools.getHealth
+    ComputeTargetPoolsGetHealthResource,
+    ComputeTargetPoolsGetHealth (..),
+    newComputeTargetPoolsGetHealth,
+
+    -- ** compute.targetPools.insert
+    ComputeTargetPoolsInsertResource,
+    ComputeTargetPoolsInsert (..),
+    newComputeTargetPoolsInsert,
+
+    -- ** compute.targetPools.list
+    ComputeTargetPoolsListResource,
+    ComputeTargetPoolsList (..),
+    newComputeTargetPoolsList,
+
+    -- ** compute.targetPools.removeHealthCheck
+    ComputeTargetPoolsRemoveHealthCheckResource,
+    ComputeTargetPoolsRemoveHealthCheck (..),
+    newComputeTargetPoolsRemoveHealthCheck,
+
+    -- ** compute.targetPools.removeInstance
+    ComputeTargetPoolsRemoveInstanceResource,
+    ComputeTargetPoolsRemoveInstance (..),
+    newComputeTargetPoolsRemoveInstance,
+
+    -- ** compute.targetPools.setBackup
+    ComputeTargetPoolsSetBackupResource,
+    ComputeTargetPoolsSetBackup (..),
+    newComputeTargetPoolsSetBackup,
+
+    -- ** compute.targetPools.setSecurityPolicy
+    ComputeTargetPoolsSetSecurityPolicyResource,
+    ComputeTargetPoolsSetSecurityPolicy (..),
+    newComputeTargetPoolsSetSecurityPolicy,
+
+    -- ** compute.targetSslProxies.delete
+    ComputeTargetSslProxiesDeleteResource,
+    ComputeTargetSslProxiesDelete (..),
+    newComputeTargetSslProxiesDelete,
+
+    -- ** compute.targetSslProxies.get
+    ComputeTargetSslProxiesGetResource,
+    ComputeTargetSslProxiesGet (..),
+    newComputeTargetSslProxiesGet,
+
+    -- ** compute.targetSslProxies.insert
+    ComputeTargetSslProxiesInsertResource,
+    ComputeTargetSslProxiesInsert (..),
+    newComputeTargetSslProxiesInsert,
+
+    -- ** compute.targetSslProxies.list
+    ComputeTargetSslProxiesListResource,
+    ComputeTargetSslProxiesList (..),
+    newComputeTargetSslProxiesList,
+
+    -- ** compute.targetSslProxies.setBackendService
+    ComputeTargetSslProxiesSetBackendServiceResource,
+    ComputeTargetSslProxiesSetBackendService (..),
+    newComputeTargetSslProxiesSetBackendService,
+
+    -- ** compute.targetSslProxies.setCertificateMap
+    ComputeTargetSslProxiesSetCertificateMapResource,
+    ComputeTargetSslProxiesSetCertificateMap (..),
+    newComputeTargetSslProxiesSetCertificateMap,
+
+    -- ** compute.targetSslProxies.setProxyHeader
+    ComputeTargetSslProxiesSetProxyHeaderResource,
+    ComputeTargetSslProxiesSetProxyHeader (..),
+    newComputeTargetSslProxiesSetProxyHeader,
+
+    -- ** compute.targetSslProxies.setSslCertificates
+    ComputeTargetSslProxiesSetSslCertificatesResource,
+    ComputeTargetSslProxiesSetSslCertificates (..),
+    newComputeTargetSslProxiesSetSslCertificates,
+
+    -- ** compute.targetSslProxies.setSslPolicy
+    ComputeTargetSslProxiesSetSslPolicyResource,
+    ComputeTargetSslProxiesSetSslPolicy (..),
+    newComputeTargetSslProxiesSetSslPolicy,
+
+    -- ** compute.targetTcpProxies.aggregatedList
+    ComputeTargetTcpProxiesAggregatedListResource,
+    ComputeTargetTcpProxiesAggregatedList (..),
+    newComputeTargetTcpProxiesAggregatedList,
+
+    -- ** compute.targetTcpProxies.delete
+    ComputeTargetTcpProxiesDeleteResource,
+    ComputeTargetTcpProxiesDelete (..),
+    newComputeTargetTcpProxiesDelete,
+
+    -- ** compute.targetTcpProxies.get
+    ComputeTargetTcpProxiesGetResource,
+    ComputeTargetTcpProxiesGet (..),
+    newComputeTargetTcpProxiesGet,
+
+    -- ** compute.targetTcpProxies.insert
+    ComputeTargetTcpProxiesInsertResource,
+    ComputeTargetTcpProxiesInsert (..),
+    newComputeTargetTcpProxiesInsert,
+
+    -- ** compute.targetTcpProxies.list
+    ComputeTargetTcpProxiesListResource,
+    ComputeTargetTcpProxiesList (..),
+    newComputeTargetTcpProxiesList,
+
+    -- ** compute.targetTcpProxies.setBackendService
+    ComputeTargetTcpProxiesSetBackendServiceResource,
+    ComputeTargetTcpProxiesSetBackendService (..),
+    newComputeTargetTcpProxiesSetBackendService,
+
+    -- ** compute.targetTcpProxies.setProxyHeader
+    ComputeTargetTcpProxiesSetProxyHeaderResource,
+    ComputeTargetTcpProxiesSetProxyHeader (..),
+    newComputeTargetTcpProxiesSetProxyHeader,
+
+    -- ** compute.targetVpnGateways.aggregatedList
+    ComputeTargetVpnGatewaysAggregatedListResource,
+    ComputeTargetVpnGatewaysAggregatedList (..),
+    newComputeTargetVpnGatewaysAggregatedList,
+
+    -- ** compute.targetVpnGateways.delete
+    ComputeTargetVpnGatewaysDeleteResource,
+    ComputeTargetVpnGatewaysDelete (..),
+    newComputeTargetVpnGatewaysDelete,
+
+    -- ** compute.targetVpnGateways.get
+    ComputeTargetVpnGatewaysGetResource,
+    ComputeTargetVpnGatewaysGet (..),
+    newComputeTargetVpnGatewaysGet,
+
+    -- ** compute.targetVpnGateways.insert
+    ComputeTargetVpnGatewaysInsertResource,
+    ComputeTargetVpnGatewaysInsert (..),
+    newComputeTargetVpnGatewaysInsert,
+
+    -- ** compute.targetVpnGateways.list
+    ComputeTargetVpnGatewaysListResource,
+    ComputeTargetVpnGatewaysList (..),
+    newComputeTargetVpnGatewaysList,
+
+    -- ** compute.targetVpnGateways.setLabels
+    ComputeTargetVpnGatewaysSetLabelsResource,
+    ComputeTargetVpnGatewaysSetLabels (..),
+    newComputeTargetVpnGatewaysSetLabels,
+
+    -- ** compute.urlMaps.aggregatedList
+    ComputeUrlMapsAggregatedListResource,
+    ComputeUrlMapsAggregatedList (..),
+    newComputeUrlMapsAggregatedList,
+
+    -- ** compute.urlMaps.delete
+    ComputeUrlMapsDeleteResource,
+    ComputeUrlMapsDelete (..),
+    newComputeUrlMapsDelete,
+
+    -- ** compute.urlMaps.get
+    ComputeUrlMapsGetResource,
+    ComputeUrlMapsGet (..),
+    newComputeUrlMapsGet,
+
+    -- ** compute.urlMaps.insert
+    ComputeUrlMapsInsertResource,
+    ComputeUrlMapsInsert (..),
+    newComputeUrlMapsInsert,
+
+    -- ** compute.urlMaps.invalidateCache
+    ComputeUrlMapsInvalidateCacheResource,
+    ComputeUrlMapsInvalidateCache (..),
+    newComputeUrlMapsInvalidateCache,
+
+    -- ** compute.urlMaps.list
+    ComputeUrlMapsListResource,
+    ComputeUrlMapsList (..),
+    newComputeUrlMapsList,
+
+    -- ** compute.urlMaps.patch
+    ComputeUrlMapsPatchResource,
+    ComputeUrlMapsPatch (..),
+    newComputeUrlMapsPatch,
+
+    -- ** compute.urlMaps.update
+    ComputeUrlMapsUpdateResource,
+    ComputeUrlMapsUpdate (..),
+    newComputeUrlMapsUpdate,
+
+    -- ** compute.urlMaps.validate
+    ComputeUrlMapsValidateResource,
+    ComputeUrlMapsValidate (..),
+    newComputeUrlMapsValidate,
+
+    -- ** compute.vpnGateways.aggregatedList
+    ComputeVpnGatewaysAggregatedListResource,
+    ComputeVpnGatewaysAggregatedList (..),
+    newComputeVpnGatewaysAggregatedList,
+
+    -- ** compute.vpnGateways.delete
+    ComputeVpnGatewaysDeleteResource,
+    ComputeVpnGatewaysDelete (..),
+    newComputeVpnGatewaysDelete,
+
+    -- ** compute.vpnGateways.get
+    ComputeVpnGatewaysGetResource,
+    ComputeVpnGatewaysGet (..),
+    newComputeVpnGatewaysGet,
+
+    -- ** compute.vpnGateways.getStatus
+    ComputeVpnGatewaysGetStatusResource,
+    ComputeVpnGatewaysGetStatus (..),
+    newComputeVpnGatewaysGetStatus,
+
+    -- ** compute.vpnGateways.insert
+    ComputeVpnGatewaysInsertResource,
+    ComputeVpnGatewaysInsert (..),
+    newComputeVpnGatewaysInsert,
+
+    -- ** compute.vpnGateways.list
+    ComputeVpnGatewaysListResource,
+    ComputeVpnGatewaysList (..),
+    newComputeVpnGatewaysList,
+
+    -- ** compute.vpnGateways.setLabels
+    ComputeVpnGatewaysSetLabelsResource,
+    ComputeVpnGatewaysSetLabels (..),
+    newComputeVpnGatewaysSetLabels,
+
+    -- ** compute.vpnGateways.testIamPermissions
+    ComputeVpnGatewaysTestIamPermissionsResource,
+    ComputeVpnGatewaysTestIamPermissions (..),
+    newComputeVpnGatewaysTestIamPermissions,
+
+    -- ** compute.vpnTunnels.aggregatedList
+    ComputeVpnTunnelsAggregatedListResource,
+    ComputeVpnTunnelsAggregatedList (..),
+    newComputeVpnTunnelsAggregatedList,
+
+    -- ** compute.vpnTunnels.delete
+    ComputeVpnTunnelsDeleteResource,
+    ComputeVpnTunnelsDelete (..),
+    newComputeVpnTunnelsDelete,
+
+    -- ** compute.vpnTunnels.get
+    ComputeVpnTunnelsGetResource,
+    ComputeVpnTunnelsGet (..),
+    newComputeVpnTunnelsGet,
+
+    -- ** compute.vpnTunnels.insert
+    ComputeVpnTunnelsInsertResource,
+    ComputeVpnTunnelsInsert (..),
+    newComputeVpnTunnelsInsert,
+
+    -- ** compute.vpnTunnels.list
+    ComputeVpnTunnelsListResource,
+    ComputeVpnTunnelsList (..),
+    newComputeVpnTunnelsList,
+
+    -- ** compute.vpnTunnels.setLabels
+    ComputeVpnTunnelsSetLabelsResource,
+    ComputeVpnTunnelsSetLabels (..),
+    newComputeVpnTunnelsSetLabels,
+
+    -- ** compute.zoneOperations.delete
+    ComputeZoneOperationsDeleteResource,
+    ComputeZoneOperationsDelete (..),
+    newComputeZoneOperationsDelete,
+
+    -- ** compute.zoneOperations.get
+    ComputeZoneOperationsGetResource,
+    ComputeZoneOperationsGet (..),
+    newComputeZoneOperationsGet,
+
+    -- ** compute.zoneOperations.list
+    ComputeZoneOperationsListResource,
+    ComputeZoneOperationsList (..),
+    newComputeZoneOperationsList,
+
+    -- ** compute.zoneOperations.wait
+    ComputeZoneOperationsWaitResource,
+    ComputeZoneOperationsWait (..),
+    newComputeZoneOperationsWait,
+
+    -- ** compute.zones.get
+    ComputeZonesGetResource,
+    ComputeZonesGet (..),
+    newComputeZonesGet,
+
+    -- ** compute.zones.list
+    ComputeZonesListResource,
+    ComputeZonesList (..),
+    newComputeZonesList,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** AWSV4Signature
+    AWSV4Signature (..),
+    newAWSV4Signature,
+
+    -- ** AcceleratorConfig
+    AcceleratorConfig (..),
+    newAcceleratorConfig,
+
+    -- ** AcceleratorType
+    AcceleratorType (..),
+    newAcceleratorType,
+
+    -- ** AcceleratorTypeAggregatedList
+    AcceleratorTypeAggregatedList (..),
+    newAcceleratorTypeAggregatedList,
+
+    -- ** AcceleratorTypeAggregatedList_Items
+    AcceleratorTypeAggregatedList_Items (..),
+    newAcceleratorTypeAggregatedList_Items,
+
+    -- ** AcceleratorTypeAggregatedList_Warning
+    AcceleratorTypeAggregatedList_Warning (..),
+    newAcceleratorTypeAggregatedList_Warning,
+
+    -- ** AcceleratorTypeAggregatedList_Warning_Code
+    AcceleratorTypeAggregatedList_Warning_Code (..),
+
+    -- ** AcceleratorTypeAggregatedList_Warning_DataItem
+    AcceleratorTypeAggregatedList_Warning_DataItem (..),
+    newAcceleratorTypeAggregatedList_Warning_DataItem,
+
+    -- ** AcceleratorTypeList
+    AcceleratorTypeList (..),
+    newAcceleratorTypeList,
+
+    -- ** AcceleratorTypeList_Warning
+    AcceleratorTypeList_Warning (..),
+    newAcceleratorTypeList_Warning,
+
+    -- ** AcceleratorTypeList_Warning_Code
+    AcceleratorTypeList_Warning_Code (..),
+
+    -- ** AcceleratorTypeList_Warning_DataItem
+    AcceleratorTypeList_Warning_DataItem (..),
+    newAcceleratorTypeList_Warning_DataItem,
+
+    -- ** AcceleratorTypesScopedList
+    AcceleratorTypesScopedList (..),
+    newAcceleratorTypesScopedList,
+
+    -- ** AcceleratorTypesScopedList_Warning
+    AcceleratorTypesScopedList_Warning (..),
+    newAcceleratorTypesScopedList_Warning,
+
+    -- ** AcceleratorTypesScopedList_Warning_Code
+    AcceleratorTypesScopedList_Warning_Code (..),
+
+    -- ** AcceleratorTypesScopedList_Warning_DataItem
+    AcceleratorTypesScopedList_Warning_DataItem (..),
+    newAcceleratorTypesScopedList_Warning_DataItem,
+
+    -- ** AccessConfig
+    AccessConfig (..),
+    newAccessConfig,
+
+    -- ** AccessConfig_NetworkTier
+    AccessConfig_NetworkTier (..),
+
+    -- ** AccessConfig_Type
+    AccessConfig_Type (..),
+
+    -- ** Address
+    Address (..),
+    newAddress,
+
+    -- ** Address_AddressType
+    Address_AddressType (..),
+
+    -- ** Address_IpVersion
+    Address_IpVersion (..),
+
+    -- ** Address_Ipv6EndpointType
+    Address_Ipv6EndpointType (..),
+
+    -- ** Address_Labels
+    Address_Labels (..),
+    newAddress_Labels,
+
+    -- ** Address_NetworkTier
+    Address_NetworkTier (..),
+
+    -- ** Address_Purpose
+    Address_Purpose (..),
+
+    -- ** Address_Status
+    Address_Status (..),
+
+    -- ** AddressAggregatedList
+    AddressAggregatedList (..),
+    newAddressAggregatedList,
+
+    -- ** AddressAggregatedList_Items
+    AddressAggregatedList_Items (..),
+    newAddressAggregatedList_Items,
+
+    -- ** AddressAggregatedList_Warning
+    AddressAggregatedList_Warning (..),
+    newAddressAggregatedList_Warning,
+
+    -- ** AddressAggregatedList_Warning_Code
+    AddressAggregatedList_Warning_Code (..),
+
+    -- ** AddressAggregatedList_Warning_DataItem
+    AddressAggregatedList_Warning_DataItem (..),
+    newAddressAggregatedList_Warning_DataItem,
+
+    -- ** AddressList
+    AddressList (..),
+    newAddressList,
+
+    -- ** AddressList_Warning
+    AddressList_Warning (..),
+    newAddressList_Warning,
+
+    -- ** AddressList_Warning_Code
+    AddressList_Warning_Code (..),
+
+    -- ** AddressList_Warning_DataItem
+    AddressList_Warning_DataItem (..),
+    newAddressList_Warning_DataItem,
+
+    -- ** AddressesScopedList
+    AddressesScopedList (..),
+    newAddressesScopedList,
+
+    -- ** AddressesScopedList_Warning
+    AddressesScopedList_Warning (..),
+    newAddressesScopedList_Warning,
+
+    -- ** AddressesScopedList_Warning_Code
+    AddressesScopedList_Warning_Code (..),
+
+    -- ** AddressesScopedList_Warning_DataItem
+    AddressesScopedList_Warning_DataItem (..),
+    newAddressesScopedList_Warning_DataItem,
+
+    -- ** AdvancedMachineFeatures
+    AdvancedMachineFeatures (..),
+    newAdvancedMachineFeatures,
+
+    -- ** AdvancedMachineFeatures_PerformanceMonitoringUnit
+    AdvancedMachineFeatures_PerformanceMonitoringUnit (..),
+
+    -- ** AliasIpRange
+    AliasIpRange (..),
+    newAliasIpRange,
+
+    -- ** AllocationAggregateReservation
+    AllocationAggregateReservation (..),
+    newAllocationAggregateReservation,
+
+    -- ** AllocationAggregateReservation_VmFamily
+    AllocationAggregateReservation_VmFamily (..),
+
+    -- ** AllocationAggregateReservation_WorkloadType
+    AllocationAggregateReservation_WorkloadType (..),
+
+    -- ** AllocationAggregateReservationReservedResourceInfo
+    AllocationAggregateReservationReservedResourceInfo (..),
+    newAllocationAggregateReservationReservedResourceInfo,
+
+    -- ** AllocationAggregateReservationReservedResourceInfoAccelerator
+    AllocationAggregateReservationReservedResourceInfoAccelerator (..),
+    newAllocationAggregateReservationReservedResourceInfoAccelerator,
+
+    -- ** AllocationReservationSharingPolicy
+    AllocationReservationSharingPolicy (..),
+    newAllocationReservationSharingPolicy,
+
+    -- ** AllocationReservationSharingPolicy_ServiceShareType
+    AllocationReservationSharingPolicy_ServiceShareType (..),
+
+    -- ** AllocationResourceStatus
+    AllocationResourceStatus (..),
+    newAllocationResourceStatus,
+
+    -- ** AllocationResourceStatusSpecificSKUAllocation
+    AllocationResourceStatusSpecificSKUAllocation (..),
+    newAllocationResourceStatusSpecificSKUAllocation,
+
+    -- ** AllocationResourceStatusSpecificSKUAllocation_Utilizations
+    AllocationResourceStatusSpecificSKUAllocation_Utilizations (..),
+    newAllocationResourceStatusSpecificSKUAllocation_Utilizations,
+
+    -- ** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
+    AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk (..),
+    newAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk,
+
+    -- ** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk_Interface
+    AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk_Interface (..),
+
+    -- ** AllocationSpecificSKUAllocationReservedInstanceProperties
+    AllocationSpecificSKUAllocationReservedInstanceProperties (..),
+    newAllocationSpecificSKUAllocationReservedInstanceProperties,
+
+    -- ** AllocationSpecificSKUReservation
+    AllocationSpecificSKUReservation (..),
+    newAllocationSpecificSKUReservation,
+
+    -- ** AttachedDisk
+    AttachedDisk (..),
+    newAttachedDisk,
+
+    -- ** AttachedDisk_Architecture
+    AttachedDisk_Architecture (..),
+
+    -- ** AttachedDisk_Interface
+    AttachedDisk_Interface (..),
+
+    -- ** AttachedDisk_Mode
+    AttachedDisk_Mode (..),
+
+    -- ** AttachedDisk_SavedState
+    AttachedDisk_SavedState (..),
+
+    -- ** AttachedDisk_Type
+    AttachedDisk_Type (..),
+
+    -- ** AttachedDiskInitializeParams
+    AttachedDiskInitializeParams (..),
+    newAttachedDiskInitializeParams,
+
+    -- ** AttachedDiskInitializeParams_Architecture
+    AttachedDiskInitializeParams_Architecture (..),
+
+    -- ** AttachedDiskInitializeParams_Labels
+    AttachedDiskInitializeParams_Labels (..),
+    newAttachedDiskInitializeParams_Labels,
+
+    -- ** AttachedDiskInitializeParams_OnUpdateAction
+    AttachedDiskInitializeParams_OnUpdateAction (..),
+
+    -- ** AttachedDiskInitializeParams_ResourceManagerTags
+    AttachedDiskInitializeParams_ResourceManagerTags (..),
+    newAttachedDiskInitializeParams_ResourceManagerTags,
+
+    -- ** AuditConfig
+    AuditConfig (..),
+    newAuditConfig,
+
+    -- ** AuditLogConfig
+    AuditLogConfig (..),
+    newAuditLogConfig,
+
+    -- ** AuditLogConfig_LogType
+    AuditLogConfig_LogType (..),
+
+    -- ** Autoscaler
+    Autoscaler (..),
+    newAutoscaler,
+
+    -- ** Autoscaler_ScalingScheduleStatus
+    Autoscaler_ScalingScheduleStatus (..),
+    newAutoscaler_ScalingScheduleStatus,
+
+    -- ** Autoscaler_Status
+    Autoscaler_Status (..),
+
+    -- ** AutoscalerAggregatedList
+    AutoscalerAggregatedList (..),
+    newAutoscalerAggregatedList,
+
+    -- ** AutoscalerAggregatedList_Items
+    AutoscalerAggregatedList_Items (..),
+    newAutoscalerAggregatedList_Items,
+
+    -- ** AutoscalerAggregatedList_Warning
+    AutoscalerAggregatedList_Warning (..),
+    newAutoscalerAggregatedList_Warning,
+
+    -- ** AutoscalerAggregatedList_Warning_Code
+    AutoscalerAggregatedList_Warning_Code (..),
+
+    -- ** AutoscalerAggregatedList_Warning_DataItem
+    AutoscalerAggregatedList_Warning_DataItem (..),
+    newAutoscalerAggregatedList_Warning_DataItem,
+
+    -- ** AutoscalerList
+    AutoscalerList (..),
+    newAutoscalerList,
+
+    -- ** AutoscalerList_Warning
+    AutoscalerList_Warning (..),
+    newAutoscalerList_Warning,
+
+    -- ** AutoscalerList_Warning_Code
+    AutoscalerList_Warning_Code (..),
+
+    -- ** AutoscalerList_Warning_DataItem
+    AutoscalerList_Warning_DataItem (..),
+    newAutoscalerList_Warning_DataItem,
+
+    -- ** AutoscalerStatusDetails
+    AutoscalerStatusDetails (..),
+    newAutoscalerStatusDetails,
+
+    -- ** AutoscalerStatusDetails_Type
+    AutoscalerStatusDetails_Type (..),
+
+    -- ** AutoscalersScopedList
+    AutoscalersScopedList (..),
+    newAutoscalersScopedList,
+
+    -- ** AutoscalersScopedList_Warning
+    AutoscalersScopedList_Warning (..),
+    newAutoscalersScopedList_Warning,
+
+    -- ** AutoscalersScopedList_Warning_Code
+    AutoscalersScopedList_Warning_Code (..),
+
+    -- ** AutoscalersScopedList_Warning_DataItem
+    AutoscalersScopedList_Warning_DataItem (..),
+    newAutoscalersScopedList_Warning_DataItem,
+
+    -- ** AutoscalingPolicy
+    AutoscalingPolicy (..),
+    newAutoscalingPolicy,
+
+    -- ** AutoscalingPolicy_Mode
+    AutoscalingPolicy_Mode (..),
+
+    -- ** AutoscalingPolicy_ScalingSchedules
+    AutoscalingPolicy_ScalingSchedules (..),
+    newAutoscalingPolicy_ScalingSchedules,
+
+    -- ** AutoscalingPolicyCpuUtilization
+    AutoscalingPolicyCpuUtilization (..),
+    newAutoscalingPolicyCpuUtilization,
+
+    -- ** AutoscalingPolicyCpuUtilization_PredictiveMethod
+    AutoscalingPolicyCpuUtilization_PredictiveMethod (..),
+
+    -- ** AutoscalingPolicyCustomMetricUtilization
+    AutoscalingPolicyCustomMetricUtilization (..),
+    newAutoscalingPolicyCustomMetricUtilization,
+
+    -- ** AutoscalingPolicyCustomMetricUtilization_UtilizationTargetType
+    AutoscalingPolicyCustomMetricUtilization_UtilizationTargetType (..),
+
+    -- ** AutoscalingPolicyLoadBalancingUtilization
+    AutoscalingPolicyLoadBalancingUtilization (..),
+    newAutoscalingPolicyLoadBalancingUtilization,
+
+    -- ** AutoscalingPolicyScaleInControl
+    AutoscalingPolicyScaleInControl (..),
+    newAutoscalingPolicyScaleInControl,
+
+    -- ** AutoscalingPolicyScalingSchedule
+    AutoscalingPolicyScalingSchedule (..),
+    newAutoscalingPolicyScalingSchedule,
+
+    -- ** Backend
+    Backend (..),
+    newBackend,
+
+    -- ** Backend_BalancingMode
+    Backend_BalancingMode (..),
+
+    -- ** Backend_Preference
+    Backend_Preference (..),
+
+    -- ** BackendBucket
+    BackendBucket (..),
+    newBackendBucket,
+
+    -- ** BackendBucket_CompressionMode
+    BackendBucket_CompressionMode (..),
+
+    -- ** BackendBucketCdnPolicy
+    BackendBucketCdnPolicy (..),
+    newBackendBucketCdnPolicy,
+
+    -- ** BackendBucketCdnPolicy_CacheMode
+    BackendBucketCdnPolicy_CacheMode (..),
+
+    -- ** BackendBucketCdnPolicyBypassCacheOnRequestHeader
+    BackendBucketCdnPolicyBypassCacheOnRequestHeader (..),
+    newBackendBucketCdnPolicyBypassCacheOnRequestHeader,
+
+    -- ** BackendBucketCdnPolicyCacheKeyPolicy
+    BackendBucketCdnPolicyCacheKeyPolicy (..),
+    newBackendBucketCdnPolicyCacheKeyPolicy,
+
+    -- ** BackendBucketCdnPolicyNegativeCachingPolicy
+    BackendBucketCdnPolicyNegativeCachingPolicy (..),
+    newBackendBucketCdnPolicyNegativeCachingPolicy,
+
+    -- ** BackendBucketList
+    BackendBucketList (..),
+    newBackendBucketList,
+
+    -- ** BackendBucketList_Warning
+    BackendBucketList_Warning (..),
+    newBackendBucketList_Warning,
+
+    -- ** BackendBucketList_Warning_Code
+    BackendBucketList_Warning_Code (..),
+
+    -- ** BackendBucketList_Warning_DataItem
+    BackendBucketList_Warning_DataItem (..),
+    newBackendBucketList_Warning_DataItem,
+
+    -- ** BackendBucketUsedBy
+    BackendBucketUsedBy (..),
+    newBackendBucketUsedBy,
+
+    -- ** BackendCustomMetric
+    BackendCustomMetric (..),
+    newBackendCustomMetric,
+
+    -- ** BackendService
+    BackendService (..),
+    newBackendService,
+
+    -- ** BackendService_CompressionMode
+    BackendService_CompressionMode (..),
+
+    -- ** BackendService_IpAddressSelectionPolicy
+    BackendService_IpAddressSelectionPolicy (..),
+
+    -- ** BackendService_LoadBalancingScheme
+    BackendService_LoadBalancingScheme (..),
+
+    -- ** BackendService_LocalityLbPolicy
+    BackendService_LocalityLbPolicy (..),
+
+    -- ** BackendService_Metadatas
+    BackendService_Metadatas (..),
+    newBackendService_Metadatas,
+
+    -- ** BackendService_Protocol
+    BackendService_Protocol (..),
+
+    -- ** BackendService_SessionAffinity
+    BackendService_SessionAffinity (..),
+
+    -- ** BackendServiceAggregatedList
+    BackendServiceAggregatedList (..),
+    newBackendServiceAggregatedList,
+
+    -- ** BackendServiceAggregatedList_Items
+    BackendServiceAggregatedList_Items (..),
+    newBackendServiceAggregatedList_Items,
+
+    -- ** BackendServiceAggregatedList_Warning
+    BackendServiceAggregatedList_Warning (..),
+    newBackendServiceAggregatedList_Warning,
+
+    -- ** BackendServiceAggregatedList_Warning_Code
+    BackendServiceAggregatedList_Warning_Code (..),
+
+    -- ** BackendServiceAggregatedList_Warning_DataItem
+    BackendServiceAggregatedList_Warning_DataItem (..),
+    newBackendServiceAggregatedList_Warning_DataItem,
+
+    -- ** BackendServiceCdnPolicy
+    BackendServiceCdnPolicy (..),
+    newBackendServiceCdnPolicy,
+
+    -- ** BackendServiceCdnPolicy_CacheMode
+    BackendServiceCdnPolicy_CacheMode (..),
+
+    -- ** BackendServiceCdnPolicyBypassCacheOnRequestHeader
+    BackendServiceCdnPolicyBypassCacheOnRequestHeader (..),
+    newBackendServiceCdnPolicyBypassCacheOnRequestHeader,
+
+    -- ** BackendServiceCdnPolicyNegativeCachingPolicy
+    BackendServiceCdnPolicyNegativeCachingPolicy (..),
+    newBackendServiceCdnPolicyNegativeCachingPolicy,
+
+    -- ** BackendServiceConnectionTrackingPolicy
+    BackendServiceConnectionTrackingPolicy (..),
+    newBackendServiceConnectionTrackingPolicy,
+
+    -- ** BackendServiceConnectionTrackingPolicy_ConnectionPersistenceOnUnhealthyBackends
+    BackendServiceConnectionTrackingPolicy_ConnectionPersistenceOnUnhealthyBackends (..),
+
+    -- ** BackendServiceConnectionTrackingPolicy_TrackingMode
+    BackendServiceConnectionTrackingPolicy_TrackingMode (..),
+
+    -- ** BackendServiceCustomMetric
+    BackendServiceCustomMetric (..),
+    newBackendServiceCustomMetric,
+
+    -- ** BackendServiceFailoverPolicy
+    BackendServiceFailoverPolicy (..),
+    newBackendServiceFailoverPolicy,
+
+    -- ** BackendServiceGroupHealth
+    BackendServiceGroupHealth (..),
+    newBackendServiceGroupHealth,
+
+    -- ** BackendServiceGroupHealth_Annotations
+    BackendServiceGroupHealth_Annotations (..),
+    newBackendServiceGroupHealth_Annotations,
+
+    -- ** BackendServiceHttpCookie
+    BackendServiceHttpCookie (..),
+    newBackendServiceHttpCookie,
+
+    -- ** BackendServiceIAP
+    BackendServiceIAP (..),
+    newBackendServiceIAP,
+
+    -- ** BackendServiceList
+    BackendServiceList (..),
+    newBackendServiceList,
+
+    -- ** BackendServiceList_Warning
+    BackendServiceList_Warning (..),
+    newBackendServiceList_Warning,
+
+    -- ** BackendServiceList_Warning_Code
+    BackendServiceList_Warning_Code (..),
+
+    -- ** BackendServiceList_Warning_DataItem
+    BackendServiceList_Warning_DataItem (..),
+    newBackendServiceList_Warning_DataItem,
+
+    -- ** BackendServiceListUsable
+    BackendServiceListUsable (..),
+    newBackendServiceListUsable,
+
+    -- ** BackendServiceListUsable_Warning
+    BackendServiceListUsable_Warning (..),
+    newBackendServiceListUsable_Warning,
+
+    -- ** BackendServiceListUsable_Warning_Code
+    BackendServiceListUsable_Warning_Code (..),
+
+    -- ** BackendServiceListUsable_Warning_DataItem
+    BackendServiceListUsable_Warning_DataItem (..),
+    newBackendServiceListUsable_Warning_DataItem,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfig
+    BackendServiceLocalityLoadBalancingPolicyConfig (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfig,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
+    BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigPolicy
+    BackendServiceLocalityLoadBalancingPolicyConfigPolicy (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfigPolicy,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigPolicy_Name
+    BackendServiceLocalityLoadBalancingPolicyConfigPolicy_Name (..),
+
+    -- ** BackendServiceLogConfig
+    BackendServiceLogConfig (..),
+    newBackendServiceLogConfig,
+
+    -- ** BackendServiceLogConfig_OptionalMode
+    BackendServiceLogConfig_OptionalMode (..),
+
+    -- ** BackendServiceReference
+    BackendServiceReference (..),
+    newBackendServiceReference,
+
+    -- ** BackendServiceUsedBy
+    BackendServiceUsedBy (..),
+    newBackendServiceUsedBy,
+
+    -- ** BackendServicesScopedList
+    BackendServicesScopedList (..),
+    newBackendServicesScopedList,
+
+    -- ** BackendServicesScopedList_Warning
+    BackendServicesScopedList_Warning (..),
+    newBackendServicesScopedList_Warning,
+
+    -- ** BackendServicesScopedList_Warning_Code
+    BackendServicesScopedList_Warning_Code (..),
+
+    -- ** BackendServicesScopedList_Warning_DataItem
+    BackendServicesScopedList_Warning_DataItem (..),
+    newBackendServicesScopedList_Warning_DataItem,
+
+    -- ** BfdPacket
+    BfdPacket (..),
+    newBfdPacket,
+
+    -- ** BfdPacket_Diagnostic
+    BfdPacket_Diagnostic (..),
+
+    -- ** BfdPacket_State
+    BfdPacket_State (..),
+
+    -- ** BfdStatus
+    BfdStatus (..),
+    newBfdStatus,
+
+    -- ** BfdStatus_BfdSessionInitializationMode
+    BfdStatus_BfdSessionInitializationMode (..),
+
+    -- ** BfdStatus_LocalDiagnostic
+    BfdStatus_LocalDiagnostic (..),
+
+    -- ** BfdStatus_LocalState
+    BfdStatus_LocalState (..),
+
+    -- ** BfdStatusPacketCounts
+    BfdStatusPacketCounts (..),
+    newBfdStatusPacketCounts,
+
+    -- ** BgpRoute
+    BgpRoute (..),
+    newBgpRoute,
+
+    -- ** BgpRoute_Origin
+    BgpRoute_Origin (..),
+
+    -- ** BgpRouteAsPath
+    BgpRouteAsPath (..),
+    newBgpRouteAsPath,
+
+    -- ** BgpRouteAsPath_Type
+    BgpRouteAsPath_Type (..),
+
+    -- ** BgpRouteNetworkLayerReachabilityInformation
+    BgpRouteNetworkLayerReachabilityInformation (..),
+    newBgpRouteNetworkLayerReachabilityInformation,
+
+    -- ** Binding
+    Binding (..),
+    newBinding,
+
+    -- ** BulkInsertDiskResource
+    BulkInsertDiskResource (..),
+    newBulkInsertDiskResource,
+
+    -- ** BulkInsertInstanceResource
+    BulkInsertInstanceResource (..),
+    newBulkInsertInstanceResource,
+
+    -- ** BulkInsertInstanceResource_PerInstanceProperties
+    BulkInsertInstanceResource_PerInstanceProperties (..),
+    newBulkInsertInstanceResource_PerInstanceProperties,
+
+    -- ** BulkInsertInstanceResourcePerInstanceProperties
+    BulkInsertInstanceResourcePerInstanceProperties (..),
+    newBulkInsertInstanceResourcePerInstanceProperties,
+
+    -- ** BulkInsertOperationStatus
+    BulkInsertOperationStatus (..),
+    newBulkInsertOperationStatus,
+
+    -- ** BulkInsertOperationStatus_Status
+    BulkInsertOperationStatus_Status (..),
+
+    -- ** CacheInvalidationRule
+    CacheInvalidationRule (..),
+    newCacheInvalidationRule,
+
+    -- ** CacheKeyPolicy
+    CacheKeyPolicy (..),
+    newCacheKeyPolicy,
+
+    -- ** CircuitBreakers
+    CircuitBreakers (..),
+    newCircuitBreakers,
+
+    -- ** Commitment
+    Commitment (..),
+    newCommitment,
+
+    -- ** Commitment_Category
+    Commitment_Category (..),
+
+    -- ** Commitment_Plan
+    Commitment_Plan (..),
+
+    -- ** Commitment_Status
+    Commitment_Status (..),
+
+    -- ** Commitment_Type
+    Commitment_Type (..),
+
+    -- ** CommitmentAggregatedList
+    CommitmentAggregatedList (..),
+    newCommitmentAggregatedList,
+
+    -- ** CommitmentAggregatedList_Items
+    CommitmentAggregatedList_Items (..),
+    newCommitmentAggregatedList_Items,
+
+    -- ** CommitmentAggregatedList_Warning
+    CommitmentAggregatedList_Warning (..),
+    newCommitmentAggregatedList_Warning,
+
+    -- ** CommitmentAggregatedList_Warning_Code
+    CommitmentAggregatedList_Warning_Code (..),
+
+    -- ** CommitmentAggregatedList_Warning_DataItem
+    CommitmentAggregatedList_Warning_DataItem (..),
+    newCommitmentAggregatedList_Warning_DataItem,
+
+    -- ** CommitmentList
+    CommitmentList (..),
+    newCommitmentList,
+
+    -- ** CommitmentList_Warning
+    CommitmentList_Warning (..),
+    newCommitmentList_Warning,
+
+    -- ** CommitmentList_Warning_Code
+    CommitmentList_Warning_Code (..),
+
+    -- ** CommitmentList_Warning_DataItem
+    CommitmentList_Warning_DataItem (..),
+    newCommitmentList_Warning_DataItem,
+
+    -- ** CommitmentResourceStatus
+    CommitmentResourceStatus (..),
+    newCommitmentResourceStatus,
+
+    -- ** CommitmentsScopedList
+    CommitmentsScopedList (..),
+    newCommitmentsScopedList,
+
+    -- ** CommitmentsScopedList_Warning
+    CommitmentsScopedList_Warning (..),
+    newCommitmentsScopedList_Warning,
+
+    -- ** CommitmentsScopedList_Warning_Code
+    CommitmentsScopedList_Warning_Code (..),
+
+    -- ** CommitmentsScopedList_Warning_DataItem
+    CommitmentsScopedList_Warning_DataItem (..),
+    newCommitmentsScopedList_Warning_DataItem,
+
+    -- ** ConfidentialInstanceConfig
+    ConfidentialInstanceConfig (..),
+    newConfidentialInstanceConfig,
+
+    -- ** ConfidentialInstanceConfig_ConfidentialInstanceType
+    ConfidentialInstanceConfig_ConfidentialInstanceType (..),
+
+    -- ** ConnectionDraining
+    ConnectionDraining (..),
+    newConnectionDraining,
+
+    -- ** ConsistentHashLoadBalancerSettings
+    ConsistentHashLoadBalancerSettings (..),
+    newConsistentHashLoadBalancerSettings,
+
+    -- ** ConsistentHashLoadBalancerSettingsHttpCookie
+    ConsistentHashLoadBalancerSettingsHttpCookie (..),
+    newConsistentHashLoadBalancerSettingsHttpCookie,
+
+    -- ** CorsPolicy
+    CorsPolicy (..),
+    newCorsPolicy,
+
+    -- ** CustomErrorResponsePolicy
+    CustomErrorResponsePolicy (..),
+    newCustomErrorResponsePolicy,
+
+    -- ** CustomErrorResponsePolicyCustomErrorResponseRule
+    CustomErrorResponsePolicyCustomErrorResponseRule (..),
+    newCustomErrorResponsePolicyCustomErrorResponseRule,
+
+    -- ** CustomerEncryptionKey
+    CustomerEncryptionKey (..),
+    newCustomerEncryptionKey,
+
+    -- ** CustomerEncryptionKeyProtectedDisk
+    CustomerEncryptionKeyProtectedDisk (..),
+    newCustomerEncryptionKeyProtectedDisk,
+
+    -- ** DeprecationStatus
+    DeprecationStatus (..),
+    newDeprecationStatus,
+
+    -- ** DeprecationStatus_State
+    DeprecationStatus_State (..),
+
+    -- ** Disk
+    Disk (..),
+    newDisk,
+
+    -- ** Disk_AccessMode
+    Disk_AccessMode (..),
+
+    -- ** Disk_Architecture
+    Disk_Architecture (..),
+
+    -- ** Disk_AsyncSecondaryDisks
+    Disk_AsyncSecondaryDisks (..),
+    newDisk_AsyncSecondaryDisks,
+
+    -- ** Disk_Labels
+    Disk_Labels (..),
+    newDisk_Labels,
+
+    -- ** Disk_Status
+    Disk_Status (..),
+
+    -- ** DiskAggregatedList
+    DiskAggregatedList (..),
+    newDiskAggregatedList,
+
+    -- ** DiskAggregatedList_Items
+    DiskAggregatedList_Items (..),
+    newDiskAggregatedList_Items,
+
+    -- ** DiskAggregatedList_Warning
+    DiskAggregatedList_Warning (..),
+    newDiskAggregatedList_Warning,
+
+    -- ** DiskAggregatedList_Warning_Code
+    DiskAggregatedList_Warning_Code (..),
+
+    -- ** DiskAggregatedList_Warning_DataItem
+    DiskAggregatedList_Warning_DataItem (..),
+    newDiskAggregatedList_Warning_DataItem,
+
+    -- ** DiskAsyncReplication
+    DiskAsyncReplication (..),
+    newDiskAsyncReplication,
+
+    -- ** DiskAsyncReplicationList
+    DiskAsyncReplicationList (..),
+    newDiskAsyncReplicationList,
+
+    -- ** DiskInstantiationConfig
+    DiskInstantiationConfig (..),
+    newDiskInstantiationConfig,
+
+    -- ** DiskInstantiationConfig_InstantiateFrom
+    DiskInstantiationConfig_InstantiateFrom (..),
+
+    -- ** DiskList
+    DiskList (..),
+    newDiskList,
+
+    -- ** DiskList_Warning
+    DiskList_Warning (..),
+    newDiskList_Warning,
+
+    -- ** DiskList_Warning_Code
+    DiskList_Warning_Code (..),
+
+    -- ** DiskList_Warning_DataItem
+    DiskList_Warning_DataItem (..),
+    newDiskList_Warning_DataItem,
+
+    -- ** DiskMoveRequest
+    DiskMoveRequest (..),
+    newDiskMoveRequest,
+
+    -- ** DiskParams
+    DiskParams (..),
+    newDiskParams,
+
+    -- ** DiskParams_ResourceManagerTags
+    DiskParams_ResourceManagerTags (..),
+    newDiskParams_ResourceManagerTags,
+
+    -- ** DiskResourceStatus
+    DiskResourceStatus (..),
+    newDiskResourceStatus,
+
+    -- ** DiskResourceStatus_AsyncSecondaryDisks
+    DiskResourceStatus_AsyncSecondaryDisks (..),
+    newDiskResourceStatus_AsyncSecondaryDisks,
+
+    -- ** DiskResourceStatusAsyncReplicationStatus
+    DiskResourceStatusAsyncReplicationStatus (..),
+    newDiskResourceStatusAsyncReplicationStatus,
+
+    -- ** DiskResourceStatusAsyncReplicationStatus_State
+    DiskResourceStatusAsyncReplicationStatus_State (..),
+
+    -- ** DiskType
+    DiskType (..),
+    newDiskType,
+
+    -- ** DiskTypeAggregatedList
+    DiskTypeAggregatedList (..),
+    newDiskTypeAggregatedList,
+
+    -- ** DiskTypeAggregatedList_Items
+    DiskTypeAggregatedList_Items (..),
+    newDiskTypeAggregatedList_Items,
+
+    -- ** DiskTypeAggregatedList_Warning
+    DiskTypeAggregatedList_Warning (..),
+    newDiskTypeAggregatedList_Warning,
+
+    -- ** DiskTypeAggregatedList_Warning_Code
+    DiskTypeAggregatedList_Warning_Code (..),
+
+    -- ** DiskTypeAggregatedList_Warning_DataItem
+    DiskTypeAggregatedList_Warning_DataItem (..),
+    newDiskTypeAggregatedList_Warning_DataItem,
+
+    -- ** DiskTypeList
+    DiskTypeList (..),
+    newDiskTypeList,
+
+    -- ** DiskTypeList_Warning
+    DiskTypeList_Warning (..),
+    newDiskTypeList_Warning,
+
+    -- ** DiskTypeList_Warning_Code
+    DiskTypeList_Warning_Code (..),
+
+    -- ** DiskTypeList_Warning_DataItem
+    DiskTypeList_Warning_DataItem (..),
+    newDiskTypeList_Warning_DataItem,
+
+    -- ** DiskTypesScopedList
+    DiskTypesScopedList (..),
+    newDiskTypesScopedList,
+
+    -- ** DiskTypesScopedList_Warning
+    DiskTypesScopedList_Warning (..),
+    newDiskTypesScopedList_Warning,
+
+    -- ** DiskTypesScopedList_Warning_Code
+    DiskTypesScopedList_Warning_Code (..),
+
+    -- ** DiskTypesScopedList_Warning_DataItem
+    DiskTypesScopedList_Warning_DataItem (..),
+    newDiskTypesScopedList_Warning_DataItem,
+
+    -- ** DisksAddResourcePoliciesRequest
+    DisksAddResourcePoliciesRequest (..),
+    newDisksAddResourcePoliciesRequest,
+
+    -- ** DisksRemoveResourcePoliciesRequest
+    DisksRemoveResourcePoliciesRequest (..),
+    newDisksRemoveResourcePoliciesRequest,
+
+    -- ** DisksResizeRequest
+    DisksResizeRequest (..),
+    newDisksResizeRequest,
+
+    -- ** DisksScopedList
+    DisksScopedList (..),
+    newDisksScopedList,
+
+    -- ** DisksScopedList_Warning
+    DisksScopedList_Warning (..),
+    newDisksScopedList_Warning,
+
+    -- ** DisksScopedList_Warning_Code
+    DisksScopedList_Warning_Code (..),
+
+    -- ** DisksScopedList_Warning_DataItem
+    DisksScopedList_Warning_DataItem (..),
+    newDisksScopedList_Warning_DataItem,
+
+    -- ** DisksStartAsyncReplicationRequest
+    DisksStartAsyncReplicationRequest (..),
+    newDisksStartAsyncReplicationRequest,
+
+    -- ** DisksStopGroupAsyncReplicationResource
+    DisksStopGroupAsyncReplicationResource (..),
+    newDisksStopGroupAsyncReplicationResource,
+
+    -- ** DisplayDevice
+    DisplayDevice (..),
+    newDisplayDevice,
+
+    -- ** DistributionPolicy
+    DistributionPolicy (..),
+    newDistributionPolicy,
+
+    -- ** DistributionPolicy_TargetShape
+    DistributionPolicy_TargetShape (..),
+
+    -- ** DistributionPolicyZoneConfiguration
+    DistributionPolicyZoneConfiguration (..),
+    newDistributionPolicyZoneConfiguration,
+
+    -- ** Duration
+    Duration (..),
+    newDuration,
+
+    -- ** ErrorInfo
+    ErrorInfo (..),
+    newErrorInfo,
+
+    -- ** ErrorInfo_Metadatas
+    ErrorInfo_Metadatas (..),
+    newErrorInfo_Metadatas,
+
+    -- ** ExchangedPeeringRoute
+    ExchangedPeeringRoute (..),
+    newExchangedPeeringRoute,
+
+    -- ** ExchangedPeeringRoute_Type
+    ExchangedPeeringRoute_Type (..),
+
+    -- ** ExchangedPeeringRoutesList
+    ExchangedPeeringRoutesList (..),
+    newExchangedPeeringRoutesList,
+
+    -- ** ExchangedPeeringRoutesList_Warning
+    ExchangedPeeringRoutesList_Warning (..),
+    newExchangedPeeringRoutesList_Warning,
+
+    -- ** ExchangedPeeringRoutesList_Warning_Code
+    ExchangedPeeringRoutesList_Warning_Code (..),
+
+    -- ** ExchangedPeeringRoutesList_Warning_DataItem
+    ExchangedPeeringRoutesList_Warning_DataItem (..),
+    newExchangedPeeringRoutesList_Warning_DataItem,
+
+    -- ** Expr
+    Expr (..),
+    newExpr,
+
+    -- ** ExternalVpnGateway
+    ExternalVpnGateway (..),
+    newExternalVpnGateway,
+
+    -- ** ExternalVpnGateway_Labels
+    ExternalVpnGateway_Labels (..),
+    newExternalVpnGateway_Labels,
+
+    -- ** ExternalVpnGateway_RedundancyType
+    ExternalVpnGateway_RedundancyType (..),
+
+    -- ** ExternalVpnGatewayInterface
+    ExternalVpnGatewayInterface (..),
+    newExternalVpnGatewayInterface,
+
+    -- ** ExternalVpnGatewayList
+    ExternalVpnGatewayList (..),
+    newExternalVpnGatewayList,
+
+    -- ** ExternalVpnGatewayList_Warning
+    ExternalVpnGatewayList_Warning (..),
+    newExternalVpnGatewayList_Warning,
+
+    -- ** ExternalVpnGatewayList_Warning_Code
+    ExternalVpnGatewayList_Warning_Code (..),
+
+    -- ** ExternalVpnGatewayList_Warning_DataItem
+    ExternalVpnGatewayList_Warning_DataItem (..),
+    newExternalVpnGatewayList_Warning_DataItem,
+
+    -- ** FileContentBuffer
+    FileContentBuffer (..),
+    newFileContentBuffer,
+
+    -- ** FileContentBuffer_FileType
+    FileContentBuffer_FileType (..),
+
+    -- ** Firewall
+    Firewall (..),
+    newFirewall,
+
+    -- ** Firewall_AllowedItem
+    Firewall_AllowedItem (..),
+    newFirewall_AllowedItem,
+
+    -- ** Firewall_DeniedItem
+    Firewall_DeniedItem (..),
+    newFirewall_DeniedItem,
+
+    -- ** Firewall_Direction
+    Firewall_Direction (..),
+
+    -- ** FirewallList
+    FirewallList (..),
+    newFirewallList,
+
+    -- ** FirewallList_Warning
+    FirewallList_Warning (..),
+    newFirewallList_Warning,
+
+    -- ** FirewallList_Warning_Code
+    FirewallList_Warning_Code (..),
+
+    -- ** FirewallList_Warning_DataItem
+    FirewallList_Warning_DataItem (..),
+    newFirewallList_Warning_DataItem,
+
+    -- ** FirewallLogConfig
+    FirewallLogConfig (..),
+    newFirewallLogConfig,
+
+    -- ** FirewallLogConfig_Metadata
+    FirewallLogConfig_Metadata (..),
+
+    -- ** FirewallPoliciesListAssociationsResponse
+    FirewallPoliciesListAssociationsResponse (..),
+    newFirewallPoliciesListAssociationsResponse,
+
+    -- ** FirewallPoliciesScopedList
+    FirewallPoliciesScopedList (..),
+    newFirewallPoliciesScopedList,
+
+    -- ** FirewallPoliciesScopedList_Warning
+    FirewallPoliciesScopedList_Warning (..),
+    newFirewallPoliciesScopedList_Warning,
+
+    -- ** FirewallPoliciesScopedList_Warning_Code
+    FirewallPoliciesScopedList_Warning_Code (..),
+
+    -- ** FirewallPoliciesScopedList_Warning_DataItem
+    FirewallPoliciesScopedList_Warning_DataItem (..),
+    newFirewallPoliciesScopedList_Warning_DataItem,
+
+    -- ** FirewallPolicy
+    FirewallPolicy (..),
+    newFirewallPolicy,
+
+    -- ** FirewallPolicyAssociation
+    FirewallPolicyAssociation (..),
+    newFirewallPolicyAssociation,
+
+    -- ** FirewallPolicyList
+    FirewallPolicyList (..),
+    newFirewallPolicyList,
+
+    -- ** FirewallPolicyList_Warning
+    FirewallPolicyList_Warning (..),
+    newFirewallPolicyList_Warning,
+
+    -- ** FirewallPolicyList_Warning_Code
+    FirewallPolicyList_Warning_Code (..),
+
+    -- ** FirewallPolicyList_Warning_DataItem
+    FirewallPolicyList_Warning_DataItem (..),
+    newFirewallPolicyList_Warning_DataItem,
+
+    -- ** FirewallPolicyRule
+    FirewallPolicyRule (..),
+    newFirewallPolicyRule,
+
+    -- ** FirewallPolicyRule_Direction
+    FirewallPolicyRule_Direction (..),
+
+    -- ** FirewallPolicyRuleMatcher
+    FirewallPolicyRuleMatcher (..),
+    newFirewallPolicyRuleMatcher,
+
+    -- ** FirewallPolicyRuleMatcherLayer4Config
+    FirewallPolicyRuleMatcherLayer4Config (..),
+    newFirewallPolicyRuleMatcherLayer4Config,
+
+    -- ** FirewallPolicyRuleSecureTag
+    FirewallPolicyRuleSecureTag (..),
+    newFirewallPolicyRuleSecureTag,
+
+    -- ** FirewallPolicyRuleSecureTag_State
+    FirewallPolicyRuleSecureTag_State (..),
+
+    -- ** FixedOrPercent
+    FixedOrPercent (..),
+    newFixedOrPercent,
+
+    -- ** ForwardingRule
+    ForwardingRule (..),
+    newForwardingRule,
+
+    -- ** ForwardingRule_IPProtocol
+    ForwardingRule_IPProtocol (..),
+
+    -- ** ForwardingRule_IpVersion
+    ForwardingRule_IpVersion (..),
+
+    -- ** ForwardingRule_Labels
+    ForwardingRule_Labels (..),
+    newForwardingRule_Labels,
+
+    -- ** ForwardingRule_LoadBalancingScheme
+    ForwardingRule_LoadBalancingScheme (..),
+
+    -- ** ForwardingRule_NetworkTier
+    ForwardingRule_NetworkTier (..),
+
+    -- ** ForwardingRule_PscConnectionStatus
+    ForwardingRule_PscConnectionStatus (..),
+
+    -- ** ForwardingRuleAggregatedList
+    ForwardingRuleAggregatedList (..),
+    newForwardingRuleAggregatedList,
+
+    -- ** ForwardingRuleAggregatedList_Items
+    ForwardingRuleAggregatedList_Items (..),
+    newForwardingRuleAggregatedList_Items,
+
+    -- ** ForwardingRuleAggregatedList_Warning
+    ForwardingRuleAggregatedList_Warning (..),
+    newForwardingRuleAggregatedList_Warning,
+
+    -- ** ForwardingRuleAggregatedList_Warning_Code
+    ForwardingRuleAggregatedList_Warning_Code (..),
+
+    -- ** ForwardingRuleAggregatedList_Warning_DataItem
+    ForwardingRuleAggregatedList_Warning_DataItem (..),
+    newForwardingRuleAggregatedList_Warning_DataItem,
+
+    -- ** ForwardingRuleList
+    ForwardingRuleList (..),
+    newForwardingRuleList,
+
+    -- ** ForwardingRuleList_Warning
+    ForwardingRuleList_Warning (..),
+    newForwardingRuleList_Warning,
+
+    -- ** ForwardingRuleList_Warning_Code
+    ForwardingRuleList_Warning_Code (..),
+
+    -- ** ForwardingRuleList_Warning_DataItem
+    ForwardingRuleList_Warning_DataItem (..),
+    newForwardingRuleList_Warning_DataItem,
+
+    -- ** ForwardingRuleReference
+    ForwardingRuleReference (..),
+    newForwardingRuleReference,
+
+    -- ** ForwardingRuleServiceDirectoryRegistration
+    ForwardingRuleServiceDirectoryRegistration (..),
+    newForwardingRuleServiceDirectoryRegistration,
+
+    -- ** ForwardingRulesScopedList
+    ForwardingRulesScopedList (..),
+    newForwardingRulesScopedList,
+
+    -- ** ForwardingRulesScopedList_Warning
+    ForwardingRulesScopedList_Warning (..),
+    newForwardingRulesScopedList_Warning,
+
+    -- ** ForwardingRulesScopedList_Warning_Code
+    ForwardingRulesScopedList_Warning_Code (..),
+
+    -- ** ForwardingRulesScopedList_Warning_DataItem
+    ForwardingRulesScopedList_Warning_DataItem (..),
+    newForwardingRulesScopedList_Warning_DataItem,
+
+    -- ** GRPCHealthCheck
+    GRPCHealthCheck (..),
+    newGRPCHealthCheck,
+
+    -- ** GRPCHealthCheck_PortSpecification
+    GRPCHealthCheck_PortSpecification (..),
+
+    -- ** GlobalAddressesMoveRequest
+    GlobalAddressesMoveRequest (..),
+    newGlobalAddressesMoveRequest,
+
+    -- ** GlobalNetworkEndpointGroupsAttachEndpointsRequest
+    GlobalNetworkEndpointGroupsAttachEndpointsRequest (..),
+    newGlobalNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** GlobalNetworkEndpointGroupsDetachEndpointsRequest
+    GlobalNetworkEndpointGroupsDetachEndpointsRequest (..),
+    newGlobalNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** GlobalOrganizationSetPolicyRequest
+    GlobalOrganizationSetPolicyRequest (..),
+    newGlobalOrganizationSetPolicyRequest,
+
+    -- ** GlobalSetLabelsRequest
+    GlobalSetLabelsRequest (..),
+    newGlobalSetLabelsRequest,
+
+    -- ** GlobalSetLabelsRequest_Labels
+    GlobalSetLabelsRequest_Labels (..),
+    newGlobalSetLabelsRequest_Labels,
+
+    -- ** GlobalSetPolicyRequest
+    GlobalSetPolicyRequest (..),
+    newGlobalSetPolicyRequest,
+
+    -- ** GuestAttributes
+    GuestAttributes (..),
+    newGuestAttributes,
+
+    -- ** GuestAttributesEntry
+    GuestAttributesEntry (..),
+    newGuestAttributesEntry,
+
+    -- ** GuestAttributesValue
+    GuestAttributesValue (..),
+    newGuestAttributesValue,
+
+    -- ** GuestOsFeature
+    GuestOsFeature (..),
+    newGuestOsFeature,
+
+    -- ** GuestOsFeature_Type
+    GuestOsFeature_Type (..),
+
+    -- ** HTTP2HealthCheck
+    HTTP2HealthCheck (..),
+    newHTTP2HealthCheck,
+
+    -- ** HTTP2HealthCheck_PortSpecification
+    HTTP2HealthCheck_PortSpecification (..),
+
+    -- ** HTTP2HealthCheck_ProxyHeader
+    HTTP2HealthCheck_ProxyHeader (..),
+
+    -- ** HTTPHealthCheck
+    HTTPHealthCheck (..),
+    newHTTPHealthCheck,
+
+    -- ** HTTPHealthCheck_PortSpecification
+    HTTPHealthCheck_PortSpecification (..),
+
+    -- ** HTTPHealthCheck_ProxyHeader
+    HTTPHealthCheck_ProxyHeader (..),
+
+    -- ** HTTPSHealthCheck
+    HTTPSHealthCheck (..),
+    newHTTPSHealthCheck,
+
+    -- ** HTTPSHealthCheck_PortSpecification
+    HTTPSHealthCheck_PortSpecification (..),
+
+    -- ** HTTPSHealthCheck_ProxyHeader
+    HTTPSHealthCheck_ProxyHeader (..),
+
+    -- ** HealthCheck
+    HealthCheck (..),
+    newHealthCheck,
+
+    -- ** HealthCheck_Type
+    HealthCheck_Type (..),
+
+    -- ** HealthCheckList
+    HealthCheckList (..),
+    newHealthCheckList,
+
+    -- ** HealthCheckList_Warning
+    HealthCheckList_Warning (..),
+    newHealthCheckList_Warning,
+
+    -- ** HealthCheckList_Warning_Code
+    HealthCheckList_Warning_Code (..),
+
+    -- ** HealthCheckList_Warning_DataItem
+    HealthCheckList_Warning_DataItem (..),
+    newHealthCheckList_Warning_DataItem,
+
+    -- ** HealthCheckLogConfig
+    HealthCheckLogConfig (..),
+    newHealthCheckLogConfig,
+
+    -- ** HealthCheckReference
+    HealthCheckReference (..),
+    newHealthCheckReference,
+
+    -- ** HealthCheckService
+    HealthCheckService (..),
+    newHealthCheckService,
+
+    -- ** HealthCheckService_HealthStatusAggregationPolicy
+    HealthCheckService_HealthStatusAggregationPolicy (..),
+
+    -- ** HealthCheckServiceReference
+    HealthCheckServiceReference (..),
+    newHealthCheckServiceReference,
+
+    -- ** HealthCheckServicesList
+    HealthCheckServicesList (..),
+    newHealthCheckServicesList,
+
+    -- ** HealthCheckServicesList_Warning
+    HealthCheckServicesList_Warning (..),
+    newHealthCheckServicesList_Warning,
+
+    -- ** HealthCheckServicesList_Warning_Code
+    HealthCheckServicesList_Warning_Code (..),
+
+    -- ** HealthCheckServicesList_Warning_DataItem
+    HealthCheckServicesList_Warning_DataItem (..),
+    newHealthCheckServicesList_Warning_DataItem,
+
+    -- ** HealthChecksAggregatedList
+    HealthChecksAggregatedList (..),
+    newHealthChecksAggregatedList,
+
+    -- ** HealthChecksAggregatedList_Items
+    HealthChecksAggregatedList_Items (..),
+    newHealthChecksAggregatedList_Items,
+
+    -- ** HealthChecksAggregatedList_Warning
+    HealthChecksAggregatedList_Warning (..),
+    newHealthChecksAggregatedList_Warning,
+
+    -- ** HealthChecksAggregatedList_Warning_Code
+    HealthChecksAggregatedList_Warning_Code (..),
+
+    -- ** HealthChecksAggregatedList_Warning_DataItem
+    HealthChecksAggregatedList_Warning_DataItem (..),
+    newHealthChecksAggregatedList_Warning_DataItem,
+
+    -- ** HealthChecksScopedList
+    HealthChecksScopedList (..),
+    newHealthChecksScopedList,
+
+    -- ** HealthChecksScopedList_Warning
+    HealthChecksScopedList_Warning (..),
+    newHealthChecksScopedList_Warning,
+
+    -- ** HealthChecksScopedList_Warning_Code
+    HealthChecksScopedList_Warning_Code (..),
+
+    -- ** HealthChecksScopedList_Warning_DataItem
+    HealthChecksScopedList_Warning_DataItem (..),
+    newHealthChecksScopedList_Warning_DataItem,
+
+    -- ** HealthStatus
+    HealthStatus (..),
+    newHealthStatus,
+
+    -- ** HealthStatus_Annotations
+    HealthStatus_Annotations (..),
+    newHealthStatus_Annotations,
+
+    -- ** HealthStatus_HealthState
+    HealthStatus_HealthState (..),
+
+    -- ** HealthStatus_Ipv6HealthState
+    HealthStatus_Ipv6HealthState (..),
+
+    -- ** HealthStatus_WeightError
+    HealthStatus_WeightError (..),
+
+    -- ** HealthStatusForNetworkEndpoint
+    HealthStatusForNetworkEndpoint (..),
+    newHealthStatusForNetworkEndpoint,
+
+    -- ** HealthStatusForNetworkEndpoint_HealthState
+    HealthStatusForNetworkEndpoint_HealthState (..),
+
+    -- ** HealthStatusForNetworkEndpoint_Ipv6HealthState
+    HealthStatusForNetworkEndpoint_Ipv6HealthState (..),
+
+    -- ** Help
+    Help (..),
+    newHelp,
+
+    -- ** HelpLink
+    HelpLink (..),
+    newHelpLink,
+
+    -- ** HostRule
+    HostRule (..),
+    newHostRule,
+
+    -- ** HttpFaultAbort
+    HttpFaultAbort (..),
+    newHttpFaultAbort,
+
+    -- ** HttpFaultDelay
+    HttpFaultDelay (..),
+    newHttpFaultDelay,
+
+    -- ** HttpFaultInjection
+    HttpFaultInjection (..),
+    newHttpFaultInjection,
+
+    -- ** HttpHeaderAction
+    HttpHeaderAction (..),
+    newHttpHeaderAction,
+
+    -- ** HttpHeaderMatch
+    HttpHeaderMatch (..),
+    newHttpHeaderMatch,
+
+    -- ** HttpHeaderOption
+    HttpHeaderOption (..),
+    newHttpHeaderOption,
+
+    -- ** HttpHealthCheck
+    HttpHealthCheck (..),
+    newHttpHealthCheck,
+
+    -- ** HttpHealthCheckList
+    HttpHealthCheckList (..),
+    newHttpHealthCheckList,
+
+    -- ** HttpHealthCheckList_Warning
+    HttpHealthCheckList_Warning (..),
+    newHttpHealthCheckList_Warning,
+
+    -- ** HttpHealthCheckList_Warning_Code
+    HttpHealthCheckList_Warning_Code (..),
+
+    -- ** HttpHealthCheckList_Warning_DataItem
+    HttpHealthCheckList_Warning_DataItem (..),
+    newHttpHealthCheckList_Warning_DataItem,
+
+    -- ** HttpQueryParameterMatch
+    HttpQueryParameterMatch (..),
+    newHttpQueryParameterMatch,
+
+    -- ** HttpRedirectAction
+    HttpRedirectAction (..),
+    newHttpRedirectAction,
+
+    -- ** HttpRedirectAction_RedirectResponseCode
+    HttpRedirectAction_RedirectResponseCode (..),
+
+    -- ** HttpRetryPolicy
+    HttpRetryPolicy (..),
+    newHttpRetryPolicy,
+
+    -- ** HttpRouteAction
+    HttpRouteAction (..),
+    newHttpRouteAction,
+
+    -- ** HttpRouteRule
+    HttpRouteRule (..),
+    newHttpRouteRule,
+
+    -- ** HttpRouteRuleMatch
+    HttpRouteRuleMatch (..),
+    newHttpRouteRuleMatch,
+
+    -- ** HttpsHealthCheck
+    HttpsHealthCheck (..),
+    newHttpsHealthCheck,
+
+    -- ** HttpsHealthCheckList
+    HttpsHealthCheckList (..),
+    newHttpsHealthCheckList,
+
+    -- ** HttpsHealthCheckList_Warning
+    HttpsHealthCheckList_Warning (..),
+    newHttpsHealthCheckList_Warning,
+
+    -- ** HttpsHealthCheckList_Warning_Code
+    HttpsHealthCheckList_Warning_Code (..),
+
+    -- ** HttpsHealthCheckList_Warning_DataItem
+    HttpsHealthCheckList_Warning_DataItem (..),
+    newHttpsHealthCheckList_Warning_DataItem,
+
+    -- ** Image
+    Image (..),
+    newImage,
+
+    -- ** Image_Architecture
+    Image_Architecture (..),
+
+    -- ** Image_Labels
+    Image_Labels (..),
+    newImage_Labels,
+
+    -- ** Image_RawDisk
+    Image_RawDisk (..),
+    newImage_RawDisk,
+
+    -- ** Image_RawDisk_ContainerType
+    Image_RawDisk_ContainerType (..),
+
+    -- ** Image_SourceType
+    Image_SourceType (..),
+
+    -- ** Image_Status
+    Image_Status (..),
+
+    -- ** ImageFamilyView
+    ImageFamilyView (..),
+    newImageFamilyView,
+
+    -- ** ImageList
+    ImageList (..),
+    newImageList,
+
+    -- ** ImageList_Warning
+    ImageList_Warning (..),
+    newImageList_Warning,
+
+    -- ** ImageList_Warning_Code
+    ImageList_Warning_Code (..),
+
+    -- ** ImageList_Warning_DataItem
+    ImageList_Warning_DataItem (..),
+    newImageList_Warning_DataItem,
+
+    -- ** InitialStateConfig
+    InitialStateConfig (..),
+    newInitialStateConfig,
+
+    -- ** Instance
+    Instance (..),
+    newInstance,
+
+    -- ** Instance_KeyRevocationActionType
+    Instance_KeyRevocationActionType (..),
+
+    -- ** Instance_Labels
+    Instance_Labels (..),
+    newInstance_Labels,
+
+    -- ** Instance_PrivateIpv6GoogleAccess
+    Instance_PrivateIpv6GoogleAccess (..),
+
+    -- ** Instance_Status
+    Instance_Status (..),
+
+    -- ** InstanceAggregatedList
+    InstanceAggregatedList (..),
+    newInstanceAggregatedList,
+
+    -- ** InstanceAggregatedList_Items
+    InstanceAggregatedList_Items (..),
+    newInstanceAggregatedList_Items,
+
+    -- ** InstanceAggregatedList_Warning
+    InstanceAggregatedList_Warning (..),
+    newInstanceAggregatedList_Warning,
+
+    -- ** InstanceAggregatedList_Warning_Code
+    InstanceAggregatedList_Warning_Code (..),
+
+    -- ** InstanceAggregatedList_Warning_DataItem
+    InstanceAggregatedList_Warning_DataItem (..),
+    newInstanceAggregatedList_Warning_DataItem,
+
+    -- ** InstanceConsumptionData
+    InstanceConsumptionData (..),
+    newInstanceConsumptionData,
+
+    -- ** InstanceConsumptionInfo
+    InstanceConsumptionInfo (..),
+    newInstanceConsumptionInfo,
+
+    -- ** InstanceGroup
+    InstanceGroup (..),
+    newInstanceGroup,
+
+    -- ** InstanceGroupAggregatedList
+    InstanceGroupAggregatedList (..),
+    newInstanceGroupAggregatedList,
+
+    -- ** InstanceGroupAggregatedList_Items
+    InstanceGroupAggregatedList_Items (..),
+    newInstanceGroupAggregatedList_Items,
+
+    -- ** InstanceGroupAggregatedList_Warning
+    InstanceGroupAggregatedList_Warning (..),
+    newInstanceGroupAggregatedList_Warning,
+
+    -- ** InstanceGroupAggregatedList_Warning_Code
+    InstanceGroupAggregatedList_Warning_Code (..),
+
+    -- ** InstanceGroupAggregatedList_Warning_DataItem
+    InstanceGroupAggregatedList_Warning_DataItem (..),
+    newInstanceGroupAggregatedList_Warning_DataItem,
+
+    -- ** InstanceGroupList
+    InstanceGroupList (..),
+    newInstanceGroupList,
+
+    -- ** InstanceGroupList_Warning
+    InstanceGroupList_Warning (..),
+    newInstanceGroupList_Warning,
+
+    -- ** InstanceGroupList_Warning_Code
+    InstanceGroupList_Warning_Code (..),
+
+    -- ** InstanceGroupList_Warning_DataItem
+    InstanceGroupList_Warning_DataItem (..),
+    newInstanceGroupList_Warning_DataItem,
+
+    -- ** InstanceGroupManager
+    InstanceGroupManager (..),
+    newInstanceGroupManager,
+
+    -- ** InstanceGroupManager_ListManagedInstancesResults
+    InstanceGroupManager_ListManagedInstancesResults (..),
+
+    -- ** InstanceGroupManagerActionsSummary
+    InstanceGroupManagerActionsSummary (..),
+    newInstanceGroupManagerActionsSummary,
+
+    -- ** InstanceGroupManagerAggregatedList
+    InstanceGroupManagerAggregatedList (..),
+    newInstanceGroupManagerAggregatedList,
+
+    -- ** InstanceGroupManagerAggregatedList_Items
+    InstanceGroupManagerAggregatedList_Items (..),
+    newInstanceGroupManagerAggregatedList_Items,
+
+    -- ** InstanceGroupManagerAggregatedList_Warning
+    InstanceGroupManagerAggregatedList_Warning (..),
+    newInstanceGroupManagerAggregatedList_Warning,
+
+    -- ** InstanceGroupManagerAggregatedList_Warning_Code
+    InstanceGroupManagerAggregatedList_Warning_Code (..),
+
+    -- ** InstanceGroupManagerAggregatedList_Warning_DataItem
+    InstanceGroupManagerAggregatedList_Warning_DataItem (..),
+    newInstanceGroupManagerAggregatedList_Warning_DataItem,
+
+    -- ** InstanceGroupManagerAllInstancesConfig
+    InstanceGroupManagerAllInstancesConfig (..),
+    newInstanceGroupManagerAllInstancesConfig,
+
+    -- ** InstanceGroupManagerAutoHealingPolicy
+    InstanceGroupManagerAutoHealingPolicy (..),
+    newInstanceGroupManagerAutoHealingPolicy,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicy
+    InstanceGroupManagerInstanceFlexibilityPolicy (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicy,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections
+    InstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
+    InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection,
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy
+    InstanceGroupManagerInstanceLifecyclePolicy (..),
+    newInstanceGroupManagerInstanceLifecyclePolicy,
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy_DefaultActionOnFailure
+    InstanceGroupManagerInstanceLifecyclePolicy_DefaultActionOnFailure (..),
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy_ForceUpdateOnRepair
+    InstanceGroupManagerInstanceLifecyclePolicy_ForceUpdateOnRepair (..),
+
+    -- ** InstanceGroupManagerList
+    InstanceGroupManagerList (..),
+    newInstanceGroupManagerList,
+
+    -- ** InstanceGroupManagerList_Warning
+    InstanceGroupManagerList_Warning (..),
+    newInstanceGroupManagerList_Warning,
+
+    -- ** InstanceGroupManagerList_Warning_Code
+    InstanceGroupManagerList_Warning_Code (..),
+
+    -- ** InstanceGroupManagerList_Warning_DataItem
+    InstanceGroupManagerList_Warning_DataItem (..),
+    newInstanceGroupManagerList_Warning_DataItem,
+
+    -- ** InstanceGroupManagerResizeRequest
+    InstanceGroupManagerResizeRequest (..),
+    newInstanceGroupManagerResizeRequest,
+
+    -- ** InstanceGroupManagerResizeRequest_State
+    InstanceGroupManagerResizeRequest_State (..),
+
+    -- ** InstanceGroupManagerResizeRequestStatus
+    InstanceGroupManagerResizeRequestStatus (..),
+    newInstanceGroupManagerResizeRequestStatus,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error
+    InstanceGroupManagerResizeRequestStatus_Error (..),
+    newInstanceGroupManagerResizeRequestStatus_Error,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem
+    InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem (..),
+    newInstanceGroupManagerResizeRequestStatus_Error_ErrorsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem
+    InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem (..),
+    newInstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt
+    InstanceGroupManagerResizeRequestStatusLastAttempt (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse
+    InstanceGroupManagerResizeRequestsListResponse (..),
+    newInstanceGroupManagerResizeRequestsListResponse,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning
+    InstanceGroupManagerResizeRequestsListResponse_Warning (..),
+    newInstanceGroupManagerResizeRequestsListResponse_Warning,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning_Code
+    InstanceGroupManagerResizeRequestsListResponse_Warning_Code (..),
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning_DataItem
+    InstanceGroupManagerResizeRequestsListResponse_Warning_DataItem (..),
+    newInstanceGroupManagerResizeRequestsListResponse_Warning_DataItem,
+
+    -- ** InstanceGroupManagerResourcePolicies
+    InstanceGroupManagerResourcePolicies (..),
+    newInstanceGroupManagerResourcePolicies,
+
+    -- ** InstanceGroupManagerStandbyPolicy
+    InstanceGroupManagerStandbyPolicy (..),
+    newInstanceGroupManagerStandbyPolicy,
+
+    -- ** InstanceGroupManagerStandbyPolicy_Mode
+    InstanceGroupManagerStandbyPolicy_Mode (..),
+
+    -- ** InstanceGroupManagerStatus
+    InstanceGroupManagerStatus (..),
+    newInstanceGroupManagerStatus,
+
+    -- ** InstanceGroupManagerStatusAllInstancesConfig
+    InstanceGroupManagerStatusAllInstancesConfig (..),
+    newInstanceGroupManagerStatusAllInstancesConfig,
+
+    -- ** InstanceGroupManagerStatusStateful
+    InstanceGroupManagerStatusStateful (..),
+    newInstanceGroupManagerStatusStateful,
+
+    -- ** InstanceGroupManagerStatusStatefulPerInstanceConfigs
+    InstanceGroupManagerStatusStatefulPerInstanceConfigs (..),
+    newInstanceGroupManagerStatusStatefulPerInstanceConfigs,
+
+    -- ** InstanceGroupManagerStatusVersionTarget
+    InstanceGroupManagerStatusVersionTarget (..),
+    newInstanceGroupManagerStatusVersionTarget,
+
+    -- ** InstanceGroupManagerUpdatePolicy
+    InstanceGroupManagerUpdatePolicy (..),
+    newInstanceGroupManagerUpdatePolicy,
+
+    -- ** InstanceGroupManagerUpdatePolicy_InstanceRedistributionType
+    InstanceGroupManagerUpdatePolicy_InstanceRedistributionType (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_MinimalAction
+    InstanceGroupManagerUpdatePolicy_MinimalAction (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_MostDisruptiveAllowedAction
+    InstanceGroupManagerUpdatePolicy_MostDisruptiveAllowedAction (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_ReplacementMethod
+    InstanceGroupManagerUpdatePolicy_ReplacementMethod (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_Type
+    InstanceGroupManagerUpdatePolicy_Type (..),
+
+    -- ** InstanceGroupManagerVersion
+    InstanceGroupManagerVersion (..),
+    newInstanceGroupManagerVersion,
+
+    -- ** InstanceGroupManagersAbandonInstancesRequest
+    InstanceGroupManagersAbandonInstancesRequest (..),
+    newInstanceGroupManagersAbandonInstancesRequest,
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest
+    InstanceGroupManagersApplyUpdatesRequest (..),
+    newInstanceGroupManagersApplyUpdatesRequest,
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest_MinimalAction
+    InstanceGroupManagersApplyUpdatesRequest_MinimalAction (..),
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction
+    InstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction (..),
+
+    -- ** InstanceGroupManagersCreateInstancesRequest
+    InstanceGroupManagersCreateInstancesRequest (..),
+    newInstanceGroupManagersCreateInstancesRequest,
+
+    -- ** InstanceGroupManagersDeleteInstancesRequest
+    InstanceGroupManagersDeleteInstancesRequest (..),
+    newInstanceGroupManagersDeleteInstancesRequest,
+
+    -- ** InstanceGroupManagersDeletePerInstanceConfigsReq
+    InstanceGroupManagersDeletePerInstanceConfigsReq (..),
+    newInstanceGroupManagersDeletePerInstanceConfigsReq,
+
+    -- ** InstanceGroupManagersListErrorsResponse
+    InstanceGroupManagersListErrorsResponse (..),
+    newInstanceGroupManagersListErrorsResponse,
+
+    -- ** InstanceGroupManagersListManagedInstancesResponse
+    InstanceGroupManagersListManagedInstancesResponse (..),
+    newInstanceGroupManagersListManagedInstancesResponse,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp
+    InstanceGroupManagersListPerInstanceConfigsResp (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp_Warning,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning_Code
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning_Code (..),
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem,
+
+    -- ** InstanceGroupManagersPatchPerInstanceConfigsReq
+    InstanceGroupManagersPatchPerInstanceConfigsReq (..),
+    newInstanceGroupManagersPatchPerInstanceConfigsReq,
+
+    -- ** InstanceGroupManagersRecreateInstancesRequest
+    InstanceGroupManagersRecreateInstancesRequest (..),
+    newInstanceGroupManagersRecreateInstancesRequest,
+
+    -- ** InstanceGroupManagersResumeInstancesRequest
+    InstanceGroupManagersResumeInstancesRequest (..),
+    newInstanceGroupManagersResumeInstancesRequest,
+
+    -- ** InstanceGroupManagersScopedList
+    InstanceGroupManagersScopedList (..),
+    newInstanceGroupManagersScopedList,
+
+    -- ** InstanceGroupManagersScopedList_Warning
+    InstanceGroupManagersScopedList_Warning (..),
+    newInstanceGroupManagersScopedList_Warning,
+
+    -- ** InstanceGroupManagersScopedList_Warning_Code
+    InstanceGroupManagersScopedList_Warning_Code (..),
+
+    -- ** InstanceGroupManagersScopedList_Warning_DataItem
+    InstanceGroupManagersScopedList_Warning_DataItem (..),
+    newInstanceGroupManagersScopedList_Warning_DataItem,
+
+    -- ** InstanceGroupManagersSetInstanceTemplateRequest
+    InstanceGroupManagersSetInstanceTemplateRequest (..),
+    newInstanceGroupManagersSetInstanceTemplateRequest,
+
+    -- ** InstanceGroupManagersSetTargetPoolsRequest
+    InstanceGroupManagersSetTargetPoolsRequest (..),
+    newInstanceGroupManagersSetTargetPoolsRequest,
+
+    -- ** InstanceGroupManagersStartInstancesRequest
+    InstanceGroupManagersStartInstancesRequest (..),
+    newInstanceGroupManagersStartInstancesRequest,
+
+    -- ** InstanceGroupManagersStopInstancesRequest
+    InstanceGroupManagersStopInstancesRequest (..),
+    newInstanceGroupManagersStopInstancesRequest,
+
+    -- ** InstanceGroupManagersSuspendInstancesRequest
+    InstanceGroupManagersSuspendInstancesRequest (..),
+    newInstanceGroupManagersSuspendInstancesRequest,
+
+    -- ** InstanceGroupManagersUpdatePerInstanceConfigsReq
+    InstanceGroupManagersUpdatePerInstanceConfigsReq (..),
+    newInstanceGroupManagersUpdatePerInstanceConfigsReq,
+
+    -- ** InstanceGroupsAddInstancesRequest
+    InstanceGroupsAddInstancesRequest (..),
+    newInstanceGroupsAddInstancesRequest,
+
+    -- ** InstanceGroupsListInstances
+    InstanceGroupsListInstances (..),
+    newInstanceGroupsListInstances,
+
+    -- ** InstanceGroupsListInstances_Warning
+    InstanceGroupsListInstances_Warning (..),
+    newInstanceGroupsListInstances_Warning,
+
+    -- ** InstanceGroupsListInstances_Warning_Code
+    InstanceGroupsListInstances_Warning_Code (..),
+
+    -- ** InstanceGroupsListInstances_Warning_DataItem
+    InstanceGroupsListInstances_Warning_DataItem (..),
+    newInstanceGroupsListInstances_Warning_DataItem,
+
+    -- ** InstanceGroupsListInstancesRequest
+    InstanceGroupsListInstancesRequest (..),
+    newInstanceGroupsListInstancesRequest,
+
+    -- ** InstanceGroupsListInstancesRequest_InstanceState
+    InstanceGroupsListInstancesRequest_InstanceState (..),
+
+    -- ** InstanceGroupsRemoveInstancesRequest
+    InstanceGroupsRemoveInstancesRequest (..),
+    newInstanceGroupsRemoveInstancesRequest,
+
+    -- ** InstanceGroupsScopedList
+    InstanceGroupsScopedList (..),
+    newInstanceGroupsScopedList,
+
+    -- ** InstanceGroupsScopedList_Warning
+    InstanceGroupsScopedList_Warning (..),
+    newInstanceGroupsScopedList_Warning,
+
+    -- ** InstanceGroupsScopedList_Warning_Code
+    InstanceGroupsScopedList_Warning_Code (..),
+
+    -- ** InstanceGroupsScopedList_Warning_DataItem
+    InstanceGroupsScopedList_Warning_DataItem (..),
+    newInstanceGroupsScopedList_Warning_DataItem,
+
+    -- ** InstanceGroupsSetNamedPortsRequest
+    InstanceGroupsSetNamedPortsRequest (..),
+    newInstanceGroupsSetNamedPortsRequest,
+
+    -- ** InstanceList
+    InstanceList (..),
+    newInstanceList,
+
+    -- ** InstanceList_Warning
+    InstanceList_Warning (..),
+    newInstanceList_Warning,
+
+    -- ** InstanceList_Warning_Code
+    InstanceList_Warning_Code (..),
+
+    -- ** InstanceList_Warning_DataItem
+    InstanceList_Warning_DataItem (..),
+    newInstanceList_Warning_DataItem,
+
+    -- ** InstanceListReferrers
+    InstanceListReferrers (..),
+    newInstanceListReferrers,
+
+    -- ** InstanceListReferrers_Warning
+    InstanceListReferrers_Warning (..),
+    newInstanceListReferrers_Warning,
+
+    -- ** InstanceListReferrers_Warning_Code
+    InstanceListReferrers_Warning_Code (..),
+
+    -- ** InstanceListReferrers_Warning_DataItem
+    InstanceListReferrers_Warning_DataItem (..),
+    newInstanceListReferrers_Warning_DataItem,
+
+    -- ** InstanceManagedByIgmError
+    InstanceManagedByIgmError (..),
+    newInstanceManagedByIgmError,
+
+    -- ** InstanceManagedByIgmErrorInstanceActionDetails
+    InstanceManagedByIgmErrorInstanceActionDetails (..),
+    newInstanceManagedByIgmErrorInstanceActionDetails,
+
+    -- ** InstanceManagedByIgmErrorInstanceActionDetails_Action
+    InstanceManagedByIgmErrorInstanceActionDetails_Action (..),
+
+    -- ** InstanceManagedByIgmErrorManagedInstanceError
+    InstanceManagedByIgmErrorManagedInstanceError (..),
+    newInstanceManagedByIgmErrorManagedInstanceError,
+
+    -- ** InstanceMoveRequest
+    InstanceMoveRequest (..),
+    newInstanceMoveRequest,
+
+    -- ** InstanceParams
+    InstanceParams (..),
+    newInstanceParams,
+
+    -- ** InstanceParams_ResourceManagerTags
+    InstanceParams_ResourceManagerTags (..),
+    newInstanceParams_ResourceManagerTags,
+
+    -- ** InstanceProperties
+    InstanceProperties (..),
+    newInstanceProperties,
+
+    -- ** InstanceProperties_KeyRevocationActionType
+    InstanceProperties_KeyRevocationActionType (..),
+
+    -- ** InstanceProperties_Labels
+    InstanceProperties_Labels (..),
+    newInstanceProperties_Labels,
+
+    -- ** InstanceProperties_PrivateIpv6GoogleAccess
+    InstanceProperties_PrivateIpv6GoogleAccess (..),
+
+    -- ** InstanceProperties_ResourceManagerTags
+    InstanceProperties_ResourceManagerTags (..),
+    newInstanceProperties_ResourceManagerTags,
+
+    -- ** InstancePropertiesPatch
+    InstancePropertiesPatch (..),
+    newInstancePropertiesPatch,
+
+    -- ** InstancePropertiesPatch_Labels
+    InstancePropertiesPatch_Labels (..),
+    newInstancePropertiesPatch_Labels,
+
+    -- ** InstancePropertiesPatch_Metadata
+    InstancePropertiesPatch_Metadata (..),
+    newInstancePropertiesPatch_Metadata,
+
+    -- ** InstanceReference
+    InstanceReference (..),
+    newInstanceReference,
+
+    -- ** InstanceSettings
+    InstanceSettings (..),
+    newInstanceSettings,
+
+    -- ** InstanceSettingsMetadata
+    InstanceSettingsMetadata (..),
+    newInstanceSettingsMetadata,
+
+    -- ** InstanceSettingsMetadata_Items
+    InstanceSettingsMetadata_Items (..),
+    newInstanceSettingsMetadata_Items,
+
+    -- ** InstanceTemplate
+    InstanceTemplate (..),
+    newInstanceTemplate,
+
+    -- ** InstanceTemplateAggregatedList
+    InstanceTemplateAggregatedList (..),
+    newInstanceTemplateAggregatedList,
+
+    -- ** InstanceTemplateAggregatedList_Items
+    InstanceTemplateAggregatedList_Items (..),
+    newInstanceTemplateAggregatedList_Items,
+
+    -- ** InstanceTemplateAggregatedList_Warning
+    InstanceTemplateAggregatedList_Warning (..),
+    newInstanceTemplateAggregatedList_Warning,
+
+    -- ** InstanceTemplateAggregatedList_Warning_Code
+    InstanceTemplateAggregatedList_Warning_Code (..),
+
+    -- ** InstanceTemplateAggregatedList_Warning_DataItem
+    InstanceTemplateAggregatedList_Warning_DataItem (..),
+    newInstanceTemplateAggregatedList_Warning_DataItem,
+
+    -- ** InstanceTemplateList
+    InstanceTemplateList (..),
+    newInstanceTemplateList,
+
+    -- ** InstanceTemplateList_Warning
+    InstanceTemplateList_Warning (..),
+    newInstanceTemplateList_Warning,
+
+    -- ** InstanceTemplateList_Warning_Code
+    InstanceTemplateList_Warning_Code (..),
+
+    -- ** InstanceTemplateList_Warning_DataItem
+    InstanceTemplateList_Warning_DataItem (..),
+    newInstanceTemplateList_Warning_DataItem,
+
+    -- ** InstanceTemplatesScopedList
+    InstanceTemplatesScopedList (..),
+    newInstanceTemplatesScopedList,
+
+    -- ** InstanceTemplatesScopedList_Warning
+    InstanceTemplatesScopedList_Warning (..),
+    newInstanceTemplatesScopedList_Warning,
+
+    -- ** InstanceTemplatesScopedList_Warning_Code
+    InstanceTemplatesScopedList_Warning_Code (..),
+
+    -- ** InstanceTemplatesScopedList_Warning_DataItem
+    InstanceTemplatesScopedList_Warning_DataItem (..),
+    newInstanceTemplatesScopedList_Warning_DataItem,
+
+    -- ** InstanceWithNamedPorts
+    InstanceWithNamedPorts (..),
+    newInstanceWithNamedPorts,
+
+    -- ** InstanceWithNamedPorts_Status
+    InstanceWithNamedPorts_Status (..),
+
+    -- ** InstancesAddResourcePoliciesRequest
+    InstancesAddResourcePoliciesRequest (..),
+    newInstancesAddResourcePoliciesRequest,
+
+    -- ** InstancesBulkInsertOperationMetadata
+    InstancesBulkInsertOperationMetadata (..),
+    newInstancesBulkInsertOperationMetadata,
+
+    -- ** InstancesBulkInsertOperationMetadata_PerLocationStatus
+    InstancesBulkInsertOperationMetadata_PerLocationStatus (..),
+    newInstancesBulkInsertOperationMetadata_PerLocationStatus,
+
+    -- ** InstancesGetEffectiveFirewallsResponse
+    InstancesGetEffectiveFirewallsResponse (..),
+    newInstancesGetEffectiveFirewallsResponse,
+
+    -- ** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** InstancesRemoveResourcePoliciesRequest
+    InstancesRemoveResourcePoliciesRequest (..),
+    newInstancesRemoveResourcePoliciesRequest,
+
+    -- ** InstancesReportHostAsFaultyRequest
+    InstancesReportHostAsFaultyRequest (..),
+    newInstancesReportHostAsFaultyRequest,
+
+    -- ** InstancesReportHostAsFaultyRequest_DisruptionSchedule
+    InstancesReportHostAsFaultyRequest_DisruptionSchedule (..),
+
+    -- ** InstancesReportHostAsFaultyRequestFaultReason
+    InstancesReportHostAsFaultyRequestFaultReason (..),
+    newInstancesReportHostAsFaultyRequestFaultReason,
+
+    -- ** InstancesReportHostAsFaultyRequestFaultReason_Behavior
+    InstancesReportHostAsFaultyRequestFaultReason_Behavior (..),
+
+    -- ** InstancesScopedList
+    InstancesScopedList (..),
+    newInstancesScopedList,
+
+    -- ** InstancesScopedList_Warning
+    InstancesScopedList_Warning (..),
+    newInstancesScopedList_Warning,
+
+    -- ** InstancesScopedList_Warning_Code
+    InstancesScopedList_Warning_Code (..),
+
+    -- ** InstancesScopedList_Warning_DataItem
+    InstancesScopedList_Warning_DataItem (..),
+    newInstancesScopedList_Warning_DataItem,
+
+    -- ** InstancesSetLabelsRequest
+    InstancesSetLabelsRequest (..),
+    newInstancesSetLabelsRequest,
+
+    -- ** InstancesSetLabelsRequest_Labels
+    InstancesSetLabelsRequest_Labels (..),
+    newInstancesSetLabelsRequest_Labels,
+
+    -- ** InstancesSetMachineResourcesRequest
+    InstancesSetMachineResourcesRequest (..),
+    newInstancesSetMachineResourcesRequest,
+
+    -- ** InstancesSetMachineTypeRequest
+    InstancesSetMachineTypeRequest (..),
+    newInstancesSetMachineTypeRequest,
+
+    -- ** InstancesSetMinCpuPlatformRequest
+    InstancesSetMinCpuPlatformRequest (..),
+    newInstancesSetMinCpuPlatformRequest,
+
+    -- ** InstancesSetNameRequest
+    InstancesSetNameRequest (..),
+    newInstancesSetNameRequest,
+
+    -- ** InstancesSetSecurityPolicyRequest
+    InstancesSetSecurityPolicyRequest (..),
+    newInstancesSetSecurityPolicyRequest,
+
+    -- ** InstancesSetServiceAccountRequest
+    InstancesSetServiceAccountRequest (..),
+    newInstancesSetServiceAccountRequest,
+
+    -- ** InstancesStartWithEncryptionKeyRequest
+    InstancesStartWithEncryptionKeyRequest (..),
+    newInstancesStartWithEncryptionKeyRequest,
+
+    -- ** InstantSnapshot
+    InstantSnapshot (..),
+    newInstantSnapshot,
+
+    -- ** InstantSnapshot_Architecture
+    InstantSnapshot_Architecture (..),
+
+    -- ** InstantSnapshot_Labels
+    InstantSnapshot_Labels (..),
+    newInstantSnapshot_Labels,
+
+    -- ** InstantSnapshot_Status
+    InstantSnapshot_Status (..),
+
+    -- ** InstantSnapshotAggregatedList
+    InstantSnapshotAggregatedList (..),
+    newInstantSnapshotAggregatedList,
+
+    -- ** InstantSnapshotAggregatedList_Items
+    InstantSnapshotAggregatedList_Items (..),
+    newInstantSnapshotAggregatedList_Items,
+
+    -- ** InstantSnapshotAggregatedList_Warning
+    InstantSnapshotAggregatedList_Warning (..),
+    newInstantSnapshotAggregatedList_Warning,
+
+    -- ** InstantSnapshotAggregatedList_Warning_Code
+    InstantSnapshotAggregatedList_Warning_Code (..),
+
+    -- ** InstantSnapshotAggregatedList_Warning_DataItem
+    InstantSnapshotAggregatedList_Warning_DataItem (..),
+    newInstantSnapshotAggregatedList_Warning_DataItem,
+
+    -- ** InstantSnapshotList
+    InstantSnapshotList (..),
+    newInstantSnapshotList,
+
+    -- ** InstantSnapshotList_Warning
+    InstantSnapshotList_Warning (..),
+    newInstantSnapshotList_Warning,
+
+    -- ** InstantSnapshotList_Warning_Code
+    InstantSnapshotList_Warning_Code (..),
+
+    -- ** InstantSnapshotList_Warning_DataItem
+    InstantSnapshotList_Warning_DataItem (..),
+    newInstantSnapshotList_Warning_DataItem,
+
+    -- ** InstantSnapshotResourceStatus
+    InstantSnapshotResourceStatus (..),
+    newInstantSnapshotResourceStatus,
+
+    -- ** InstantSnapshotsScopedList
+    InstantSnapshotsScopedList (..),
+    newInstantSnapshotsScopedList,
+
+    -- ** InstantSnapshotsScopedList_Warning
+    InstantSnapshotsScopedList_Warning (..),
+    newInstantSnapshotsScopedList_Warning,
+
+    -- ** InstantSnapshotsScopedList_Warning_Code
+    InstantSnapshotsScopedList_Warning_Code (..),
+
+    -- ** InstantSnapshotsScopedList_Warning_DataItem
+    InstantSnapshotsScopedList_Warning_DataItem (..),
+    newInstantSnapshotsScopedList_Warning_DataItem,
+
+    -- ** Int64RangeMatch
+    Int64RangeMatch (..),
+    newInt64RangeMatch,
+
+    -- ** Interconnect
+    Interconnect (..),
+    newInterconnect,
+
+    -- ** Interconnect_AvailableFeaturesItem
+    Interconnect_AvailableFeaturesItem (..),
+
+    -- ** Interconnect_InterconnectType
+    Interconnect_InterconnectType (..),
+
+    -- ** Interconnect_Labels
+    Interconnect_Labels (..),
+    newInterconnect_Labels,
+
+    -- ** Interconnect_LinkType
+    Interconnect_LinkType (..),
+
+    -- ** Interconnect_OperationalStatus
+    Interconnect_OperationalStatus (..),
+
+    -- ** Interconnect_RequestedFeaturesItem
+    Interconnect_RequestedFeaturesItem (..),
+
+    -- ** Interconnect_State
+    Interconnect_State (..),
+
+    -- ** InterconnectAttachment
+    InterconnectAttachment (..),
+    newInterconnectAttachment,
+
+    -- ** InterconnectAttachment_Bandwidth
+    InterconnectAttachment_Bandwidth (..),
+
+    -- ** InterconnectAttachment_EdgeAvailabilityDomain
+    InterconnectAttachment_EdgeAvailabilityDomain (..),
+
+    -- ** InterconnectAttachment_Encryption
+    InterconnectAttachment_Encryption (..),
+
+    -- ** InterconnectAttachment_Labels
+    InterconnectAttachment_Labels (..),
+    newInterconnectAttachment_Labels,
+
+    -- ** InterconnectAttachment_OperationalStatus
+    InterconnectAttachment_OperationalStatus (..),
+
+    -- ** InterconnectAttachment_StackType
+    InterconnectAttachment_StackType (..),
+
+    -- ** InterconnectAttachment_State
+    InterconnectAttachment_State (..),
+
+    -- ** InterconnectAttachment_Type
+    InterconnectAttachment_Type (..),
+
+    -- ** InterconnectAttachmentAggregatedList
+    InterconnectAttachmentAggregatedList (..),
+    newInterconnectAttachmentAggregatedList,
+
+    -- ** InterconnectAttachmentAggregatedList_Items
+    InterconnectAttachmentAggregatedList_Items (..),
+    newInterconnectAttachmentAggregatedList_Items,
+
+    -- ** InterconnectAttachmentAggregatedList_Warning
+    InterconnectAttachmentAggregatedList_Warning (..),
+    newInterconnectAttachmentAggregatedList_Warning,
+
+    -- ** InterconnectAttachmentAggregatedList_Warning_Code
+    InterconnectAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentAggregatedList_Warning_DataItem
+    InterconnectAttachmentAggregatedList_Warning_DataItem (..),
+    newInterconnectAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** InterconnectAttachmentConfigurationConstraints
+    InterconnectAttachmentConfigurationConstraints (..),
+    newInterconnectAttachmentConfigurationConstraints,
+
+    -- ** InterconnectAttachmentConfigurationConstraints_BgpMd5
+    InterconnectAttachmentConfigurationConstraints_BgpMd5 (..),
+
+    -- ** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
+    InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange (..),
+    newInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange,
+
+    -- ** InterconnectAttachmentList
+    InterconnectAttachmentList (..),
+    newInterconnectAttachmentList,
+
+    -- ** InterconnectAttachmentList_Warning
+    InterconnectAttachmentList_Warning (..),
+    newInterconnectAttachmentList_Warning,
+
+    -- ** InterconnectAttachmentList_Warning_Code
+    InterconnectAttachmentList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentList_Warning_DataItem
+    InterconnectAttachmentList_Warning_DataItem (..),
+    newInterconnectAttachmentList_Warning_DataItem,
+
+    -- ** InterconnectAttachmentPartnerMetadata
+    InterconnectAttachmentPartnerMetadata (..),
+    newInterconnectAttachmentPartnerMetadata,
+
+    -- ** InterconnectAttachmentPrivateInfo
+    InterconnectAttachmentPrivateInfo (..),
+    newInterconnectAttachmentPrivateInfo,
+
+    -- ** InterconnectAttachmentsScopedList
+    InterconnectAttachmentsScopedList (..),
+    newInterconnectAttachmentsScopedList,
+
+    -- ** InterconnectAttachmentsScopedList_Warning
+    InterconnectAttachmentsScopedList_Warning (..),
+    newInterconnectAttachmentsScopedList_Warning,
+
+    -- ** InterconnectAttachmentsScopedList_Warning_Code
+    InterconnectAttachmentsScopedList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentsScopedList_Warning_DataItem
+    InterconnectAttachmentsScopedList_Warning_DataItem (..),
+    newInterconnectAttachmentsScopedList_Warning_DataItem,
+
+    -- ** InterconnectCircuitInfo
+    InterconnectCircuitInfo (..),
+    newInterconnectCircuitInfo,
+
+    -- ** InterconnectDiagnostics
+    InterconnectDiagnostics (..),
+    newInterconnectDiagnostics,
+
+    -- ** InterconnectDiagnostics_BundleAggregationType
+    InterconnectDiagnostics_BundleAggregationType (..),
+
+    -- ** InterconnectDiagnostics_BundleOperationalStatus
+    InterconnectDiagnostics_BundleOperationalStatus (..),
+
+    -- ** InterconnectDiagnosticsARPEntry
+    InterconnectDiagnosticsARPEntry (..),
+    newInterconnectDiagnosticsARPEntry,
+
+    -- ** InterconnectDiagnosticsLinkLACPStatus
+    InterconnectDiagnosticsLinkLACPStatus (..),
+    newInterconnectDiagnosticsLinkLACPStatus,
+
+    -- ** InterconnectDiagnosticsLinkLACPStatus_State
+    InterconnectDiagnosticsLinkLACPStatus_State (..),
+
+    -- ** InterconnectDiagnosticsLinkOpticalPower
+    InterconnectDiagnosticsLinkOpticalPower (..),
+    newInterconnectDiagnosticsLinkOpticalPower,
+
+    -- ** InterconnectDiagnosticsLinkOpticalPower_State
+    InterconnectDiagnosticsLinkOpticalPower_State (..),
+
+    -- ** InterconnectDiagnosticsLinkStatus
+    InterconnectDiagnosticsLinkStatus (..),
+    newInterconnectDiagnosticsLinkStatus,
+
+    -- ** InterconnectDiagnosticsLinkStatus_OperationalStatus
+    InterconnectDiagnosticsLinkStatus_OperationalStatus (..),
+
+    -- ** InterconnectDiagnosticsMacsecStatus
+    InterconnectDiagnosticsMacsecStatus (..),
+    newInterconnectDiagnosticsMacsecStatus,
+
+    -- ** InterconnectList
+    InterconnectList (..),
+    newInterconnectList,
+
+    -- ** InterconnectList_Warning
+    InterconnectList_Warning (..),
+    newInterconnectList_Warning,
+
+    -- ** InterconnectList_Warning_Code
+    InterconnectList_Warning_Code (..),
+
+    -- ** InterconnectList_Warning_DataItem
+    InterconnectList_Warning_DataItem (..),
+    newInterconnectList_Warning_DataItem,
+
+    -- ** InterconnectLocation
+    InterconnectLocation (..),
+    newInterconnectLocation,
+
+    -- ** InterconnectLocation_AvailableFeaturesItem
+    InterconnectLocation_AvailableFeaturesItem (..),
+
+    -- ** InterconnectLocation_AvailableLinkTypesItem
+    InterconnectLocation_AvailableLinkTypesItem (..),
+
+    -- ** InterconnectLocation_Continent
+    InterconnectLocation_Continent (..),
+
+    -- ** InterconnectLocation_Status
+    InterconnectLocation_Status (..),
+
+    -- ** InterconnectLocationList
+    InterconnectLocationList (..),
+    newInterconnectLocationList,
+
+    -- ** InterconnectLocationList_Warning
+    InterconnectLocationList_Warning (..),
+    newInterconnectLocationList_Warning,
+
+    -- ** InterconnectLocationList_Warning_Code
+    InterconnectLocationList_Warning_Code (..),
+
+    -- ** InterconnectLocationList_Warning_DataItem
+    InterconnectLocationList_Warning_DataItem (..),
+    newInterconnectLocationList_Warning_DataItem,
+
+    -- ** InterconnectLocationRegionInfo
+    InterconnectLocationRegionInfo (..),
+    newInterconnectLocationRegionInfo,
+
+    -- ** InterconnectLocationRegionInfo_LocationPresence
+    InterconnectLocationRegionInfo_LocationPresence (..),
+
+    -- ** InterconnectMacsec
+    InterconnectMacsec (..),
+    newInterconnectMacsec,
+
+    -- ** InterconnectMacsecConfig
+    InterconnectMacsecConfig (..),
+    newInterconnectMacsecConfig,
+
+    -- ** InterconnectMacsecConfigPreSharedKey
+    InterconnectMacsecConfigPreSharedKey (..),
+    newInterconnectMacsecConfigPreSharedKey,
+
+    -- ** InterconnectMacsecPreSharedKey
+    InterconnectMacsecPreSharedKey (..),
+    newInterconnectMacsecPreSharedKey,
+
+    -- ** InterconnectOutageNotification
+    InterconnectOutageNotification (..),
+    newInterconnectOutageNotification,
+
+    -- ** InterconnectOutageNotification_IssueType
+    InterconnectOutageNotification_IssueType (..),
+
+    -- ** InterconnectOutageNotification_Source
+    InterconnectOutageNotification_Source (..),
+
+    -- ** InterconnectOutageNotification_State
+    InterconnectOutageNotification_State (..),
+
+    -- ** InterconnectRemoteLocation
+    InterconnectRemoteLocation (..),
+    newInterconnectRemoteLocation,
+
+    -- ** InterconnectRemoteLocation_Continent
+    InterconnectRemoteLocation_Continent (..),
+
+    -- ** InterconnectRemoteLocation_Lacp
+    InterconnectRemoteLocation_Lacp (..),
+
+    -- ** InterconnectRemoteLocation_Status
+    InterconnectRemoteLocation_Status (..),
+
+    -- ** InterconnectRemoteLocationConstraints
+    InterconnectRemoteLocationConstraints (..),
+    newInterconnectRemoteLocationConstraints,
+
+    -- ** InterconnectRemoteLocationConstraints_PortPairRemoteLocation
+    InterconnectRemoteLocationConstraints_PortPairRemoteLocation (..),
+
+    -- ** InterconnectRemoteLocationConstraints_PortPairVlan
+    InterconnectRemoteLocationConstraints_PortPairVlan (..),
+
+    -- ** InterconnectRemoteLocationConstraintsSubnetLengthRange
+    InterconnectRemoteLocationConstraintsSubnetLengthRange (..),
+    newInterconnectRemoteLocationConstraintsSubnetLengthRange,
+
+    -- ** InterconnectRemoteLocationList
+    InterconnectRemoteLocationList (..),
+    newInterconnectRemoteLocationList,
+
+    -- ** InterconnectRemoteLocationList_Warning
+    InterconnectRemoteLocationList_Warning (..),
+    newInterconnectRemoteLocationList_Warning,
+
+    -- ** InterconnectRemoteLocationList_Warning_Code
+    InterconnectRemoteLocationList_Warning_Code (..),
+
+    -- ** InterconnectRemoteLocationList_Warning_DataItem
+    InterconnectRemoteLocationList_Warning_DataItem (..),
+    newInterconnectRemoteLocationList_Warning_DataItem,
+
+    -- ** InterconnectRemoteLocationPermittedConnections
+    InterconnectRemoteLocationPermittedConnections (..),
+    newInterconnectRemoteLocationPermittedConnections,
+
+    -- ** InterconnectsGetDiagnosticsResponse
+    InterconnectsGetDiagnosticsResponse (..),
+    newInterconnectsGetDiagnosticsResponse,
+
+    -- ** InterconnectsGetMacsecConfigResponse
+    InterconnectsGetMacsecConfigResponse (..),
+    newInterconnectsGetMacsecConfigResponse,
+
+    -- ** License
+    License (..),
+    newLicense,
+
+    -- ** LicenseCode
+    LicenseCode (..),
+    newLicenseCode,
+
+    -- ** LicenseCode_State
+    LicenseCode_State (..),
+
+    -- ** LicenseCodeLicenseAlias
+    LicenseCodeLicenseAlias (..),
+    newLicenseCodeLicenseAlias,
+
+    -- ** LicenseResourceCommitment
+    LicenseResourceCommitment (..),
+    newLicenseResourceCommitment,
+
+    -- ** LicenseResourceRequirements
+    LicenseResourceRequirements (..),
+    newLicenseResourceRequirements,
+
+    -- ** LicensesListResponse
+    LicensesListResponse (..),
+    newLicensesListResponse,
+
+    -- ** LicensesListResponse_Warning
+    LicensesListResponse_Warning (..),
+    newLicensesListResponse_Warning,
+
+    -- ** LicensesListResponse_Warning_Code
+    LicensesListResponse_Warning_Code (..),
+
+    -- ** LicensesListResponse_Warning_DataItem
+    LicensesListResponse_Warning_DataItem (..),
+    newLicensesListResponse_Warning_DataItem,
+
+    -- ** LocalDisk
+    LocalDisk (..),
+    newLocalDisk,
+
+    -- ** LocalizedMessage
+    LocalizedMessage (..),
+    newLocalizedMessage,
+
+    -- ** LocationPolicy
+    LocationPolicy (..),
+    newLocationPolicy,
+
+    -- ** LocationPolicy_Locations
+    LocationPolicy_Locations (..),
+    newLocationPolicy_Locations,
+
+    -- ** LocationPolicy_TargetShape
+    LocationPolicy_TargetShape (..),
+
+    -- ** LocationPolicyLocation
+    LocationPolicyLocation (..),
+    newLocationPolicyLocation,
+
+    -- ** LocationPolicyLocation_Preference
+    LocationPolicyLocation_Preference (..),
+
+    -- ** LocationPolicyLocationConstraints
+    LocationPolicyLocationConstraints (..),
+    newLocationPolicyLocationConstraints,
+
+    -- ** MachineImage
+    MachineImage (..),
+    newMachineImage,
+
+    -- ** MachineImage_Status
+    MachineImage_Status (..),
+
+    -- ** MachineImageList
+    MachineImageList (..),
+    newMachineImageList,
+
+    -- ** MachineImageList_Warning
+    MachineImageList_Warning (..),
+    newMachineImageList_Warning,
+
+    -- ** MachineImageList_Warning_Code
+    MachineImageList_Warning_Code (..),
+
+    -- ** MachineImageList_Warning_DataItem
+    MachineImageList_Warning_DataItem (..),
+    newMachineImageList_Warning_DataItem,
+
+    -- ** MachineType
+    MachineType (..),
+    newMachineType,
+
+    -- ** MachineType_AcceleratorsItem
+    MachineType_AcceleratorsItem (..),
+    newMachineType_AcceleratorsItem,
+
+    -- ** MachineType_Architecture
+    MachineType_Architecture (..),
+
+    -- ** MachineType_ScratchDisksItem
+    MachineType_ScratchDisksItem (..),
+    newMachineType_ScratchDisksItem,
+
+    -- ** MachineTypeAggregatedList
+    MachineTypeAggregatedList (..),
+    newMachineTypeAggregatedList,
+
+    -- ** MachineTypeAggregatedList_Items
+    MachineTypeAggregatedList_Items (..),
+    newMachineTypeAggregatedList_Items,
+
+    -- ** MachineTypeAggregatedList_Warning
+    MachineTypeAggregatedList_Warning (..),
+    newMachineTypeAggregatedList_Warning,
+
+    -- ** MachineTypeAggregatedList_Warning_Code
+    MachineTypeAggregatedList_Warning_Code (..),
+
+    -- ** MachineTypeAggregatedList_Warning_DataItem
+    MachineTypeAggregatedList_Warning_DataItem (..),
+    newMachineTypeAggregatedList_Warning_DataItem,
+
+    -- ** MachineTypeList
+    MachineTypeList (..),
+    newMachineTypeList,
+
+    -- ** MachineTypeList_Warning
+    MachineTypeList_Warning (..),
+    newMachineTypeList_Warning,
+
+    -- ** MachineTypeList_Warning_Code
+    MachineTypeList_Warning_Code (..),
+
+    -- ** MachineTypeList_Warning_DataItem
+    MachineTypeList_Warning_DataItem (..),
+    newMachineTypeList_Warning_DataItem,
+
+    -- ** MachineTypesScopedList
+    MachineTypesScopedList (..),
+    newMachineTypesScopedList,
+
+    -- ** MachineTypesScopedList_Warning
+    MachineTypesScopedList_Warning (..),
+    newMachineTypesScopedList_Warning,
+
+    -- ** MachineTypesScopedList_Warning_Code
+    MachineTypesScopedList_Warning_Code (..),
+
+    -- ** MachineTypesScopedList_Warning_DataItem
+    MachineTypesScopedList_Warning_DataItem (..),
+    newMachineTypesScopedList_Warning_DataItem,
+
+    -- ** ManagedInstance
+    ManagedInstance (..),
+    newManagedInstance,
+
+    -- ** ManagedInstance_CurrentAction
+    ManagedInstance_CurrentAction (..),
+
+    -- ** ManagedInstance_InstanceStatus
+    ManagedInstance_InstanceStatus (..),
+
+    -- ** ManagedInstanceInstanceHealth
+    ManagedInstanceInstanceHealth (..),
+    newManagedInstanceInstanceHealth,
+
+    -- ** ManagedInstanceInstanceHealth_DetailedHealthState
+    ManagedInstanceInstanceHealth_DetailedHealthState (..),
+
+    -- ** ManagedInstanceLastAttempt
+    ManagedInstanceLastAttempt (..),
+    newManagedInstanceLastAttempt,
+
+    -- ** ManagedInstanceLastAttempt_Errors
+    ManagedInstanceLastAttempt_Errors (..),
+    newManagedInstanceLastAttempt_Errors,
+
+    -- ** ManagedInstanceLastAttempt_Errors_ErrorsItem
+    ManagedInstanceLastAttempt_Errors_ErrorsItem (..),
+    newManagedInstanceLastAttempt_Errors_ErrorsItem,
+
+    -- ** ManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem
+    ManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem (..),
+    newManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem,
+
+    -- ** ManagedInstancePropertiesFromFlexibilityPolicy
+    ManagedInstancePropertiesFromFlexibilityPolicy (..),
+    newManagedInstancePropertiesFromFlexibilityPolicy,
+
+    -- ** ManagedInstanceVersion
+    ManagedInstanceVersion (..),
+    newManagedInstanceVersion,
+
+    -- ** Metadata
+    Metadata (..),
+    newMetadata,
+
+    -- ** Metadata_ItemsItem
+    Metadata_ItemsItem (..),
+    newMetadata_ItemsItem,
+
+    -- ** MetadataFilter
+    MetadataFilter (..),
+    newMetadataFilter,
+
+    -- ** MetadataFilter_FilterMatchCriteria
+    MetadataFilter_FilterMatchCriteria (..),
+
+    -- ** MetadataFilterLabelMatch
+    MetadataFilterLabelMatch (..),
+    newMetadataFilterLabelMatch,
+
+    -- ** NamedPort
+    NamedPort (..),
+    newNamedPort,
+
+    -- ** NatIpInfo
+    NatIpInfo (..),
+    newNatIpInfo,
+
+    -- ** NatIpInfoNatIpInfoMapping
+    NatIpInfoNatIpInfoMapping (..),
+    newNatIpInfoNatIpInfoMapping,
+
+    -- ** NatIpInfoNatIpInfoMapping_Mode
+    NatIpInfoNatIpInfoMapping_Mode (..),
+
+    -- ** NatIpInfoNatIpInfoMapping_Usage
+    NatIpInfoNatIpInfoMapping_Usage (..),
+
+    -- ** NatIpInfoResponse
+    NatIpInfoResponse (..),
+    newNatIpInfoResponse,
+
+    -- ** Network
+    Network (..),
+    newNetwork,
+
+    -- ** Network_NetworkFirewallPolicyEnforcementOrder
+    Network_NetworkFirewallPolicyEnforcementOrder (..),
+
+    -- ** NetworkAttachment
+    NetworkAttachment (..),
+    newNetworkAttachment,
+
+    -- ** NetworkAttachment_ConnectionPreference
+    NetworkAttachment_ConnectionPreference (..),
+
+    -- ** NetworkAttachmentAggregatedList
+    NetworkAttachmentAggregatedList (..),
+    newNetworkAttachmentAggregatedList,
+
+    -- ** NetworkAttachmentAggregatedList_Items
+    NetworkAttachmentAggregatedList_Items (..),
+    newNetworkAttachmentAggregatedList_Items,
+
+    -- ** NetworkAttachmentAggregatedList_Warning
+    NetworkAttachmentAggregatedList_Warning (..),
+    newNetworkAttachmentAggregatedList_Warning,
+
+    -- ** NetworkAttachmentAggregatedList_Warning_Code
+    NetworkAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** NetworkAttachmentAggregatedList_Warning_DataItem
+    NetworkAttachmentAggregatedList_Warning_DataItem (..),
+    newNetworkAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** NetworkAttachmentConnectedEndpoint
+    NetworkAttachmentConnectedEndpoint (..),
+    newNetworkAttachmentConnectedEndpoint,
+
+    -- ** NetworkAttachmentConnectedEndpoint_Status
+    NetworkAttachmentConnectedEndpoint_Status (..),
+
+    -- ** NetworkAttachmentList
+    NetworkAttachmentList (..),
+    newNetworkAttachmentList,
+
+    -- ** NetworkAttachmentList_Warning
+    NetworkAttachmentList_Warning (..),
+    newNetworkAttachmentList_Warning,
+
+    -- ** NetworkAttachmentList_Warning_Code
+    NetworkAttachmentList_Warning_Code (..),
+
+    -- ** NetworkAttachmentList_Warning_DataItem
+    NetworkAttachmentList_Warning_DataItem (..),
+    newNetworkAttachmentList_Warning_DataItem,
+
+    -- ** NetworkAttachmentsScopedList
+    NetworkAttachmentsScopedList (..),
+    newNetworkAttachmentsScopedList,
+
+    -- ** NetworkAttachmentsScopedList_Warning
+    NetworkAttachmentsScopedList_Warning (..),
+    newNetworkAttachmentsScopedList_Warning,
+
+    -- ** NetworkAttachmentsScopedList_Warning_Code
+    NetworkAttachmentsScopedList_Warning_Code (..),
+
+    -- ** NetworkAttachmentsScopedList_Warning_DataItem
+    NetworkAttachmentsScopedList_Warning_DataItem (..),
+    newNetworkAttachmentsScopedList_Warning_DataItem,
+
+    -- ** NetworkEdgeSecurityService
+    NetworkEdgeSecurityService (..),
+    newNetworkEdgeSecurityService,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList
+    NetworkEdgeSecurityServiceAggregatedList (..),
+    newNetworkEdgeSecurityServiceAggregatedList,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Items
+    NetworkEdgeSecurityServiceAggregatedList_Items (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Items,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning
+    NetworkEdgeSecurityServiceAggregatedList_Warning (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Warning,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning_Code
+    NetworkEdgeSecurityServiceAggregatedList_Warning_Code (..),
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning_DataItem
+    NetworkEdgeSecurityServiceAggregatedList_Warning_DataItem (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Warning_DataItem,
+
+    -- ** NetworkEdgeSecurityServicesScopedList
+    NetworkEdgeSecurityServicesScopedList (..),
+    newNetworkEdgeSecurityServicesScopedList,
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning
+    NetworkEdgeSecurityServicesScopedList_Warning (..),
+    newNetworkEdgeSecurityServicesScopedList_Warning,
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning_Code
+    NetworkEdgeSecurityServicesScopedList_Warning_Code (..),
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning_DataItem
+    NetworkEdgeSecurityServicesScopedList_Warning_DataItem (..),
+    newNetworkEdgeSecurityServicesScopedList_Warning_DataItem,
+
+    -- ** NetworkEndpoint
+    NetworkEndpoint (..),
+    newNetworkEndpoint,
+
+    -- ** NetworkEndpoint_Annotations
+    NetworkEndpoint_Annotations (..),
+    newNetworkEndpoint_Annotations,
+
+    -- ** NetworkEndpointGroup
+    NetworkEndpointGroup (..),
+    newNetworkEndpointGroup,
+
+    -- ** NetworkEndpointGroup_Annotations
+    NetworkEndpointGroup_Annotations (..),
+    newNetworkEndpointGroup_Annotations,
+
+    -- ** NetworkEndpointGroup_NetworkEndpointType
+    NetworkEndpointGroup_NetworkEndpointType (..),
+
+    -- ** NetworkEndpointGroupAggregatedList
+    NetworkEndpointGroupAggregatedList (..),
+    newNetworkEndpointGroupAggregatedList,
+
+    -- ** NetworkEndpointGroupAggregatedList_Items
+    NetworkEndpointGroupAggregatedList_Items (..),
+    newNetworkEndpointGroupAggregatedList_Items,
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning
+    NetworkEndpointGroupAggregatedList_Warning (..),
+    newNetworkEndpointGroupAggregatedList_Warning,
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning_Code
+    NetworkEndpointGroupAggregatedList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning_DataItem
+    NetworkEndpointGroupAggregatedList_Warning_DataItem (..),
+    newNetworkEndpointGroupAggregatedList_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupAppEngine
+    NetworkEndpointGroupAppEngine (..),
+    newNetworkEndpointGroupAppEngine,
+
+    -- ** NetworkEndpointGroupCloudFunction
+    NetworkEndpointGroupCloudFunction (..),
+    newNetworkEndpointGroupCloudFunction,
+
+    -- ** NetworkEndpointGroupCloudRun
+    NetworkEndpointGroupCloudRun (..),
+    newNetworkEndpointGroupCloudRun,
+
+    -- ** NetworkEndpointGroupList
+    NetworkEndpointGroupList (..),
+    newNetworkEndpointGroupList,
+
+    -- ** NetworkEndpointGroupList_Warning
+    NetworkEndpointGroupList_Warning (..),
+    newNetworkEndpointGroupList_Warning,
+
+    -- ** NetworkEndpointGroupList_Warning_Code
+    NetworkEndpointGroupList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupList_Warning_DataItem
+    NetworkEndpointGroupList_Warning_DataItem (..),
+    newNetworkEndpointGroupList_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupPscData
+    NetworkEndpointGroupPscData (..),
+    newNetworkEndpointGroupPscData,
+
+    -- ** NetworkEndpointGroupPscData_PscConnectionStatus
+    NetworkEndpointGroupPscData_PscConnectionStatus (..),
+
+    -- ** NetworkEndpointGroupsAttachEndpointsRequest
+    NetworkEndpointGroupsAttachEndpointsRequest (..),
+    newNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsDetachEndpointsRequest
+    NetworkEndpointGroupsDetachEndpointsRequest (..),
+    newNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsListEndpointsRequest
+    NetworkEndpointGroupsListEndpointsRequest (..),
+    newNetworkEndpointGroupsListEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsListEndpointsRequest_HealthStatus
+    NetworkEndpointGroupsListEndpointsRequest_HealthStatus (..),
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints
+    NetworkEndpointGroupsListNetworkEndpoints (..),
+    newNetworkEndpointGroupsListNetworkEndpoints,
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning
+    NetworkEndpointGroupsListNetworkEndpoints_Warning (..),
+    newNetworkEndpointGroupsListNetworkEndpoints_Warning,
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning_Code
+    NetworkEndpointGroupsListNetworkEndpoints_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem
+    NetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem (..),
+    newNetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupsScopedList
+    NetworkEndpointGroupsScopedList (..),
+    newNetworkEndpointGroupsScopedList,
+
+    -- ** NetworkEndpointGroupsScopedList_Warning
+    NetworkEndpointGroupsScopedList_Warning (..),
+    newNetworkEndpointGroupsScopedList_Warning,
+
+    -- ** NetworkEndpointGroupsScopedList_Warning_Code
+    NetworkEndpointGroupsScopedList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupsScopedList_Warning_DataItem
+    NetworkEndpointGroupsScopedList_Warning_DataItem (..),
+    newNetworkEndpointGroupsScopedList_Warning_DataItem,
+
+    -- ** NetworkEndpointWithHealthStatus
+    NetworkEndpointWithHealthStatus (..),
+    newNetworkEndpointWithHealthStatus,
+
+    -- ** NetworkFirewallPolicyAggregatedList
+    NetworkFirewallPolicyAggregatedList (..),
+    newNetworkFirewallPolicyAggregatedList,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Items
+    NetworkFirewallPolicyAggregatedList_Items (..),
+    newNetworkFirewallPolicyAggregatedList_Items,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning
+    NetworkFirewallPolicyAggregatedList_Warning (..),
+    newNetworkFirewallPolicyAggregatedList_Warning,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning_Code
+    NetworkFirewallPolicyAggregatedList_Warning_Code (..),
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning_DataItem
+    NetworkFirewallPolicyAggregatedList_Warning_DataItem (..),
+    newNetworkFirewallPolicyAggregatedList_Warning_DataItem,
+
+    -- ** NetworkInterface
+    NetworkInterface (..),
+    newNetworkInterface,
+
+    -- ** NetworkInterface_Ipv6AccessType
+    NetworkInterface_Ipv6AccessType (..),
+
+    -- ** NetworkInterface_NicType
+    NetworkInterface_NicType (..),
+
+    -- ** NetworkInterface_StackType
+    NetworkInterface_StackType (..),
+
+    -- ** NetworkList
+    NetworkList (..),
+    newNetworkList,
+
+    -- ** NetworkList_Warning
+    NetworkList_Warning (..),
+    newNetworkList_Warning,
+
+    -- ** NetworkList_Warning_Code
+    NetworkList_Warning_Code (..),
+
+    -- ** NetworkList_Warning_DataItem
+    NetworkList_Warning_DataItem (..),
+    newNetworkList_Warning_DataItem,
+
+    -- ** NetworkPeering
+    NetworkPeering (..),
+    newNetworkPeering,
+
+    -- ** NetworkPeering_StackType
+    NetworkPeering_StackType (..),
+
+    -- ** NetworkPeering_State
+    NetworkPeering_State (..),
+
+    -- ** NetworkPerformanceConfig
+    NetworkPerformanceConfig (..),
+    newNetworkPerformanceConfig,
+
+    -- ** NetworkPerformanceConfig_TotalEgressBandwidthTier
+    NetworkPerformanceConfig_TotalEgressBandwidthTier (..),
+
+    -- ** NetworkProfile
+    NetworkProfile (..),
+    newNetworkProfile,
+
+    -- ** NetworkProfileLocation
+    NetworkProfileLocation (..),
+    newNetworkProfileLocation,
+
+    -- ** NetworkProfileLocation_Scope
+    NetworkProfileLocation_Scope (..),
+
+    -- ** NetworkProfileNetworkFeatures
+    NetworkProfileNetworkFeatures (..),
+    newNetworkProfileNetworkFeatures,
+
+    -- ** NetworkProfileNetworkFeatures_AddressPurposesItem
+    NetworkProfileNetworkFeatures_AddressPurposesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowAliasIpRanges
+    NetworkProfileNetworkFeatures_AllowAliasIpRanges (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowAutoModeSubnet
+    NetworkProfileNetworkFeatures_AllowAutoModeSubnet (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowClassDFirewalls
+    NetworkProfileNetworkFeatures_AllowClassDFirewalls (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowCloudNat
+    NetworkProfileNetworkFeatures_AllowCloudNat (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowCloudRouter
+    NetworkProfileNetworkFeatures_AllowCloudRouter (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowExternalIpAccess
+    NetworkProfileNetworkFeatures_AllowExternalIpAccess (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowInterconnect
+    NetworkProfileNetworkFeatures_AllowInterconnect (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowLoadBalancing
+    NetworkProfileNetworkFeatures_AllowLoadBalancing (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowMultiNicInSameNetwork
+    NetworkProfileNetworkFeatures_AllowMultiNicInSameNetwork (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPacketMirroring
+    NetworkProfileNetworkFeatures_AllowPacketMirroring (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPrivateGoogleAccess
+    NetworkProfileNetworkFeatures_AllowPrivateGoogleAccess (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPsc
+    NetworkProfileNetworkFeatures_AllowPsc (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowSameNetworkUnicast
+    NetworkProfileNetworkFeatures_AllowSameNetworkUnicast (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowStaticRoutes
+    NetworkProfileNetworkFeatures_AllowStaticRoutes (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowSubInterfaces
+    NetworkProfileNetworkFeatures_AllowSubInterfaces (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowVpcPeering
+    NetworkProfileNetworkFeatures_AllowVpcPeering (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowVpn
+    NetworkProfileNetworkFeatures_AllowVpn (..),
+
+    -- ** NetworkProfileNetworkFeatures_InterfaceTypesItem
+    NetworkProfileNetworkFeatures_InterfaceTypesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_SubnetPurposesItem
+    NetworkProfileNetworkFeatures_SubnetPurposesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_SubnetStackTypesItem
+    NetworkProfileNetworkFeatures_SubnetStackTypesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_Unicast
+    NetworkProfileNetworkFeatures_Unicast (..),
+
+    -- ** NetworkProfilesListResponse
+    NetworkProfilesListResponse (..),
+    newNetworkProfilesListResponse,
+
+    -- ** NetworkProfilesListResponse_Warning
+    NetworkProfilesListResponse_Warning (..),
+    newNetworkProfilesListResponse_Warning,
+
+    -- ** NetworkProfilesListResponse_Warning_Code
+    NetworkProfilesListResponse_Warning_Code (..),
+
+    -- ** NetworkProfilesListResponse_Warning_DataItem
+    NetworkProfilesListResponse_Warning_DataItem (..),
+    newNetworkProfilesListResponse_Warning_DataItem,
+
+    -- ** NetworkRoutingConfig
+    NetworkRoutingConfig (..),
+    newNetworkRoutingConfig,
+
+    -- ** NetworkRoutingConfig_BgpBestPathSelectionMode
+    NetworkRoutingConfig_BgpBestPathSelectionMode (..),
+
+    -- ** NetworkRoutingConfig_BgpInterRegionCost
+    NetworkRoutingConfig_BgpInterRegionCost (..),
+
+    -- ** NetworkRoutingConfig_EffectiveBgpInterRegionCost
+    NetworkRoutingConfig_EffectiveBgpInterRegionCost (..),
+
+    -- ** NetworkRoutingConfig_RoutingMode
+    NetworkRoutingConfig_RoutingMode (..),
+
+    -- ** NetworksAddPeeringRequest
+    NetworksAddPeeringRequest (..),
+    newNetworksAddPeeringRequest,
+
+    -- ** NetworksGetEffectiveFirewallsResponse
+    NetworksGetEffectiveFirewallsResponse (..),
+    newNetworksGetEffectiveFirewallsResponse,
+
+    -- ** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newNetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** NetworksRemovePeeringRequest
+    NetworksRemovePeeringRequest (..),
+    newNetworksRemovePeeringRequest,
+
+    -- ** NetworksUpdatePeeringRequest
+    NetworksUpdatePeeringRequest (..),
+    newNetworksUpdatePeeringRequest,
+
+    -- ** NodeGroup
+    NodeGroup (..),
+    newNodeGroup,
+
+    -- ** NodeGroup_MaintenanceInterval
+    NodeGroup_MaintenanceInterval (..),
+
+    -- ** NodeGroup_MaintenancePolicy
+    NodeGroup_MaintenancePolicy (..),
+
+    -- ** NodeGroup_Status
+    NodeGroup_Status (..),
+
+    -- ** NodeGroupAggregatedList
+    NodeGroupAggregatedList (..),
+    newNodeGroupAggregatedList,
+
+    -- ** NodeGroupAggregatedList_Items
+    NodeGroupAggregatedList_Items (..),
+    newNodeGroupAggregatedList_Items,
+
+    -- ** NodeGroupAggregatedList_Warning
+    NodeGroupAggregatedList_Warning (..),
+    newNodeGroupAggregatedList_Warning,
+
+    -- ** NodeGroupAggregatedList_Warning_Code
+    NodeGroupAggregatedList_Warning_Code (..),
+
+    -- ** NodeGroupAggregatedList_Warning_DataItem
+    NodeGroupAggregatedList_Warning_DataItem (..),
+    newNodeGroupAggregatedList_Warning_DataItem,
+
+    -- ** NodeGroupAutoscalingPolicy
+    NodeGroupAutoscalingPolicy (..),
+    newNodeGroupAutoscalingPolicy,
+
+    -- ** NodeGroupAutoscalingPolicy_Mode
+    NodeGroupAutoscalingPolicy_Mode (..),
+
+    -- ** NodeGroupList
+    NodeGroupList (..),
+    newNodeGroupList,
+
+    -- ** NodeGroupList_Warning
+    NodeGroupList_Warning (..),
+    newNodeGroupList_Warning,
+
+    -- ** NodeGroupList_Warning_Code
+    NodeGroupList_Warning_Code (..),
+
+    -- ** NodeGroupList_Warning_DataItem
+    NodeGroupList_Warning_DataItem (..),
+    newNodeGroupList_Warning_DataItem,
+
+    -- ** NodeGroupMaintenanceWindow
+    NodeGroupMaintenanceWindow (..),
+    newNodeGroupMaintenanceWindow,
+
+    -- ** NodeGroupNode
+    NodeGroupNode (..),
+    newNodeGroupNode,
+
+    -- ** NodeGroupNode_CpuOvercommitType
+    NodeGroupNode_CpuOvercommitType (..),
+
+    -- ** NodeGroupNode_Status
+    NodeGroupNode_Status (..),
+
+    -- ** NodeGroupsAddNodesRequest
+    NodeGroupsAddNodesRequest (..),
+    newNodeGroupsAddNodesRequest,
+
+    -- ** NodeGroupsDeleteNodesRequest
+    NodeGroupsDeleteNodesRequest (..),
+    newNodeGroupsDeleteNodesRequest,
+
+    -- ** NodeGroupsListNodes
+    NodeGroupsListNodes (..),
+    newNodeGroupsListNodes,
+
+    -- ** NodeGroupsListNodes_Warning
+    NodeGroupsListNodes_Warning (..),
+    newNodeGroupsListNodes_Warning,
+
+    -- ** NodeGroupsListNodes_Warning_Code
+    NodeGroupsListNodes_Warning_Code (..),
+
+    -- ** NodeGroupsListNodes_Warning_DataItem
+    NodeGroupsListNodes_Warning_DataItem (..),
+    newNodeGroupsListNodes_Warning_DataItem,
+
+    -- ** NodeGroupsPerformMaintenanceRequest
+    NodeGroupsPerformMaintenanceRequest (..),
+    newNodeGroupsPerformMaintenanceRequest,
+
+    -- ** NodeGroupsScopedList
+    NodeGroupsScopedList (..),
+    newNodeGroupsScopedList,
+
+    -- ** NodeGroupsScopedList_Warning
+    NodeGroupsScopedList_Warning (..),
+    newNodeGroupsScopedList_Warning,
+
+    -- ** NodeGroupsScopedList_Warning_Code
+    NodeGroupsScopedList_Warning_Code (..),
+
+    -- ** NodeGroupsScopedList_Warning_DataItem
+    NodeGroupsScopedList_Warning_DataItem (..),
+    newNodeGroupsScopedList_Warning_DataItem,
+
+    -- ** NodeGroupsSetNodeTemplateRequest
+    NodeGroupsSetNodeTemplateRequest (..),
+    newNodeGroupsSetNodeTemplateRequest,
+
+    -- ** NodeGroupsSimulateMaintenanceEventRequest
+    NodeGroupsSimulateMaintenanceEventRequest (..),
+    newNodeGroupsSimulateMaintenanceEventRequest,
+
+    -- ** NodeTemplate
+    NodeTemplate (..),
+    newNodeTemplate,
+
+    -- ** NodeTemplate_CpuOvercommitType
+    NodeTemplate_CpuOvercommitType (..),
+
+    -- ** NodeTemplate_NodeAffinityLabels
+    NodeTemplate_NodeAffinityLabels (..),
+    newNodeTemplate_NodeAffinityLabels,
+
+    -- ** NodeTemplate_Status
+    NodeTemplate_Status (..),
+
+    -- ** NodeTemplateAggregatedList
+    NodeTemplateAggregatedList (..),
+    newNodeTemplateAggregatedList,
+
+    -- ** NodeTemplateAggregatedList_Items
+    NodeTemplateAggregatedList_Items (..),
+    newNodeTemplateAggregatedList_Items,
+
+    -- ** NodeTemplateAggregatedList_Warning
+    NodeTemplateAggregatedList_Warning (..),
+    newNodeTemplateAggregatedList_Warning,
+
+    -- ** NodeTemplateAggregatedList_Warning_Code
+    NodeTemplateAggregatedList_Warning_Code (..),
+
+    -- ** NodeTemplateAggregatedList_Warning_DataItem
+    NodeTemplateAggregatedList_Warning_DataItem (..),
+    newNodeTemplateAggregatedList_Warning_DataItem,
+
+    -- ** NodeTemplateList
+    NodeTemplateList (..),
+    newNodeTemplateList,
+
+    -- ** NodeTemplateList_Warning
+    NodeTemplateList_Warning (..),
+    newNodeTemplateList_Warning,
+
+    -- ** NodeTemplateList_Warning_Code
+    NodeTemplateList_Warning_Code (..),
+
+    -- ** NodeTemplateList_Warning_DataItem
+    NodeTemplateList_Warning_DataItem (..),
+    newNodeTemplateList_Warning_DataItem,
+
+    -- ** NodeTemplateNodeTypeFlexibility
+    NodeTemplateNodeTypeFlexibility (..),
+    newNodeTemplateNodeTypeFlexibility,
+
+    -- ** NodeTemplatesScopedList
+    NodeTemplatesScopedList (..),
+    newNodeTemplatesScopedList,
+
+    -- ** NodeTemplatesScopedList_Warning
+    NodeTemplatesScopedList_Warning (..),
+    newNodeTemplatesScopedList_Warning,
+
+    -- ** NodeTemplatesScopedList_Warning_Code
+    NodeTemplatesScopedList_Warning_Code (..),
+
+    -- ** NodeTemplatesScopedList_Warning_DataItem
+    NodeTemplatesScopedList_Warning_DataItem (..),
+    newNodeTemplatesScopedList_Warning_DataItem,
+
+    -- ** NodeType
+    NodeType (..),
+    newNodeType,
+
+    -- ** NodeTypeAggregatedList
+    NodeTypeAggregatedList (..),
+    newNodeTypeAggregatedList,
+
+    -- ** NodeTypeAggregatedList_Items
+    NodeTypeAggregatedList_Items (..),
+    newNodeTypeAggregatedList_Items,
+
+    -- ** NodeTypeAggregatedList_Warning
+    NodeTypeAggregatedList_Warning (..),
+    newNodeTypeAggregatedList_Warning,
+
+    -- ** NodeTypeAggregatedList_Warning_Code
+    NodeTypeAggregatedList_Warning_Code (..),
+
+    -- ** NodeTypeAggregatedList_Warning_DataItem
+    NodeTypeAggregatedList_Warning_DataItem (..),
+    newNodeTypeAggregatedList_Warning_DataItem,
+
+    -- ** NodeTypeList
+    NodeTypeList (..),
+    newNodeTypeList,
+
+    -- ** NodeTypeList_Warning
+    NodeTypeList_Warning (..),
+    newNodeTypeList_Warning,
+
+    -- ** NodeTypeList_Warning_Code
+    NodeTypeList_Warning_Code (..),
+
+    -- ** NodeTypeList_Warning_DataItem
+    NodeTypeList_Warning_DataItem (..),
+    newNodeTypeList_Warning_DataItem,
+
+    -- ** NodeTypesScopedList
+    NodeTypesScopedList (..),
+    newNodeTypesScopedList,
+
+    -- ** NodeTypesScopedList_Warning
+    NodeTypesScopedList_Warning (..),
+    newNodeTypesScopedList_Warning,
+
+    -- ** NodeTypesScopedList_Warning_Code
+    NodeTypesScopedList_Warning_Code (..),
+
+    -- ** NodeTypesScopedList_Warning_DataItem
+    NodeTypesScopedList_Warning_DataItem (..),
+    newNodeTypesScopedList_Warning_DataItem,
+
+    -- ** NotificationEndpoint
+    NotificationEndpoint (..),
+    newNotificationEndpoint,
+
+    -- ** NotificationEndpointGrpcSettings
+    NotificationEndpointGrpcSettings (..),
+    newNotificationEndpointGrpcSettings,
+
+    -- ** NotificationEndpointList
+    NotificationEndpointList (..),
+    newNotificationEndpointList,
+
+    -- ** NotificationEndpointList_Warning
+    NotificationEndpointList_Warning (..),
+    newNotificationEndpointList_Warning,
+
+    -- ** NotificationEndpointList_Warning_Code
+    NotificationEndpointList_Warning_Code (..),
+
+    -- ** NotificationEndpointList_Warning_DataItem
+    NotificationEndpointList_Warning_DataItem (..),
+    newNotificationEndpointList_Warning_DataItem,
+
+    -- ** Operation
+    Operation (..),
+    newOperation,
+
+    -- ** Operation_Error
+    Operation_Error (..),
+    newOperation_Error,
+
+    -- ** Operation_Error_ErrorsItem
+    Operation_Error_ErrorsItem (..),
+    newOperation_Error_ErrorsItem,
+
+    -- ** Operation_Error_ErrorsItem_ErrorDetailsItem
+    Operation_Error_ErrorsItem_ErrorDetailsItem (..),
+    newOperation_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** Operation_Status
+    Operation_Status (..),
+
+    -- ** Operation_WarningsItem
+    Operation_WarningsItem (..),
+    newOperation_WarningsItem,
+
+    -- ** Operation_WarningsItem_Code
+    Operation_WarningsItem_Code (..),
+
+    -- ** Operation_WarningsItem_DataItem
+    Operation_WarningsItem_DataItem (..),
+    newOperation_WarningsItem_DataItem,
+
+    -- ** OperationAggregatedList
+    OperationAggregatedList (..),
+    newOperationAggregatedList,
+
+    -- ** OperationAggregatedList_Items
+    OperationAggregatedList_Items (..),
+    newOperationAggregatedList_Items,
+
+    -- ** OperationAggregatedList_Warning
+    OperationAggregatedList_Warning (..),
+    newOperationAggregatedList_Warning,
+
+    -- ** OperationAggregatedList_Warning_Code
+    OperationAggregatedList_Warning_Code (..),
+
+    -- ** OperationAggregatedList_Warning_DataItem
+    OperationAggregatedList_Warning_DataItem (..),
+    newOperationAggregatedList_Warning_DataItem,
+
+    -- ** OperationList
+    OperationList (..),
+    newOperationList,
+
+    -- ** OperationList_Warning
+    OperationList_Warning (..),
+    newOperationList_Warning,
+
+    -- ** OperationList_Warning_Code
+    OperationList_Warning_Code (..),
+
+    -- ** OperationList_Warning_DataItem
+    OperationList_Warning_DataItem (..),
+    newOperationList_Warning_DataItem,
+
+    -- ** OperationsScopedList
+    OperationsScopedList (..),
+    newOperationsScopedList,
+
+    -- ** OperationsScopedList_Warning
+    OperationsScopedList_Warning (..),
+    newOperationsScopedList_Warning,
+
+    -- ** OperationsScopedList_Warning_Code
+    OperationsScopedList_Warning_Code (..),
+
+    -- ** OperationsScopedList_Warning_DataItem
+    OperationsScopedList_Warning_DataItem (..),
+    newOperationsScopedList_Warning_DataItem,
+
+    -- ** OutlierDetection
+    OutlierDetection (..),
+    newOutlierDetection,
+
+    -- ** PacketIntervals
+    PacketIntervals (..),
+    newPacketIntervals,
+
+    -- ** PacketIntervals_Duration
+    PacketIntervals_Duration (..),
+
+    -- ** PacketIntervals_Type
+    PacketIntervals_Type (..),
+
+    -- ** PacketMirroring
+    PacketMirroring (..),
+    newPacketMirroring,
+
+    -- ** PacketMirroring_Enable
+    PacketMirroring_Enable (..),
+
+    -- ** PacketMirroringAggregatedList
+    PacketMirroringAggregatedList (..),
+    newPacketMirroringAggregatedList,
+
+    -- ** PacketMirroringAggregatedList_Items
+    PacketMirroringAggregatedList_Items (..),
+    newPacketMirroringAggregatedList_Items,
+
+    -- ** PacketMirroringAggregatedList_Warning
+    PacketMirroringAggregatedList_Warning (..),
+    newPacketMirroringAggregatedList_Warning,
+
+    -- ** PacketMirroringAggregatedList_Warning_Code
+    PacketMirroringAggregatedList_Warning_Code (..),
+
+    -- ** PacketMirroringAggregatedList_Warning_DataItem
+    PacketMirroringAggregatedList_Warning_DataItem (..),
+    newPacketMirroringAggregatedList_Warning_DataItem,
+
+    -- ** PacketMirroringFilter
+    PacketMirroringFilter (..),
+    newPacketMirroringFilter,
+
+    -- ** PacketMirroringFilter_Direction
+    PacketMirroringFilter_Direction (..),
+
+    -- ** PacketMirroringForwardingRuleInfo
+    PacketMirroringForwardingRuleInfo (..),
+    newPacketMirroringForwardingRuleInfo,
+
+    -- ** PacketMirroringList
+    PacketMirroringList (..),
+    newPacketMirroringList,
+
+    -- ** PacketMirroringList_Warning
+    PacketMirroringList_Warning (..),
+    newPacketMirroringList_Warning,
+
+    -- ** PacketMirroringList_Warning_Code
+    PacketMirroringList_Warning_Code (..),
+
+    -- ** PacketMirroringList_Warning_DataItem
+    PacketMirroringList_Warning_DataItem (..),
+    newPacketMirroringList_Warning_DataItem,
+
+    -- ** PacketMirroringMirroredResourceInfo
+    PacketMirroringMirroredResourceInfo (..),
+    newPacketMirroringMirroredResourceInfo,
+
+    -- ** PacketMirroringMirroredResourceInfoInstanceInfo
+    PacketMirroringMirroredResourceInfoInstanceInfo (..),
+    newPacketMirroringMirroredResourceInfoInstanceInfo,
+
+    -- ** PacketMirroringMirroredResourceInfoSubnetInfo
+    PacketMirroringMirroredResourceInfoSubnetInfo (..),
+    newPacketMirroringMirroredResourceInfoSubnetInfo,
+
+    -- ** PacketMirroringNetworkInfo
+    PacketMirroringNetworkInfo (..),
+    newPacketMirroringNetworkInfo,
+
+    -- ** PacketMirroringsScopedList
+    PacketMirroringsScopedList (..),
+    newPacketMirroringsScopedList,
+
+    -- ** PacketMirroringsScopedList_Warning
+    PacketMirroringsScopedList_Warning (..),
+    newPacketMirroringsScopedList_Warning,
+
+    -- ** PacketMirroringsScopedList_Warning_Code
+    PacketMirroringsScopedList_Warning_Code (..),
+
+    -- ** PacketMirroringsScopedList_Warning_DataItem
+    PacketMirroringsScopedList_Warning_DataItem (..),
+    newPacketMirroringsScopedList_Warning_DataItem,
+
+    -- ** PathMatcher
+    PathMatcher (..),
+    newPathMatcher,
+
+    -- ** PathRule
+    PathRule (..),
+    newPathRule,
+
+    -- ** PerInstanceConfig
+    PerInstanceConfig (..),
+    newPerInstanceConfig,
+
+    -- ** PerInstanceConfig_Status
+    PerInstanceConfig_Status (..),
+
+    -- ** Policy
+    Policy (..),
+    newPolicy,
+
+    -- ** PreconfiguredWafSet
+    PreconfiguredWafSet (..),
+    newPreconfiguredWafSet,
+
+    -- ** PreservedState
+    PreservedState (..),
+    newPreservedState,
+
+    -- ** PreservedState_Disks
+    PreservedState_Disks (..),
+    newPreservedState_Disks,
+
+    -- ** PreservedState_ExternalIPs
+    PreservedState_ExternalIPs (..),
+    newPreservedState_ExternalIPs,
+
+    -- ** PreservedState_InternalIPs
+    PreservedState_InternalIPs (..),
+    newPreservedState_InternalIPs,
+
+    -- ** PreservedState_Metadata
+    PreservedState_Metadata (..),
+    newPreservedState_Metadata,
+
+    -- ** PreservedStatePreservedDisk
+    PreservedStatePreservedDisk (..),
+    newPreservedStatePreservedDisk,
+
+    -- ** PreservedStatePreservedDisk_AutoDelete
+    PreservedStatePreservedDisk_AutoDelete (..),
+
+    -- ** PreservedStatePreservedDisk_Mode
+    PreservedStatePreservedDisk_Mode (..),
+
+    -- ** PreservedStatePreservedNetworkIp
+    PreservedStatePreservedNetworkIp (..),
+    newPreservedStatePreservedNetworkIp,
+
+    -- ** PreservedStatePreservedNetworkIp_AutoDelete
+    PreservedStatePreservedNetworkIp_AutoDelete (..),
+
+    -- ** PreservedStatePreservedNetworkIpIpAddress
+    PreservedStatePreservedNetworkIpIpAddress (..),
+    newPreservedStatePreservedNetworkIpIpAddress,
+
+    -- ** Project
+    Project (..),
+    newProject,
+
+    -- ** Project_CloudArmorTier
+    Project_CloudArmorTier (..),
+
+    -- ** Project_DefaultNetworkTier
+    Project_DefaultNetworkTier (..),
+
+    -- ** Project_VmDnsSetting
+    Project_VmDnsSetting (..),
+
+    -- ** Project_XpnProjectStatus
+    Project_XpnProjectStatus (..),
+
+    -- ** ProjectsDisableXpnResourceRequest
+    ProjectsDisableXpnResourceRequest (..),
+    newProjectsDisableXpnResourceRequest,
+
+    -- ** ProjectsEnableXpnResourceRequest
+    ProjectsEnableXpnResourceRequest (..),
+    newProjectsEnableXpnResourceRequest,
+
+    -- ** ProjectsGetXpnResources
+    ProjectsGetXpnResources (..),
+    newProjectsGetXpnResources,
+
+    -- ** ProjectsListXpnHostsRequest
+    ProjectsListXpnHostsRequest (..),
+    newProjectsListXpnHostsRequest,
+
+    -- ** ProjectsSetCloudArmorTierRequest
+    ProjectsSetCloudArmorTierRequest (..),
+    newProjectsSetCloudArmorTierRequest,
+
+    -- ** ProjectsSetCloudArmorTierRequest_CloudArmorTier
+    ProjectsSetCloudArmorTierRequest_CloudArmorTier (..),
+
+    -- ** ProjectsSetDefaultNetworkTierRequest
+    ProjectsSetDefaultNetworkTierRequest (..),
+    newProjectsSetDefaultNetworkTierRequest,
+
+    -- ** ProjectsSetDefaultNetworkTierRequest_NetworkTier
+    ProjectsSetDefaultNetworkTierRequest_NetworkTier (..),
+
+    -- ** PublicAdvertisedPrefix
+    PublicAdvertisedPrefix (..),
+    newPublicAdvertisedPrefix,
+
+    -- ** PublicAdvertisedPrefix_ByoipApiVersion
+    PublicAdvertisedPrefix_ByoipApiVersion (..),
+
+    -- ** PublicAdvertisedPrefix_PdpScope
+    PublicAdvertisedPrefix_PdpScope (..),
+
+    -- ** PublicAdvertisedPrefix_Status
+    PublicAdvertisedPrefix_Status (..),
+
+    -- ** PublicAdvertisedPrefixList
+    PublicAdvertisedPrefixList (..),
+    newPublicAdvertisedPrefixList,
+
+    -- ** PublicAdvertisedPrefixList_Warning
+    PublicAdvertisedPrefixList_Warning (..),
+    newPublicAdvertisedPrefixList_Warning,
+
+    -- ** PublicAdvertisedPrefixList_Warning_Code
+    PublicAdvertisedPrefixList_Warning_Code (..),
+
+    -- ** PublicAdvertisedPrefixList_Warning_DataItem
+    PublicAdvertisedPrefixList_Warning_DataItem (..),
+    newPublicAdvertisedPrefixList_Warning_DataItem,
+
+    -- ** PublicAdvertisedPrefixPublicDelegatedPrefix
+    PublicAdvertisedPrefixPublicDelegatedPrefix (..),
+    newPublicAdvertisedPrefixPublicDelegatedPrefix,
+
+    -- ** PublicDelegatedPrefix
+    PublicDelegatedPrefix (..),
+    newPublicDelegatedPrefix,
+
+    -- ** PublicDelegatedPrefix_ByoipApiVersion
+    PublicDelegatedPrefix_ByoipApiVersion (..),
+
+    -- ** PublicDelegatedPrefix_Mode
+    PublicDelegatedPrefix_Mode (..),
+
+    -- ** PublicDelegatedPrefix_Status
+    PublicDelegatedPrefix_Status (..),
+
+    -- ** PublicDelegatedPrefixAggregatedList
+    PublicDelegatedPrefixAggregatedList (..),
+    newPublicDelegatedPrefixAggregatedList,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Items
+    PublicDelegatedPrefixAggregatedList_Items (..),
+    newPublicDelegatedPrefixAggregatedList_Items,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning
+    PublicDelegatedPrefixAggregatedList_Warning (..),
+    newPublicDelegatedPrefixAggregatedList_Warning,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning_Code
+    PublicDelegatedPrefixAggregatedList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning_DataItem
+    PublicDelegatedPrefixAggregatedList_Warning_DataItem (..),
+    newPublicDelegatedPrefixAggregatedList_Warning_DataItem,
+
+    -- ** PublicDelegatedPrefixList
+    PublicDelegatedPrefixList (..),
+    newPublicDelegatedPrefixList,
+
+    -- ** PublicDelegatedPrefixList_Warning
+    PublicDelegatedPrefixList_Warning (..),
+    newPublicDelegatedPrefixList_Warning,
+
+    -- ** PublicDelegatedPrefixList_Warning_Code
+    PublicDelegatedPrefixList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixList_Warning_DataItem
+    PublicDelegatedPrefixList_Warning_DataItem (..),
+    newPublicDelegatedPrefixList_Warning_DataItem,
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix
+    PublicDelegatedPrefixPublicDelegatedSubPrefix (..),
+    newPublicDelegatedPrefixPublicDelegatedSubPrefix,
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix_Mode
+    PublicDelegatedPrefixPublicDelegatedSubPrefix_Mode (..),
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix_Status
+    PublicDelegatedPrefixPublicDelegatedSubPrefix_Status (..),
+
+    -- ** PublicDelegatedPrefixesScopedList
+    PublicDelegatedPrefixesScopedList (..),
+    newPublicDelegatedPrefixesScopedList,
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning
+    PublicDelegatedPrefixesScopedList_Warning (..),
+    newPublicDelegatedPrefixesScopedList_Warning,
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning_Code
+    PublicDelegatedPrefixesScopedList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning_DataItem
+    PublicDelegatedPrefixesScopedList_Warning_DataItem (..),
+    newPublicDelegatedPrefixesScopedList_Warning_DataItem,
+
+    -- ** Quota
+    Quota (..),
+    newQuota,
+
+    -- ** Quota_Metric
+    Quota_Metric (..),
+
+    -- ** QuotaExceededInfo
+    QuotaExceededInfo (..),
+    newQuotaExceededInfo,
+
+    -- ** QuotaExceededInfo_Dimensions
+    QuotaExceededInfo_Dimensions (..),
+    newQuotaExceededInfo_Dimensions,
+
+    -- ** QuotaExceededInfo_RolloutStatus
+    QuotaExceededInfo_RolloutStatus (..),
+
+    -- ** Reference
+    Reference (..),
+    newReference,
+
+    -- ** Region
+    Region (..),
+    newRegion,
+
+    -- ** Region_QuotaStatusWarning
+    Region_QuotaStatusWarning (..),
+    newRegion_QuotaStatusWarning,
+
+    -- ** Region_QuotaStatusWarning_Code
+    Region_QuotaStatusWarning_Code (..),
+
+    -- ** Region_QuotaStatusWarning_DataItem
+    Region_QuotaStatusWarning_DataItem (..),
+    newRegion_QuotaStatusWarning_DataItem,
+
+    -- ** Region_Status
+    Region_Status (..),
+
+    -- ** RegionAddressesMoveRequest
+    RegionAddressesMoveRequest (..),
+    newRegionAddressesMoveRequest,
+
+    -- ** RegionAutoscalerList
+    RegionAutoscalerList (..),
+    newRegionAutoscalerList,
+
+    -- ** RegionAutoscalerList_Warning
+    RegionAutoscalerList_Warning (..),
+    newRegionAutoscalerList_Warning,
+
+    -- ** RegionAutoscalerList_Warning_Code
+    RegionAutoscalerList_Warning_Code (..),
+
+    -- ** RegionAutoscalerList_Warning_DataItem
+    RegionAutoscalerList_Warning_DataItem (..),
+    newRegionAutoscalerList_Warning_DataItem,
+
+    -- ** RegionDiskTypeList
+    RegionDiskTypeList (..),
+    newRegionDiskTypeList,
+
+    -- ** RegionDiskTypeList_Warning
+    RegionDiskTypeList_Warning (..),
+    newRegionDiskTypeList_Warning,
+
+    -- ** RegionDiskTypeList_Warning_Code
+    RegionDiskTypeList_Warning_Code (..),
+
+    -- ** RegionDiskTypeList_Warning_DataItem
+    RegionDiskTypeList_Warning_DataItem (..),
+    newRegionDiskTypeList_Warning_DataItem,
+
+    -- ** RegionDisksAddResourcePoliciesRequest
+    RegionDisksAddResourcePoliciesRequest (..),
+    newRegionDisksAddResourcePoliciesRequest,
+
+    -- ** RegionDisksRemoveResourcePoliciesRequest
+    RegionDisksRemoveResourcePoliciesRequest (..),
+    newRegionDisksRemoveResourcePoliciesRequest,
+
+    -- ** RegionDisksResizeRequest
+    RegionDisksResizeRequest (..),
+    newRegionDisksResizeRequest,
+
+    -- ** RegionDisksStartAsyncReplicationRequest
+    RegionDisksStartAsyncReplicationRequest (..),
+    newRegionDisksStartAsyncReplicationRequest,
+
+    -- ** RegionInstanceGroupList
+    RegionInstanceGroupList (..),
+    newRegionInstanceGroupList,
+
+    -- ** RegionInstanceGroupList_Warning
+    RegionInstanceGroupList_Warning (..),
+    newRegionInstanceGroupList_Warning,
+
+    -- ** RegionInstanceGroupList_Warning_Code
+    RegionInstanceGroupList_Warning_Code (..),
+
+    -- ** RegionInstanceGroupList_Warning_DataItem
+    RegionInstanceGroupList_Warning_DataItem (..),
+    newRegionInstanceGroupList_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagerDeleteInstanceConfigReq
+    RegionInstanceGroupManagerDeleteInstanceConfigReq (..),
+    newRegionInstanceGroupManagerDeleteInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagerList
+    RegionInstanceGroupManagerList (..),
+    newRegionInstanceGroupManagerList,
+
+    -- ** RegionInstanceGroupManagerList_Warning
+    RegionInstanceGroupManagerList_Warning (..),
+    newRegionInstanceGroupManagerList_Warning,
+
+    -- ** RegionInstanceGroupManagerList_Warning_Code
+    RegionInstanceGroupManagerList_Warning_Code (..),
+
+    -- ** RegionInstanceGroupManagerList_Warning_DataItem
+    RegionInstanceGroupManagerList_Warning_DataItem (..),
+    newRegionInstanceGroupManagerList_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagerPatchInstanceConfigReq
+    RegionInstanceGroupManagerPatchInstanceConfigReq (..),
+    newRegionInstanceGroupManagerPatchInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagerUpdateInstanceConfigReq
+    RegionInstanceGroupManagerUpdateInstanceConfigReq (..),
+    newRegionInstanceGroupManagerUpdateInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagersAbandonInstancesRequest
+    RegionInstanceGroupManagersAbandonInstancesRequest (..),
+    newRegionInstanceGroupManagersAbandonInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest
+    RegionInstanceGroupManagersApplyUpdatesRequest (..),
+    newRegionInstanceGroupManagersApplyUpdatesRequest,
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest_MinimalAction
+    RegionInstanceGroupManagersApplyUpdatesRequest_MinimalAction (..),
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction
+    RegionInstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction (..),
+
+    -- ** RegionInstanceGroupManagersCreateInstancesRequest
+    RegionInstanceGroupManagersCreateInstancesRequest (..),
+    newRegionInstanceGroupManagersCreateInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersDeleteInstancesRequest
+    RegionInstanceGroupManagersDeleteInstancesRequest (..),
+    newRegionInstanceGroupManagersDeleteInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersListErrorsResponse
+    RegionInstanceGroupManagersListErrorsResponse (..),
+    newRegionInstanceGroupManagersListErrorsResponse,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp
+    RegionInstanceGroupManagersListInstanceConfigsResp (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp_Warning,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning_Code
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning_Code (..),
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagersListInstancesResponse
+    RegionInstanceGroupManagersListInstancesResponse (..),
+    newRegionInstanceGroupManagersListInstancesResponse,
+
+    -- ** RegionInstanceGroupManagersRecreateRequest
+    RegionInstanceGroupManagersRecreateRequest (..),
+    newRegionInstanceGroupManagersRecreateRequest,
+
+    -- ** RegionInstanceGroupManagersResumeInstancesRequest
+    RegionInstanceGroupManagersResumeInstancesRequest (..),
+    newRegionInstanceGroupManagersResumeInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersSetTargetPoolsRequest
+    RegionInstanceGroupManagersSetTargetPoolsRequest (..),
+    newRegionInstanceGroupManagersSetTargetPoolsRequest,
+
+    -- ** RegionInstanceGroupManagersSetTemplateRequest
+    RegionInstanceGroupManagersSetTemplateRequest (..),
+    newRegionInstanceGroupManagersSetTemplateRequest,
+
+    -- ** RegionInstanceGroupManagersStartInstancesRequest
+    RegionInstanceGroupManagersStartInstancesRequest (..),
+    newRegionInstanceGroupManagersStartInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersStopInstancesRequest
+    RegionInstanceGroupManagersStopInstancesRequest (..),
+    newRegionInstanceGroupManagersStopInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersSuspendInstancesRequest
+    RegionInstanceGroupManagersSuspendInstancesRequest (..),
+    newRegionInstanceGroupManagersSuspendInstancesRequest,
+
+    -- ** RegionInstanceGroupsListInstances
+    RegionInstanceGroupsListInstances (..),
+    newRegionInstanceGroupsListInstances,
+
+    -- ** RegionInstanceGroupsListInstances_Warning
+    RegionInstanceGroupsListInstances_Warning (..),
+    newRegionInstanceGroupsListInstances_Warning,
+
+    -- ** RegionInstanceGroupsListInstances_Warning_Code
+    RegionInstanceGroupsListInstances_Warning_Code (..),
+
+    -- ** RegionInstanceGroupsListInstances_Warning_DataItem
+    RegionInstanceGroupsListInstances_Warning_DataItem (..),
+    newRegionInstanceGroupsListInstances_Warning_DataItem,
+
+    -- ** RegionInstanceGroupsListInstancesRequest
+    RegionInstanceGroupsListInstancesRequest (..),
+    newRegionInstanceGroupsListInstancesRequest,
+
+    -- ** RegionInstanceGroupsListInstancesRequest_InstanceState
+    RegionInstanceGroupsListInstancesRequest_InstanceState (..),
+
+    -- ** RegionInstanceGroupsSetNamedPortsRequest
+    RegionInstanceGroupsSetNamedPortsRequest (..),
+    newRegionInstanceGroupsSetNamedPortsRequest,
+
+    -- ** RegionList
+    RegionList (..),
+    newRegionList,
+
+    -- ** RegionList_Warning
+    RegionList_Warning (..),
+    newRegionList_Warning,
+
+    -- ** RegionList_Warning_Code
+    RegionList_Warning_Code (..),
+
+    -- ** RegionList_Warning_DataItem
+    RegionList_Warning_DataItem (..),
+    newRegionList_Warning_DataItem,
+
+    -- ** RegionNetworkEndpointGroupsAttachEndpointsRequest
+    RegionNetworkEndpointGroupsAttachEndpointsRequest (..),
+    newRegionNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** RegionNetworkEndpointGroupsDetachEndpointsRequest
+    RegionNetworkEndpointGroupsDetachEndpointsRequest (..),
+    newRegionNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse (..),
+    newRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** RegionSetLabelsRequest
+    RegionSetLabelsRequest (..),
+    newRegionSetLabelsRequest,
+
+    -- ** RegionSetLabelsRequest_Labels
+    RegionSetLabelsRequest_Labels (..),
+    newRegionSetLabelsRequest_Labels,
+
+    -- ** RegionSetPolicyRequest
+    RegionSetPolicyRequest (..),
+    newRegionSetPolicyRequest,
+
+    -- ** RegionTargetHttpsProxiesSetSslCertificatesRequest
+    RegionTargetHttpsProxiesSetSslCertificatesRequest (..),
+    newRegionTargetHttpsProxiesSetSslCertificatesRequest,
+
+    -- ** RegionUrlMapsValidateRequest
+    RegionUrlMapsValidateRequest (..),
+    newRegionUrlMapsValidateRequest,
+
+    -- ** RequestMirrorPolicy
+    RequestMirrorPolicy (..),
+    newRequestMirrorPolicy,
+
+    -- ** Reservation
+    Reservation (..),
+    newReservation,
+
+    -- ** Reservation_ResourcePolicies
+    Reservation_ResourcePolicies (..),
+    newReservation_ResourcePolicies,
+
+    -- ** Reservation_Status
+    Reservation_Status (..),
+
+    -- ** ReservationAffinity
+    ReservationAffinity (..),
+    newReservationAffinity,
+
+    -- ** ReservationAffinity_ConsumeReservationType
+    ReservationAffinity_ConsumeReservationType (..),
+
+    -- ** ReservationAggregatedList
+    ReservationAggregatedList (..),
+    newReservationAggregatedList,
+
+    -- ** ReservationAggregatedList_Items
+    ReservationAggregatedList_Items (..),
+    newReservationAggregatedList_Items,
+
+    -- ** ReservationAggregatedList_Warning
+    ReservationAggregatedList_Warning (..),
+    newReservationAggregatedList_Warning,
+
+    -- ** ReservationAggregatedList_Warning_Code
+    ReservationAggregatedList_Warning_Code (..),
+
+    -- ** ReservationAggregatedList_Warning_DataItem
+    ReservationAggregatedList_Warning_DataItem (..),
+    newReservationAggregatedList_Warning_DataItem,
+
+    -- ** ReservationList
+    ReservationList (..),
+    newReservationList,
+
+    -- ** ReservationList_Warning
+    ReservationList_Warning (..),
+    newReservationList_Warning,
+
+    -- ** ReservationList_Warning_Code
+    ReservationList_Warning_Code (..),
+
+    -- ** ReservationList_Warning_DataItem
+    ReservationList_Warning_DataItem (..),
+    newReservationList_Warning_DataItem,
+
+    -- ** ReservationsResizeRequest
+    ReservationsResizeRequest (..),
+    newReservationsResizeRequest,
+
+    -- ** ReservationsScopedList
+    ReservationsScopedList (..),
+    newReservationsScopedList,
+
+    -- ** ReservationsScopedList_Warning
+    ReservationsScopedList_Warning (..),
+    newReservationsScopedList_Warning,
+
+    -- ** ReservationsScopedList_Warning_Code
+    ReservationsScopedList_Warning_Code (..),
+
+    -- ** ReservationsScopedList_Warning_DataItem
+    ReservationsScopedList_Warning_DataItem (..),
+    newReservationsScopedList_Warning_DataItem,
+
+    -- ** ResourceCommitment
+    ResourceCommitment (..),
+    newResourceCommitment,
+
+    -- ** ResourceCommitment_Type
+    ResourceCommitment_Type (..),
+
+    -- ** ResourceGroupReference
+    ResourceGroupReference (..),
+    newResourceGroupReference,
+
+    -- ** ResourcePoliciesScopedList
+    ResourcePoliciesScopedList (..),
+    newResourcePoliciesScopedList,
+
+    -- ** ResourcePoliciesScopedList_Warning
+    ResourcePoliciesScopedList_Warning (..),
+    newResourcePoliciesScopedList_Warning,
+
+    -- ** ResourcePoliciesScopedList_Warning_Code
+    ResourcePoliciesScopedList_Warning_Code (..),
+
+    -- ** ResourcePoliciesScopedList_Warning_DataItem
+    ResourcePoliciesScopedList_Warning_DataItem (..),
+    newResourcePoliciesScopedList_Warning_DataItem,
+
+    -- ** ResourcePolicy
+    ResourcePolicy (..),
+    newResourcePolicy,
+
+    -- ** ResourcePolicy_Status
+    ResourcePolicy_Status (..),
+
+    -- ** ResourcePolicyAggregatedList
+    ResourcePolicyAggregatedList (..),
+    newResourcePolicyAggregatedList,
+
+    -- ** ResourcePolicyAggregatedList_Items
+    ResourcePolicyAggregatedList_Items (..),
+    newResourcePolicyAggregatedList_Items,
+
+    -- ** ResourcePolicyAggregatedList_Warning
+    ResourcePolicyAggregatedList_Warning (..),
+    newResourcePolicyAggregatedList_Warning,
+
+    -- ** ResourcePolicyAggregatedList_Warning_Code
+    ResourcePolicyAggregatedList_Warning_Code (..),
+
+    -- ** ResourcePolicyAggregatedList_Warning_DataItem
+    ResourcePolicyAggregatedList_Warning_DataItem (..),
+    newResourcePolicyAggregatedList_Warning_DataItem,
+
+    -- ** ResourcePolicyDailyCycle
+    ResourcePolicyDailyCycle (..),
+    newResourcePolicyDailyCycle,
+
+    -- ** ResourcePolicyDiskConsistencyGroupPolicy
+    ResourcePolicyDiskConsistencyGroupPolicy (..),
+    newResourcePolicyDiskConsistencyGroupPolicy,
+
+    -- ** ResourcePolicyGroupPlacementPolicy
+    ResourcePolicyGroupPlacementPolicy (..),
+    newResourcePolicyGroupPlacementPolicy,
+
+    -- ** ResourcePolicyGroupPlacementPolicy_Collocation
+    ResourcePolicyGroupPlacementPolicy_Collocation (..),
+
+    -- ** ResourcePolicyHourlyCycle
+    ResourcePolicyHourlyCycle (..),
+    newResourcePolicyHourlyCycle,
+
+    -- ** ResourcePolicyInstanceSchedulePolicy
+    ResourcePolicyInstanceSchedulePolicy (..),
+    newResourcePolicyInstanceSchedulePolicy,
+
+    -- ** ResourcePolicyInstanceSchedulePolicySchedule
+    ResourcePolicyInstanceSchedulePolicySchedule (..),
+    newResourcePolicyInstanceSchedulePolicySchedule,
+
+    -- ** ResourcePolicyList
+    ResourcePolicyList (..),
+    newResourcePolicyList,
+
+    -- ** ResourcePolicyList_Warning
+    ResourcePolicyList_Warning (..),
+    newResourcePolicyList_Warning,
+
+    -- ** ResourcePolicyList_Warning_Code
+    ResourcePolicyList_Warning_Code (..),
+
+    -- ** ResourcePolicyList_Warning_DataItem
+    ResourcePolicyList_Warning_DataItem (..),
+    newResourcePolicyList_Warning_DataItem,
+
+    -- ** ResourcePolicyResourceStatus
+    ResourcePolicyResourceStatus (..),
+    newResourcePolicyResourceStatus,
+
+    -- ** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
+    ResourcePolicyResourceStatusInstanceSchedulePolicyStatus (..),
+    newResourcePolicyResourceStatusInstanceSchedulePolicyStatus,
+
+    -- ** ResourcePolicySnapshotSchedulePolicy
+    ResourcePolicySnapshotSchedulePolicy (..),
+    newResourcePolicySnapshotSchedulePolicy,
+
+    -- ** ResourcePolicySnapshotSchedulePolicyRetentionPolicy
+    ResourcePolicySnapshotSchedulePolicyRetentionPolicy (..),
+    newResourcePolicySnapshotSchedulePolicyRetentionPolicy,
+
+    -- ** ResourcePolicySnapshotSchedulePolicyRetentionPolicy_OnSourceDiskDelete
+    ResourcePolicySnapshotSchedulePolicyRetentionPolicy_OnSourceDiskDelete (..),
+
+    -- ** ResourcePolicySnapshotSchedulePolicySchedule
+    ResourcePolicySnapshotSchedulePolicySchedule (..),
+    newResourcePolicySnapshotSchedulePolicySchedule,
+
+    -- ** ResourcePolicySnapshotSchedulePolicySnapshotProperties
+    ResourcePolicySnapshotSchedulePolicySnapshotProperties (..),
+    newResourcePolicySnapshotSchedulePolicySnapshotProperties,
+
+    -- ** ResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels
+    ResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels (..),
+    newResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels,
+
+    -- ** ResourcePolicyWeeklyCycle
+    ResourcePolicyWeeklyCycle (..),
+    newResourcePolicyWeeklyCycle,
+
+    -- ** ResourcePolicyWeeklyCycleDayOfWeek
+    ResourcePolicyWeeklyCycleDayOfWeek (..),
+    newResourcePolicyWeeklyCycleDayOfWeek,
+
+    -- ** ResourcePolicyWeeklyCycleDayOfWeek_Day
+    ResourcePolicyWeeklyCycleDayOfWeek_Day (..),
+
+    -- ** ResourceStatus
+    ResourceStatus (..),
+    newResourceStatus,
+
+    -- ** ResourceStatusScheduling
+    ResourceStatusScheduling (..),
+    newResourceStatusScheduling,
+
+    -- ** Route
+    Route (..),
+    newRoute,
+
+    -- ** Route_NextHopOrigin
+    Route_NextHopOrigin (..),
+
+    -- ** Route_RouteStatus
+    Route_RouteStatus (..),
+
+    -- ** Route_RouteType
+    Route_RouteType (..),
+
+    -- ** Route_WarningsItem
+    Route_WarningsItem (..),
+    newRoute_WarningsItem,
+
+    -- ** Route_WarningsItem_Code
+    Route_WarningsItem_Code (..),
+
+    -- ** Route_WarningsItem_DataItem
+    Route_WarningsItem_DataItem (..),
+    newRoute_WarningsItem_DataItem,
+
+    -- ** RouteAsPath
+    RouteAsPath (..),
+    newRouteAsPath,
+
+    -- ** RouteAsPath_PathSegmentType
+    RouteAsPath_PathSegmentType (..),
+
+    -- ** RouteList
+    RouteList (..),
+    newRouteList,
+
+    -- ** RouteList_Warning
+    RouteList_Warning (..),
+    newRouteList_Warning,
+
+    -- ** RouteList_Warning_Code
+    RouteList_Warning_Code (..),
+
+    -- ** RouteList_Warning_DataItem
+    RouteList_Warning_DataItem (..),
+    newRouteList_Warning_DataItem,
+
+    -- ** RoutePolicy
+    RoutePolicy (..),
+    newRoutePolicy,
+
+    -- ** RoutePolicy_Type
+    RoutePolicy_Type (..),
+
+    -- ** RoutePolicyPolicyTerm
+    RoutePolicyPolicyTerm (..),
+    newRoutePolicyPolicyTerm,
+
+    -- ** Router
+    Router (..),
+    newRouter,
+
+    -- ** RouterAdvertisedIpRange
+    RouterAdvertisedIpRange (..),
+    newRouterAdvertisedIpRange,
+
+    -- ** RouterAggregatedList
+    RouterAggregatedList (..),
+    newRouterAggregatedList,
+
+    -- ** RouterAggregatedList_Items
+    RouterAggregatedList_Items (..),
+    newRouterAggregatedList_Items,
+
+    -- ** RouterAggregatedList_Warning
+    RouterAggregatedList_Warning (..),
+    newRouterAggregatedList_Warning,
+
+    -- ** RouterAggregatedList_Warning_Code
+    RouterAggregatedList_Warning_Code (..),
+
+    -- ** RouterAggregatedList_Warning_DataItem
+    RouterAggregatedList_Warning_DataItem (..),
+    newRouterAggregatedList_Warning_DataItem,
+
+    -- ** RouterBgp
+    RouterBgp (..),
+    newRouterBgp,
+
+    -- ** RouterBgp_AdvertiseMode
+    RouterBgp_AdvertiseMode (..),
+
+    -- ** RouterBgp_AdvertisedGroupsItem
+    RouterBgp_AdvertisedGroupsItem (..),
+
+    -- ** RouterBgpPeer
+    RouterBgpPeer (..),
+    newRouterBgpPeer,
+
+    -- ** RouterBgpPeer_AdvertiseMode
+    RouterBgpPeer_AdvertiseMode (..),
+
+    -- ** RouterBgpPeer_AdvertisedGroupsItem
+    RouterBgpPeer_AdvertisedGroupsItem (..),
+
+    -- ** RouterBgpPeer_Enable
+    RouterBgpPeer_Enable (..),
+
+    -- ** RouterBgpPeer_ManagementType
+    RouterBgpPeer_ManagementType (..),
+
+    -- ** RouterBgpPeerBfd
+    RouterBgpPeerBfd (..),
+    newRouterBgpPeerBfd,
+
+    -- ** RouterBgpPeerBfd_SessionInitializationMode
+    RouterBgpPeerBfd_SessionInitializationMode (..),
+
+    -- ** RouterBgpPeerCustomLearnedIpRange
+    RouterBgpPeerCustomLearnedIpRange (..),
+    newRouterBgpPeerCustomLearnedIpRange,
+
+    -- ** RouterInterface
+    RouterInterface (..),
+    newRouterInterface,
+
+    -- ** RouterInterface_IpVersion
+    RouterInterface_IpVersion (..),
+
+    -- ** RouterInterface_ManagementType
+    RouterInterface_ManagementType (..),
+
+    -- ** RouterList
+    RouterList (..),
+    newRouterList,
+
+    -- ** RouterList_Warning
+    RouterList_Warning (..),
+    newRouterList_Warning,
+
+    -- ** RouterList_Warning_Code
+    RouterList_Warning_Code (..),
+
+    -- ** RouterList_Warning_DataItem
+    RouterList_Warning_DataItem (..),
+    newRouterList_Warning_DataItem,
+
+    -- ** RouterMd5AuthenticationKey
+    RouterMd5AuthenticationKey (..),
+    newRouterMd5AuthenticationKey,
+
+    -- ** RouterNat
+    RouterNat (..),
+    newRouterNat,
+
+    -- ** RouterNat_AutoNetworkTier
+    RouterNat_AutoNetworkTier (..),
+
+    -- ** RouterNat_EndpointTypesItem
+    RouterNat_EndpointTypesItem (..),
+
+    -- ** RouterNat_NatIpAllocateOption
+    RouterNat_NatIpAllocateOption (..),
+
+    -- ** RouterNat_SourceSubnetworkIpRangesToNat
+    RouterNat_SourceSubnetworkIpRangesToNat (..),
+
+    -- ** RouterNat_Type
+    RouterNat_Type (..),
+
+    -- ** RouterNatLogConfig
+    RouterNatLogConfig (..),
+    newRouterNatLogConfig,
+
+    -- ** RouterNatLogConfig_Filter
+    RouterNatLogConfig_Filter (..),
+
+    -- ** RouterNatRule
+    RouterNatRule (..),
+    newRouterNatRule,
+
+    -- ** RouterNatRuleAction
+    RouterNatRuleAction (..),
+    newRouterNatRuleAction,
+
+    -- ** RouterNatSubnetworkToNat
+    RouterNatSubnetworkToNat (..),
+    newRouterNatSubnetworkToNat,
+
+    -- ** RouterNatSubnetworkToNat_SourceIpRangesToNatItem
+    RouterNatSubnetworkToNat_SourceIpRangesToNatItem (..),
+
+    -- ** RouterStatus
+    RouterStatus (..),
+    newRouterStatus,
+
+    -- ** RouterStatusBgpPeerStatus
+    RouterStatusBgpPeerStatus (..),
+    newRouterStatusBgpPeerStatus,
+
+    -- ** RouterStatusBgpPeerStatus_Status
+    RouterStatusBgpPeerStatus_Status (..),
+
+    -- ** RouterStatusBgpPeerStatus_StatusReason
+    RouterStatusBgpPeerStatus_StatusReason (..),
+
+    -- ** RouterStatusNatStatus
+    RouterStatusNatStatus (..),
+    newRouterStatusNatStatus,
+
+    -- ** RouterStatusNatStatusNatRuleStatus
+    RouterStatusNatStatusNatRuleStatus (..),
+    newRouterStatusNatStatusNatRuleStatus,
+
+    -- ** RouterStatusResponse
+    RouterStatusResponse (..),
+    newRouterStatusResponse,
+
+    -- ** RoutersGetRoutePolicyResponse
+    RoutersGetRoutePolicyResponse (..),
+    newRoutersGetRoutePolicyResponse,
+
+    -- ** RoutersListBgpRoutes
+    RoutersListBgpRoutes (..),
+    newRoutersListBgpRoutes,
+
+    -- ** RoutersListBgpRoutes_Warning
+    RoutersListBgpRoutes_Warning (..),
+    newRoutersListBgpRoutes_Warning,
+
+    -- ** RoutersListBgpRoutes_Warning_Code
+    RoutersListBgpRoutes_Warning_Code (..),
+
+    -- ** RoutersListBgpRoutes_Warning_DataItem
+    RoutersListBgpRoutes_Warning_DataItem (..),
+    newRoutersListBgpRoutes_Warning_DataItem,
+
+    -- ** RoutersListRoutePolicies
+    RoutersListRoutePolicies (..),
+    newRoutersListRoutePolicies,
+
+    -- ** RoutersListRoutePolicies_Warning
+    RoutersListRoutePolicies_Warning (..),
+    newRoutersListRoutePolicies_Warning,
+
+    -- ** RoutersListRoutePolicies_Warning_Code
+    RoutersListRoutePolicies_Warning_Code (..),
+
+    -- ** RoutersListRoutePolicies_Warning_DataItem
+    RoutersListRoutePolicies_Warning_DataItem (..),
+    newRoutersListRoutePolicies_Warning_DataItem,
+
+    -- ** RoutersPreviewResponse
+    RoutersPreviewResponse (..),
+    newRoutersPreviewResponse,
+
+    -- ** RoutersScopedList
+    RoutersScopedList (..),
+    newRoutersScopedList,
+
+    -- ** RoutersScopedList_Warning
+    RoutersScopedList_Warning (..),
+    newRoutersScopedList_Warning,
+
+    -- ** RoutersScopedList_Warning_Code
+    RoutersScopedList_Warning_Code (..),
+
+    -- ** RoutersScopedList_Warning_DataItem
+    RoutersScopedList_Warning_DataItem (..),
+    newRoutersScopedList_Warning_DataItem,
+
+    -- ** SSLHealthCheck
+    SSLHealthCheck (..),
+    newSSLHealthCheck,
+
+    -- ** SSLHealthCheck_PortSpecification
+    SSLHealthCheck_PortSpecification (..),
+
+    -- ** SSLHealthCheck_ProxyHeader
+    SSLHealthCheck_ProxyHeader (..),
+
+    -- ** SavedAttachedDisk
+    SavedAttachedDisk (..),
+    newSavedAttachedDisk,
+
+    -- ** SavedAttachedDisk_Interface
+    SavedAttachedDisk_Interface (..),
+
+    -- ** SavedAttachedDisk_Mode
+    SavedAttachedDisk_Mode (..),
+
+    -- ** SavedAttachedDisk_StorageBytesStatus
+    SavedAttachedDisk_StorageBytesStatus (..),
+
+    -- ** SavedAttachedDisk_Type
+    SavedAttachedDisk_Type (..),
+
+    -- ** SavedDisk
+    SavedDisk (..),
+    newSavedDisk,
+
+    -- ** SavedDisk_Architecture
+    SavedDisk_Architecture (..),
+
+    -- ** SavedDisk_StorageBytesStatus
+    SavedDisk_StorageBytesStatus (..),
+
+    -- ** ScalingScheduleStatus
+    ScalingScheduleStatus (..),
+    newScalingScheduleStatus,
+
+    -- ** ScalingScheduleStatus_State
+    ScalingScheduleStatus_State (..),
+
+    -- ** Scheduling
+    Scheduling (..),
+    newScheduling,
+
+    -- ** Scheduling_InstanceTerminationAction
+    Scheduling_InstanceTerminationAction (..),
+
+    -- ** Scheduling_OnHostMaintenance
+    Scheduling_OnHostMaintenance (..),
+
+    -- ** Scheduling_ProvisioningModel
+    Scheduling_ProvisioningModel (..),
+
+    -- ** SchedulingNodeAffinity
+    SchedulingNodeAffinity (..),
+    newSchedulingNodeAffinity,
+
+    -- ** SchedulingNodeAffinity_Operator
+    SchedulingNodeAffinity_Operator (..),
+
+    -- ** SchedulingOnInstanceStopAction
+    SchedulingOnInstanceStopAction (..),
+    newSchedulingOnInstanceStopAction,
+
+    -- ** Screenshot
+    Screenshot (..),
+    newScreenshot,
+
+    -- ** SecurityPoliciesAggregatedList
+    SecurityPoliciesAggregatedList (..),
+    newSecurityPoliciesAggregatedList,
+
+    -- ** SecurityPoliciesAggregatedList_Items
+    SecurityPoliciesAggregatedList_Items (..),
+    newSecurityPoliciesAggregatedList_Items,
+
+    -- ** SecurityPoliciesAggregatedList_Warning
+    SecurityPoliciesAggregatedList_Warning (..),
+    newSecurityPoliciesAggregatedList_Warning,
+
+    -- ** SecurityPoliciesAggregatedList_Warning_Code
+    SecurityPoliciesAggregatedList_Warning_Code (..),
+
+    -- ** SecurityPoliciesAggregatedList_Warning_DataItem
+    SecurityPoliciesAggregatedList_Warning_DataItem (..),
+    newSecurityPoliciesAggregatedList_Warning_DataItem,
+
+    -- ** SecurityPoliciesListPreconfiguredExpressionSetsResponse
+    SecurityPoliciesListPreconfiguredExpressionSetsResponse (..),
+    newSecurityPoliciesListPreconfiguredExpressionSetsResponse,
+
+    -- ** SecurityPoliciesScopedList
+    SecurityPoliciesScopedList (..),
+    newSecurityPoliciesScopedList,
+
+    -- ** SecurityPoliciesScopedList_Warning
+    SecurityPoliciesScopedList_Warning (..),
+    newSecurityPoliciesScopedList_Warning,
+
+    -- ** SecurityPoliciesScopedList_Warning_Code
+    SecurityPoliciesScopedList_Warning_Code (..),
+
+    -- ** SecurityPoliciesScopedList_Warning_DataItem
+    SecurityPoliciesScopedList_Warning_DataItem (..),
+    newSecurityPoliciesScopedList_Warning_DataItem,
+
+    -- ** SecurityPoliciesWafConfig
+    SecurityPoliciesWafConfig (..),
+    newSecurityPoliciesWafConfig,
+
+    -- ** SecurityPolicy
+    SecurityPolicy (..),
+    newSecurityPolicy,
+
+    -- ** SecurityPolicy_Labels
+    SecurityPolicy_Labels (..),
+    newSecurityPolicy_Labels,
+
+    -- ** SecurityPolicy_Type
+    SecurityPolicy_Type (..),
+
+    -- ** SecurityPolicyAdaptiveProtectionConfig
+    SecurityPolicyAdaptiveProtectionConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig_RuleVisibility
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig_RuleVisibility (..),
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig_Type
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig_Type (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfig
+    SecurityPolicyAdvancedOptionsConfig (..),
+    newSecurityPolicyAdvancedOptionsConfig,
+
+    -- ** SecurityPolicyAdvancedOptionsConfig_JsonParsing
+    SecurityPolicyAdvancedOptionsConfig_JsonParsing (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfig_LogLevel
+    SecurityPolicyAdvancedOptionsConfig_LogLevel (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
+    SecurityPolicyAdvancedOptionsConfigJsonCustomConfig (..),
+    newSecurityPolicyAdvancedOptionsConfigJsonCustomConfig,
+
+    -- ** SecurityPolicyDdosProtectionConfig
+    SecurityPolicyDdosProtectionConfig (..),
+    newSecurityPolicyDdosProtectionConfig,
+
+    -- ** SecurityPolicyDdosProtectionConfig_DdosProtection
+    SecurityPolicyDdosProtectionConfig_DdosProtection (..),
+
+    -- ** SecurityPolicyList
+    SecurityPolicyList (..),
+    newSecurityPolicyList,
+
+    -- ** SecurityPolicyList_Warning
+    SecurityPolicyList_Warning (..),
+    newSecurityPolicyList_Warning,
+
+    -- ** SecurityPolicyList_Warning_Code
+    SecurityPolicyList_Warning_Code (..),
+
+    -- ** SecurityPolicyList_Warning_DataItem
+    SecurityPolicyList_Warning_DataItem (..),
+    newSecurityPolicyList_Warning_DataItem,
+
+    -- ** SecurityPolicyRecaptchaOptionsConfig
+    SecurityPolicyRecaptchaOptionsConfig (..),
+    newSecurityPolicyRecaptchaOptionsConfig,
+
+    -- ** SecurityPolicyReference
+    SecurityPolicyReference (..),
+    newSecurityPolicyReference,
+
+    -- ** SecurityPolicyRule
+    SecurityPolicyRule (..),
+    newSecurityPolicyRule,
+
+    -- ** SecurityPolicyRuleHttpHeaderAction
+    SecurityPolicyRuleHttpHeaderAction (..),
+    newSecurityPolicyRuleHttpHeaderAction,
+
+    -- ** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
+    SecurityPolicyRuleHttpHeaderActionHttpHeaderOption (..),
+    newSecurityPolicyRuleHttpHeaderActionHttpHeaderOption,
+
+    -- ** SecurityPolicyRuleMatcher
+    SecurityPolicyRuleMatcher (..),
+    newSecurityPolicyRuleMatcher,
+
+    -- ** SecurityPolicyRuleMatcher_VersionedExpr
+    SecurityPolicyRuleMatcher_VersionedExpr (..),
+
+    -- ** SecurityPolicyRuleMatcherConfig
+    SecurityPolicyRuleMatcherConfig (..),
+    newSecurityPolicyRuleMatcherConfig,
+
+    -- ** SecurityPolicyRuleMatcherExprOptions
+    SecurityPolicyRuleMatcherExprOptions (..),
+    newSecurityPolicyRuleMatcherExprOptions,
+
+    -- ** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
+    SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions (..),
+    newSecurityPolicyRuleMatcherExprOptionsRecaptchaOptions,
+
+    -- ** SecurityPolicyRuleNetworkMatcher
+    SecurityPolicyRuleNetworkMatcher (..),
+    newSecurityPolicyRuleNetworkMatcher,
+
+    -- ** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
+    SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch (..),
+    newSecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfig
+    SecurityPolicyRulePreconfiguredWafConfig (..),
+    newSecurityPolicyRulePreconfiguredWafConfig,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusion
+    SecurityPolicyRulePreconfiguredWafConfigExclusion (..),
+    newSecurityPolicyRulePreconfiguredWafConfigExclusion,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
+    SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams (..),
+    newSecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams_Op
+    SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams_Op (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptions
+    SecurityPolicyRuleRateLimitOptions (..),
+    newSecurityPolicyRuleRateLimitOptions,
+
+    -- ** SecurityPolicyRuleRateLimitOptions_EnforceOnKey
+    SecurityPolicyRuleRateLimitOptions_EnforceOnKey (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
+    SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig (..),
+    newSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig,
+
+    -- ** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig_EnforceOnKeyType
+    SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig_EnforceOnKeyType (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptionsThreshold
+    SecurityPolicyRuleRateLimitOptionsThreshold (..),
+    newSecurityPolicyRuleRateLimitOptionsThreshold,
+
+    -- ** SecurityPolicyRuleRedirectOptions
+    SecurityPolicyRuleRedirectOptions (..),
+    newSecurityPolicyRuleRedirectOptions,
+
+    -- ** SecurityPolicyRuleRedirectOptions_Type
+    SecurityPolicyRuleRedirectOptions_Type (..),
+
+    -- ** SecurityPolicyUserDefinedField
+    SecurityPolicyUserDefinedField (..),
+    newSecurityPolicyUserDefinedField,
+
+    -- ** SecurityPolicyUserDefinedField_Base
+    SecurityPolicyUserDefinedField_Base (..),
+
+    -- ** SecuritySettings
+    SecuritySettings (..),
+    newSecuritySettings,
+
+    -- ** SerialPortOutput
+    SerialPortOutput (..),
+    newSerialPortOutput,
+
+    -- ** ServerBinding
+    ServerBinding (..),
+    newServerBinding,
+
+    -- ** ServerBinding_Type
+    ServerBinding_Type (..),
+
+    -- ** ServiceAccount
+    ServiceAccount (..),
+    newServiceAccount,
+
+    -- ** ServiceAttachment
+    ServiceAttachment (..),
+    newServiceAttachment,
+
+    -- ** ServiceAttachment_ConnectionPreference
+    ServiceAttachment_ConnectionPreference (..),
+
+    -- ** ServiceAttachmentAggregatedList
+    ServiceAttachmentAggregatedList (..),
+    newServiceAttachmentAggregatedList,
+
+    -- ** ServiceAttachmentAggregatedList_Items
+    ServiceAttachmentAggregatedList_Items (..),
+    newServiceAttachmentAggregatedList_Items,
+
+    -- ** ServiceAttachmentAggregatedList_Warning
+    ServiceAttachmentAggregatedList_Warning (..),
+    newServiceAttachmentAggregatedList_Warning,
+
+    -- ** ServiceAttachmentAggregatedList_Warning_Code
+    ServiceAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** ServiceAttachmentAggregatedList_Warning_DataItem
+    ServiceAttachmentAggregatedList_Warning_DataItem (..),
+    newServiceAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** ServiceAttachmentConnectedEndpoint
+    ServiceAttachmentConnectedEndpoint (..),
+    newServiceAttachmentConnectedEndpoint,
+
+    -- ** ServiceAttachmentConnectedEndpoint_Status
+    ServiceAttachmentConnectedEndpoint_Status (..),
+
+    -- ** ServiceAttachmentConsumerProjectLimit
+    ServiceAttachmentConsumerProjectLimit (..),
+    newServiceAttachmentConsumerProjectLimit,
+
+    -- ** ServiceAttachmentList
+    ServiceAttachmentList (..),
+    newServiceAttachmentList,
+
+    -- ** ServiceAttachmentList_Warning
+    ServiceAttachmentList_Warning (..),
+    newServiceAttachmentList_Warning,
+
+    -- ** ServiceAttachmentList_Warning_Code
+    ServiceAttachmentList_Warning_Code (..),
+
+    -- ** ServiceAttachmentList_Warning_DataItem
+    ServiceAttachmentList_Warning_DataItem (..),
+    newServiceAttachmentList_Warning_DataItem,
+
+    -- ** ServiceAttachmentsScopedList
+    ServiceAttachmentsScopedList (..),
+    newServiceAttachmentsScopedList,
+
+    -- ** ServiceAttachmentsScopedList_Warning
+    ServiceAttachmentsScopedList_Warning (..),
+    newServiceAttachmentsScopedList_Warning,
+
+    -- ** ServiceAttachmentsScopedList_Warning_Code
+    ServiceAttachmentsScopedList_Warning_Code (..),
+
+    -- ** ServiceAttachmentsScopedList_Warning_DataItem
+    ServiceAttachmentsScopedList_Warning_DataItem (..),
+    newServiceAttachmentsScopedList_Warning_DataItem,
+
+    -- ** SetCommonInstanceMetadataOperationMetadata
+    SetCommonInstanceMetadataOperationMetadata (..),
+    newSetCommonInstanceMetadataOperationMetadata,
+
+    -- ** SetCommonInstanceMetadataOperationMetadata_PerLocationOperations
+    SetCommonInstanceMetadataOperationMetadata_PerLocationOperations (..),
+    newSetCommonInstanceMetadataOperationMetadata_PerLocationOperations,
+
+    -- ** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
+    SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo (..),
+    newSetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo,
+
+    -- ** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo_State
+    SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo_State (..),
+
+    -- ** ShareSettings
+    ShareSettings (..),
+    newShareSettings,
+
+    -- ** ShareSettings_ProjectMap
+    ShareSettings_ProjectMap (..),
+    newShareSettings_ProjectMap,
+
+    -- ** ShareSettings_ShareType
+    ShareSettings_ShareType (..),
+
+    -- ** ShareSettingsProjectConfig
+    ShareSettingsProjectConfig (..),
+    newShareSettingsProjectConfig,
+
+    -- ** ShieldedInstanceConfig
+    ShieldedInstanceConfig (..),
+    newShieldedInstanceConfig,
+
+    -- ** ShieldedInstanceIdentity
+    ShieldedInstanceIdentity (..),
+    newShieldedInstanceIdentity,
+
+    -- ** ShieldedInstanceIdentityEntry
+    ShieldedInstanceIdentityEntry (..),
+    newShieldedInstanceIdentityEntry,
+
+    -- ** ShieldedInstanceIntegrityPolicy
+    ShieldedInstanceIntegrityPolicy (..),
+    newShieldedInstanceIntegrityPolicy,
+
+    -- ** SignedUrlKey
+    SignedUrlKey (..),
+    newSignedUrlKey,
+
+    -- ** Snapshot
+    Snapshot (..),
+    newSnapshot,
+
+    -- ** Snapshot_Architecture
+    Snapshot_Architecture (..),
+
+    -- ** Snapshot_Labels
+    Snapshot_Labels (..),
+    newSnapshot_Labels,
+
+    -- ** Snapshot_SnapshotType
+    Snapshot_SnapshotType (..),
+
+    -- ** Snapshot_Status
+    Snapshot_Status (..),
+
+    -- ** Snapshot_StorageBytesStatus
+    Snapshot_StorageBytesStatus (..),
+
+    -- ** SnapshotList
+    SnapshotList (..),
+    newSnapshotList,
+
+    -- ** SnapshotList_Warning
+    SnapshotList_Warning (..),
+    newSnapshotList_Warning,
+
+    -- ** SnapshotList_Warning_Code
+    SnapshotList_Warning_Code (..),
+
+    -- ** SnapshotList_Warning_DataItem
+    SnapshotList_Warning_DataItem (..),
+    newSnapshotList_Warning_DataItem,
+
+    -- ** SnapshotSettings
+    SnapshotSettings (..),
+    newSnapshotSettings,
+
+    -- ** SnapshotSettingsStorageLocationSettings
+    SnapshotSettingsStorageLocationSettings (..),
+    newSnapshotSettingsStorageLocationSettings,
+
+    -- ** SnapshotSettingsStorageLocationSettings_Locations
+    SnapshotSettingsStorageLocationSettings_Locations (..),
+    newSnapshotSettingsStorageLocationSettings_Locations,
+
+    -- ** SnapshotSettingsStorageLocationSettings_Policy
+    SnapshotSettingsStorageLocationSettings_Policy (..),
+
+    -- ** SnapshotSettingsStorageLocationSettingsStorageLocationPreference
+    SnapshotSettingsStorageLocationSettingsStorageLocationPreference (..),
+    newSnapshotSettingsStorageLocationSettingsStorageLocationPreference,
+
+    -- ** SourceDiskEncryptionKey
+    SourceDiskEncryptionKey (..),
+    newSourceDiskEncryptionKey,
+
+    -- ** SourceInstanceParams
+    SourceInstanceParams (..),
+    newSourceInstanceParams,
+
+    -- ** SourceInstanceProperties
+    SourceInstanceProperties (..),
+    newSourceInstanceProperties,
+
+    -- ** SourceInstanceProperties_KeyRevocationActionType
+    SourceInstanceProperties_KeyRevocationActionType (..),
+
+    -- ** SourceInstanceProperties_Labels
+    SourceInstanceProperties_Labels (..),
+    newSourceInstanceProperties_Labels,
+
+    -- ** SslCertificate
+    SslCertificate (..),
+    newSslCertificate,
+
+    -- ** SslCertificate_Type
+    SslCertificate_Type (..),
+
+    -- ** SslCertificateAggregatedList
+    SslCertificateAggregatedList (..),
+    newSslCertificateAggregatedList,
+
+    -- ** SslCertificateAggregatedList_Items
+    SslCertificateAggregatedList_Items (..),
+    newSslCertificateAggregatedList_Items,
+
+    -- ** SslCertificateAggregatedList_Warning
+    SslCertificateAggregatedList_Warning (..),
+    newSslCertificateAggregatedList_Warning,
+
+    -- ** SslCertificateAggregatedList_Warning_Code
+    SslCertificateAggregatedList_Warning_Code (..),
+
+    -- ** SslCertificateAggregatedList_Warning_DataItem
+    SslCertificateAggregatedList_Warning_DataItem (..),
+    newSslCertificateAggregatedList_Warning_DataItem,
+
+    -- ** SslCertificateList
+    SslCertificateList (..),
+    newSslCertificateList,
+
+    -- ** SslCertificateList_Warning
+    SslCertificateList_Warning (..),
+    newSslCertificateList_Warning,
+
+    -- ** SslCertificateList_Warning_Code
+    SslCertificateList_Warning_Code (..),
+
+    -- ** SslCertificateList_Warning_DataItem
+    SslCertificateList_Warning_DataItem (..),
+    newSslCertificateList_Warning_DataItem,
+
+    -- ** SslCertificateManagedSslCertificate
+    SslCertificateManagedSslCertificate (..),
+    newSslCertificateManagedSslCertificate,
+
+    -- ** SslCertificateManagedSslCertificate_DomainStatus
+    SslCertificateManagedSslCertificate_DomainStatus (..),
+    newSslCertificateManagedSslCertificate_DomainStatus,
+
+    -- ** SslCertificateManagedSslCertificate_DomainStatusAdditional
+    SslCertificateManagedSslCertificate_DomainStatusAdditional (..),
+
+    -- ** SslCertificateManagedSslCertificate_Status
+    SslCertificateManagedSslCertificate_Status (..),
+
+    -- ** SslCertificateSelfManagedSslCertificate
+    SslCertificateSelfManagedSslCertificate (..),
+    newSslCertificateSelfManagedSslCertificate,
+
+    -- ** SslCertificatesScopedList
+    SslCertificatesScopedList (..),
+    newSslCertificatesScopedList,
+
+    -- ** SslCertificatesScopedList_Warning
+    SslCertificatesScopedList_Warning (..),
+    newSslCertificatesScopedList_Warning,
+
+    -- ** SslCertificatesScopedList_Warning_Code
+    SslCertificatesScopedList_Warning_Code (..),
+
+    -- ** SslCertificatesScopedList_Warning_DataItem
+    SslCertificatesScopedList_Warning_DataItem (..),
+    newSslCertificatesScopedList_Warning_DataItem,
+
+    -- ** SslPoliciesAggregatedList
+    SslPoliciesAggregatedList (..),
+    newSslPoliciesAggregatedList,
+
+    -- ** SslPoliciesAggregatedList_Items
+    SslPoliciesAggregatedList_Items (..),
+    newSslPoliciesAggregatedList_Items,
+
+    -- ** SslPoliciesAggregatedList_Warning
+    SslPoliciesAggregatedList_Warning (..),
+    newSslPoliciesAggregatedList_Warning,
+
+    -- ** SslPoliciesAggregatedList_Warning_Code
+    SslPoliciesAggregatedList_Warning_Code (..),
+
+    -- ** SslPoliciesAggregatedList_Warning_DataItem
+    SslPoliciesAggregatedList_Warning_DataItem (..),
+    newSslPoliciesAggregatedList_Warning_DataItem,
+
+    -- ** SslPoliciesList
+    SslPoliciesList (..),
+    newSslPoliciesList,
+
+    -- ** SslPoliciesList_Warning
+    SslPoliciesList_Warning (..),
+    newSslPoliciesList_Warning,
+
+    -- ** SslPoliciesList_Warning_Code
+    SslPoliciesList_Warning_Code (..),
+
+    -- ** SslPoliciesList_Warning_DataItem
+    SslPoliciesList_Warning_DataItem (..),
+    newSslPoliciesList_Warning_DataItem,
+
+    -- ** SslPoliciesListAvailableFeaturesResponse
+    SslPoliciesListAvailableFeaturesResponse (..),
+    newSslPoliciesListAvailableFeaturesResponse,
+
+    -- ** SslPoliciesScopedList
+    SslPoliciesScopedList (..),
+    newSslPoliciesScopedList,
+
+    -- ** SslPoliciesScopedList_Warning
+    SslPoliciesScopedList_Warning (..),
+    newSslPoliciesScopedList_Warning,
+
+    -- ** SslPoliciesScopedList_Warning_Code
+    SslPoliciesScopedList_Warning_Code (..),
+
+    -- ** SslPoliciesScopedList_Warning_DataItem
+    SslPoliciesScopedList_Warning_DataItem (..),
+    newSslPoliciesScopedList_Warning_DataItem,
+
+    -- ** SslPolicy
+    SslPolicy (..),
+    newSslPolicy,
+
+    -- ** SslPolicy_MinTlsVersion
+    SslPolicy_MinTlsVersion (..),
+
+    -- ** SslPolicy_Profile
+    SslPolicy_Profile (..),
+
+    -- ** SslPolicy_WarningsItem
+    SslPolicy_WarningsItem (..),
+    newSslPolicy_WarningsItem,
+
+    -- ** SslPolicy_WarningsItem_Code
+    SslPolicy_WarningsItem_Code (..),
+
+    -- ** SslPolicy_WarningsItem_DataItem
+    SslPolicy_WarningsItem_DataItem (..),
+    newSslPolicy_WarningsItem_DataItem,
+
+    -- ** SslPolicyReference
+    SslPolicyReference (..),
+    newSslPolicyReference,
+
+    -- ** StatefulPolicy
+    StatefulPolicy (..),
+    newStatefulPolicy,
+
+    -- ** StatefulPolicyPreservedState
+    StatefulPolicyPreservedState (..),
+    newStatefulPolicyPreservedState,
+
+    -- ** StatefulPolicyPreservedState_Disks
+    StatefulPolicyPreservedState_Disks (..),
+    newStatefulPolicyPreservedState_Disks,
+
+    -- ** StatefulPolicyPreservedState_ExternalIPs
+    StatefulPolicyPreservedState_ExternalIPs (..),
+    newStatefulPolicyPreservedState_ExternalIPs,
+
+    -- ** StatefulPolicyPreservedState_InternalIPs
+    StatefulPolicyPreservedState_InternalIPs (..),
+    newStatefulPolicyPreservedState_InternalIPs,
+
+    -- ** StatefulPolicyPreservedStateDiskDevice
+    StatefulPolicyPreservedStateDiskDevice (..),
+    newStatefulPolicyPreservedStateDiskDevice,
+
+    -- ** StatefulPolicyPreservedStateDiskDevice_AutoDelete
+    StatefulPolicyPreservedStateDiskDevice_AutoDelete (..),
+
+    -- ** StatefulPolicyPreservedStateNetworkIp
+    StatefulPolicyPreservedStateNetworkIp (..),
+    newStatefulPolicyPreservedStateNetworkIp,
+
+    -- ** StatefulPolicyPreservedStateNetworkIp_AutoDelete
+    StatefulPolicyPreservedStateNetworkIp_AutoDelete (..),
+
+    -- ** Status
+    Status (..),
+    newStatus,
+
+    -- ** Status_DetailsItem
+    Status_DetailsItem (..),
+    newStatus_DetailsItem,
+
+    -- ** StoragePool
+    StoragePool (..),
+    newStoragePool,
+
+    -- ** StoragePool_CapacityProvisioningType
+    StoragePool_CapacityProvisioningType (..),
+
+    -- ** StoragePool_Labels
+    StoragePool_Labels (..),
+    newStoragePool_Labels,
+
+    -- ** StoragePool_PerformanceProvisioningType
+    StoragePool_PerformanceProvisioningType (..),
+
+    -- ** StoragePool_State
+    StoragePool_State (..),
+
+    -- ** StoragePoolAggregatedList
+    StoragePoolAggregatedList (..),
+    newStoragePoolAggregatedList,
+
+    -- ** StoragePoolAggregatedList_Items
+    StoragePoolAggregatedList_Items (..),
+    newStoragePoolAggregatedList_Items,
+
+    -- ** StoragePoolAggregatedList_Warning
+    StoragePoolAggregatedList_Warning (..),
+    newStoragePoolAggregatedList_Warning,
+
+    -- ** StoragePoolAggregatedList_Warning_Code
+    StoragePoolAggregatedList_Warning_Code (..),
+
+    -- ** StoragePoolAggregatedList_Warning_DataItem
+    StoragePoolAggregatedList_Warning_DataItem (..),
+    newStoragePoolAggregatedList_Warning_DataItem,
+
+    -- ** StoragePoolDisk
+    StoragePoolDisk (..),
+    newStoragePoolDisk,
+
+    -- ** StoragePoolDisk_Status
+    StoragePoolDisk_Status (..),
+
+    -- ** StoragePoolList
+    StoragePoolList (..),
+    newStoragePoolList,
+
+    -- ** StoragePoolList_Warning
+    StoragePoolList_Warning (..),
+    newStoragePoolList_Warning,
+
+    -- ** StoragePoolList_Warning_Code
+    StoragePoolList_Warning_Code (..),
+
+    -- ** StoragePoolList_Warning_DataItem
+    StoragePoolList_Warning_DataItem (..),
+    newStoragePoolList_Warning_DataItem,
+
+    -- ** StoragePoolListDisks
+    StoragePoolListDisks (..),
+    newStoragePoolListDisks,
+
+    -- ** StoragePoolListDisks_Warning
+    StoragePoolListDisks_Warning (..),
+    newStoragePoolListDisks_Warning,
+
+    -- ** StoragePoolListDisks_Warning_Code
+    StoragePoolListDisks_Warning_Code (..),
+
+    -- ** StoragePoolListDisks_Warning_DataItem
+    StoragePoolListDisks_Warning_DataItem (..),
+    newStoragePoolListDisks_Warning_DataItem,
+
+    -- ** StoragePoolResourceStatus
+    StoragePoolResourceStatus (..),
+    newStoragePoolResourceStatus,
+
+    -- ** StoragePoolType
+    StoragePoolType (..),
+    newStoragePoolType,
+
+    -- ** StoragePoolTypeAggregatedList
+    StoragePoolTypeAggregatedList (..),
+    newStoragePoolTypeAggregatedList,
+
+    -- ** StoragePoolTypeAggregatedList_Items
+    StoragePoolTypeAggregatedList_Items (..),
+    newStoragePoolTypeAggregatedList_Items,
+
+    -- ** StoragePoolTypeAggregatedList_Warning
+    StoragePoolTypeAggregatedList_Warning (..),
+    newStoragePoolTypeAggregatedList_Warning,
+
+    -- ** StoragePoolTypeAggregatedList_Warning_Code
+    StoragePoolTypeAggregatedList_Warning_Code (..),
+
+    -- ** StoragePoolTypeAggregatedList_Warning_DataItem
+    StoragePoolTypeAggregatedList_Warning_DataItem (..),
+    newStoragePoolTypeAggregatedList_Warning_DataItem,
+
+    -- ** StoragePoolTypeList
+    StoragePoolTypeList (..),
+    newStoragePoolTypeList,
+
+    -- ** StoragePoolTypeList_Warning
+    StoragePoolTypeList_Warning (..),
+    newStoragePoolTypeList_Warning,
+
+    -- ** StoragePoolTypeList_Warning_Code
+    StoragePoolTypeList_Warning_Code (..),
+
+    -- ** StoragePoolTypeList_Warning_DataItem
+    StoragePoolTypeList_Warning_DataItem (..),
+    newStoragePoolTypeList_Warning_DataItem,
+
+    -- ** StoragePoolTypesScopedList
+    StoragePoolTypesScopedList (..),
+    newStoragePoolTypesScopedList,
+
+    -- ** StoragePoolTypesScopedList_Warning
+    StoragePoolTypesScopedList_Warning (..),
+    newStoragePoolTypesScopedList_Warning,
+
+    -- ** StoragePoolTypesScopedList_Warning_Code
+    StoragePoolTypesScopedList_Warning_Code (..),
+
+    -- ** StoragePoolTypesScopedList_Warning_DataItem
+    StoragePoolTypesScopedList_Warning_DataItem (..),
+    newStoragePoolTypesScopedList_Warning_DataItem,
+
+    -- ** StoragePoolsScopedList
+    StoragePoolsScopedList (..),
+    newStoragePoolsScopedList,
+
+    -- ** StoragePoolsScopedList_Warning
+    StoragePoolsScopedList_Warning (..),
+    newStoragePoolsScopedList_Warning,
+
+    -- ** StoragePoolsScopedList_Warning_Code
+    StoragePoolsScopedList_Warning_Code (..),
+
+    -- ** StoragePoolsScopedList_Warning_DataItem
+    StoragePoolsScopedList_Warning_DataItem (..),
+    newStoragePoolsScopedList_Warning_DataItem,
+
+    -- ** Subnetwork
+    Subnetwork (..),
+    newSubnetwork,
+
+    -- ** Subnetwork_Ipv6AccessType
+    Subnetwork_Ipv6AccessType (..),
+
+    -- ** Subnetwork_PrivateIpv6GoogleAccess
+    Subnetwork_PrivateIpv6GoogleAccess (..),
+
+    -- ** Subnetwork_Purpose
+    Subnetwork_Purpose (..),
+
+    -- ** Subnetwork_Role
+    Subnetwork_Role (..),
+
+    -- ** Subnetwork_StackType
+    Subnetwork_StackType (..),
+
+    -- ** Subnetwork_State
+    Subnetwork_State (..),
+
+    -- ** SubnetworkAggregatedList
+    SubnetworkAggregatedList (..),
+    newSubnetworkAggregatedList,
+
+    -- ** SubnetworkAggregatedList_Items
+    SubnetworkAggregatedList_Items (..),
+    newSubnetworkAggregatedList_Items,
+
+    -- ** SubnetworkAggregatedList_Warning
+    SubnetworkAggregatedList_Warning (..),
+    newSubnetworkAggregatedList_Warning,
+
+    -- ** SubnetworkAggregatedList_Warning_Code
+    SubnetworkAggregatedList_Warning_Code (..),
+
+    -- ** SubnetworkAggregatedList_Warning_DataItem
+    SubnetworkAggregatedList_Warning_DataItem (..),
+    newSubnetworkAggregatedList_Warning_DataItem,
+
+    -- ** SubnetworkList
+    SubnetworkList (..),
+    newSubnetworkList,
+
+    -- ** SubnetworkList_Warning
+    SubnetworkList_Warning (..),
+    newSubnetworkList_Warning,
+
+    -- ** SubnetworkList_Warning_Code
+    SubnetworkList_Warning_Code (..),
+
+    -- ** SubnetworkList_Warning_DataItem
+    SubnetworkList_Warning_DataItem (..),
+    newSubnetworkList_Warning_DataItem,
+
+    -- ** SubnetworkLogConfig
+    SubnetworkLogConfig (..),
+    newSubnetworkLogConfig,
+
+    -- ** SubnetworkLogConfig_AggregationInterval
+    SubnetworkLogConfig_AggregationInterval (..),
+
+    -- ** SubnetworkLogConfig_Metadata
+    SubnetworkLogConfig_Metadata (..),
+
+    -- ** SubnetworkSecondaryRange
+    SubnetworkSecondaryRange (..),
+    newSubnetworkSecondaryRange,
+
+    -- ** SubnetworksExpandIpCidrRangeRequest
+    SubnetworksExpandIpCidrRangeRequest (..),
+    newSubnetworksExpandIpCidrRangeRequest,
+
+    -- ** SubnetworksScopedList
+    SubnetworksScopedList (..),
+    newSubnetworksScopedList,
+
+    -- ** SubnetworksScopedList_Warning
+    SubnetworksScopedList_Warning (..),
+    newSubnetworksScopedList_Warning,
+
+    -- ** SubnetworksScopedList_Warning_Code
+    SubnetworksScopedList_Warning_Code (..),
+
+    -- ** SubnetworksScopedList_Warning_DataItem
+    SubnetworksScopedList_Warning_DataItem (..),
+    newSubnetworksScopedList_Warning_DataItem,
+
+    -- ** SubnetworksSetPrivateIpGoogleAccessRequest
+    SubnetworksSetPrivateIpGoogleAccessRequest (..),
+    newSubnetworksSetPrivateIpGoogleAccessRequest,
+
+    -- ** Subsetting
+    Subsetting (..),
+    newSubsetting,
+
+    -- ** Subsetting_Policy
+    Subsetting_Policy (..),
+
+    -- ** TCPHealthCheck
+    TCPHealthCheck (..),
+    newTCPHealthCheck,
+
+    -- ** TCPHealthCheck_PortSpecification
+    TCPHealthCheck_PortSpecification (..),
+
+    -- ** TCPHealthCheck_ProxyHeader
+    TCPHealthCheck_ProxyHeader (..),
+
+    -- ** Tags
+    Tags (..),
+    newTags,
+
+    -- ** TargetGrpcProxy
+    TargetGrpcProxy (..),
+    newTargetGrpcProxy,
+
+    -- ** TargetGrpcProxyList
+    TargetGrpcProxyList (..),
+    newTargetGrpcProxyList,
+
+    -- ** TargetGrpcProxyList_Warning
+    TargetGrpcProxyList_Warning (..),
+    newTargetGrpcProxyList_Warning,
+
+    -- ** TargetGrpcProxyList_Warning_Code
+    TargetGrpcProxyList_Warning_Code (..),
+
+    -- ** TargetGrpcProxyList_Warning_DataItem
+    TargetGrpcProxyList_Warning_DataItem (..),
+    newTargetGrpcProxyList_Warning_DataItem,
+
+    -- ** TargetHttpProxiesScopedList
+    TargetHttpProxiesScopedList (..),
+    newTargetHttpProxiesScopedList,
+
+    -- ** TargetHttpProxiesScopedList_Warning
+    TargetHttpProxiesScopedList_Warning (..),
+    newTargetHttpProxiesScopedList_Warning,
+
+    -- ** TargetHttpProxiesScopedList_Warning_Code
+    TargetHttpProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetHttpProxiesScopedList_Warning_DataItem
+    TargetHttpProxiesScopedList_Warning_DataItem (..),
+    newTargetHttpProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetHttpProxy
+    TargetHttpProxy (..),
+    newTargetHttpProxy,
+
+    -- ** TargetHttpProxyAggregatedList
+    TargetHttpProxyAggregatedList (..),
+    newTargetHttpProxyAggregatedList,
+
+    -- ** TargetHttpProxyAggregatedList_Items
+    TargetHttpProxyAggregatedList_Items (..),
+    newTargetHttpProxyAggregatedList_Items,
+
+    -- ** TargetHttpProxyList
+    TargetHttpProxyList (..),
+    newTargetHttpProxyList,
+
+    -- ** TargetHttpProxyList_Warning
+    TargetHttpProxyList_Warning (..),
+    newTargetHttpProxyList_Warning,
+
+    -- ** TargetHttpProxyList_Warning_Code
+    TargetHttpProxyList_Warning_Code (..),
+
+    -- ** TargetHttpProxyList_Warning_DataItem
+    TargetHttpProxyList_Warning_DataItem (..),
+    newTargetHttpProxyList_Warning_DataItem,
+
+    -- ** TargetHttpsProxiesScopedList
+    TargetHttpsProxiesScopedList (..),
+    newTargetHttpsProxiesScopedList,
+
+    -- ** TargetHttpsProxiesScopedList_Warning
+    TargetHttpsProxiesScopedList_Warning (..),
+    newTargetHttpsProxiesScopedList_Warning,
+
+    -- ** TargetHttpsProxiesScopedList_Warning_Code
+    TargetHttpsProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetHttpsProxiesScopedList_Warning_DataItem
+    TargetHttpsProxiesScopedList_Warning_DataItem (..),
+    newTargetHttpsProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetHttpsProxiesSetCertificateMapRequest
+    TargetHttpsProxiesSetCertificateMapRequest (..),
+    newTargetHttpsProxiesSetCertificateMapRequest,
+
+    -- ** TargetHttpsProxiesSetQuicOverrideRequest
+    TargetHttpsProxiesSetQuicOverrideRequest (..),
+    newTargetHttpsProxiesSetQuicOverrideRequest,
+
+    -- ** TargetHttpsProxiesSetQuicOverrideRequest_QuicOverride
+    TargetHttpsProxiesSetQuicOverrideRequest_QuicOverride (..),
+
+    -- ** TargetHttpsProxiesSetSslCertificatesRequest
+    TargetHttpsProxiesSetSslCertificatesRequest (..),
+    newTargetHttpsProxiesSetSslCertificatesRequest,
+
+    -- ** TargetHttpsProxy
+    TargetHttpsProxy (..),
+    newTargetHttpsProxy,
+
+    -- ** TargetHttpsProxy_QuicOverride
+    TargetHttpsProxy_QuicOverride (..),
+
+    -- ** TargetHttpsProxy_TlsEarlyData
+    TargetHttpsProxy_TlsEarlyData (..),
+
+    -- ** TargetHttpsProxyAggregatedList
+    TargetHttpsProxyAggregatedList (..),
+    newTargetHttpsProxyAggregatedList,
+
+    -- ** TargetHttpsProxyAggregatedList_Items
+    TargetHttpsProxyAggregatedList_Items (..),
+    newTargetHttpsProxyAggregatedList_Items,
+
+    -- ** TargetHttpsProxyAggregatedList_Warning
+    TargetHttpsProxyAggregatedList_Warning (..),
+    newTargetHttpsProxyAggregatedList_Warning,
+
+    -- ** TargetHttpsProxyAggregatedList_Warning_Code
+    TargetHttpsProxyAggregatedList_Warning_Code (..),
+
+    -- ** TargetHttpsProxyAggregatedList_Warning_DataItem
+    TargetHttpsProxyAggregatedList_Warning_DataItem (..),
+    newTargetHttpsProxyAggregatedList_Warning_DataItem,
+
+    -- ** TargetHttpsProxyList
+    TargetHttpsProxyList (..),
+    newTargetHttpsProxyList,
+
+    -- ** TargetHttpsProxyList_Warning
+    TargetHttpsProxyList_Warning (..),
+    newTargetHttpsProxyList_Warning,
+
+    -- ** TargetHttpsProxyList_Warning_Code
+    TargetHttpsProxyList_Warning_Code (..),
+
+    -- ** TargetHttpsProxyList_Warning_DataItem
+    TargetHttpsProxyList_Warning_DataItem (..),
+    newTargetHttpsProxyList_Warning_DataItem,
+
+    -- ** TargetInstance
+    TargetInstance (..),
+    newTargetInstance,
+
+    -- ** TargetInstance_NatPolicy
+    TargetInstance_NatPolicy (..),
+
+    -- ** TargetInstanceAggregatedList
+    TargetInstanceAggregatedList (..),
+    newTargetInstanceAggregatedList,
+
+    -- ** TargetInstanceAggregatedList_Items
+    TargetInstanceAggregatedList_Items (..),
+    newTargetInstanceAggregatedList_Items,
+
+    -- ** TargetInstanceAggregatedList_Warning
+    TargetInstanceAggregatedList_Warning (..),
+    newTargetInstanceAggregatedList_Warning,
+
+    -- ** TargetInstanceAggregatedList_Warning_Code
+    TargetInstanceAggregatedList_Warning_Code (..),
+
+    -- ** TargetInstanceAggregatedList_Warning_DataItem
+    TargetInstanceAggregatedList_Warning_DataItem (..),
+    newTargetInstanceAggregatedList_Warning_DataItem,
+
+    -- ** TargetInstanceList
+    TargetInstanceList (..),
+    newTargetInstanceList,
+
+    -- ** TargetInstanceList_Warning
+    TargetInstanceList_Warning (..),
+    newTargetInstanceList_Warning,
+
+    -- ** TargetInstanceList_Warning_Code
+    TargetInstanceList_Warning_Code (..),
+
+    -- ** TargetInstanceList_Warning_DataItem
+    TargetInstanceList_Warning_DataItem (..),
+    newTargetInstanceList_Warning_DataItem,
+
+    -- ** TargetInstancesScopedList
+    TargetInstancesScopedList (..),
+    newTargetInstancesScopedList,
+
+    -- ** TargetInstancesScopedList_Warning
+    TargetInstancesScopedList_Warning (..),
+    newTargetInstancesScopedList_Warning,
+
+    -- ** TargetInstancesScopedList_Warning_Code
+    TargetInstancesScopedList_Warning_Code (..),
+
+    -- ** TargetInstancesScopedList_Warning_DataItem
+    TargetInstancesScopedList_Warning_DataItem (..),
+    newTargetInstancesScopedList_Warning_DataItem,
+
+    -- ** TargetPool
+    TargetPool (..),
+    newTargetPool,
+
+    -- ** TargetPool_SessionAffinity
+    TargetPool_SessionAffinity (..),
+
+    -- ** TargetPoolAggregatedList
+    TargetPoolAggregatedList (..),
+    newTargetPoolAggregatedList,
+
+    -- ** TargetPoolAggregatedList_Items
+    TargetPoolAggregatedList_Items (..),
+    newTargetPoolAggregatedList_Items,
+
+    -- ** TargetPoolAggregatedList_Warning
+    TargetPoolAggregatedList_Warning (..),
+    newTargetPoolAggregatedList_Warning,
+
+    -- ** TargetPoolAggregatedList_Warning_Code
+    TargetPoolAggregatedList_Warning_Code (..),
+
+    -- ** TargetPoolAggregatedList_Warning_DataItem
+    TargetPoolAggregatedList_Warning_DataItem (..),
+    newTargetPoolAggregatedList_Warning_DataItem,
+
+    -- ** TargetPoolInstanceHealth
+    TargetPoolInstanceHealth (..),
+    newTargetPoolInstanceHealth,
+
+    -- ** TargetPoolList
+    TargetPoolList (..),
+    newTargetPoolList,
+
+    -- ** TargetPoolList_Warning
+    TargetPoolList_Warning (..),
+    newTargetPoolList_Warning,
+
+    -- ** TargetPoolList_Warning_Code
+    TargetPoolList_Warning_Code (..),
+
+    -- ** TargetPoolList_Warning_DataItem
+    TargetPoolList_Warning_DataItem (..),
+    newTargetPoolList_Warning_DataItem,
+
+    -- ** TargetPoolsAddHealthCheckRequest
+    TargetPoolsAddHealthCheckRequest (..),
+    newTargetPoolsAddHealthCheckRequest,
+
+    -- ** TargetPoolsAddInstanceRequest
+    TargetPoolsAddInstanceRequest (..),
+    newTargetPoolsAddInstanceRequest,
+
+    -- ** TargetPoolsRemoveHealthCheckRequest
+    TargetPoolsRemoveHealthCheckRequest (..),
+    newTargetPoolsRemoveHealthCheckRequest,
+
+    -- ** TargetPoolsRemoveInstanceRequest
+    TargetPoolsRemoveInstanceRequest (..),
+    newTargetPoolsRemoveInstanceRequest,
+
+    -- ** TargetPoolsScopedList
+    TargetPoolsScopedList (..),
+    newTargetPoolsScopedList,
+
+    -- ** TargetPoolsScopedList_Warning
+    TargetPoolsScopedList_Warning (..),
+    newTargetPoolsScopedList_Warning,
+
+    -- ** TargetPoolsScopedList_Warning_Code
+    TargetPoolsScopedList_Warning_Code (..),
+
+    -- ** TargetPoolsScopedList_Warning_DataItem
+    TargetPoolsScopedList_Warning_DataItem (..),
+    newTargetPoolsScopedList_Warning_DataItem,
+
+    -- ** TargetReference
+    TargetReference (..),
+    newTargetReference,
+
+    -- ** TargetSslProxiesSetBackendServiceRequest
+    TargetSslProxiesSetBackendServiceRequest (..),
+    newTargetSslProxiesSetBackendServiceRequest,
+
+    -- ** TargetSslProxiesSetCertificateMapRequest
+    TargetSslProxiesSetCertificateMapRequest (..),
+    newTargetSslProxiesSetCertificateMapRequest,
+
+    -- ** TargetSslProxiesSetProxyHeaderRequest
+    TargetSslProxiesSetProxyHeaderRequest (..),
+    newTargetSslProxiesSetProxyHeaderRequest,
+
+    -- ** TargetSslProxiesSetProxyHeaderRequest_ProxyHeader
+    TargetSslProxiesSetProxyHeaderRequest_ProxyHeader (..),
+
+    -- ** TargetSslProxiesSetSslCertificatesRequest
+    TargetSslProxiesSetSslCertificatesRequest (..),
+    newTargetSslProxiesSetSslCertificatesRequest,
+
+    -- ** TargetSslProxy
+    TargetSslProxy (..),
+    newTargetSslProxy,
+
+    -- ** TargetSslProxy_ProxyHeader
+    TargetSslProxy_ProxyHeader (..),
+
+    -- ** TargetSslProxyList
+    TargetSslProxyList (..),
+    newTargetSslProxyList,
+
+    -- ** TargetSslProxyList_Warning
+    TargetSslProxyList_Warning (..),
+    newTargetSslProxyList_Warning,
+
+    -- ** TargetSslProxyList_Warning_Code
+    TargetSslProxyList_Warning_Code (..),
+
+    -- ** TargetSslProxyList_Warning_DataItem
+    TargetSslProxyList_Warning_DataItem (..),
+    newTargetSslProxyList_Warning_DataItem,
+
+    -- ** TargetTcpProxiesScopedList
+    TargetTcpProxiesScopedList (..),
+    newTargetTcpProxiesScopedList,
+
+    -- ** TargetTcpProxiesScopedList_Warning
+    TargetTcpProxiesScopedList_Warning (..),
+    newTargetTcpProxiesScopedList_Warning,
+
+    -- ** TargetTcpProxiesScopedList_Warning_Code
+    TargetTcpProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetTcpProxiesScopedList_Warning_DataItem
+    TargetTcpProxiesScopedList_Warning_DataItem (..),
+    newTargetTcpProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetTcpProxiesSetBackendServiceRequest
+    TargetTcpProxiesSetBackendServiceRequest (..),
+    newTargetTcpProxiesSetBackendServiceRequest,
+
+    -- ** TargetTcpProxiesSetProxyHeaderRequest
+    TargetTcpProxiesSetProxyHeaderRequest (..),
+    newTargetTcpProxiesSetProxyHeaderRequest,
+
+    -- ** TargetTcpProxiesSetProxyHeaderRequest_ProxyHeader
+    TargetTcpProxiesSetProxyHeaderRequest_ProxyHeader (..),
+
+    -- ** TargetTcpProxy
+    TargetTcpProxy (..),
+    newTargetTcpProxy,
+
+    -- ** TargetTcpProxy_ProxyHeader
+    TargetTcpProxy_ProxyHeader (..),
+
+    -- ** TargetTcpProxyAggregatedList
+    TargetTcpProxyAggregatedList (..),
+    newTargetTcpProxyAggregatedList,
+
+    -- ** TargetTcpProxyAggregatedList_Items
+    TargetTcpProxyAggregatedList_Items (..),
+    newTargetTcpProxyAggregatedList_Items,
+
+    -- ** TargetTcpProxyAggregatedList_Warning
+    TargetTcpProxyAggregatedList_Warning (..),
+    newTargetTcpProxyAggregatedList_Warning,
+
+    -- ** TargetTcpProxyAggregatedList_Warning_Code
+    TargetTcpProxyAggregatedList_Warning_Code (..),
+
+    -- ** TargetTcpProxyAggregatedList_Warning_DataItem
+    TargetTcpProxyAggregatedList_Warning_DataItem (..),
+    newTargetTcpProxyAggregatedList_Warning_DataItem,
+
+    -- ** TargetTcpProxyList
+    TargetTcpProxyList (..),
+    newTargetTcpProxyList,
+
+    -- ** TargetTcpProxyList_Warning
+    TargetTcpProxyList_Warning (..),
+    newTargetTcpProxyList_Warning,
+
+    -- ** TargetTcpProxyList_Warning_Code
+    TargetTcpProxyList_Warning_Code (..),
+
+    -- ** TargetTcpProxyList_Warning_DataItem
+    TargetTcpProxyList_Warning_DataItem (..),
+    newTargetTcpProxyList_Warning_DataItem,
+
+    -- ** TargetVpnGateway
+    TargetVpnGateway (..),
+    newTargetVpnGateway,
+
+    -- ** TargetVpnGateway_Labels
+    TargetVpnGateway_Labels (..),
+    newTargetVpnGateway_Labels,
+
+    -- ** TargetVpnGateway_Status
+    TargetVpnGateway_Status (..),
+
+    -- ** TargetVpnGatewayAggregatedList
+    TargetVpnGatewayAggregatedList (..),
+    newTargetVpnGatewayAggregatedList,
+
+    -- ** TargetVpnGatewayAggregatedList_Items
+    TargetVpnGatewayAggregatedList_Items (..),
+    newTargetVpnGatewayAggregatedList_Items,
+
+    -- ** TargetVpnGatewayAggregatedList_Warning
+    TargetVpnGatewayAggregatedList_Warning (..),
+    newTargetVpnGatewayAggregatedList_Warning,
+
+    -- ** TargetVpnGatewayAggregatedList_Warning_Code
+    TargetVpnGatewayAggregatedList_Warning_Code (..),
+
+    -- ** TargetVpnGatewayAggregatedList_Warning_DataItem
+    TargetVpnGatewayAggregatedList_Warning_DataItem (..),
+    newTargetVpnGatewayAggregatedList_Warning_DataItem,
+
+    -- ** TargetVpnGatewayList
+    TargetVpnGatewayList (..),
+    newTargetVpnGatewayList,
+
+    -- ** TargetVpnGatewayList_Warning
+    TargetVpnGatewayList_Warning (..),
+    newTargetVpnGatewayList_Warning,
+
+    -- ** TargetVpnGatewayList_Warning_Code
+    TargetVpnGatewayList_Warning_Code (..),
+
+    -- ** TargetVpnGatewayList_Warning_DataItem
+    TargetVpnGatewayList_Warning_DataItem (..),
+    newTargetVpnGatewayList_Warning_DataItem,
+
+    -- ** TargetVpnGatewaysScopedList
+    TargetVpnGatewaysScopedList (..),
+    newTargetVpnGatewaysScopedList,
+
+    -- ** TargetVpnGatewaysScopedList_Warning
+    TargetVpnGatewaysScopedList_Warning (..),
+    newTargetVpnGatewaysScopedList_Warning,
+
+    -- ** TargetVpnGatewaysScopedList_Warning_Code
+    TargetVpnGatewaysScopedList_Warning_Code (..),
+
+    -- ** TargetVpnGatewaysScopedList_Warning_DataItem
+    TargetVpnGatewaysScopedList_Warning_DataItem (..),
+    newTargetVpnGatewaysScopedList_Warning_DataItem,
+
+    -- ** TestFailure
+    TestFailure (..),
+    newTestFailure,
+
+    -- ** TestPermissionsRequest
+    TestPermissionsRequest (..),
+    newTestPermissionsRequest,
+
+    -- ** TestPermissionsResponse
+    TestPermissionsResponse (..),
+    newTestPermissionsResponse,
+
+    -- ** Uint128
+    Uint128 (..),
+    newUint128,
+
+    -- ** UpcomingMaintenance
+    UpcomingMaintenance (..),
+    newUpcomingMaintenance,
+
+    -- ** UpcomingMaintenance_MaintenanceStatus
+    UpcomingMaintenance_MaintenanceStatus (..),
+
+    -- ** UpcomingMaintenance_Type
+    UpcomingMaintenance_Type (..),
+
+    -- ** UrlMap
+    UrlMap (..),
+    newUrlMap,
+
+    -- ** UrlMapList
+    UrlMapList (..),
+    newUrlMapList,
+
+    -- ** UrlMapList_Warning
+    UrlMapList_Warning (..),
+    newUrlMapList_Warning,
+
+    -- ** UrlMapList_Warning_Code
+    UrlMapList_Warning_Code (..),
+
+    -- ** UrlMapList_Warning_DataItem
+    UrlMapList_Warning_DataItem (..),
+    newUrlMapList_Warning_DataItem,
+
+    -- ** UrlMapReference
+    UrlMapReference (..),
+    newUrlMapReference,
+
+    -- ** UrlMapTest
+    UrlMapTest (..),
+    newUrlMapTest,
+
+    -- ** UrlMapTestHeader
+    UrlMapTestHeader (..),
+    newUrlMapTestHeader,
+
+    -- ** UrlMapValidationResult
+    UrlMapValidationResult (..),
+    newUrlMapValidationResult,
+
+    -- ** UrlMapsAggregatedList
+    UrlMapsAggregatedList (..),
+    newUrlMapsAggregatedList,
+
+    -- ** UrlMapsAggregatedList_Items
+    UrlMapsAggregatedList_Items (..),
+    newUrlMapsAggregatedList_Items,
+
+    -- ** UrlMapsAggregatedList_Warning
+    UrlMapsAggregatedList_Warning (..),
+    newUrlMapsAggregatedList_Warning,
+
+    -- ** UrlMapsAggregatedList_Warning_Code
+    UrlMapsAggregatedList_Warning_Code (..),
+
+    -- ** UrlMapsAggregatedList_Warning_DataItem
+    UrlMapsAggregatedList_Warning_DataItem (..),
+    newUrlMapsAggregatedList_Warning_DataItem,
+
+    -- ** UrlMapsScopedList
+    UrlMapsScopedList (..),
+    newUrlMapsScopedList,
+
+    -- ** UrlMapsScopedList_Warning
+    UrlMapsScopedList_Warning (..),
+    newUrlMapsScopedList_Warning,
+
+    -- ** UrlMapsScopedList_Warning_Code
+    UrlMapsScopedList_Warning_Code (..),
+
+    -- ** UrlMapsScopedList_Warning_DataItem
+    UrlMapsScopedList_Warning_DataItem (..),
+    newUrlMapsScopedList_Warning_DataItem,
+
+    -- ** UrlMapsValidateRequest
+    UrlMapsValidateRequest (..),
+    newUrlMapsValidateRequest,
+
+    -- ** UrlMapsValidateRequest_LoadBalancingSchemesItem
+    UrlMapsValidateRequest_LoadBalancingSchemesItem (..),
+
+    -- ** UrlMapsValidateResponse
+    UrlMapsValidateResponse (..),
+    newUrlMapsValidateResponse,
+
+    -- ** UrlRewrite
+    UrlRewrite (..),
+    newUrlRewrite,
+
+    -- ** UsableSubnetwork
+    UsableSubnetwork (..),
+    newUsableSubnetwork,
+
+    -- ** UsableSubnetwork_Ipv6AccessType
+    UsableSubnetwork_Ipv6AccessType (..),
+
+    -- ** UsableSubnetwork_Purpose
+    UsableSubnetwork_Purpose (..),
+
+    -- ** UsableSubnetwork_Role
+    UsableSubnetwork_Role (..),
+
+    -- ** UsableSubnetwork_StackType
+    UsableSubnetwork_StackType (..),
+
+    -- ** UsableSubnetworkSecondaryRange
+    UsableSubnetworkSecondaryRange (..),
+    newUsableSubnetworkSecondaryRange,
+
+    -- ** UsableSubnetworksAggregatedList
+    UsableSubnetworksAggregatedList (..),
+    newUsableSubnetworksAggregatedList,
+
+    -- ** UsableSubnetworksAggregatedList_Warning
+    UsableSubnetworksAggregatedList_Warning (..),
+    newUsableSubnetworksAggregatedList_Warning,
+
+    -- ** UsableSubnetworksAggregatedList_Warning_Code
+    UsableSubnetworksAggregatedList_Warning_Code (..),
+
+    -- ** UsableSubnetworksAggregatedList_Warning_DataItem
+    UsableSubnetworksAggregatedList_Warning_DataItem (..),
+    newUsableSubnetworksAggregatedList_Warning_DataItem,
+
+    -- ** UsageExportLocation
+    UsageExportLocation (..),
+    newUsageExportLocation,
+
+    -- ** VmEndpointNatMappings
+    VmEndpointNatMappings (..),
+    newVmEndpointNatMappings,
+
+    -- ** VmEndpointNatMappingsInterfaceNatMappings
+    VmEndpointNatMappingsInterfaceNatMappings (..),
+    newVmEndpointNatMappingsInterfaceNatMappings,
+
+    -- ** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
+    VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings (..),
+    newVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings,
+
+    -- ** VmEndpointNatMappingsList
+    VmEndpointNatMappingsList (..),
+    newVmEndpointNatMappingsList,
+
+    -- ** VmEndpointNatMappingsList_Warning
+    VmEndpointNatMappingsList_Warning (..),
+    newVmEndpointNatMappingsList_Warning,
+
+    -- ** VmEndpointNatMappingsList_Warning_Code
+    VmEndpointNatMappingsList_Warning_Code (..),
+
+    -- ** VmEndpointNatMappingsList_Warning_DataItem
+    VmEndpointNatMappingsList_Warning_DataItem (..),
+    newVmEndpointNatMappingsList_Warning_DataItem,
+
+    -- ** VpnGateway
+    VpnGateway (..),
+    newVpnGateway,
+
+    -- ** VpnGateway_GatewayIpVersion
+    VpnGateway_GatewayIpVersion (..),
+
+    -- ** VpnGateway_Labels
+    VpnGateway_Labels (..),
+    newVpnGateway_Labels,
+
+    -- ** VpnGateway_StackType
+    VpnGateway_StackType (..),
+
+    -- ** VpnGatewayAggregatedList
+    VpnGatewayAggregatedList (..),
+    newVpnGatewayAggregatedList,
+
+    -- ** VpnGatewayAggregatedList_Items
+    VpnGatewayAggregatedList_Items (..),
+    newVpnGatewayAggregatedList_Items,
+
+    -- ** VpnGatewayAggregatedList_Warning
+    VpnGatewayAggregatedList_Warning (..),
+    newVpnGatewayAggregatedList_Warning,
+
+    -- ** VpnGatewayAggregatedList_Warning_Code
+    VpnGatewayAggregatedList_Warning_Code (..),
+
+    -- ** VpnGatewayAggregatedList_Warning_DataItem
+    VpnGatewayAggregatedList_Warning_DataItem (..),
+    newVpnGatewayAggregatedList_Warning_DataItem,
+
+    -- ** VpnGatewayList
+    VpnGatewayList (..),
+    newVpnGatewayList,
+
+    -- ** VpnGatewayList_Warning
+    VpnGatewayList_Warning (..),
+    newVpnGatewayList_Warning,
+
+    -- ** VpnGatewayList_Warning_Code
+    VpnGatewayList_Warning_Code (..),
+
+    -- ** VpnGatewayList_Warning_DataItem
+    VpnGatewayList_Warning_DataItem (..),
+    newVpnGatewayList_Warning_DataItem,
+
+    -- ** VpnGatewayStatus
+    VpnGatewayStatus (..),
+    newVpnGatewayStatus,
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState
+    VpnGatewayStatusHighAvailabilityRequirementState (..),
+    newVpnGatewayStatusHighAvailabilityRequirementState,
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState_State
+    VpnGatewayStatusHighAvailabilityRequirementState_State (..),
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState_UnsatisfiedReason
+    VpnGatewayStatusHighAvailabilityRequirementState_UnsatisfiedReason (..),
+
+    -- ** VpnGatewayStatusTunnel
+    VpnGatewayStatusTunnel (..),
+    newVpnGatewayStatusTunnel,
+
+    -- ** VpnGatewayStatusVpnConnection
+    VpnGatewayStatusVpnConnection (..),
+    newVpnGatewayStatusVpnConnection,
+
+    -- ** VpnGatewayVpnGatewayInterface
+    VpnGatewayVpnGatewayInterface (..),
+    newVpnGatewayVpnGatewayInterface,
+
+    -- ** VpnGatewaysGetStatusResponse
+    VpnGatewaysGetStatusResponse (..),
+    newVpnGatewaysGetStatusResponse,
+
+    -- ** VpnGatewaysScopedList
+    VpnGatewaysScopedList (..),
+    newVpnGatewaysScopedList,
+
+    -- ** VpnGatewaysScopedList_Warning
+    VpnGatewaysScopedList_Warning (..),
+    newVpnGatewaysScopedList_Warning,
+
+    -- ** VpnGatewaysScopedList_Warning_Code
+    VpnGatewaysScopedList_Warning_Code (..),
+
+    -- ** VpnGatewaysScopedList_Warning_DataItem
+    VpnGatewaysScopedList_Warning_DataItem (..),
+    newVpnGatewaysScopedList_Warning_DataItem,
+
+    -- ** VpnTunnel
+    VpnTunnel (..),
+    newVpnTunnel,
+
+    -- ** VpnTunnel_Labels
+    VpnTunnel_Labels (..),
+    newVpnTunnel_Labels,
+
+    -- ** VpnTunnel_Status
+    VpnTunnel_Status (..),
+
+    -- ** VpnTunnelAggregatedList
+    VpnTunnelAggregatedList (..),
+    newVpnTunnelAggregatedList,
+
+    -- ** VpnTunnelAggregatedList_Items
+    VpnTunnelAggregatedList_Items (..),
+    newVpnTunnelAggregatedList_Items,
+
+    -- ** VpnTunnelAggregatedList_Warning
+    VpnTunnelAggregatedList_Warning (..),
+    newVpnTunnelAggregatedList_Warning,
+
+    -- ** VpnTunnelAggregatedList_Warning_Code
+    VpnTunnelAggregatedList_Warning_Code (..),
+
+    -- ** VpnTunnelAggregatedList_Warning_DataItem
+    VpnTunnelAggregatedList_Warning_DataItem (..),
+    newVpnTunnelAggregatedList_Warning_DataItem,
+
+    -- ** VpnTunnelList
+    VpnTunnelList (..),
+    newVpnTunnelList,
+
+    -- ** VpnTunnelList_Warning
+    VpnTunnelList_Warning (..),
+    newVpnTunnelList_Warning,
+
+    -- ** VpnTunnelList_Warning_Code
+    VpnTunnelList_Warning_Code (..),
+
+    -- ** VpnTunnelList_Warning_DataItem
+    VpnTunnelList_Warning_DataItem (..),
+    newVpnTunnelList_Warning_DataItem,
+
+    -- ** VpnTunnelsScopedList
+    VpnTunnelsScopedList (..),
+    newVpnTunnelsScopedList,
+
+    -- ** VpnTunnelsScopedList_Warning
+    VpnTunnelsScopedList_Warning (..),
+    newVpnTunnelsScopedList_Warning,
+
+    -- ** VpnTunnelsScopedList_Warning_Code
+    VpnTunnelsScopedList_Warning_Code (..),
+
+    -- ** VpnTunnelsScopedList_Warning_DataItem
+    VpnTunnelsScopedList_Warning_DataItem (..),
+    newVpnTunnelsScopedList_Warning_DataItem,
+
+    -- ** WafExpressionSet
+    WafExpressionSet (..),
+    newWafExpressionSet,
+
+    -- ** WafExpressionSetExpression
+    WafExpressionSetExpression (..),
+    newWafExpressionSetExpression,
+
+    -- ** WeightedBackendService
+    WeightedBackendService (..),
+    newWeightedBackendService,
+
+    -- ** XpnHostList
+    XpnHostList (..),
+    newXpnHostList,
+
+    -- ** XpnHostList_Warning
+    XpnHostList_Warning (..),
+    newXpnHostList_Warning,
+
+    -- ** XpnHostList_Warning_Code
+    XpnHostList_Warning_Code (..),
+
+    -- ** XpnHostList_Warning_DataItem
+    XpnHostList_Warning_DataItem (..),
+    newXpnHostList_Warning_DataItem,
+
+    -- ** XpnResourceId
+    XpnResourceId (..),
+    newXpnResourceId,
+
+    -- ** XpnResourceId_Type
+    XpnResourceId_Type (..),
+
+    -- ** Zone
+    Zone (..),
+    newZone,
+
+    -- ** Zone_Status
+    Zone_Status (..),
+
+    -- ** ZoneList
+    ZoneList (..),
+    newZoneList,
+
+    -- ** ZoneList_Warning
+    ZoneList_Warning (..),
+    newZoneList_Warning,
+
+    -- ** ZoneList_Warning_Code
+    ZoneList_Warning_Code (..),
+
+    -- ** ZoneList_Warning_DataItem
+    ZoneList_Warning_DataItem (..),
+    newZoneList_Warning_DataItem,
+
+    -- ** ZoneSetLabelsRequest
+    ZoneSetLabelsRequest (..),
+    newZoneSetLabelsRequest,
+
+    -- ** ZoneSetLabelsRequest_Labels
+    ZoneSetLabelsRequest_Labels (..),
+    newZoneSetLabelsRequest_Labels,
+
+    -- ** ZoneSetPolicyRequest
+    ZoneSetPolicyRequest (..),
+    newZoneSetPolicyRequest,
+
+    -- ** InstancesUpdateMinimalAction
+    InstancesUpdateMinimalAction (..),
+
+    -- ** InstancesUpdateMostDisruptiveAllowedAction
+    InstancesUpdateMostDisruptiveAllowedAction (..),
+
+    -- ** NetworksListPeeringRoutesDirection
+    NetworksListPeeringRoutesDirection (..),
+
+    -- ** RoutersListBgpRoutesAddressFamily
+    RoutersListBgpRoutesAddressFamily (..),
+
+    -- ** RoutersListBgpRoutesRouteType
+    RoutersListBgpRoutesRouteType (..),
+  )
+where
+
+import Gogol.Compute.AcceleratorTypes.AggregatedList
+import Gogol.Compute.AcceleratorTypes.Get
+import Gogol.Compute.AcceleratorTypes.List
+import Gogol.Compute.Addresses.AggregatedList
+import Gogol.Compute.Addresses.Delete
+import Gogol.Compute.Addresses.Get
+import Gogol.Compute.Addresses.Insert
+import Gogol.Compute.Addresses.List
+import Gogol.Compute.Addresses.Move
+import Gogol.Compute.Addresses.SetLabels
+import Gogol.Compute.Autoscalers.AggregatedList
+import Gogol.Compute.Autoscalers.Delete
+import Gogol.Compute.Autoscalers.Get
+import Gogol.Compute.Autoscalers.Insert
+import Gogol.Compute.Autoscalers.List
+import Gogol.Compute.Autoscalers.Patch
+import Gogol.Compute.Autoscalers.Update
+import Gogol.Compute.BackendBuckets.AddSignedUrlKey
+import Gogol.Compute.BackendBuckets.Delete
+import Gogol.Compute.BackendBuckets.DeleteSignedUrlKey
+import Gogol.Compute.BackendBuckets.Get
+import Gogol.Compute.BackendBuckets.GetIamPolicy
+import Gogol.Compute.BackendBuckets.Insert
+import Gogol.Compute.BackendBuckets.List
+import Gogol.Compute.BackendBuckets.Patch
+import Gogol.Compute.BackendBuckets.SetEdgeSecurityPolicy
+import Gogol.Compute.BackendBuckets.SetIamPolicy
+import Gogol.Compute.BackendBuckets.TestIamPermissions
+import Gogol.Compute.BackendBuckets.Update
+import Gogol.Compute.BackendServices.AddSignedUrlKey
+import Gogol.Compute.BackendServices.AggregatedList
+import Gogol.Compute.BackendServices.Delete
+import Gogol.Compute.BackendServices.DeleteSignedUrlKey
+import Gogol.Compute.BackendServices.Get
+import Gogol.Compute.BackendServices.GetHealth
+import Gogol.Compute.BackendServices.GetIamPolicy
+import Gogol.Compute.BackendServices.Insert
+import Gogol.Compute.BackendServices.List
+import Gogol.Compute.BackendServices.ListUsable
+import Gogol.Compute.BackendServices.Patch
+import Gogol.Compute.BackendServices.SetEdgeSecurityPolicy
+import Gogol.Compute.BackendServices.SetIamPolicy
+import Gogol.Compute.BackendServices.SetSecurityPolicy
+import Gogol.Compute.BackendServices.TestIamPermissions
+import Gogol.Compute.BackendServices.Update
+import Gogol.Compute.DiskTypes.AggregatedList
+import Gogol.Compute.DiskTypes.Get
+import Gogol.Compute.DiskTypes.List
+import Gogol.Compute.Disks.AddResourcePolicies
+import Gogol.Compute.Disks.AggregatedList
+import Gogol.Compute.Disks.BulkInsert
+import Gogol.Compute.Disks.CreateSnapshot
+import Gogol.Compute.Disks.Delete
+import Gogol.Compute.Disks.Get
+import Gogol.Compute.Disks.GetIamPolicy
+import Gogol.Compute.Disks.Insert
+import Gogol.Compute.Disks.List
+import Gogol.Compute.Disks.RemoveResourcePolicies
+import Gogol.Compute.Disks.Resize
+import Gogol.Compute.Disks.SetIamPolicy
+import Gogol.Compute.Disks.SetLabels
+import Gogol.Compute.Disks.StartAsyncReplication
+import Gogol.Compute.Disks.StopAsyncReplication
+import Gogol.Compute.Disks.StopGroupAsyncReplication
+import Gogol.Compute.Disks.TestIamPermissions
+import Gogol.Compute.Disks.Update
+import Gogol.Compute.ExternalVpnGateways.Delete
+import Gogol.Compute.ExternalVpnGateways.Get
+import Gogol.Compute.ExternalVpnGateways.Insert
+import Gogol.Compute.ExternalVpnGateways.List
+import Gogol.Compute.ExternalVpnGateways.SetLabels
+import Gogol.Compute.ExternalVpnGateways.TestIamPermissions
+import Gogol.Compute.FirewallPolicies.AddAssociation
+import Gogol.Compute.FirewallPolicies.AddRule
+import Gogol.Compute.FirewallPolicies.CloneRules
+import Gogol.Compute.FirewallPolicies.Delete
+import Gogol.Compute.FirewallPolicies.Get
+import Gogol.Compute.FirewallPolicies.GetAssociation
+import Gogol.Compute.FirewallPolicies.GetIamPolicy
+import Gogol.Compute.FirewallPolicies.GetRule
+import Gogol.Compute.FirewallPolicies.Insert
+import Gogol.Compute.FirewallPolicies.List
+import Gogol.Compute.FirewallPolicies.ListAssociations
+import Gogol.Compute.FirewallPolicies.Move
+import Gogol.Compute.FirewallPolicies.Patch
+import Gogol.Compute.FirewallPolicies.PatchRule
+import Gogol.Compute.FirewallPolicies.RemoveAssociation
+import Gogol.Compute.FirewallPolicies.RemoveRule
+import Gogol.Compute.FirewallPolicies.SetIamPolicy
+import Gogol.Compute.FirewallPolicies.TestIamPermissions
+import Gogol.Compute.Firewalls.Delete
+import Gogol.Compute.Firewalls.Get
+import Gogol.Compute.Firewalls.Insert
+import Gogol.Compute.Firewalls.List
+import Gogol.Compute.Firewalls.Patch
+import Gogol.Compute.Firewalls.Update
+import Gogol.Compute.ForwardingRules.AggregatedList
+import Gogol.Compute.ForwardingRules.Delete
+import Gogol.Compute.ForwardingRules.Get
+import Gogol.Compute.ForwardingRules.Insert
+import Gogol.Compute.ForwardingRules.List
+import Gogol.Compute.ForwardingRules.Patch
+import Gogol.Compute.ForwardingRules.SetLabels
+import Gogol.Compute.ForwardingRules.SetTarget
+import Gogol.Compute.GlobalAddresses.Delete
+import Gogol.Compute.GlobalAddresses.Get
+import Gogol.Compute.GlobalAddresses.Insert
+import Gogol.Compute.GlobalAddresses.List
+import Gogol.Compute.GlobalAddresses.Move
+import Gogol.Compute.GlobalAddresses.SetLabels
+import Gogol.Compute.GlobalForwardingRules.Delete
+import Gogol.Compute.GlobalForwardingRules.Get
+import Gogol.Compute.GlobalForwardingRules.Insert
+import Gogol.Compute.GlobalForwardingRules.List
+import Gogol.Compute.GlobalForwardingRules.Patch
+import Gogol.Compute.GlobalForwardingRules.SetLabels
+import Gogol.Compute.GlobalForwardingRules.SetTarget
+import Gogol.Compute.GlobalNetworkEndpointGroups.AttachNetworkEndpoints
+import Gogol.Compute.GlobalNetworkEndpointGroups.Delete
+import Gogol.Compute.GlobalNetworkEndpointGroups.DetachNetworkEndpoints
+import Gogol.Compute.GlobalNetworkEndpointGroups.Get
+import Gogol.Compute.GlobalNetworkEndpointGroups.Insert
+import Gogol.Compute.GlobalNetworkEndpointGroups.List
+import Gogol.Compute.GlobalNetworkEndpointGroups.ListNetworkEndpoints
+import Gogol.Compute.GlobalOperations.AggregatedList
+import Gogol.Compute.GlobalOperations.Delete
+import Gogol.Compute.GlobalOperations.Get
+import Gogol.Compute.GlobalOperations.List
+import Gogol.Compute.GlobalOperations.Wait
+import Gogol.Compute.GlobalOrganizationOperations.Delete
+import Gogol.Compute.GlobalOrganizationOperations.Get
+import Gogol.Compute.GlobalOrganizationOperations.List
+import Gogol.Compute.GlobalPublicDelegatedPrefixes.Delete
+import Gogol.Compute.GlobalPublicDelegatedPrefixes.Get
+import Gogol.Compute.GlobalPublicDelegatedPrefixes.Insert
+import Gogol.Compute.GlobalPublicDelegatedPrefixes.List
+import Gogol.Compute.GlobalPublicDelegatedPrefixes.Patch
+import Gogol.Compute.HealthChecks.AggregatedList
+import Gogol.Compute.HealthChecks.Delete
+import Gogol.Compute.HealthChecks.Get
+import Gogol.Compute.HealthChecks.Insert
+import Gogol.Compute.HealthChecks.List
+import Gogol.Compute.HealthChecks.Patch
+import Gogol.Compute.HealthChecks.Update
+import Gogol.Compute.HttpHealthChecks.Delete
+import Gogol.Compute.HttpHealthChecks.Get
+import Gogol.Compute.HttpHealthChecks.Insert
+import Gogol.Compute.HttpHealthChecks.List
+import Gogol.Compute.HttpHealthChecks.Patch
+import Gogol.Compute.HttpHealthChecks.Update
+import Gogol.Compute.HttpsHealthChecks.Delete
+import Gogol.Compute.HttpsHealthChecks.Get
+import Gogol.Compute.HttpsHealthChecks.Insert
+import Gogol.Compute.HttpsHealthChecks.List
+import Gogol.Compute.HttpsHealthChecks.Patch
+import Gogol.Compute.HttpsHealthChecks.Update
+import Gogol.Compute.ImageFamilyViews.Get
+import Gogol.Compute.Images.Delete
+import Gogol.Compute.Images.Deprecate
+import Gogol.Compute.Images.Get
+import Gogol.Compute.Images.GetFromFamily
+import Gogol.Compute.Images.GetIamPolicy
+import Gogol.Compute.Images.Insert
+import Gogol.Compute.Images.List
+import Gogol.Compute.Images.Patch
+import Gogol.Compute.Images.SetIamPolicy
+import Gogol.Compute.Images.SetLabels
+import Gogol.Compute.Images.TestIamPermissions
+import Gogol.Compute.InstanceGroupManagerResizeRequests.Cancel
+import Gogol.Compute.InstanceGroupManagerResizeRequests.Delete
+import Gogol.Compute.InstanceGroupManagerResizeRequests.Get
+import Gogol.Compute.InstanceGroupManagerResizeRequests.Insert
+import Gogol.Compute.InstanceGroupManagerResizeRequests.List
+import Gogol.Compute.InstanceGroupManagers.AbandonInstances
+import Gogol.Compute.InstanceGroupManagers.AggregatedList
+import Gogol.Compute.InstanceGroupManagers.ApplyUpdatesToInstances
+import Gogol.Compute.InstanceGroupManagers.CreateInstances
+import Gogol.Compute.InstanceGroupManagers.Delete
+import Gogol.Compute.InstanceGroupManagers.DeleteInstances
+import Gogol.Compute.InstanceGroupManagers.DeletePerInstanceConfigs
+import Gogol.Compute.InstanceGroupManagers.Get
+import Gogol.Compute.InstanceGroupManagers.Insert
+import Gogol.Compute.InstanceGroupManagers.List
+import Gogol.Compute.InstanceGroupManagers.ListErrors
+import Gogol.Compute.InstanceGroupManagers.ListManagedInstances
+import Gogol.Compute.InstanceGroupManagers.ListPerInstanceConfigs
+import Gogol.Compute.InstanceGroupManagers.Patch
+import Gogol.Compute.InstanceGroupManagers.PatchPerInstanceConfigs
+import Gogol.Compute.InstanceGroupManagers.RecreateInstances
+import Gogol.Compute.InstanceGroupManagers.Resize
+import Gogol.Compute.InstanceGroupManagers.ResumeInstances
+import Gogol.Compute.InstanceGroupManagers.SetInstanceTemplate
+import Gogol.Compute.InstanceGroupManagers.SetTargetPools
+import Gogol.Compute.InstanceGroupManagers.StartInstances
+import Gogol.Compute.InstanceGroupManagers.StopInstances
+import Gogol.Compute.InstanceGroupManagers.SuspendInstances
+import Gogol.Compute.InstanceGroupManagers.UpdatePerInstanceConfigs
+import Gogol.Compute.InstanceGroups.AddInstances
+import Gogol.Compute.InstanceGroups.AggregatedList
+import Gogol.Compute.InstanceGroups.Delete
+import Gogol.Compute.InstanceGroups.Get
+import Gogol.Compute.InstanceGroups.Insert
+import Gogol.Compute.InstanceGroups.List
+import Gogol.Compute.InstanceGroups.ListInstances
+import Gogol.Compute.InstanceGroups.RemoveInstances
+import Gogol.Compute.InstanceGroups.SetNamedPorts
+import Gogol.Compute.InstanceSettings.Get
+import Gogol.Compute.InstanceSettings.Patch
+import Gogol.Compute.InstanceTemplates.AggregatedList
+import Gogol.Compute.InstanceTemplates.Delete
+import Gogol.Compute.InstanceTemplates.Get
+import Gogol.Compute.InstanceTemplates.GetIamPolicy
+import Gogol.Compute.InstanceTemplates.Insert
+import Gogol.Compute.InstanceTemplates.List
+import Gogol.Compute.InstanceTemplates.SetIamPolicy
+import Gogol.Compute.InstanceTemplates.TestIamPermissions
+import Gogol.Compute.Instances.AddAccessConfig
+import Gogol.Compute.Instances.AddResourcePolicies
+import Gogol.Compute.Instances.AggregatedList
+import Gogol.Compute.Instances.AttachDisk
+import Gogol.Compute.Instances.BulkInsert
+import Gogol.Compute.Instances.Delete
+import Gogol.Compute.Instances.DeleteAccessConfig
+import Gogol.Compute.Instances.DetachDisk
+import Gogol.Compute.Instances.Get
+import Gogol.Compute.Instances.GetEffectiveFirewalls
+import Gogol.Compute.Instances.GetGuestAttributes
+import Gogol.Compute.Instances.GetIamPolicy
+import Gogol.Compute.Instances.GetScreenshot
+import Gogol.Compute.Instances.GetSerialPortOutput
+import Gogol.Compute.Instances.GetShieldedInstanceIdentity
+import Gogol.Compute.Instances.Insert
+import Gogol.Compute.Instances.List
+import Gogol.Compute.Instances.ListReferrers
+import Gogol.Compute.Instances.PerformMaintenance
+import Gogol.Compute.Instances.RemoveResourcePolicies
+import Gogol.Compute.Instances.ReportHostAsFaulty
+import Gogol.Compute.Instances.Reset
+import Gogol.Compute.Instances.Resume
+import Gogol.Compute.Instances.SendDiagnosticInterrupt
+import Gogol.Compute.Instances.SetDeletionProtection
+import Gogol.Compute.Instances.SetDiskAutoDelete
+import Gogol.Compute.Instances.SetIamPolicy
+import Gogol.Compute.Instances.SetLabels
+import Gogol.Compute.Instances.SetMachineResources
+import Gogol.Compute.Instances.SetMachineType
+import Gogol.Compute.Instances.SetMetadata
+import Gogol.Compute.Instances.SetMinCpuPlatform
+import Gogol.Compute.Instances.SetName
+import Gogol.Compute.Instances.SetScheduling
+import Gogol.Compute.Instances.SetSecurityPolicy
+import Gogol.Compute.Instances.SetServiceAccount
+import Gogol.Compute.Instances.SetShieldedInstanceIntegrityPolicy
+import Gogol.Compute.Instances.SetTags
+import Gogol.Compute.Instances.SimulateMaintenanceEvent
+import Gogol.Compute.Instances.Start
+import Gogol.Compute.Instances.StartWithEncryptionKey
+import Gogol.Compute.Instances.Stop
+import Gogol.Compute.Instances.Suspend
+import Gogol.Compute.Instances.TestIamPermissions
+import Gogol.Compute.Instances.Update
+import Gogol.Compute.Instances.UpdateAccessConfig
+import Gogol.Compute.Instances.UpdateDisplayDevice
+import Gogol.Compute.Instances.UpdateNetworkInterface
+import Gogol.Compute.Instances.UpdateShieldedInstanceConfig
+import Gogol.Compute.InstantSnapshots.AggregatedList
+import Gogol.Compute.InstantSnapshots.Delete
+import Gogol.Compute.InstantSnapshots.Get
+import Gogol.Compute.InstantSnapshots.GetIamPolicy
+import Gogol.Compute.InstantSnapshots.Insert
+import Gogol.Compute.InstantSnapshots.List
+import Gogol.Compute.InstantSnapshots.SetIamPolicy
+import Gogol.Compute.InstantSnapshots.SetLabels
+import Gogol.Compute.InstantSnapshots.TestIamPermissions
+import Gogol.Compute.InterconnectAttachments.AggregatedList
+import Gogol.Compute.InterconnectAttachments.Delete
+import Gogol.Compute.InterconnectAttachments.Get
+import Gogol.Compute.InterconnectAttachments.Insert
+import Gogol.Compute.InterconnectAttachments.List
+import Gogol.Compute.InterconnectAttachments.Patch
+import Gogol.Compute.InterconnectAttachments.SetLabels
+import Gogol.Compute.InterconnectLocations.Get
+import Gogol.Compute.InterconnectLocations.List
+import Gogol.Compute.InterconnectRemoteLocations.Get
+import Gogol.Compute.InterconnectRemoteLocations.List
+import Gogol.Compute.Interconnects.Delete
+import Gogol.Compute.Interconnects.Get
+import Gogol.Compute.Interconnects.GetDiagnostics
+import Gogol.Compute.Interconnects.GetMacsecConfig
+import Gogol.Compute.Interconnects.Insert
+import Gogol.Compute.Interconnects.List
+import Gogol.Compute.Interconnects.Patch
+import Gogol.Compute.Interconnects.SetLabels
+import Gogol.Compute.LicenseCodes.Get
+import Gogol.Compute.LicenseCodes.TestIamPermissions
+import Gogol.Compute.Licenses.Delete
+import Gogol.Compute.Licenses.Get
+import Gogol.Compute.Licenses.GetIamPolicy
+import Gogol.Compute.Licenses.Insert
+import Gogol.Compute.Licenses.List
+import Gogol.Compute.Licenses.SetIamPolicy
+import Gogol.Compute.Licenses.TestIamPermissions
+import Gogol.Compute.MachineImages.Delete
+import Gogol.Compute.MachineImages.Get
+import Gogol.Compute.MachineImages.GetIamPolicy
+import Gogol.Compute.MachineImages.Insert
+import Gogol.Compute.MachineImages.List
+import Gogol.Compute.MachineImages.SetIamPolicy
+import Gogol.Compute.MachineImages.TestIamPermissions
+import Gogol.Compute.MachineTypes.AggregatedList
+import Gogol.Compute.MachineTypes.Get
+import Gogol.Compute.MachineTypes.List
+import Gogol.Compute.NetworkAttachments.AggregatedList
+import Gogol.Compute.NetworkAttachments.Delete
+import Gogol.Compute.NetworkAttachments.Get
+import Gogol.Compute.NetworkAttachments.GetIamPolicy
+import Gogol.Compute.NetworkAttachments.Insert
+import Gogol.Compute.NetworkAttachments.List
+import Gogol.Compute.NetworkAttachments.Patch
+import Gogol.Compute.NetworkAttachments.SetIamPolicy
+import Gogol.Compute.NetworkAttachments.TestIamPermissions
+import Gogol.Compute.NetworkEdgeSecurityServices.AggregatedList
+import Gogol.Compute.NetworkEdgeSecurityServices.Delete
+import Gogol.Compute.NetworkEdgeSecurityServices.Get
+import Gogol.Compute.NetworkEdgeSecurityServices.Insert
+import Gogol.Compute.NetworkEdgeSecurityServices.Patch
+import Gogol.Compute.NetworkEndpointGroups.AggregatedList
+import Gogol.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
+import Gogol.Compute.NetworkEndpointGroups.Delete
+import Gogol.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
+import Gogol.Compute.NetworkEndpointGroups.Get
+import Gogol.Compute.NetworkEndpointGroups.Insert
+import Gogol.Compute.NetworkEndpointGroups.List
+import Gogol.Compute.NetworkEndpointGroups.ListNetworkEndpoints
+import Gogol.Compute.NetworkEndpointGroups.TestIamPermissions
+import Gogol.Compute.NetworkFirewallPolicies.AddAssociation
+import Gogol.Compute.NetworkFirewallPolicies.AddPacketMirroringRule
+import Gogol.Compute.NetworkFirewallPolicies.AddRule
+import Gogol.Compute.NetworkFirewallPolicies.AggregatedList
+import Gogol.Compute.NetworkFirewallPolicies.CloneRules
+import Gogol.Compute.NetworkFirewallPolicies.Delete
+import Gogol.Compute.NetworkFirewallPolicies.Get
+import Gogol.Compute.NetworkFirewallPolicies.GetAssociation
+import Gogol.Compute.NetworkFirewallPolicies.GetIamPolicy
+import Gogol.Compute.NetworkFirewallPolicies.GetPacketMirroringRule
+import Gogol.Compute.NetworkFirewallPolicies.GetRule
+import Gogol.Compute.NetworkFirewallPolicies.Insert
+import Gogol.Compute.NetworkFirewallPolicies.List
+import Gogol.Compute.NetworkFirewallPolicies.Patch
+import Gogol.Compute.NetworkFirewallPolicies.PatchPacketMirroringRule
+import Gogol.Compute.NetworkFirewallPolicies.PatchRule
+import Gogol.Compute.NetworkFirewallPolicies.RemoveAssociation
+import Gogol.Compute.NetworkFirewallPolicies.RemovePacketMirroringRule
+import Gogol.Compute.NetworkFirewallPolicies.RemoveRule
+import Gogol.Compute.NetworkFirewallPolicies.SetIamPolicy
+import Gogol.Compute.NetworkFirewallPolicies.TestIamPermissions
+import Gogol.Compute.NetworkProfiles.Get
+import Gogol.Compute.NetworkProfiles.List
+import Gogol.Compute.Networks.AddPeering
+import Gogol.Compute.Networks.Delete
+import Gogol.Compute.Networks.Get
+import Gogol.Compute.Networks.GetEffectiveFirewalls
+import Gogol.Compute.Networks.Insert
+import Gogol.Compute.Networks.List
+import Gogol.Compute.Networks.ListPeeringRoutes
+import Gogol.Compute.Networks.Patch
+import Gogol.Compute.Networks.RemovePeering
+import Gogol.Compute.Networks.SwitchToCustomMode
+import Gogol.Compute.Networks.UpdatePeering
+import Gogol.Compute.NodeGroups.AddNodes
+import Gogol.Compute.NodeGroups.AggregatedList
+import Gogol.Compute.NodeGroups.Delete
+import Gogol.Compute.NodeGroups.DeleteNodes
+import Gogol.Compute.NodeGroups.Get
+import Gogol.Compute.NodeGroups.GetIamPolicy
+import Gogol.Compute.NodeGroups.Insert
+import Gogol.Compute.NodeGroups.List
+import Gogol.Compute.NodeGroups.ListNodes
+import Gogol.Compute.NodeGroups.Patch
+import Gogol.Compute.NodeGroups.PerformMaintenance
+import Gogol.Compute.NodeGroups.SetIamPolicy
+import Gogol.Compute.NodeGroups.SetNodeTemplate
+import Gogol.Compute.NodeGroups.SimulateMaintenanceEvent
+import Gogol.Compute.NodeGroups.TestIamPermissions
+import Gogol.Compute.NodeTemplates.AggregatedList
+import Gogol.Compute.NodeTemplates.Delete
+import Gogol.Compute.NodeTemplates.Get
+import Gogol.Compute.NodeTemplates.GetIamPolicy
+import Gogol.Compute.NodeTemplates.Insert
+import Gogol.Compute.NodeTemplates.List
+import Gogol.Compute.NodeTemplates.SetIamPolicy
+import Gogol.Compute.NodeTemplates.TestIamPermissions
+import Gogol.Compute.NodeTypes.AggregatedList
+import Gogol.Compute.NodeTypes.Get
+import Gogol.Compute.NodeTypes.List
+import Gogol.Compute.PacketMirrorings.AggregatedList
+import Gogol.Compute.PacketMirrorings.Delete
+import Gogol.Compute.PacketMirrorings.Get
+import Gogol.Compute.PacketMirrorings.Insert
+import Gogol.Compute.PacketMirrorings.List
+import Gogol.Compute.PacketMirrorings.Patch
+import Gogol.Compute.PacketMirrorings.TestIamPermissions
+import Gogol.Compute.Projects.DisableXpnHost
+import Gogol.Compute.Projects.DisableXpnResource
+import Gogol.Compute.Projects.EnableXpnHost
+import Gogol.Compute.Projects.EnableXpnResource
+import Gogol.Compute.Projects.Get
+import Gogol.Compute.Projects.GetXpnHost
+import Gogol.Compute.Projects.GetXpnResources
+import Gogol.Compute.Projects.ListXpnHosts
+import Gogol.Compute.Projects.MoveDisk
+import Gogol.Compute.Projects.MoveInstance
+import Gogol.Compute.Projects.SetCloudArmorTier
+import Gogol.Compute.Projects.SetCommonInstanceMetadata
+import Gogol.Compute.Projects.SetDefaultNetworkTier
+import Gogol.Compute.Projects.SetUsageExportBucket
+import Gogol.Compute.PublicAdvertisedPrefixes.Announce
+import Gogol.Compute.PublicAdvertisedPrefixes.Delete
+import Gogol.Compute.PublicAdvertisedPrefixes.Get
+import Gogol.Compute.PublicAdvertisedPrefixes.Insert
+import Gogol.Compute.PublicAdvertisedPrefixes.List
+import Gogol.Compute.PublicAdvertisedPrefixes.Patch
+import Gogol.Compute.PublicAdvertisedPrefixes.Withdraw
+import Gogol.Compute.PublicDelegatedPrefixes.AggregatedList
+import Gogol.Compute.PublicDelegatedPrefixes.Announce
+import Gogol.Compute.PublicDelegatedPrefixes.Delete
+import Gogol.Compute.PublicDelegatedPrefixes.Get
+import Gogol.Compute.PublicDelegatedPrefixes.Insert
+import Gogol.Compute.PublicDelegatedPrefixes.List
+import Gogol.Compute.PublicDelegatedPrefixes.Patch
+import Gogol.Compute.PublicDelegatedPrefixes.Withdraw
+import Gogol.Compute.RegionAutoscalers.Delete
+import Gogol.Compute.RegionAutoscalers.Get
+import Gogol.Compute.RegionAutoscalers.Insert
+import Gogol.Compute.RegionAutoscalers.List
+import Gogol.Compute.RegionAutoscalers.Patch
+import Gogol.Compute.RegionAutoscalers.Update
+import Gogol.Compute.RegionBackendServices.Delete
+import Gogol.Compute.RegionBackendServices.Get
+import Gogol.Compute.RegionBackendServices.GetHealth
+import Gogol.Compute.RegionBackendServices.GetIamPolicy
+import Gogol.Compute.RegionBackendServices.Insert
+import Gogol.Compute.RegionBackendServices.List
+import Gogol.Compute.RegionBackendServices.ListUsable
+import Gogol.Compute.RegionBackendServices.Patch
+import Gogol.Compute.RegionBackendServices.SetIamPolicy
+import Gogol.Compute.RegionBackendServices.SetSecurityPolicy
+import Gogol.Compute.RegionBackendServices.TestIamPermissions
+import Gogol.Compute.RegionBackendServices.Update
+import Gogol.Compute.RegionCommitments.AggregatedList
+import Gogol.Compute.RegionCommitments.Get
+import Gogol.Compute.RegionCommitments.Insert
+import Gogol.Compute.RegionCommitments.List
+import Gogol.Compute.RegionCommitments.Update
+import Gogol.Compute.RegionDiskTypes.Get
+import Gogol.Compute.RegionDiskTypes.List
+import Gogol.Compute.RegionDisks.AddResourcePolicies
+import Gogol.Compute.RegionDisks.BulkInsert
+import Gogol.Compute.RegionDisks.CreateSnapshot
+import Gogol.Compute.RegionDisks.Delete
+import Gogol.Compute.RegionDisks.Get
+import Gogol.Compute.RegionDisks.GetIamPolicy
+import Gogol.Compute.RegionDisks.Insert
+import Gogol.Compute.RegionDisks.List
+import Gogol.Compute.RegionDisks.RemoveResourcePolicies
+import Gogol.Compute.RegionDisks.Resize
+import Gogol.Compute.RegionDisks.SetIamPolicy
+import Gogol.Compute.RegionDisks.SetLabels
+import Gogol.Compute.RegionDisks.StartAsyncReplication
+import Gogol.Compute.RegionDisks.StopAsyncReplication
+import Gogol.Compute.RegionDisks.StopGroupAsyncReplication
+import Gogol.Compute.RegionDisks.TestIamPermissions
+import Gogol.Compute.RegionDisks.Update
+import Gogol.Compute.RegionHealthCheckServices.Delete
+import Gogol.Compute.RegionHealthCheckServices.Get
+import Gogol.Compute.RegionHealthCheckServices.Insert
+import Gogol.Compute.RegionHealthCheckServices.List
+import Gogol.Compute.RegionHealthCheckServices.Patch
+import Gogol.Compute.RegionHealthChecks.Delete
+import Gogol.Compute.RegionHealthChecks.Get
+import Gogol.Compute.RegionHealthChecks.Insert
+import Gogol.Compute.RegionHealthChecks.List
+import Gogol.Compute.RegionHealthChecks.Patch
+import Gogol.Compute.RegionHealthChecks.Update
+import Gogol.Compute.RegionInstanceGroupManagers.AbandonInstances
+import Gogol.Compute.RegionInstanceGroupManagers.ApplyUpdatesToInstances
+import Gogol.Compute.RegionInstanceGroupManagers.CreateInstances
+import Gogol.Compute.RegionInstanceGroupManagers.Delete
+import Gogol.Compute.RegionInstanceGroupManagers.DeleteInstances
+import Gogol.Compute.RegionInstanceGroupManagers.DeletePerInstanceConfigs
+import Gogol.Compute.RegionInstanceGroupManagers.Get
+import Gogol.Compute.RegionInstanceGroupManagers.Insert
+import Gogol.Compute.RegionInstanceGroupManagers.List
+import Gogol.Compute.RegionInstanceGroupManagers.ListErrors
+import Gogol.Compute.RegionInstanceGroupManagers.ListManagedInstances
+import Gogol.Compute.RegionInstanceGroupManagers.ListPerInstanceConfigs
+import Gogol.Compute.RegionInstanceGroupManagers.Patch
+import Gogol.Compute.RegionInstanceGroupManagers.PatchPerInstanceConfigs
+import Gogol.Compute.RegionInstanceGroupManagers.RecreateInstances
+import Gogol.Compute.RegionInstanceGroupManagers.Resize
+import Gogol.Compute.RegionInstanceGroupManagers.ResumeInstances
+import Gogol.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
+import Gogol.Compute.RegionInstanceGroupManagers.SetTargetPools
+import Gogol.Compute.RegionInstanceGroupManagers.StartInstances
+import Gogol.Compute.RegionInstanceGroupManagers.StopInstances
+import Gogol.Compute.RegionInstanceGroupManagers.SuspendInstances
+import Gogol.Compute.RegionInstanceGroupManagers.UpdatePerInstanceConfigs
+import Gogol.Compute.RegionInstanceGroups.Get
+import Gogol.Compute.RegionInstanceGroups.List
+import Gogol.Compute.RegionInstanceGroups.ListInstances
+import Gogol.Compute.RegionInstanceGroups.SetNamedPorts
+import Gogol.Compute.RegionInstanceTemplates.Delete
+import Gogol.Compute.RegionInstanceTemplates.Get
+import Gogol.Compute.RegionInstanceTemplates.Insert
+import Gogol.Compute.RegionInstanceTemplates.List
+import Gogol.Compute.RegionInstances.BulkInsert
+import Gogol.Compute.RegionInstantSnapshots.Delete
+import Gogol.Compute.RegionInstantSnapshots.Get
+import Gogol.Compute.RegionInstantSnapshots.GetIamPolicy
+import Gogol.Compute.RegionInstantSnapshots.Insert
+import Gogol.Compute.RegionInstantSnapshots.List
+import Gogol.Compute.RegionInstantSnapshots.SetIamPolicy
+import Gogol.Compute.RegionInstantSnapshots.SetLabels
+import Gogol.Compute.RegionInstantSnapshots.TestIamPermissions
+import Gogol.Compute.RegionNetworkEndpointGroups.AttachNetworkEndpoints
+import Gogol.Compute.RegionNetworkEndpointGroups.Delete
+import Gogol.Compute.RegionNetworkEndpointGroups.DetachNetworkEndpoints
+import Gogol.Compute.RegionNetworkEndpointGroups.Get
+import Gogol.Compute.RegionNetworkEndpointGroups.Insert
+import Gogol.Compute.RegionNetworkEndpointGroups.List
+import Gogol.Compute.RegionNetworkEndpointGroups.ListNetworkEndpoints
+import Gogol.Compute.RegionNetworkFirewallPolicies.AddAssociation
+import Gogol.Compute.RegionNetworkFirewallPolicies.AddRule
+import Gogol.Compute.RegionNetworkFirewallPolicies.CloneRules
+import Gogol.Compute.RegionNetworkFirewallPolicies.Delete
+import Gogol.Compute.RegionNetworkFirewallPolicies.Get
+import Gogol.Compute.RegionNetworkFirewallPolicies.GetAssociation
+import Gogol.Compute.RegionNetworkFirewallPolicies.GetEffectiveFirewalls
+import Gogol.Compute.RegionNetworkFirewallPolicies.GetIamPolicy
+import Gogol.Compute.RegionNetworkFirewallPolicies.GetRule
+import Gogol.Compute.RegionNetworkFirewallPolicies.Insert
+import Gogol.Compute.RegionNetworkFirewallPolicies.List
+import Gogol.Compute.RegionNetworkFirewallPolicies.Patch
+import Gogol.Compute.RegionNetworkFirewallPolicies.PatchRule
+import Gogol.Compute.RegionNetworkFirewallPolicies.RemoveAssociation
+import Gogol.Compute.RegionNetworkFirewallPolicies.RemoveRule
+import Gogol.Compute.RegionNetworkFirewallPolicies.SetIamPolicy
+import Gogol.Compute.RegionNetworkFirewallPolicies.TestIamPermissions
+import Gogol.Compute.RegionNotificationEndpoints.Delete
+import Gogol.Compute.RegionNotificationEndpoints.Get
+import Gogol.Compute.RegionNotificationEndpoints.Insert
+import Gogol.Compute.RegionNotificationEndpoints.List
+import Gogol.Compute.RegionOperations.Delete
+import Gogol.Compute.RegionOperations.Get
+import Gogol.Compute.RegionOperations.List
+import Gogol.Compute.RegionOperations.Wait
+import Gogol.Compute.RegionSecurityPolicies.AddRule
+import Gogol.Compute.RegionSecurityPolicies.Delete
+import Gogol.Compute.RegionSecurityPolicies.Get
+import Gogol.Compute.RegionSecurityPolicies.GetRule
+import Gogol.Compute.RegionSecurityPolicies.Insert
+import Gogol.Compute.RegionSecurityPolicies.List
+import Gogol.Compute.RegionSecurityPolicies.Patch
+import Gogol.Compute.RegionSecurityPolicies.PatchRule
+import Gogol.Compute.RegionSecurityPolicies.RemoveRule
+import Gogol.Compute.RegionSecurityPolicies.SetLabels
+import Gogol.Compute.RegionSslCertificates.Delete
+import Gogol.Compute.RegionSslCertificates.Get
+import Gogol.Compute.RegionSslCertificates.Insert
+import Gogol.Compute.RegionSslCertificates.List
+import Gogol.Compute.RegionSslPolicies.Delete
+import Gogol.Compute.RegionSslPolicies.Get
+import Gogol.Compute.RegionSslPolicies.Insert
+import Gogol.Compute.RegionSslPolicies.List
+import Gogol.Compute.RegionSslPolicies.ListAvailableFeatures
+import Gogol.Compute.RegionSslPolicies.Patch
+import Gogol.Compute.RegionTargetHttpProxies.Delete
+import Gogol.Compute.RegionTargetHttpProxies.Get
+import Gogol.Compute.RegionTargetHttpProxies.Insert
+import Gogol.Compute.RegionTargetHttpProxies.List
+import Gogol.Compute.RegionTargetHttpProxies.SetUrlMap
+import Gogol.Compute.RegionTargetHttpsProxies.Delete
+import Gogol.Compute.RegionTargetHttpsProxies.Get
+import Gogol.Compute.RegionTargetHttpsProxies.Insert
+import Gogol.Compute.RegionTargetHttpsProxies.List
+import Gogol.Compute.RegionTargetHttpsProxies.Patch
+import Gogol.Compute.RegionTargetHttpsProxies.SetSslCertificates
+import Gogol.Compute.RegionTargetHttpsProxies.SetUrlMap
+import Gogol.Compute.RegionTargetTcpProxies.Delete
+import Gogol.Compute.RegionTargetTcpProxies.Get
+import Gogol.Compute.RegionTargetTcpProxies.Insert
+import Gogol.Compute.RegionTargetTcpProxies.List
+import Gogol.Compute.RegionUrlMaps.Delete
+import Gogol.Compute.RegionUrlMaps.Get
+import Gogol.Compute.RegionUrlMaps.Insert
+import Gogol.Compute.RegionUrlMaps.List
+import Gogol.Compute.RegionUrlMaps.Patch
+import Gogol.Compute.RegionUrlMaps.Update
+import Gogol.Compute.RegionUrlMaps.Validate
+import Gogol.Compute.RegionZones.List
+import Gogol.Compute.Regions.Get
+import Gogol.Compute.Regions.List
+import Gogol.Compute.Reservations.AggregatedList
+import Gogol.Compute.Reservations.Delete
+import Gogol.Compute.Reservations.Get
+import Gogol.Compute.Reservations.GetIamPolicy
+import Gogol.Compute.Reservations.Insert
+import Gogol.Compute.Reservations.List
+import Gogol.Compute.Reservations.Resize
+import Gogol.Compute.Reservations.SetIamPolicy
+import Gogol.Compute.Reservations.TestIamPermissions
+import Gogol.Compute.Reservations.Update
+import Gogol.Compute.ResourcePolicies.AggregatedList
+import Gogol.Compute.ResourcePolicies.Delete
+import Gogol.Compute.ResourcePolicies.Get
+import Gogol.Compute.ResourcePolicies.GetIamPolicy
+import Gogol.Compute.ResourcePolicies.Insert
+import Gogol.Compute.ResourcePolicies.List
+import Gogol.Compute.ResourcePolicies.Patch
+import Gogol.Compute.ResourcePolicies.SetIamPolicy
+import Gogol.Compute.ResourcePolicies.TestIamPermissions
+import Gogol.Compute.Routers.AggregatedList
+import Gogol.Compute.Routers.Delete
+import Gogol.Compute.Routers.DeleteRoutePolicy
+import Gogol.Compute.Routers.Get
+import Gogol.Compute.Routers.GetNatIpInfo
+import Gogol.Compute.Routers.GetNatMappingInfo
+import Gogol.Compute.Routers.GetRoutePolicy
+import Gogol.Compute.Routers.GetRouterStatus
+import Gogol.Compute.Routers.Insert
+import Gogol.Compute.Routers.List
+import Gogol.Compute.Routers.ListBgpRoutes
+import Gogol.Compute.Routers.ListRoutePolicies
+import Gogol.Compute.Routers.Patch
+import Gogol.Compute.Routers.PatchRoutePolicy
+import Gogol.Compute.Routers.Preview
+import Gogol.Compute.Routers.Update
+import Gogol.Compute.Routers.UpdateRoutePolicy
+import Gogol.Compute.Routes.Delete
+import Gogol.Compute.Routes.Get
+import Gogol.Compute.Routes.Insert
+import Gogol.Compute.Routes.List
+import Gogol.Compute.SecurityPolicies.AddRule
+import Gogol.Compute.SecurityPolicies.AggregatedList
+import Gogol.Compute.SecurityPolicies.Delete
+import Gogol.Compute.SecurityPolicies.Get
+import Gogol.Compute.SecurityPolicies.GetRule
+import Gogol.Compute.SecurityPolicies.Insert
+import Gogol.Compute.SecurityPolicies.List
+import Gogol.Compute.SecurityPolicies.ListPreconfiguredExpressionSets
+import Gogol.Compute.SecurityPolicies.Patch
+import Gogol.Compute.SecurityPolicies.PatchRule
+import Gogol.Compute.SecurityPolicies.RemoveRule
+import Gogol.Compute.SecurityPolicies.SetLabels
+import Gogol.Compute.ServiceAttachments.AggregatedList
+import Gogol.Compute.ServiceAttachments.Delete
+import Gogol.Compute.ServiceAttachments.Get
+import Gogol.Compute.ServiceAttachments.GetIamPolicy
+import Gogol.Compute.ServiceAttachments.Insert
+import Gogol.Compute.ServiceAttachments.List
+import Gogol.Compute.ServiceAttachments.Patch
+import Gogol.Compute.ServiceAttachments.SetIamPolicy
+import Gogol.Compute.ServiceAttachments.TestIamPermissions
+import Gogol.Compute.SnapshotSettings.Get
+import Gogol.Compute.SnapshotSettings.Patch
+import Gogol.Compute.Snapshots.Delete
+import Gogol.Compute.Snapshots.Get
+import Gogol.Compute.Snapshots.GetIamPolicy
+import Gogol.Compute.Snapshots.Insert
+import Gogol.Compute.Snapshots.List
+import Gogol.Compute.Snapshots.SetIamPolicy
+import Gogol.Compute.Snapshots.SetLabels
+import Gogol.Compute.Snapshots.TestIamPermissions
+import Gogol.Compute.SslCertificates.AggregatedList
+import Gogol.Compute.SslCertificates.Delete
+import Gogol.Compute.SslCertificates.Get
+import Gogol.Compute.SslCertificates.Insert
+import Gogol.Compute.SslCertificates.List
+import Gogol.Compute.SslPolicies.AggregatedList
+import Gogol.Compute.SslPolicies.Delete
+import Gogol.Compute.SslPolicies.Get
+import Gogol.Compute.SslPolicies.Insert
+import Gogol.Compute.SslPolicies.List
+import Gogol.Compute.SslPolicies.ListAvailableFeatures
+import Gogol.Compute.SslPolicies.Patch
+import Gogol.Compute.StoragePoolTypes.AggregatedList
+import Gogol.Compute.StoragePoolTypes.Get
+import Gogol.Compute.StoragePoolTypes.List
+import Gogol.Compute.StoragePools.AggregatedList
+import Gogol.Compute.StoragePools.Delete
+import Gogol.Compute.StoragePools.Get
+import Gogol.Compute.StoragePools.GetIamPolicy
+import Gogol.Compute.StoragePools.Insert
+import Gogol.Compute.StoragePools.List
+import Gogol.Compute.StoragePools.ListDisks
+import Gogol.Compute.StoragePools.SetIamPolicy
+import Gogol.Compute.StoragePools.TestIamPermissions
+import Gogol.Compute.StoragePools.Update
+import Gogol.Compute.Subnetworks.AggregatedList
+import Gogol.Compute.Subnetworks.Delete
+import Gogol.Compute.Subnetworks.ExpandIpCidrRange
+import Gogol.Compute.Subnetworks.Get
+import Gogol.Compute.Subnetworks.GetIamPolicy
+import Gogol.Compute.Subnetworks.Insert
+import Gogol.Compute.Subnetworks.List
+import Gogol.Compute.Subnetworks.ListUsable
+import Gogol.Compute.Subnetworks.Patch
+import Gogol.Compute.Subnetworks.SetIamPolicy
+import Gogol.Compute.Subnetworks.SetPrivateIpGoogleAccess
+import Gogol.Compute.Subnetworks.TestIamPermissions
+import Gogol.Compute.TargetGrpcProxies.Delete
+import Gogol.Compute.TargetGrpcProxies.Get
+import Gogol.Compute.TargetGrpcProxies.Insert
+import Gogol.Compute.TargetGrpcProxies.List
+import Gogol.Compute.TargetGrpcProxies.Patch
+import Gogol.Compute.TargetHttpProxies.AggregatedList
+import Gogol.Compute.TargetHttpProxies.Delete
+import Gogol.Compute.TargetHttpProxies.Get
+import Gogol.Compute.TargetHttpProxies.Insert
+import Gogol.Compute.TargetHttpProxies.List
+import Gogol.Compute.TargetHttpProxies.Patch
+import Gogol.Compute.TargetHttpProxies.SetUrlMap
+import Gogol.Compute.TargetHttpsProxies.AggregatedList
+import Gogol.Compute.TargetHttpsProxies.Delete
+import Gogol.Compute.TargetHttpsProxies.Get
+import Gogol.Compute.TargetHttpsProxies.Insert
+import Gogol.Compute.TargetHttpsProxies.List
+import Gogol.Compute.TargetHttpsProxies.Patch
+import Gogol.Compute.TargetHttpsProxies.SetCertificateMap
+import Gogol.Compute.TargetHttpsProxies.SetQuicOverride
+import Gogol.Compute.TargetHttpsProxies.SetSslCertificates
+import Gogol.Compute.TargetHttpsProxies.SetSslPolicy
+import Gogol.Compute.TargetHttpsProxies.SetUrlMap
+import Gogol.Compute.TargetInstances.AggregatedList
+import Gogol.Compute.TargetInstances.Delete
+import Gogol.Compute.TargetInstances.Get
+import Gogol.Compute.TargetInstances.Insert
+import Gogol.Compute.TargetInstances.List
+import Gogol.Compute.TargetInstances.SetSecurityPolicy
+import Gogol.Compute.TargetPools.AddHealthCheck
+import Gogol.Compute.TargetPools.AddInstance
+import Gogol.Compute.TargetPools.AggregatedList
+import Gogol.Compute.TargetPools.Delete
+import Gogol.Compute.TargetPools.Get
+import Gogol.Compute.TargetPools.GetHealth
+import Gogol.Compute.TargetPools.Insert
+import Gogol.Compute.TargetPools.List
+import Gogol.Compute.TargetPools.RemoveHealthCheck
+import Gogol.Compute.TargetPools.RemoveInstance
+import Gogol.Compute.TargetPools.SetBackup
+import Gogol.Compute.TargetPools.SetSecurityPolicy
+import Gogol.Compute.TargetSslProxies.Delete
+import Gogol.Compute.TargetSslProxies.Get
+import Gogol.Compute.TargetSslProxies.Insert
+import Gogol.Compute.TargetSslProxies.List
+import Gogol.Compute.TargetSslProxies.SetBackendService
+import Gogol.Compute.TargetSslProxies.SetCertificateMap
+import Gogol.Compute.TargetSslProxies.SetProxyHeader
+import Gogol.Compute.TargetSslProxies.SetSslCertificates
+import Gogol.Compute.TargetSslProxies.SetSslPolicy
+import Gogol.Compute.TargetTcpProxies.AggregatedList
+import Gogol.Compute.TargetTcpProxies.Delete
+import Gogol.Compute.TargetTcpProxies.Get
+import Gogol.Compute.TargetTcpProxies.Insert
+import Gogol.Compute.TargetTcpProxies.List
+import Gogol.Compute.TargetTcpProxies.SetBackendService
+import Gogol.Compute.TargetTcpProxies.SetProxyHeader
+import Gogol.Compute.TargetVpnGateways.AggregatedList
+import Gogol.Compute.TargetVpnGateways.Delete
+import Gogol.Compute.TargetVpnGateways.Get
+import Gogol.Compute.TargetVpnGateways.Insert
+import Gogol.Compute.TargetVpnGateways.List
+import Gogol.Compute.TargetVpnGateways.SetLabels
+import Gogol.Compute.Types
+import Gogol.Compute.UrlMaps.AggregatedList
+import Gogol.Compute.UrlMaps.Delete
+import Gogol.Compute.UrlMaps.Get
+import Gogol.Compute.UrlMaps.Insert
+import Gogol.Compute.UrlMaps.InvalidateCache
+import Gogol.Compute.UrlMaps.List
+import Gogol.Compute.UrlMaps.Patch
+import Gogol.Compute.UrlMaps.Update
+import Gogol.Compute.UrlMaps.Validate
+import Gogol.Compute.VpnGateways.AggregatedList
+import Gogol.Compute.VpnGateways.Delete
+import Gogol.Compute.VpnGateways.Get
+import Gogol.Compute.VpnGateways.GetStatus
+import Gogol.Compute.VpnGateways.Insert
+import Gogol.Compute.VpnGateways.List
+import Gogol.Compute.VpnGateways.SetLabels
+import Gogol.Compute.VpnGateways.TestIamPermissions
+import Gogol.Compute.VpnTunnels.AggregatedList
+import Gogol.Compute.VpnTunnels.Delete
+import Gogol.Compute.VpnTunnels.Get
+import Gogol.Compute.VpnTunnels.Insert
+import Gogol.Compute.VpnTunnels.List
+import Gogol.Compute.VpnTunnels.SetLabels
+import Gogol.Compute.ZoneOperations.Delete
+import Gogol.Compute.ZoneOperations.Get
+import Gogol.Compute.ZoneOperations.List
+import Gogol.Compute.ZoneOperations.Wait
+import Gogol.Compute.Zones.Get
+import Gogol.Compute.Zones.List
diff --git a/gen/Gogol/Compute/AcceleratorTypes/AggregatedList.hs b/gen/Gogol/Compute/AcceleratorTypes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/AcceleratorTypes/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.AcceleratorTypes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.acceleratorTypes.aggregatedList@.
+module Gogol.Compute.AcceleratorTypes.AggregatedList
+  ( -- * Resource
+    ComputeAcceleratorTypesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeAcceleratorTypesAggregatedList (..),
+    newComputeAcceleratorTypesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.acceleratorTypes.aggregatedList@ method which the
+-- 'ComputeAcceleratorTypesAggregatedList' request conforms to.
+type ComputeAcceleratorTypesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "acceleratorTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AcceleratorTypeAggregatedList
+
+-- | Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeAcceleratorTypesAggregatedList' smart constructor.
+data ComputeAcceleratorTypesAggregatedList = ComputeAcceleratorTypesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAcceleratorTypesAggregatedList' with the minimum fields required to make a request.
+newComputeAcceleratorTypesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeAcceleratorTypesAggregatedList
+newComputeAcceleratorTypesAggregatedList project =
+  ComputeAcceleratorTypesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAcceleratorTypesAggregatedList where
+  type
+    Rs ComputeAcceleratorTypesAggregatedList =
+      AcceleratorTypeAggregatedList
+  type
+    Scopes ComputeAcceleratorTypesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAcceleratorTypesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeAcceleratorTypesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/AcceleratorTypes/Get.hs b/gen/Gogol/Compute/AcceleratorTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/AcceleratorTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.AcceleratorTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified accelerator type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.acceleratorTypes.get@.
+module Gogol.Compute.AcceleratorTypes.Get
+  ( -- * Resource
+    ComputeAcceleratorTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeAcceleratorTypesGet (..),
+    newComputeAcceleratorTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.acceleratorTypes.get@ method which the
+-- 'ComputeAcceleratorTypesGet' request conforms to.
+type ComputeAcceleratorTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "acceleratorTypes"
+    Core.:> Core.Capture "acceleratorType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AcceleratorType
+
+-- | Returns the specified accelerator type.
+--
+-- /See:/ 'newComputeAcceleratorTypesGet' smart constructor.
+data ComputeAcceleratorTypesGet = ComputeAcceleratorTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | Name of the accelerator type to return.
+    acceleratorType :: Core.Text,
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAcceleratorTypesGet' with the minimum fields required to make a request.
+newComputeAcceleratorTypesGet ::
+  -- |  Name of the accelerator type to return. See 'acceleratorType'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAcceleratorTypesGet
+newComputeAcceleratorTypesGet acceleratorType project zone =
+  ComputeAcceleratorTypesGet
+    { xgafv = Core.Nothing,
+      acceleratorType = acceleratorType,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAcceleratorTypesGet where
+  type Rs ComputeAcceleratorTypesGet = AcceleratorType
+  type
+    Scopes ComputeAcceleratorTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAcceleratorTypesGet {..} =
+    go
+      project
+      zone
+      acceleratorType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAcceleratorTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/AcceleratorTypes/List.hs b/gen/Gogol/Compute/AcceleratorTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/AcceleratorTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.AcceleratorTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of accelerator types that are available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.acceleratorTypes.list@.
+module Gogol.Compute.AcceleratorTypes.List
+  ( -- * Resource
+    ComputeAcceleratorTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeAcceleratorTypesList (..),
+    newComputeAcceleratorTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.acceleratorTypes.list@ method which the
+-- 'ComputeAcceleratorTypesList' request conforms to.
+type ComputeAcceleratorTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "acceleratorTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AcceleratorTypeList
+
+-- | Retrieves a list of accelerator types that are available to the specified project.
+--
+-- /See:/ 'newComputeAcceleratorTypesList' smart constructor.
+data ComputeAcceleratorTypesList = ComputeAcceleratorTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAcceleratorTypesList' with the minimum fields required to make a request.
+newComputeAcceleratorTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAcceleratorTypesList
+newComputeAcceleratorTypesList project zone =
+  ComputeAcceleratorTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAcceleratorTypesList where
+  type Rs ComputeAcceleratorTypesList = AcceleratorTypeList
+  type
+    Scopes ComputeAcceleratorTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAcceleratorTypesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAcceleratorTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/AggregatedList.hs b/gen/Gogol/Compute/Addresses/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.aggregatedList@.
+module Gogol.Compute.Addresses.AggregatedList
+  ( -- * Resource
+    ComputeAddressesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesAggregatedList (..),
+    newComputeAddressesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.aggregatedList@ method which the
+-- 'ComputeAddressesAggregatedList' request conforms to.
+type ComputeAddressesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "addresses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AddressAggregatedList
+
+-- | Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeAddressesAggregatedList' smart constructor.
+data ComputeAddressesAggregatedList = ComputeAddressesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesAggregatedList' with the minimum fields required to make a request.
+newComputeAddressesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeAddressesAggregatedList
+newComputeAddressesAggregatedList project =
+  ComputeAddressesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesAggregatedList where
+  type Rs ComputeAddressesAggregatedList = AddressAggregatedList
+  type
+    Scopes ComputeAddressesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAddressesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/Delete.hs b/gen/Gogol/Compute/Addresses/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified address resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.delete@.
+module Gogol.Compute.Addresses.Delete
+  ( -- * Resource
+    ComputeAddressesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesDelete (..),
+    newComputeAddressesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.delete@ method which the
+-- 'ComputeAddressesDelete' request conforms to.
+type ComputeAddressesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified address resource.
+--
+-- /See:/ 'newComputeAddressesDelete' smart constructor.
+data ComputeAddressesDelete = ComputeAddressesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to delete.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesDelete' with the minimum fields required to make a request.
+newComputeAddressesDelete ::
+  -- |  Name of the address resource to delete. See 'address'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeAddressesDelete
+newComputeAddressesDelete address project region =
+  ComputeAddressesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesDelete where
+  type Rs ComputeAddressesDelete = Operation
+  type
+    Scopes ComputeAddressesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAddressesDelete {..} =
+    go
+      project
+      region
+      address
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/Get.hs b/gen/Gogol/Compute/Addresses/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified address resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.get@.
+module Gogol.Compute.Addresses.Get
+  ( -- * Resource
+    ComputeAddressesGetResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesGet (..),
+    newComputeAddressesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.get@ method which the
+-- 'ComputeAddressesGet' request conforms to.
+type ComputeAddressesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Address
+
+-- | Returns the specified address resource.
+--
+-- /See:/ 'newComputeAddressesGet' smart constructor.
+data ComputeAddressesGet = ComputeAddressesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to return.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesGet' with the minimum fields required to make a request.
+newComputeAddressesGet ::
+  -- |  Name of the address resource to return. See 'address'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeAddressesGet
+newComputeAddressesGet address project region =
+  ComputeAddressesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesGet where
+  type Rs ComputeAddressesGet = Address
+  type
+    Scopes ComputeAddressesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAddressesGet {..} =
+    go
+      project
+      region
+      address
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/Insert.hs b/gen/Gogol/Compute/Addresses/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an address resource in the specified project by using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.insert@.
+module Gogol.Compute.Addresses.Insert
+  ( -- * Resource
+    ComputeAddressesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesInsert (..),
+    newComputeAddressesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.insert@ method which the
+-- 'ComputeAddressesInsert' request conforms to.
+type ComputeAddressesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Address
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an address resource in the specified project by using the data included in the request.
+--
+-- /See:/ 'newComputeAddressesInsert' smart constructor.
+data ComputeAddressesInsert = ComputeAddressesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Address,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesInsert' with the minimum fields required to make a request.
+newComputeAddressesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Address ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeAddressesInsert
+newComputeAddressesInsert payload project region =
+  ComputeAddressesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesInsert where
+  type Rs ComputeAddressesInsert = Operation
+  type
+    Scopes ComputeAddressesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAddressesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/List.hs b/gen/Gogol/Compute/Addresses/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of addresses contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.list@.
+module Gogol.Compute.Addresses.List
+  ( -- * Resource
+    ComputeAddressesListResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesList (..),
+    newComputeAddressesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.list@ method which the
+-- 'ComputeAddressesList' request conforms to.
+type ComputeAddressesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AddressList
+
+-- | Retrieves a list of addresses contained within the specified region.
+--
+-- /See:/ 'newComputeAddressesList' smart constructor.
+data ComputeAddressesList = ComputeAddressesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesList' with the minimum fields required to make a request.
+newComputeAddressesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeAddressesList
+newComputeAddressesList project region =
+  ComputeAddressesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesList where
+  type Rs ComputeAddressesList = AddressList
+  type
+    Scopes ComputeAddressesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAddressesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/Move.hs b/gen/Gogol/Compute/Addresses/Move.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/Move.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.Move
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves the specified address resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.move@.
+module Gogol.Compute.Addresses.Move
+  ( -- * Resource
+    ComputeAddressesMoveResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesMove (..),
+    newComputeAddressesMove,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.move@ method which the
+-- 'ComputeAddressesMove' request conforms to.
+type ComputeAddressesMoveResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> "move"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionAddressesMoveRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Moves the specified address resource.
+--
+-- /See:/ 'newComputeAddressesMove' smart constructor.
+data ComputeAddressesMove = ComputeAddressesMove
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to move.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionAddressesMoveRequest,
+    -- | Source project ID which the Address is moved from.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesMove' with the minimum fields required to make a request.
+newComputeAddressesMove ::
+  -- |  Name of the address resource to move. See 'address'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionAddressesMoveRequest ->
+  -- |  Source project ID which the Address is moved from. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeAddressesMove
+newComputeAddressesMove address payload project region =
+  ComputeAddressesMove
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesMove where
+  type Rs ComputeAddressesMove = Operation
+  type
+    Scopes ComputeAddressesMove =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAddressesMove {..} =
+    go
+      project
+      region
+      address
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesMoveResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Addresses/SetLabels.hs b/gen/Gogol/Compute/Addresses/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Addresses/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Addresses.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.addresses.setLabels@.
+module Gogol.Compute.Addresses.SetLabels
+  ( -- * Resource
+    ComputeAddressesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeAddressesSetLabels (..),
+    newComputeAddressesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.addresses.setLabels@ method which the
+-- 'ComputeAddressesSetLabels' request conforms to.
+type ComputeAddressesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "addresses"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeAddressesSetLabels' smart constructor.
+data ComputeAddressesSetLabels = ComputeAddressesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAddressesSetLabels' with the minimum fields required to make a request.
+newComputeAddressesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeAddressesSetLabels
+newComputeAddressesSetLabels payload project region resource =
+  ComputeAddressesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAddressesSetLabels where
+  type Rs ComputeAddressesSetLabels = Operation
+  type
+    Scopes ComputeAddressesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAddressesSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAddressesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/AggregatedList.hs b/gen/Gogol/Compute/Autoscalers/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.aggregatedList@.
+module Gogol.Compute.Autoscalers.AggregatedList
+  ( -- * Resource
+    ComputeAutoscalersAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersAggregatedList (..),
+    newComputeAutoscalersAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.aggregatedList@ method which the
+-- 'ComputeAutoscalersAggregatedList' request conforms to.
+type ComputeAutoscalersAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AutoscalerAggregatedList
+
+-- | Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeAutoscalersAggregatedList' smart constructor.
+data ComputeAutoscalersAggregatedList = ComputeAutoscalersAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersAggregatedList' with the minimum fields required to make a request.
+newComputeAutoscalersAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeAutoscalersAggregatedList
+newComputeAutoscalersAggregatedList project =
+  ComputeAutoscalersAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersAggregatedList where
+  type Rs ComputeAutoscalersAggregatedList = AutoscalerAggregatedList
+  type
+    Scopes ComputeAutoscalersAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAutoscalersAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/Delete.hs b/gen/Gogol/Compute/Autoscalers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified autoscaler.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.delete@.
+module Gogol.Compute.Autoscalers.Delete
+  ( -- * Resource
+    ComputeAutoscalersDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersDelete (..),
+    newComputeAutoscalersDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.delete@ method which the
+-- 'ComputeAutoscalersDelete' request conforms to.
+type ComputeAutoscalersDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.Capture "autoscaler" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified autoscaler.
+--
+-- /See:/ 'newComputeAutoscalersDelete' smart constructor.
+data ComputeAutoscalersDelete = ComputeAutoscalersDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to delete.
+    autoscaler :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersDelete' with the minimum fields required to make a request.
+newComputeAutoscalersDelete ::
+  -- |  Name of the autoscaler to delete. See 'autoscaler'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersDelete
+newComputeAutoscalersDelete autoscaler project zone =
+  ComputeAutoscalersDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = autoscaler,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersDelete where
+  type Rs ComputeAutoscalersDelete = Operation
+  type
+    Scopes ComputeAutoscalersDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAutoscalersDelete {..} =
+    go
+      project
+      zone
+      autoscaler
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/Get.hs b/gen/Gogol/Compute/Autoscalers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified autoscaler resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.get@.
+module Gogol.Compute.Autoscalers.Get
+  ( -- * Resource
+    ComputeAutoscalersGetResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersGet (..),
+    newComputeAutoscalersGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.get@ method which the
+-- 'ComputeAutoscalersGet' request conforms to.
+type ComputeAutoscalersGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.Capture "autoscaler" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Autoscaler
+
+-- | Returns the specified autoscaler resource.
+--
+-- /See:/ 'newComputeAutoscalersGet' smart constructor.
+data ComputeAutoscalersGet = ComputeAutoscalersGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to return.
+    autoscaler :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersGet' with the minimum fields required to make a request.
+newComputeAutoscalersGet ::
+  -- |  Name of the autoscaler to return. See 'autoscaler'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersGet
+newComputeAutoscalersGet autoscaler project zone =
+  ComputeAutoscalersGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = autoscaler,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersGet where
+  type Rs ComputeAutoscalersGet = Autoscaler
+  type
+    Scopes ComputeAutoscalersGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAutoscalersGet {..} =
+    go
+      project
+      zone
+      autoscaler
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/Insert.hs b/gen/Gogol/Compute/Autoscalers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.insert@.
+module Gogol.Compute.Autoscalers.Insert
+  ( -- * Resource
+    ComputeAutoscalersInsertResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersInsert (..),
+    newComputeAutoscalersInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.insert@ method which the
+-- 'ComputeAutoscalersInsert' request conforms to.
+type ComputeAutoscalersInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeAutoscalersInsert' smart constructor.
+data ComputeAutoscalersInsert = ComputeAutoscalersInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersInsert' with the minimum fields required to make a request.
+newComputeAutoscalersInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersInsert
+newComputeAutoscalersInsert payload project zone =
+  ComputeAutoscalersInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersInsert where
+  type Rs ComputeAutoscalersInsert = Operation
+  type
+    Scopes ComputeAutoscalersInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAutoscalersInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/List.hs b/gen/Gogol/Compute/Autoscalers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of autoscalers contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.list@.
+module Gogol.Compute.Autoscalers.List
+  ( -- * Resource
+    ComputeAutoscalersListResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersList (..),
+    newComputeAutoscalersList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.list@ method which the
+-- 'ComputeAutoscalersList' request conforms to.
+type ComputeAutoscalersListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AutoscalerList
+
+-- | Retrieves a list of autoscalers contained within the specified zone.
+--
+-- /See:/ 'newComputeAutoscalersList' smart constructor.
+data ComputeAutoscalersList = ComputeAutoscalersList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersList' with the minimum fields required to make a request.
+newComputeAutoscalersList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersList
+newComputeAutoscalersList project zone =
+  ComputeAutoscalersList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersList where
+  type Rs ComputeAutoscalersList = AutoscalerList
+  type
+    Scopes ComputeAutoscalersList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeAutoscalersList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/Patch.hs b/gen/Gogol/Compute/Autoscalers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.patch@.
+module Gogol.Compute.Autoscalers.Patch
+  ( -- * Resource
+    ComputeAutoscalersPatchResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersPatch (..),
+    newComputeAutoscalersPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.patch@ method which the
+-- 'ComputeAutoscalersPatch' request conforms to.
+type ComputeAutoscalersPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "autoscaler" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeAutoscalersPatch' smart constructor.
+data ComputeAutoscalersPatch = ComputeAutoscalersPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to patch.
+    autoscaler :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersPatch' with the minimum fields required to make a request.
+newComputeAutoscalersPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersPatch
+newComputeAutoscalersPatch payload project zone =
+  ComputeAutoscalersPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersPatch where
+  type Rs ComputeAutoscalersPatch = Operation
+  type
+    Scopes ComputeAutoscalersPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAutoscalersPatch {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      autoscaler
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Autoscalers/Update.hs b/gen/Gogol/Compute/Autoscalers/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Autoscalers/Update.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Autoscalers.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.autoscalers.update@.
+module Gogol.Compute.Autoscalers.Update
+  ( -- * Resource
+    ComputeAutoscalersUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeAutoscalersUpdate (..),
+    newComputeAutoscalersUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.autoscalers.update@ method which the
+-- 'ComputeAutoscalersUpdate' request conforms to.
+type ComputeAutoscalersUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "autoscaler" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeAutoscalersUpdate' smart constructor.
+data ComputeAutoscalersUpdate = ComputeAutoscalersUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to update.
+    autoscaler :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeAutoscalersUpdate' with the minimum fields required to make a request.
+newComputeAutoscalersUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeAutoscalersUpdate
+newComputeAutoscalersUpdate payload project zone =
+  ComputeAutoscalersUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeAutoscalersUpdate where
+  type Rs ComputeAutoscalersUpdate = Operation
+  type
+    Scopes ComputeAutoscalersUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeAutoscalersUpdate {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      autoscaler
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeAutoscalersUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/AddSignedUrlKey.hs b/gen/Gogol/Compute/BackendBuckets/AddSignedUrlKey.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/AddSignedUrlKey.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.AddSignedUrlKey
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a key for validating requests with signed URLs for this backend bucket.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.addSignedUrlKey@.
+module Gogol.Compute.BackendBuckets.AddSignedUrlKey
+  ( -- * Resource
+    ComputeBackendBucketsAddSignedUrlKeyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsAddSignedUrlKey (..),
+    newComputeBackendBucketsAddSignedUrlKey,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.addSignedUrlKey@ method which the
+-- 'ComputeBackendBucketsAddSignedUrlKey' request conforms to.
+type ComputeBackendBucketsAddSignedUrlKeyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> "addSignedUrlKey"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SignedUrlKey
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds a key for validating requests with signed URLs for this backend bucket.
+--
+-- /See:/ 'newComputeBackendBucketsAddSignedUrlKey' smart constructor.
+data ComputeBackendBucketsAddSignedUrlKey = ComputeBackendBucketsAddSignedUrlKey
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SignedUrlKey,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsAddSignedUrlKey' with the minimum fields required to make a request.
+newComputeBackendBucketsAddSignedUrlKey ::
+  -- |  Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035. See 'backendBucket'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SignedUrlKey ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsAddSignedUrlKey
+newComputeBackendBucketsAddSignedUrlKey
+  backendBucket
+  payload
+  project =
+    ComputeBackendBucketsAddSignedUrlKey
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendBucket = backendBucket,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeBackendBucketsAddSignedUrlKey where
+  type Rs ComputeBackendBucketsAddSignedUrlKey = Operation
+  type
+    Scopes ComputeBackendBucketsAddSignedUrlKey =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsAddSignedUrlKey {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsAddSignedUrlKeyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/Delete.hs b/gen/Gogol/Compute/BackendBuckets/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified BackendBucket resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.delete@.
+module Gogol.Compute.BackendBuckets.Delete
+  ( -- * Resource
+    ComputeBackendBucketsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsDelete (..),
+    newComputeBackendBucketsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.delete@ method which the
+-- 'ComputeBackendBucketsDelete' request conforms to.
+type ComputeBackendBucketsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified BackendBucket resource.
+--
+-- /See:/ 'newComputeBackendBucketsDelete' smart constructor.
+data ComputeBackendBucketsDelete = ComputeBackendBucketsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to delete.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsDelete' with the minimum fields required to make a request.
+newComputeBackendBucketsDelete ::
+  -- |  Name of the BackendBucket resource to delete. See 'backendBucket'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsDelete
+newComputeBackendBucketsDelete backendBucket project =
+  ComputeBackendBucketsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendBucket = backendBucket,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsDelete where
+  type Rs ComputeBackendBucketsDelete = Operation
+  type
+    Scopes ComputeBackendBucketsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsDelete {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/DeleteSignedUrlKey.hs b/gen/Gogol/Compute/BackendBuckets/DeleteSignedUrlKey.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/DeleteSignedUrlKey.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.DeleteSignedUrlKey
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a key for validating requests with signed URLs for this backend bucket.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.deleteSignedUrlKey@.
+module Gogol.Compute.BackendBuckets.DeleteSignedUrlKey
+  ( -- * Resource
+    ComputeBackendBucketsDeleteSignedUrlKeyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsDeleteSignedUrlKey (..),
+    newComputeBackendBucketsDeleteSignedUrlKey,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.deleteSignedUrlKey@ method which the
+-- 'ComputeBackendBucketsDeleteSignedUrlKey' request conforms to.
+type ComputeBackendBucketsDeleteSignedUrlKeyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> "deleteSignedUrlKey"
+    Core.:> Core.QueryParam "keyName" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a key for validating requests with signed URLs for this backend bucket.
+--
+-- /See:/ 'newComputeBackendBucketsDeleteSignedUrlKey' smart constructor.
+data ComputeBackendBucketsDeleteSignedUrlKey = ComputeBackendBucketsDeleteSignedUrlKey
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the Signed URL Key to delete.
+    keyName :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsDeleteSignedUrlKey' with the minimum fields required to make a request.
+newComputeBackendBucketsDeleteSignedUrlKey ::
+  -- |  Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035. See 'backendBucket'.
+  Core.Text ->
+  -- |  The name of the Signed URL Key to delete. See 'keyName'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsDeleteSignedUrlKey
+newComputeBackendBucketsDeleteSignedUrlKey
+  backendBucket
+  keyName
+  project =
+    ComputeBackendBucketsDeleteSignedUrlKey
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendBucket = backendBucket,
+        callback = Core.Nothing,
+        keyName = keyName,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeBackendBucketsDeleteSignedUrlKey where
+  type Rs ComputeBackendBucketsDeleteSignedUrlKey = Operation
+  type
+    Scopes ComputeBackendBucketsDeleteSignedUrlKey =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsDeleteSignedUrlKey {..} =
+    go
+      project
+      backendBucket
+      (Core.Just keyName)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsDeleteSignedUrlKeyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/Get.hs b/gen/Gogol/Compute/BackendBuckets/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified BackendBucket resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.get@.
+module Gogol.Compute.BackendBuckets.Get
+  ( -- * Resource
+    ComputeBackendBucketsGetResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsGet (..),
+    newComputeBackendBucketsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.get@ method which the
+-- 'ComputeBackendBucketsGet' request conforms to.
+type ComputeBackendBucketsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendBucket
+
+-- | Returns the specified BackendBucket resource.
+--
+-- /See:/ 'newComputeBackendBucketsGet' smart constructor.
+data ComputeBackendBucketsGet = ComputeBackendBucketsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to return.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsGet' with the minimum fields required to make a request.
+newComputeBackendBucketsGet ::
+  -- |  Name of the BackendBucket resource to return. See 'backendBucket'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsGet
+newComputeBackendBucketsGet backendBucket project =
+  ComputeBackendBucketsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendBucket = backendBucket,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsGet where
+  type Rs ComputeBackendBucketsGet = BackendBucket
+  type
+    Scopes ComputeBackendBucketsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendBucketsGet {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/GetIamPolicy.hs b/gen/Gogol/Compute/BackendBuckets/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/GetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.getIamPolicy@.
+module Gogol.Compute.BackendBuckets.GetIamPolicy
+  ( -- * Resource
+    ComputeBackendBucketsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsGetIamPolicy (..),
+    newComputeBackendBucketsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.getIamPolicy@ method which the
+-- 'ComputeBackendBucketsGetIamPolicy' request conforms to.
+type ComputeBackendBucketsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeBackendBucketsGetIamPolicy' smart constructor.
+data ComputeBackendBucketsGetIamPolicy = ComputeBackendBucketsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsGetIamPolicy' with the minimum fields required to make a request.
+newComputeBackendBucketsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendBucketsGetIamPolicy
+newComputeBackendBucketsGetIamPolicy project resource =
+  ComputeBackendBucketsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsGetIamPolicy where
+  type Rs ComputeBackendBucketsGetIamPolicy = Policy
+  type
+    Scopes ComputeBackendBucketsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendBucketsGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/Insert.hs b/gen/Gogol/Compute/BackendBuckets/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a BackendBucket resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.insert@.
+module Gogol.Compute.BackendBuckets.Insert
+  ( -- * Resource
+    ComputeBackendBucketsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsInsert (..),
+    newComputeBackendBucketsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.insert@ method which the
+-- 'ComputeBackendBucketsInsert' request conforms to.
+type ComputeBackendBucketsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendBucket
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a BackendBucket resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeBackendBucketsInsert' smart constructor.
+data ComputeBackendBucketsInsert = ComputeBackendBucketsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendBucket,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsInsert' with the minimum fields required to make a request.
+newComputeBackendBucketsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BackendBucket ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsInsert
+newComputeBackendBucketsInsert payload project =
+  ComputeBackendBucketsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsInsert where
+  type Rs ComputeBackendBucketsInsert = Operation
+  type
+    Scopes ComputeBackendBucketsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/List.hs b/gen/Gogol/Compute/BackendBuckets/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of BackendBucket resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.list@.
+module Gogol.Compute.BackendBuckets.List
+  ( -- * Resource
+    ComputeBackendBucketsListResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsList (..),
+    newComputeBackendBucketsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.list@ method which the
+-- 'ComputeBackendBucketsList' request conforms to.
+type ComputeBackendBucketsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendBucketList
+
+-- | Retrieves the list of BackendBucket resources available to the specified project.
+--
+-- /See:/ 'newComputeBackendBucketsList' smart constructor.
+data ComputeBackendBucketsList = ComputeBackendBucketsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsList' with the minimum fields required to make a request.
+newComputeBackendBucketsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsList
+newComputeBackendBucketsList project =
+  ComputeBackendBucketsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsList where
+  type Rs ComputeBackendBucketsList = BackendBucketList
+  type
+    Scopes ComputeBackendBucketsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendBucketsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/Patch.hs b/gen/Gogol/Compute/BackendBuckets/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.patch@.
+module Gogol.Compute.BackendBuckets.Patch
+  ( -- * Resource
+    ComputeBackendBucketsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsPatch (..),
+    newComputeBackendBucketsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.patch@ method which the
+-- 'ComputeBackendBucketsPatch' request conforms to.
+type ComputeBackendBucketsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendBucket
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified BackendBucket resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeBackendBucketsPatch' smart constructor.
+data ComputeBackendBucketsPatch = ComputeBackendBucketsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to patch.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendBucket,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsPatch' with the minimum fields required to make a request.
+newComputeBackendBucketsPatch ::
+  -- |  Name of the BackendBucket resource to patch. See 'backendBucket'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendBucket ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsPatch
+newComputeBackendBucketsPatch backendBucket payload project =
+  ComputeBackendBucketsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendBucket = backendBucket,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsPatch where
+  type Rs ComputeBackendBucketsPatch = Operation
+  type
+    Scopes ComputeBackendBucketsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsPatch {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/SetEdgeSecurityPolicy.hs b/gen/Gogol/Compute/BackendBuckets/SetEdgeSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/SetEdgeSecurityPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.SetEdgeSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the edge security policy for the specified backend bucket.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.setEdgeSecurityPolicy@.
+module Gogol.Compute.BackendBuckets.SetEdgeSecurityPolicy
+  ( -- * Resource
+    ComputeBackendBucketsSetEdgeSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsSetEdgeSecurityPolicy (..),
+    newComputeBackendBucketsSetEdgeSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.setEdgeSecurityPolicy@ method which the
+-- 'ComputeBackendBucketsSetEdgeSecurityPolicy' request conforms to.
+type ComputeBackendBucketsSetEdgeSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> "setEdgeSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the edge security policy for the specified backend bucket.
+--
+-- /See:/ 'newComputeBackendBucketsSetEdgeSecurityPolicy' smart constructor.
+data ComputeBackendBucketsSetEdgeSecurityPolicy = ComputeBackendBucketsSetEdgeSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsSetEdgeSecurityPolicy' with the minimum fields required to make a request.
+newComputeBackendBucketsSetEdgeSecurityPolicy ::
+  -- |  Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035. See 'backendBucket'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsSetEdgeSecurityPolicy
+newComputeBackendBucketsSetEdgeSecurityPolicy
+  backendBucket
+  payload
+  project =
+    ComputeBackendBucketsSetEdgeSecurityPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendBucket = backendBucket,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeBackendBucketsSetEdgeSecurityPolicy
+  where
+  type Rs ComputeBackendBucketsSetEdgeSecurityPolicy = Operation
+  type
+    Scopes ComputeBackendBucketsSetEdgeSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsSetEdgeSecurityPolicy {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsSetEdgeSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/SetIamPolicy.hs b/gen/Gogol/Compute/BackendBuckets/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/SetIamPolicy.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.setIamPolicy@.
+module Gogol.Compute.BackendBuckets.SetIamPolicy
+  ( -- * Resource
+    ComputeBackendBucketsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsSetIamPolicy (..),
+    newComputeBackendBucketsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.setIamPolicy@ method which the
+-- 'ComputeBackendBucketsSetIamPolicy' request conforms to.
+type ComputeBackendBucketsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeBackendBucketsSetIamPolicy' smart constructor.
+data ComputeBackendBucketsSetIamPolicy = ComputeBackendBucketsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsSetIamPolicy' with the minimum fields required to make a request.
+newComputeBackendBucketsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendBucketsSetIamPolicy
+newComputeBackendBucketsSetIamPolicy payload project resource =
+  ComputeBackendBucketsSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsSetIamPolicy where
+  type Rs ComputeBackendBucketsSetIamPolicy = Policy
+  type
+    Scopes ComputeBackendBucketsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/TestIamPermissions.hs b/gen/Gogol/Compute/BackendBuckets/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/TestIamPermissions.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.testIamPermissions@.
+module Gogol.Compute.BackendBuckets.TestIamPermissions
+  ( -- * Resource
+    ComputeBackendBucketsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsTestIamPermissions (..),
+    newComputeBackendBucketsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.testIamPermissions@ method which the
+-- 'ComputeBackendBucketsTestIamPermissions' request conforms to.
+type ComputeBackendBucketsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeBackendBucketsTestIamPermissions' smart constructor.
+data ComputeBackendBucketsTestIamPermissions = ComputeBackendBucketsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsTestIamPermissions' with the minimum fields required to make a request.
+newComputeBackendBucketsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendBucketsTestIamPermissions
+newComputeBackendBucketsTestIamPermissions payload project resource =
+  ComputeBackendBucketsTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsTestIamPermissions where
+  type
+    Rs ComputeBackendBucketsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeBackendBucketsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendBucketsTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendBucketsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendBuckets/Update.hs b/gen/Gogol/Compute/BackendBuckets/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendBuckets/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendBuckets.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified BackendBucket resource with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendBuckets.update@.
+module Gogol.Compute.BackendBuckets.Update
+  ( -- * Resource
+    ComputeBackendBucketsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeBackendBucketsUpdate (..),
+    newComputeBackendBucketsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendBuckets.update@ method which the
+-- 'ComputeBackendBucketsUpdate' request conforms to.
+type ComputeBackendBucketsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendBuckets"
+    Core.:> Core.Capture "backendBucket" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendBucket
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified BackendBucket resource with the data included in the request.
+--
+-- /See:/ 'newComputeBackendBucketsUpdate' smart constructor.
+data ComputeBackendBucketsUpdate = ComputeBackendBucketsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendBucket resource to update.
+    backendBucket :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendBucket,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendBucketsUpdate' with the minimum fields required to make a request.
+newComputeBackendBucketsUpdate ::
+  -- |  Name of the BackendBucket resource to update. See 'backendBucket'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendBucket ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendBucketsUpdate
+newComputeBackendBucketsUpdate backendBucket payload project =
+  ComputeBackendBucketsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendBucket = backendBucket,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendBucketsUpdate where
+  type Rs ComputeBackendBucketsUpdate = Operation
+  type
+    Scopes ComputeBackendBucketsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendBucketsUpdate {..} =
+    go
+      project
+      backendBucket
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendBucketsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/AddSignedUrlKey.hs b/gen/Gogol/Compute/BackendServices/AddSignedUrlKey.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/AddSignedUrlKey.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.AddSignedUrlKey
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a key for validating requests with signed URLs for this backend service.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.addSignedUrlKey@.
+module Gogol.Compute.BackendServices.AddSignedUrlKey
+  ( -- * Resource
+    ComputeBackendServicesAddSignedUrlKeyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesAddSignedUrlKey (..),
+    newComputeBackendServicesAddSignedUrlKey,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.addSignedUrlKey@ method which the
+-- 'ComputeBackendServicesAddSignedUrlKey' request conforms to.
+type ComputeBackendServicesAddSignedUrlKeyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "addSignedUrlKey"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SignedUrlKey
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds a key for validating requests with signed URLs for this backend service.
+--
+-- /See:/ 'newComputeBackendServicesAddSignedUrlKey' smart constructor.
+data ComputeBackendServicesAddSignedUrlKey = ComputeBackendServicesAddSignedUrlKey
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SignedUrlKey,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesAddSignedUrlKey' with the minimum fields required to make a request.
+newComputeBackendServicesAddSignedUrlKey ::
+  -- |  Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SignedUrlKey ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesAddSignedUrlKey
+newComputeBackendServicesAddSignedUrlKey
+  backendService
+  payload
+  project =
+    ComputeBackendServicesAddSignedUrlKey
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeBackendServicesAddSignedUrlKey where
+  type Rs ComputeBackendServicesAddSignedUrlKey = Operation
+  type
+    Scopes ComputeBackendServicesAddSignedUrlKey =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesAddSignedUrlKey {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesAddSignedUrlKeyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/AggregatedList.hs b/gen/Gogol/Compute/BackendServices/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.aggregatedList@.
+module Gogol.Compute.BackendServices.AggregatedList
+  ( -- * Resource
+    ComputeBackendServicesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesAggregatedList (..),
+    newComputeBackendServicesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.aggregatedList@ method which the
+-- 'ComputeBackendServicesAggregatedList' request conforms to.
+type ComputeBackendServicesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "backendServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendServiceAggregatedList
+
+-- | Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeBackendServicesAggregatedList' smart constructor.
+data ComputeBackendServicesAggregatedList = ComputeBackendServicesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesAggregatedList' with the minimum fields required to make a request.
+newComputeBackendServicesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesAggregatedList
+newComputeBackendServicesAggregatedList project =
+  ComputeBackendServicesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesAggregatedList where
+  type
+    Rs ComputeBackendServicesAggregatedList =
+      BackendServiceAggregatedList
+  type
+    Scopes ComputeBackendServicesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/Delete.hs b/gen/Gogol/Compute/BackendServices/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified BackendService resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.delete@.
+module Gogol.Compute.BackendServices.Delete
+  ( -- * Resource
+    ComputeBackendServicesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesDelete (..),
+    newComputeBackendServicesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.delete@ method which the
+-- 'ComputeBackendServicesDelete' request conforms to.
+type ComputeBackendServicesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified BackendService resource.
+--
+-- /See:/ 'newComputeBackendServicesDelete' smart constructor.
+data ComputeBackendServicesDelete = ComputeBackendServicesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to delete.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesDelete' with the minimum fields required to make a request.
+newComputeBackendServicesDelete ::
+  -- |  Name of the BackendService resource to delete. See 'backendService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesDelete
+newComputeBackendServicesDelete backendService project =
+  ComputeBackendServicesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesDelete where
+  type Rs ComputeBackendServicesDelete = Operation
+  type
+    Scopes ComputeBackendServicesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesDelete {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/DeleteSignedUrlKey.hs b/gen/Gogol/Compute/BackendServices/DeleteSignedUrlKey.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/DeleteSignedUrlKey.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.DeleteSignedUrlKey
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a key for validating requests with signed URLs for this backend service.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.deleteSignedUrlKey@.
+module Gogol.Compute.BackendServices.DeleteSignedUrlKey
+  ( -- * Resource
+    ComputeBackendServicesDeleteSignedUrlKeyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesDeleteSignedUrlKey (..),
+    newComputeBackendServicesDeleteSignedUrlKey,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.deleteSignedUrlKey@ method which the
+-- 'ComputeBackendServicesDeleteSignedUrlKey' request conforms to.
+type ComputeBackendServicesDeleteSignedUrlKeyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "deleteSignedUrlKey"
+    Core.:> Core.QueryParam "keyName" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a key for validating requests with signed URLs for this backend service.
+--
+-- /See:/ 'newComputeBackendServicesDeleteSignedUrlKey' smart constructor.
+data ComputeBackendServicesDeleteSignedUrlKey = ComputeBackendServicesDeleteSignedUrlKey
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the Signed URL Key to delete.
+    keyName :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesDeleteSignedUrlKey' with the minimum fields required to make a request.
+newComputeBackendServicesDeleteSignedUrlKey ::
+  -- |  Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035. See 'backendService'.
+  Core.Text ->
+  -- |  The name of the Signed URL Key to delete. See 'keyName'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesDeleteSignedUrlKey
+newComputeBackendServicesDeleteSignedUrlKey
+  backendService
+  keyName
+  project =
+    ComputeBackendServicesDeleteSignedUrlKey
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        keyName = keyName,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeBackendServicesDeleteSignedUrlKey
+  where
+  type Rs ComputeBackendServicesDeleteSignedUrlKey = Operation
+  type
+    Scopes ComputeBackendServicesDeleteSignedUrlKey =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesDeleteSignedUrlKey {..} =
+    go
+      project
+      backendService
+      (Core.Just keyName)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesDeleteSignedUrlKeyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/Get.hs b/gen/Gogol/Compute/BackendServices/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified BackendService resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.get@.
+module Gogol.Compute.BackendServices.Get
+  ( -- * Resource
+    ComputeBackendServicesGetResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesGet (..),
+    newComputeBackendServicesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.get@ method which the
+-- 'ComputeBackendServicesGet' request conforms to.
+type ComputeBackendServicesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendService
+
+-- | Returns the specified BackendService resource.
+--
+-- /See:/ 'newComputeBackendServicesGet' smart constructor.
+data ComputeBackendServicesGet = ComputeBackendServicesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to return.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesGet' with the minimum fields required to make a request.
+newComputeBackendServicesGet ::
+  -- |  Name of the BackendService resource to return. See 'backendService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesGet
+newComputeBackendServicesGet backendService project =
+  ComputeBackendServicesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesGet where
+  type Rs ComputeBackendServicesGet = BackendService
+  type
+    Scopes ComputeBackendServicesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesGet {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/GetHealth.hs b/gen/Gogol/Compute/BackendServices/GetHealth.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/GetHealth.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.GetHealth
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"\/zones\/us-east1-b\/instanceGroups\/lb-backend-example\" }
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.getHealth@.
+module Gogol.Compute.BackendServices.GetHealth
+  ( -- * Resource
+    ComputeBackendServicesGetHealthResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesGetHealth (..),
+    newComputeBackendServicesGetHealth,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.getHealth@ method which the
+-- 'ComputeBackendServicesGetHealth' request conforms to.
+type ComputeBackendServicesGetHealthResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "getHealth"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourceGroupReference
+    Core.:> Core.Post '[Core.JSON] BackendServiceGroupHealth
+
+-- | Gets the most recent health check results for this BackendService. Example request body: { \"group\": \"\/zones\/us-east1-b\/instanceGroups\/lb-backend-example\" }
+--
+-- /See:/ 'newComputeBackendServicesGetHealth' smart constructor.
+data ComputeBackendServicesGetHealth = ComputeBackendServicesGetHealth
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the queried instance belongs.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ResourceGroupReference,
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesGetHealth' with the minimum fields required to make a request.
+newComputeBackendServicesGetHealth ::
+  -- |  Name of the BackendService resource to which the queried instance belongs. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ResourceGroupReference ->
+  -- |  See 'project'.
+  Core.Text ->
+  ComputeBackendServicesGetHealth
+newComputeBackendServicesGetHealth backendService payload project =
+  ComputeBackendServicesGetHealth
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesGetHealth where
+  type Rs ComputeBackendServicesGetHealth = BackendServiceGroupHealth
+  type
+    Scopes ComputeBackendServicesGetHealth =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesGetHealth {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesGetHealthResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/GetIamPolicy.hs b/gen/Gogol/Compute/BackendServices/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/GetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.getIamPolicy@.
+module Gogol.Compute.BackendServices.GetIamPolicy
+  ( -- * Resource
+    ComputeBackendServicesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesGetIamPolicy (..),
+    newComputeBackendServicesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.getIamPolicy@ method which the
+-- 'ComputeBackendServicesGetIamPolicy' request conforms to.
+type ComputeBackendServicesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeBackendServicesGetIamPolicy' smart constructor.
+data ComputeBackendServicesGetIamPolicy = ComputeBackendServicesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesGetIamPolicy' with the minimum fields required to make a request.
+newComputeBackendServicesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendServicesGetIamPolicy
+newComputeBackendServicesGetIamPolicy project resource =
+  ComputeBackendServicesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesGetIamPolicy where
+  type Rs ComputeBackendServicesGetIamPolicy = Policy
+  type
+    Scopes ComputeBackendServicesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/Insert.hs b/gen/Gogol/Compute/BackendServices/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.insert@.
+module Gogol.Compute.BackendServices.Insert
+  ( -- * Resource
+    ComputeBackendServicesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesInsert (..),
+    newComputeBackendServicesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.insert@ method which the
+-- 'ComputeBackendServicesInsert' request conforms to.
+type ComputeBackendServicesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview .
+--
+-- /See:/ 'newComputeBackendServicesInsert' smart constructor.
+data ComputeBackendServicesInsert = ComputeBackendServicesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesInsert' with the minimum fields required to make a request.
+newComputeBackendServicesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesInsert
+newComputeBackendServicesInsert payload project =
+  ComputeBackendServicesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesInsert where
+  type Rs ComputeBackendServicesInsert = Operation
+  type
+    Scopes ComputeBackendServicesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/List.hs b/gen/Gogol/Compute/BackendServices/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of BackendService resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.list@.
+module Gogol.Compute.BackendServices.List
+  ( -- * Resource
+    ComputeBackendServicesListResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesList (..),
+    newComputeBackendServicesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.list@ method which the
+-- 'ComputeBackendServicesList' request conforms to.
+type ComputeBackendServicesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendServiceList
+
+-- | Retrieves the list of BackendService resources available to the specified project.
+--
+-- /See:/ 'newComputeBackendServicesList' smart constructor.
+data ComputeBackendServicesList = ComputeBackendServicesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesList' with the minimum fields required to make a request.
+newComputeBackendServicesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesList
+newComputeBackendServicesList project =
+  ComputeBackendServicesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesList where
+  type Rs ComputeBackendServicesList = BackendServiceList
+  type
+    Scopes ComputeBackendServicesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/ListUsable.hs b/gen/Gogol/Compute/BackendServices/ListUsable.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/ListUsable.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.ListUsable
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of all usable backend services in the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.listUsable@.
+module Gogol.Compute.BackendServices.ListUsable
+  ( -- * Resource
+    ComputeBackendServicesListUsableResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesListUsable (..),
+    newComputeBackendServicesListUsable,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.listUsable@ method which the
+-- 'ComputeBackendServicesListUsable' request conforms to.
+type ComputeBackendServicesListUsableResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> "listUsable"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendServiceListUsable
+
+-- | Retrieves a list of all usable backend services in the specified project.
+--
+-- /See:/ 'newComputeBackendServicesListUsable' smart constructor.
+data ComputeBackendServicesListUsable = ComputeBackendServicesListUsable
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesListUsable' with the minimum fields required to make a request.
+newComputeBackendServicesListUsable ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesListUsable
+newComputeBackendServicesListUsable project =
+  ComputeBackendServicesListUsable
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesListUsable where
+  type Rs ComputeBackendServicesListUsable = BackendServiceListUsable
+  type
+    Scopes ComputeBackendServicesListUsable =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesListUsable {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesListUsableResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/Patch.hs b/gen/Gogol/Compute/BackendServices/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.patch@.
+module Gogol.Compute.BackendServices.Patch
+  ( -- * Resource
+    ComputeBackendServicesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesPatch (..),
+    newComputeBackendServicesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.patch@ method which the
+-- 'ComputeBackendServicesPatch' request conforms to.
+type ComputeBackendServicesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified BackendService resource with the data included in the request. For more information, see Backend services overview. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeBackendServicesPatch' smart constructor.
+data ComputeBackendServicesPatch = ComputeBackendServicesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to patch.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesPatch' with the minimum fields required to make a request.
+newComputeBackendServicesPatch ::
+  -- |  Name of the BackendService resource to patch. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesPatch
+newComputeBackendServicesPatch backendService payload project =
+  ComputeBackendServicesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesPatch where
+  type Rs ComputeBackendServicesPatch = Operation
+  type
+    Scopes ComputeBackendServicesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesPatch {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/SetEdgeSecurityPolicy.hs b/gen/Gogol/Compute/BackendServices/SetEdgeSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/SetEdgeSecurityPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.SetEdgeSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the edge security policy for the specified backend service.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.setEdgeSecurityPolicy@.
+module Gogol.Compute.BackendServices.SetEdgeSecurityPolicy
+  ( -- * Resource
+    ComputeBackendServicesSetEdgeSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesSetEdgeSecurityPolicy (..),
+    newComputeBackendServicesSetEdgeSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.setEdgeSecurityPolicy@ method which the
+-- 'ComputeBackendServicesSetEdgeSecurityPolicy' request conforms to.
+type ComputeBackendServicesSetEdgeSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "setEdgeSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the edge security policy for the specified backend service.
+--
+-- /See:/ 'newComputeBackendServicesSetEdgeSecurityPolicy' smart constructor.
+data ComputeBackendServicesSetEdgeSecurityPolicy = ComputeBackendServicesSetEdgeSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesSetEdgeSecurityPolicy' with the minimum fields required to make a request.
+newComputeBackendServicesSetEdgeSecurityPolicy ::
+  -- |  Name of the BackendService resource to which the edge security policy should be set. The name should conform to RFC1035. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesSetEdgeSecurityPolicy
+newComputeBackendServicesSetEdgeSecurityPolicy
+  backendService
+  payload
+  project =
+    ComputeBackendServicesSetEdgeSecurityPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeBackendServicesSetEdgeSecurityPolicy
+  where
+  type Rs ComputeBackendServicesSetEdgeSecurityPolicy = Operation
+  type
+    Scopes ComputeBackendServicesSetEdgeSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesSetEdgeSecurityPolicy {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesSetEdgeSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/SetIamPolicy.hs b/gen/Gogol/Compute/BackendServices/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/SetIamPolicy.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.setIamPolicy@.
+module Gogol.Compute.BackendServices.SetIamPolicy
+  ( -- * Resource
+    ComputeBackendServicesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesSetIamPolicy (..),
+    newComputeBackendServicesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.setIamPolicy@ method which the
+-- 'ComputeBackendServicesSetIamPolicy' request conforms to.
+type ComputeBackendServicesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeBackendServicesSetIamPolicy' smart constructor.
+data ComputeBackendServicesSetIamPolicy = ComputeBackendServicesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesSetIamPolicy' with the minimum fields required to make a request.
+newComputeBackendServicesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendServicesSetIamPolicy
+newComputeBackendServicesSetIamPolicy payload project resource =
+  ComputeBackendServicesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesSetIamPolicy where
+  type Rs ComputeBackendServicesSetIamPolicy = Policy
+  type
+    Scopes ComputeBackendServicesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/SetSecurityPolicy.hs b/gen/Gogol/Compute/BackendServices/SetSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/SetSecurityPolicy.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.SetSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.setSecurityPolicy@.
+module Gogol.Compute.BackendServices.SetSecurityPolicy
+  ( -- * Resource
+    ComputeBackendServicesSetSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesSetSecurityPolicy (..),
+    newComputeBackendServicesSetSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.setSecurityPolicy@ method which the
+-- 'ComputeBackendServicesSetSecurityPolicy' request conforms to.
+type ComputeBackendServicesSetSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "setSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ 'newComputeBackendServicesSetSecurityPolicy' smart constructor.
+data ComputeBackendServicesSetSecurityPolicy = ComputeBackendServicesSetSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesSetSecurityPolicy' with the minimum fields required to make a request.
+newComputeBackendServicesSetSecurityPolicy ::
+  -- |  Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesSetSecurityPolicy
+newComputeBackendServicesSetSecurityPolicy
+  backendService
+  payload
+  project =
+    ComputeBackendServicesSetSecurityPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeBackendServicesSetSecurityPolicy where
+  type Rs ComputeBackendServicesSetSecurityPolicy = Operation
+  type
+    Scopes ComputeBackendServicesSetSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesSetSecurityPolicy {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesSetSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/TestIamPermissions.hs b/gen/Gogol/Compute/BackendServices/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/TestIamPermissions.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.testIamPermissions@.
+module Gogol.Compute.BackendServices.TestIamPermissions
+  ( -- * Resource
+    ComputeBackendServicesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesTestIamPermissions (..),
+    newComputeBackendServicesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.testIamPermissions@ method which the
+-- 'ComputeBackendServicesTestIamPermissions' request conforms to.
+type ComputeBackendServicesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeBackendServicesTestIamPermissions' smart constructor.
+data ComputeBackendServicesTestIamPermissions = ComputeBackendServicesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesTestIamPermissions' with the minimum fields required to make a request.
+newComputeBackendServicesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeBackendServicesTestIamPermissions
+newComputeBackendServicesTestIamPermissions
+  payload
+  project
+  resource =
+    ComputeBackendServicesTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeBackendServicesTestIamPermissions
+  where
+  type
+    Rs ComputeBackendServicesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeBackendServicesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeBackendServicesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeBackendServicesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/BackendServices/Update.hs b/gen/Gogol/Compute/BackendServices/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/BackendServices/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.BackendServices.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.backendServices.update@.
+module Gogol.Compute.BackendServices.Update
+  ( -- * Resource
+    ComputeBackendServicesUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeBackendServicesUpdate (..),
+    newComputeBackendServicesUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.backendServices.update@ method which the
+-- 'ComputeBackendServicesUpdate' request conforms to.
+type ComputeBackendServicesUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.
+--
+-- /See:/ 'newComputeBackendServicesUpdate' smart constructor.
+data ComputeBackendServicesUpdate = ComputeBackendServicesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to update.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeBackendServicesUpdate' with the minimum fields required to make a request.
+newComputeBackendServicesUpdate ::
+  -- |  Name of the BackendService resource to update. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeBackendServicesUpdate
+newComputeBackendServicesUpdate backendService payload project =
+  ComputeBackendServicesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeBackendServicesUpdate where
+  type Rs ComputeBackendServicesUpdate = Operation
+  type
+    Scopes ComputeBackendServicesUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeBackendServicesUpdate {..} =
+    go
+      project
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeBackendServicesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/DiskTypes/AggregatedList.hs b/gen/Gogol/Compute/DiskTypes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/DiskTypes/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.DiskTypes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.diskTypes.aggregatedList@.
+module Gogol.Compute.DiskTypes.AggregatedList
+  ( -- * Resource
+    ComputeDiskTypesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeDiskTypesAggregatedList (..),
+    newComputeDiskTypesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.diskTypes.aggregatedList@ method which the
+-- 'ComputeDiskTypesAggregatedList' request conforms to.
+type ComputeDiskTypesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "diskTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskTypeAggregatedList
+
+-- | Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeDiskTypesAggregatedList' smart constructor.
+data ComputeDiskTypesAggregatedList = ComputeDiskTypesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDiskTypesAggregatedList' with the minimum fields required to make a request.
+newComputeDiskTypesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeDiskTypesAggregatedList
+newComputeDiskTypesAggregatedList project =
+  ComputeDiskTypesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeDiskTypesAggregatedList where
+  type Rs ComputeDiskTypesAggregatedList = DiskTypeAggregatedList
+  type
+    Scopes ComputeDiskTypesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDiskTypesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDiskTypesAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/DiskTypes/Get.hs b/gen/Gogol/Compute/DiskTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/DiskTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.DiskTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified disk type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.diskTypes.get@.
+module Gogol.Compute.DiskTypes.Get
+  ( -- * Resource
+    ComputeDiskTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeDiskTypesGet (..),
+    newComputeDiskTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.diskTypes.get@ method which the
+-- 'ComputeDiskTypesGet' request conforms to.
+type ComputeDiskTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "diskTypes"
+    Core.:> Core.Capture "diskType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskType
+
+-- | Returns the specified disk type.
+--
+-- /See:/ 'newComputeDiskTypesGet' smart constructor.
+data ComputeDiskTypesGet = ComputeDiskTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the disk type to return.
+    diskType :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDiskTypesGet' with the minimum fields required to make a request.
+newComputeDiskTypesGet ::
+  -- |  Name of the disk type to return. See 'diskType'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDiskTypesGet
+newComputeDiskTypesGet diskType project zone =
+  ComputeDiskTypesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      diskType = diskType,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDiskTypesGet where
+  type Rs ComputeDiskTypesGet = DiskType
+  type
+    Scopes ComputeDiskTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDiskTypesGet {..} =
+    go
+      project
+      zone
+      diskType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDiskTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/DiskTypes/List.hs b/gen/Gogol/Compute/DiskTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/DiskTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.DiskTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of disk types available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.diskTypes.list@.
+module Gogol.Compute.DiskTypes.List
+  ( -- * Resource
+    ComputeDiskTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeDiskTypesList (..),
+    newComputeDiskTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.diskTypes.list@ method which the
+-- 'ComputeDiskTypesList' request conforms to.
+type ComputeDiskTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "diskTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskTypeList
+
+-- | Retrieves a list of disk types available to the specified project.
+--
+-- /See:/ 'newComputeDiskTypesList' smart constructor.
+data ComputeDiskTypesList = ComputeDiskTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDiskTypesList' with the minimum fields required to make a request.
+newComputeDiskTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDiskTypesList
+newComputeDiskTypesList project zone =
+  ComputeDiskTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDiskTypesList where
+  type Rs ComputeDiskTypesList = DiskTypeList
+  type
+    Scopes ComputeDiskTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDiskTypesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDiskTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/AddResourcePolicies.hs b/gen/Gogol/Compute/Disks/AddResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/AddResourcePolicies.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.AddResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.addResourcePolicies@.
+module Gogol.Compute.Disks.AddResourcePolicies
+  ( -- * Resource
+    ComputeDisksAddResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeDisksAddResourcePolicies (..),
+    newComputeDisksAddResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.addResourcePolicies@ method which the
+-- 'ComputeDisksAddResourcePolicies' request conforms to.
+type ComputeDisksAddResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "addResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksAddResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds existing resource policies to a disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.
+--
+-- /See:/ 'newComputeDisksAddResourcePolicies' smart constructor.
+data ComputeDisksAddResourcePolicies = ComputeDisksAddResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DisksAddResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksAddResourcePolicies' with the minimum fields required to make a request.
+newComputeDisksAddResourcePolicies ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DisksAddResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksAddResourcePolicies
+newComputeDisksAddResourcePolicies disk payload project zone =
+  ComputeDisksAddResourcePolicies
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksAddResourcePolicies where
+  type Rs ComputeDisksAddResourcePolicies = Operation
+  type
+    Scopes ComputeDisksAddResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksAddResourcePolicies {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksAddResourcePoliciesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/AggregatedList.hs b/gen/Gogol/Compute/Disks/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.aggregatedList@.
+module Gogol.Compute.Disks.AggregatedList
+  ( -- * Resource
+    ComputeDisksAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeDisksAggregatedList (..),
+    newComputeDisksAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.aggregatedList@ method which the
+-- 'ComputeDisksAggregatedList' request conforms to.
+type ComputeDisksAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "disks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskAggregatedList
+
+-- | Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeDisksAggregatedList' smart constructor.
+data ComputeDisksAggregatedList = ComputeDisksAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksAggregatedList' with the minimum fields required to make a request.
+newComputeDisksAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeDisksAggregatedList
+newComputeDisksAggregatedList project =
+  ComputeDisksAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeDisksAggregatedList where
+  type Rs ComputeDisksAggregatedList = DiskAggregatedList
+  type
+    Scopes ComputeDisksAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDisksAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/BulkInsert.hs b/gen/Gogol/Compute/Disks/BulkInsert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/BulkInsert.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.BulkInsert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Bulk create a set of disks.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.bulkInsert@.
+module Gogol.Compute.Disks.BulkInsert
+  ( -- * Resource
+    ComputeDisksBulkInsertResource,
+
+    -- ** Constructing a Request
+    ComputeDisksBulkInsert (..),
+    newComputeDisksBulkInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.bulkInsert@ method which the
+-- 'ComputeDisksBulkInsert' request conforms to.
+type ComputeDisksBulkInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> "bulkInsert"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BulkInsertDiskResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Bulk create a set of disks.
+--
+-- /See:/ 'newComputeDisksBulkInsert' smart constructor.
+data ComputeDisksBulkInsert = ComputeDisksBulkInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BulkInsertDiskResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksBulkInsert' with the minimum fields required to make a request.
+newComputeDisksBulkInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BulkInsertDiskResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksBulkInsert
+newComputeDisksBulkInsert payload project zone =
+  ComputeDisksBulkInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksBulkInsert where
+  type Rs ComputeDisksBulkInsert = Operation
+  type
+    Scopes ComputeDisksBulkInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksBulkInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksBulkInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/CreateSnapshot.hs b/gen/Gogol/Compute/Disks/CreateSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/CreateSnapshot.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.CreateSnapshot
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.createSnapshot@.
+module Gogol.Compute.Disks.CreateSnapshot
+  ( -- * Resource
+    ComputeDisksCreateSnapshotResource,
+
+    -- ** Constructing a Request
+    ComputeDisksCreateSnapshot (..),
+    newComputeDisksCreateSnapshot,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.createSnapshot@ method which the
+-- 'ComputeDisksCreateSnapshot' request conforms to.
+type ComputeDisksCreateSnapshotResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "createSnapshot"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "guestFlush" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Snapshot
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ 'newComputeDisksCreateSnapshot' smart constructor.
+data ComputeDisksCreateSnapshot = ComputeDisksCreateSnapshot
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the persistent disk to snapshot.
+    disk :: Core.Text,
+    -- | [Input Only] Whether to attempt an application consistent snapshot by informing the OS to prepare for the snapshot process.
+    guestFlush :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: Snapshot,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksCreateSnapshot' with the minimum fields required to make a request.
+newComputeDisksCreateSnapshot ::
+  -- |  Name of the persistent disk to snapshot. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Snapshot ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksCreateSnapshot
+newComputeDisksCreateSnapshot disk payload project zone =
+  ComputeDisksCreateSnapshot
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      guestFlush = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksCreateSnapshot where
+  type Rs ComputeDisksCreateSnapshot = Operation
+  type
+    Scopes ComputeDisksCreateSnapshot =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksCreateSnapshot {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      guestFlush
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksCreateSnapshotResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/Delete.hs b/gen/Gogol/Compute/Disks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.delete@.
+module Gogol.Compute.Disks.Delete
+  ( -- * Resource
+    ComputeDisksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeDisksDelete (..),
+    newComputeDisksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.delete@ method which the
+-- 'ComputeDisksDelete' request conforms to.
+type ComputeDisksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified persistent disk. Deleting a disk removes its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
+--
+-- /See:/ 'newComputeDisksDelete' smart constructor.
+data ComputeDisksDelete = ComputeDisksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the persistent disk to delete.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksDelete' with the minimum fields required to make a request.
+newComputeDisksDelete ::
+  -- |  Name of the persistent disk to delete. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksDelete
+newComputeDisksDelete disk project zone =
+  ComputeDisksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksDelete where
+  type Rs ComputeDisksDelete = Operation
+  type
+    Scopes ComputeDisksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksDelete {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/Get.hs b/gen/Gogol/Compute/Disks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified persistent disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.get@.
+module Gogol.Compute.Disks.Get
+  ( -- * Resource
+    ComputeDisksGetResource,
+
+    -- ** Constructing a Request
+    ComputeDisksGet (..),
+    newComputeDisksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.get@ method which the
+-- 'ComputeDisksGet' request conforms to.
+type ComputeDisksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Disk
+
+-- | Returns the specified persistent disk.
+--
+-- /See:/ 'newComputeDisksGet' smart constructor.
+data ComputeDisksGet = ComputeDisksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the persistent disk to return.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksGet' with the minimum fields required to make a request.
+newComputeDisksGet ::
+  -- |  Name of the persistent disk to return. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksGet
+newComputeDisksGet disk project zone =
+  ComputeDisksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksGet where
+  type Rs ComputeDisksGet = Disk
+  type
+    Scopes ComputeDisksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDisksGet {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/GetIamPolicy.hs b/gen/Gogol/Compute/Disks/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.getIamPolicy@.
+module Gogol.Compute.Disks.GetIamPolicy
+  ( -- * Resource
+    ComputeDisksGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeDisksGetIamPolicy (..),
+    newComputeDisksGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.getIamPolicy@ method which the
+-- 'ComputeDisksGetIamPolicy' request conforms to.
+type ComputeDisksGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeDisksGetIamPolicy' smart constructor.
+data ComputeDisksGetIamPolicy = ComputeDisksGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksGetIamPolicy' with the minimum fields required to make a request.
+newComputeDisksGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksGetIamPolicy
+newComputeDisksGetIamPolicy project resource zone =
+  ComputeDisksGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksGetIamPolicy where
+  type Rs ComputeDisksGetIamPolicy = Policy
+  type
+    Scopes ComputeDisksGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDisksGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/Insert.hs b/gen/Gogol/Compute/Disks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/Insert.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.insert@.
+module Gogol.Compute.Disks.Insert
+  ( -- * Resource
+    ComputeDisksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeDisksInsert (..),
+    newComputeDisksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.insert@ method which the
+-- 'ComputeDisksInsert' request conforms to.
+type ComputeDisksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceImage" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Disk
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a persistent disk in the specified project using the data in the request. You can create a disk from a source (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500 GB data disk by omitting all properties. You can also create a disk that is larger than the default size by specifying the sizeGb property.
+--
+-- /See:/ 'newComputeDisksInsert' smart constructor.
+data ComputeDisksInsert = ComputeDisksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Disk,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Source image to restore onto a disk. This field is optional.
+    sourceImage :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksInsert' with the minimum fields required to make a request.
+newComputeDisksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Disk ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksInsert
+newComputeDisksInsert payload project zone =
+  ComputeDisksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      sourceImage = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksInsert where
+  type Rs ComputeDisksInsert = Operation
+  type
+    Scopes ComputeDisksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceImage
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/List.hs b/gen/Gogol/Compute/Disks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of persistent disks contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.list@.
+module Gogol.Compute.Disks.List
+  ( -- * Resource
+    ComputeDisksListResource,
+
+    -- ** Constructing a Request
+    ComputeDisksList (..),
+    newComputeDisksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.list@ method which the
+-- 'ComputeDisksList' request conforms to.
+type ComputeDisksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskList
+
+-- | Retrieves a list of persistent disks contained within the specified zone.
+--
+-- /See:/ 'newComputeDisksList' smart constructor.
+data ComputeDisksList = ComputeDisksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksList' with the minimum fields required to make a request.
+newComputeDisksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksList
+newComputeDisksList project zone =
+  ComputeDisksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksList where
+  type Rs ComputeDisksList = DiskList
+  type
+    Scopes ComputeDisksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDisksList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/RemoveResourcePolicies.hs b/gen/Gogol/Compute/Disks/RemoveResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/RemoveResourcePolicies.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.RemoveResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes resource policies from a disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.removeResourcePolicies@.
+module Gogol.Compute.Disks.RemoveResourcePolicies
+  ( -- * Resource
+    ComputeDisksRemoveResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeDisksRemoveResourcePolicies (..),
+    newComputeDisksRemoveResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.removeResourcePolicies@ method which the
+-- 'ComputeDisksRemoveResourcePolicies' request conforms to.
+type ComputeDisksRemoveResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "removeResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksRemoveResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes resource policies from a disk.
+--
+-- /See:/ 'newComputeDisksRemoveResourcePolicies' smart constructor.
+data ComputeDisksRemoveResourcePolicies = ComputeDisksRemoveResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DisksRemoveResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksRemoveResourcePolicies' with the minimum fields required to make a request.
+newComputeDisksRemoveResourcePolicies ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DisksRemoveResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksRemoveResourcePolicies
+newComputeDisksRemoveResourcePolicies disk payload project zone =
+  ComputeDisksRemoveResourcePolicies
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksRemoveResourcePolicies where
+  type Rs ComputeDisksRemoveResourcePolicies = Operation
+  type
+    Scopes ComputeDisksRemoveResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksRemoveResourcePolicies {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeDisksRemoveResourcePoliciesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/Resize.hs b/gen/Gogol/Compute/Disks/Resize.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/Resize.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.Resize
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Resizes the specified persistent disk. You can only increase the size of the disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.resize@.
+module Gogol.Compute.Disks.Resize
+  ( -- * Resource
+    ComputeDisksResizeResource,
+
+    -- ** Constructing a Request
+    ComputeDisksResize (..),
+    newComputeDisksResize,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.resize@ method which the
+-- 'ComputeDisksResize' request conforms to.
+type ComputeDisksResizeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "resize"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksResizeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Resizes the specified persistent disk. You can only increase the size of the disk.
+--
+-- /See:/ 'newComputeDisksResize' smart constructor.
+data ComputeDisksResize = ComputeDisksResize
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the persistent disk.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DisksResizeRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksResize' with the minimum fields required to make a request.
+newComputeDisksResize ::
+  -- |  The name of the persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DisksResizeRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksResize
+newComputeDisksResize disk payload project zone =
+  ComputeDisksResize
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksResize where
+  type Rs ComputeDisksResize = Operation
+  type
+    Scopes ComputeDisksResize =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksResize {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksResizeResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/SetIamPolicy.hs b/gen/Gogol/Compute/Disks/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.setIamPolicy@.
+module Gogol.Compute.Disks.SetIamPolicy
+  ( -- * Resource
+    ComputeDisksSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeDisksSetIamPolicy (..),
+    newComputeDisksSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.setIamPolicy@ method which the
+-- 'ComputeDisksSetIamPolicy' request conforms to.
+type ComputeDisksSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeDisksSetIamPolicy' smart constructor.
+data ComputeDisksSetIamPolicy = ComputeDisksSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksSetIamPolicy' with the minimum fields required to make a request.
+newComputeDisksSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksSetIamPolicy
+newComputeDisksSetIamPolicy payload project resource zone =
+  ComputeDisksSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksSetIamPolicy where
+  type Rs ComputeDisksSetIamPolicy = Policy
+  type
+    Scopes ComputeDisksSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/SetLabels.hs b/gen/Gogol/Compute/Disks/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.setLabels@.
+module Gogol.Compute.Disks.SetLabels
+  ( -- * Resource
+    ComputeDisksSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeDisksSetLabels (..),
+    newComputeDisksSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.setLabels@ method which the
+-- 'ComputeDisksSetLabels' request conforms to.
+type ComputeDisksSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeDisksSetLabels' smart constructor.
+data ComputeDisksSetLabels = ComputeDisksSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksSetLabels' with the minimum fields required to make a request.
+newComputeDisksSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksSetLabels
+newComputeDisksSetLabels payload project resource zone =
+  ComputeDisksSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksSetLabels where
+  type Rs ComputeDisksSetLabels = Operation
+  type
+    Scopes ComputeDisksSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksSetLabels {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/StartAsyncReplication.hs b/gen/Gogol/Compute/Disks/StartAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/StartAsyncReplication.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.StartAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts asynchronous replication. Must be invoked on the primary disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.startAsyncReplication@.
+module Gogol.Compute.Disks.StartAsyncReplication
+  ( -- * Resource
+    ComputeDisksStartAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeDisksStartAsyncReplication (..),
+    newComputeDisksStartAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.startAsyncReplication@ method which the
+-- 'ComputeDisksStartAsyncReplication' request conforms to.
+type ComputeDisksStartAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "startAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksStartAsyncReplicationRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Starts asynchronous replication. Must be invoked on the primary disk.
+--
+-- /See:/ 'newComputeDisksStartAsyncReplication' smart constructor.
+data ComputeDisksStartAsyncReplication = ComputeDisksStartAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the persistent disk.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DisksStartAsyncReplicationRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksStartAsyncReplication' with the minimum fields required to make a request.
+newComputeDisksStartAsyncReplication ::
+  -- |  The name of the persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DisksStartAsyncReplicationRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksStartAsyncReplication
+newComputeDisksStartAsyncReplication disk payload project zone =
+  ComputeDisksStartAsyncReplication
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksStartAsyncReplication where
+  type Rs ComputeDisksStartAsyncReplication = Operation
+  type
+    Scopes ComputeDisksStartAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksStartAsyncReplication {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeDisksStartAsyncReplicationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/StopAsyncReplication.hs b/gen/Gogol/Compute/Disks/StopAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/StopAsyncReplication.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.StopAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.stopAsyncReplication@.
+module Gogol.Compute.Disks.StopAsyncReplication
+  ( -- * Resource
+    ComputeDisksStopAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeDisksStopAsyncReplication (..),
+    newComputeDisksStopAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.stopAsyncReplication@ method which the
+-- 'ComputeDisksStopAsyncReplication' request conforms to.
+type ComputeDisksStopAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "stopAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.
+--
+-- /See:/ 'newComputeDisksStopAsyncReplication' smart constructor.
+data ComputeDisksStopAsyncReplication = ComputeDisksStopAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the persistent disk.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksStopAsyncReplication' with the minimum fields required to make a request.
+newComputeDisksStopAsyncReplication ::
+  -- |  The name of the persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksStopAsyncReplication
+newComputeDisksStopAsyncReplication disk project zone =
+  ComputeDisksStopAsyncReplication
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksStopAsyncReplication where
+  type Rs ComputeDisksStopAsyncReplication = Operation
+  type
+    Scopes ComputeDisksStopAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksStopAsyncReplication {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksStopAsyncReplicationResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/StopGroupAsyncReplication.hs b/gen/Gogol/Compute/Disks/StopGroupAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/StopGroupAsyncReplication.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.StopGroupAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.stopGroupAsyncReplication@.
+module Gogol.Compute.Disks.StopGroupAsyncReplication
+  ( -- * Resource
+    ComputeDisksStopGroupAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeDisksStopGroupAsyncReplication (..),
+    newComputeDisksStopGroupAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.stopGroupAsyncReplication@ method which the
+-- 'ComputeDisksStopGroupAsyncReplication' request conforms to.
+type ComputeDisksStopGroupAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> "stopGroupAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksStopGroupAsyncReplicationResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.
+--
+-- /See:/ 'newComputeDisksStopGroupAsyncReplication' smart constructor.
+data ComputeDisksStopGroupAsyncReplication = ComputeDisksStopGroupAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: DisksStopGroupAsyncReplicationResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksStopGroupAsyncReplication' with the minimum fields required to make a request.
+newComputeDisksStopGroupAsyncReplication ::
+  -- |  Multipart request metadata. See 'payload'.
+  DisksStopGroupAsyncReplicationResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. This must be the zone of the primary or secondary disks in the consistency group. See 'zone'.
+  Core.Text ->
+  ComputeDisksStopGroupAsyncReplication
+newComputeDisksStopGroupAsyncReplication payload project zone =
+  ComputeDisksStopGroupAsyncReplication
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksStopGroupAsyncReplication where
+  type Rs ComputeDisksStopGroupAsyncReplication = Operation
+  type
+    Scopes ComputeDisksStopGroupAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksStopGroupAsyncReplication {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeDisksStopGroupAsyncReplicationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/TestIamPermissions.hs b/gen/Gogol/Compute/Disks/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/TestIamPermissions.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.testIamPermissions@.
+module Gogol.Compute.Disks.TestIamPermissions
+  ( -- * Resource
+    ComputeDisksTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeDisksTestIamPermissions (..),
+    newComputeDisksTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.testIamPermissions@ method which the
+-- 'ComputeDisksTestIamPermissions' request conforms to.
+type ComputeDisksTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeDisksTestIamPermissions' smart constructor.
+data ComputeDisksTestIamPermissions = ComputeDisksTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksTestIamPermissions' with the minimum fields required to make a request.
+newComputeDisksTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksTestIamPermissions
+newComputeDisksTestIamPermissions payload project resource zone =
+  ComputeDisksTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksTestIamPermissions where
+  type Rs ComputeDisksTestIamPermissions = TestPermissionsResponse
+  type
+    Scopes ComputeDisksTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeDisksTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksTestIamPermissionsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Disks/Update.hs b/gen/Gogol/Compute/Disks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Disks/Update.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Disks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.disks.update@.
+module Gogol.Compute.Disks.Update
+  ( -- * Resource
+    ComputeDisksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeDisksUpdate (..),
+    newComputeDisksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.disks.update@ method which the
+-- 'ComputeDisksUpdate' request conforms to.
+type ComputeDisksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "paths" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Disk
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified disk with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.
+--
+-- /See:/ 'newComputeDisksUpdate' smart constructor.
+data ComputeDisksUpdate = ComputeDisksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    paths :: (Core.Maybe [Core.Text]),
+    -- | Multipart request metadata.
+    payload :: Disk,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeDisksUpdate' with the minimum fields required to make a request.
+newComputeDisksUpdate ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Disk ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeDisksUpdate
+newComputeDisksUpdate disk payload project zone =
+  ComputeDisksUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      paths = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeDisksUpdate where
+  type Rs ComputeDisksUpdate = Operation
+  type
+    Scopes ComputeDisksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeDisksUpdate {..} =
+    go
+      project
+      zone
+      disk
+      xgafv
+      accessToken
+      callback
+      (paths Core.^. Core._Default)
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeDisksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/Delete.hs b/gen/Gogol/Compute/ExternalVpnGateways/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified externalVpnGateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.delete@.
+module Gogol.Compute.ExternalVpnGateways.Delete
+  ( -- * Resource
+    ComputeExternalVpnGatewaysDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysDelete (..),
+    newComputeExternalVpnGatewaysDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.delete@ method which the
+-- 'ComputeExternalVpnGatewaysDelete' request conforms to.
+type ComputeExternalVpnGatewaysDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.Capture "externalVpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified externalVpnGateway.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysDelete' smart constructor.
+data ComputeExternalVpnGatewaysDelete = ComputeExternalVpnGatewaysDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the externalVpnGateways to delete.
+    externalVpnGateway :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysDelete' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysDelete ::
+  -- |  Name of the externalVpnGateways to delete. See 'externalVpnGateway'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysDelete
+newComputeExternalVpnGatewaysDelete externalVpnGateway project =
+  ComputeExternalVpnGatewaysDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      externalVpnGateway = externalVpnGateway,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeExternalVpnGatewaysDelete where
+  type Rs ComputeExternalVpnGatewaysDelete = Operation
+  type
+    Scopes ComputeExternalVpnGatewaysDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeExternalVpnGatewaysDelete {..} =
+    go
+      project
+      externalVpnGateway
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeExternalVpnGatewaysDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/Get.hs b/gen/Gogol/Compute/ExternalVpnGateways/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.get@.
+module Gogol.Compute.ExternalVpnGateways.Get
+  ( -- * Resource
+    ComputeExternalVpnGatewaysGetResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysGet (..),
+    newComputeExternalVpnGatewaysGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.get@ method which the
+-- 'ComputeExternalVpnGatewaysGet' request conforms to.
+type ComputeExternalVpnGatewaysGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.Capture "externalVpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ExternalVpnGateway
+
+-- | Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysGet' smart constructor.
+data ComputeExternalVpnGatewaysGet = ComputeExternalVpnGatewaysGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the externalVpnGateway to return.
+    externalVpnGateway :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysGet' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysGet ::
+  -- |  Name of the externalVpnGateway to return. See 'externalVpnGateway'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysGet
+newComputeExternalVpnGatewaysGet externalVpnGateway project =
+  ComputeExternalVpnGatewaysGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      externalVpnGateway = externalVpnGateway,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeExternalVpnGatewaysGet where
+  type Rs ComputeExternalVpnGatewaysGet = ExternalVpnGateway
+  type
+    Scopes ComputeExternalVpnGatewaysGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeExternalVpnGatewaysGet {..} =
+    go
+      project
+      externalVpnGateway
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeExternalVpnGatewaysGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/Insert.hs b/gen/Gogol/Compute/ExternalVpnGateways/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a ExternalVpnGateway in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.insert@.
+module Gogol.Compute.ExternalVpnGateways.Insert
+  ( -- * Resource
+    ComputeExternalVpnGatewaysInsertResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysInsert (..),
+    newComputeExternalVpnGatewaysInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.insert@ method which the
+-- 'ComputeExternalVpnGatewaysInsert' request conforms to.
+type ComputeExternalVpnGatewaysInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ExternalVpnGateway
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a ExternalVpnGateway in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysInsert' smart constructor.
+data ComputeExternalVpnGatewaysInsert = ComputeExternalVpnGatewaysInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ExternalVpnGateway,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysInsert' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  ExternalVpnGateway ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysInsert
+newComputeExternalVpnGatewaysInsert payload project =
+  ComputeExternalVpnGatewaysInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeExternalVpnGatewaysInsert where
+  type Rs ComputeExternalVpnGatewaysInsert = Operation
+  type
+    Scopes ComputeExternalVpnGatewaysInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeExternalVpnGatewaysInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeExternalVpnGatewaysInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/List.hs b/gen/Gogol/Compute/ExternalVpnGateways/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of ExternalVpnGateway available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.list@.
+module Gogol.Compute.ExternalVpnGateways.List
+  ( -- * Resource
+    ComputeExternalVpnGatewaysListResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysList (..),
+    newComputeExternalVpnGatewaysList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.list@ method which the
+-- 'ComputeExternalVpnGatewaysList' request conforms to.
+type ComputeExternalVpnGatewaysListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ExternalVpnGatewayList
+
+-- | Retrieves the list of ExternalVpnGateway available to the specified project.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysList' smart constructor.
+data ComputeExternalVpnGatewaysList = ComputeExternalVpnGatewaysList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysList' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysList
+newComputeExternalVpnGatewaysList project =
+  ComputeExternalVpnGatewaysList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeExternalVpnGatewaysList where
+  type Rs ComputeExternalVpnGatewaysList = ExternalVpnGatewayList
+  type
+    Scopes ComputeExternalVpnGatewaysList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeExternalVpnGatewaysList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeExternalVpnGatewaysListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/SetLabels.hs b/gen/Gogol/Compute/ExternalVpnGateways/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/SetLabels.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.setLabels@.
+module Gogol.Compute.ExternalVpnGateways.SetLabels
+  ( -- * Resource
+    ComputeExternalVpnGatewaysSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysSetLabels (..),
+    newComputeExternalVpnGatewaysSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.setLabels@ method which the
+-- 'ComputeExternalVpnGatewaysSetLabels' request conforms to.
+type ComputeExternalVpnGatewaysSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysSetLabels' smart constructor.
+data ComputeExternalVpnGatewaysSetLabels = ComputeExternalVpnGatewaysSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysSetLabels' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysSetLabels
+newComputeExternalVpnGatewaysSetLabels payload project resource =
+  ComputeExternalVpnGatewaysSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeExternalVpnGatewaysSetLabels where
+  type Rs ComputeExternalVpnGatewaysSetLabels = Operation
+  type
+    Scopes ComputeExternalVpnGatewaysSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeExternalVpnGatewaysSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeExternalVpnGatewaysSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ExternalVpnGateways/TestIamPermissions.hs b/gen/Gogol/Compute/ExternalVpnGateways/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ExternalVpnGateways/TestIamPermissions.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ExternalVpnGateways.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.externalVpnGateways.testIamPermissions@.
+module Gogol.Compute.ExternalVpnGateways.TestIamPermissions
+  ( -- * Resource
+    ComputeExternalVpnGatewaysTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeExternalVpnGatewaysTestIamPermissions (..),
+    newComputeExternalVpnGatewaysTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.externalVpnGateways.testIamPermissions@ method which the
+-- 'ComputeExternalVpnGatewaysTestIamPermissions' request conforms to.
+type ComputeExternalVpnGatewaysTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "externalVpnGateways"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeExternalVpnGatewaysTestIamPermissions' smart constructor.
+data ComputeExternalVpnGatewaysTestIamPermissions = ComputeExternalVpnGatewaysTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeExternalVpnGatewaysTestIamPermissions' with the minimum fields required to make a request.
+newComputeExternalVpnGatewaysTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeExternalVpnGatewaysTestIamPermissions
+newComputeExternalVpnGatewaysTestIamPermissions
+  payload
+  project
+  resource =
+    ComputeExternalVpnGatewaysTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeExternalVpnGatewaysTestIamPermissions
+  where
+  type
+    Rs ComputeExternalVpnGatewaysTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeExternalVpnGatewaysTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeExternalVpnGatewaysTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeExternalVpnGatewaysTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/AddAssociation.hs b/gen/Gogol/Compute/FirewallPolicies/AddAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/AddAssociation.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.AddAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts an association for the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.addAssociation@.
+module Gogol.Compute.FirewallPolicies.AddAssociation
+  ( -- * Resource
+    ComputeFirewallPoliciesAddAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesAddAssociation (..),
+    newComputeFirewallPoliciesAddAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.addAssociation@ method which the
+-- 'ComputeFirewallPoliciesAddAssociation' request conforms to.
+type ComputeFirewallPoliciesAddAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "replaceExistingAssociation" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyAssociation
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts an association for the specified firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesAddAssociation' smart constructor.
+data ComputeFirewallPoliciesAddAssociation = ComputeFirewallPoliciesAddAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyAssociation,
+    -- | Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.
+    replaceExistingAssociation :: (Core.Maybe Core.Bool),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesAddAssociation' with the minimum fields required to make a request.
+newComputeFirewallPoliciesAddAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyAssociation ->
+  ComputeFirewallPoliciesAddAssociation
+newComputeFirewallPoliciesAddAssociation firewallPolicy payload =
+  ComputeFirewallPoliciesAddAssociation
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      payload = payload,
+      replaceExistingAssociation = Core.Nothing,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesAddAssociation where
+  type Rs ComputeFirewallPoliciesAddAssociation = Operation
+  type
+    Scopes ComputeFirewallPoliciesAddAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesAddAssociation {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      replaceExistingAssociation
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesAddAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/AddRule.hs b/gen/Gogol/Compute/FirewallPolicies/AddRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/AddRule.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.AddRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a rule into a firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.addRule@.
+module Gogol.Compute.FirewallPolicies.AddRule
+  ( -- * Resource
+    ComputeFirewallPoliciesAddRuleResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesAddRule (..),
+    newComputeFirewallPoliciesAddRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.addRule@ method which the
+-- 'ComputeFirewallPoliciesAddRule' request conforms to.
+type ComputeFirewallPoliciesAddRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a rule into a firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesAddRule' smart constructor.
+data ComputeFirewallPoliciesAddRule = ComputeFirewallPoliciesAddRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesAddRule' with the minimum fields required to make a request.
+newComputeFirewallPoliciesAddRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  ComputeFirewallPoliciesAddRule
+newComputeFirewallPoliciesAddRule firewallPolicy payload =
+  ComputeFirewallPoliciesAddRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      payload = payload,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesAddRule where
+  type Rs ComputeFirewallPoliciesAddRule = Operation
+  type
+    Scopes ComputeFirewallPoliciesAddRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesAddRule {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesAddRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/CloneRules.hs b/gen/Gogol/Compute/FirewallPolicies/CloneRules.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/CloneRules.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.CloneRules
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Copies rules to the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.cloneRules@.
+module Gogol.Compute.FirewallPolicies.CloneRules
+  ( -- * Resource
+    ComputeFirewallPoliciesCloneRulesResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesCloneRules (..),
+    newComputeFirewallPoliciesCloneRules,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.cloneRules@ method which the
+-- 'ComputeFirewallPoliciesCloneRules' request conforms to.
+type ComputeFirewallPoliciesCloneRulesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "cloneRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceFirewallPolicy" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Copies rules to the specified firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesCloneRules' smart constructor.
+data ComputeFirewallPoliciesCloneRules = ComputeFirewallPoliciesCloneRules
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The firewall policy from which to copy rules.
+    sourceFirewallPolicy :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesCloneRules' with the minimum fields required to make a request.
+newComputeFirewallPoliciesCloneRules ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesCloneRules
+newComputeFirewallPoliciesCloneRules firewallPolicy =
+  ComputeFirewallPoliciesCloneRules
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      requestId = Core.Nothing,
+      sourceFirewallPolicy = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesCloneRules where
+  type Rs ComputeFirewallPoliciesCloneRules = Operation
+  type
+    Scopes ComputeFirewallPoliciesCloneRules =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesCloneRules {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceFirewallPolicy
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesCloneRulesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/Delete.hs b/gen/Gogol/Compute/FirewallPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/Delete.hs
@@ -0,0 +1,118 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.delete@.
+module Gogol.Compute.FirewallPolicies.Delete
+  ( -- * Resource
+    ComputeFirewallPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesDelete (..),
+    newComputeFirewallPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.delete@ method which the
+-- 'ComputeFirewallPoliciesDelete' request conforms to.
+type ComputeFirewallPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesDelete' smart constructor.
+data ComputeFirewallPoliciesDelete = ComputeFirewallPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to delete.
+    firewallPolicy :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesDelete' with the minimum fields required to make a request.
+newComputeFirewallPoliciesDelete ::
+  -- |  Name of the firewall policy to delete. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesDelete
+newComputeFirewallPoliciesDelete firewallPolicy =
+  ComputeFirewallPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesDelete where
+  type Rs ComputeFirewallPoliciesDelete = Operation
+  type
+    Scopes ComputeFirewallPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesDelete {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/Get.hs b/gen/Gogol/Compute/FirewallPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/Get.hs
@@ -0,0 +1,113 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.get@.
+module Gogol.Compute.FirewallPolicies.Get
+  ( -- * Resource
+    ComputeFirewallPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesGet (..),
+    newComputeFirewallPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.get@ method which the
+-- 'ComputeFirewallPoliciesGet' request conforms to.
+type ComputeFirewallPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicy
+
+-- | Returns the specified firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesGet' smart constructor.
+data ComputeFirewallPoliciesGet = ComputeFirewallPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to get.
+    firewallPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesGet' with the minimum fields required to make a request.
+newComputeFirewallPoliciesGet ::
+  -- |  Name of the firewall policy to get. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesGet
+newComputeFirewallPoliciesGet firewallPolicy =
+  ComputeFirewallPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesGet where
+  type Rs ComputeFirewallPoliciesGet = FirewallPolicy
+  type
+    Scopes ComputeFirewallPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesGet {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/GetAssociation.hs b/gen/Gogol/Compute/FirewallPolicies/GetAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/GetAssociation.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.GetAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets an association with the specified name.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.getAssociation@.
+module Gogol.Compute.FirewallPolicies.GetAssociation
+  ( -- * Resource
+    ComputeFirewallPoliciesGetAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesGetAssociation (..),
+    newComputeFirewallPoliciesGetAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.getAssociation@ method which the
+-- 'ComputeFirewallPoliciesGetAssociation' request conforms to.
+type ComputeFirewallPoliciesGetAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyAssociation
+
+-- | Gets an association with the specified name.
+--
+-- /See:/ 'newComputeFirewallPoliciesGetAssociation' smart constructor.
+data ComputeFirewallPoliciesGetAssociation = ComputeFirewallPoliciesGetAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried rule belongs.
+    firewallPolicy :: Core.Text,
+    -- | The name of the association to get from the firewall policy.
+    name :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesGetAssociation' with the minimum fields required to make a request.
+newComputeFirewallPoliciesGetAssociation ::
+  -- |  Name of the firewall policy to which the queried rule belongs. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesGetAssociation
+newComputeFirewallPoliciesGetAssociation firewallPolicy =
+  ComputeFirewallPoliciesGetAssociation
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      name = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesGetAssociation where
+  type
+    Rs ComputeFirewallPoliciesGetAssociation =
+      FirewallPolicyAssociation
+  type
+    Scopes ComputeFirewallPoliciesGetAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesGetAssociation {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      name
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesGetAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/GetIamPolicy.hs b/gen/Gogol/Compute/FirewallPolicies/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/GetIamPolicy.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.getIamPolicy@.
+module Gogol.Compute.FirewallPolicies.GetIamPolicy
+  ( -- * Resource
+    ComputeFirewallPoliciesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesGetIamPolicy (..),
+    newComputeFirewallPoliciesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.getIamPolicy@ method which the
+-- 'ComputeFirewallPoliciesGetIamPolicy' request conforms to.
+type ComputeFirewallPoliciesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeFirewallPoliciesGetIamPolicy' smart constructor.
+data ComputeFirewallPoliciesGetIamPolicy = ComputeFirewallPoliciesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesGetIamPolicy' with the minimum fields required to make a request.
+newComputeFirewallPoliciesGetIamPolicy ::
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeFirewallPoliciesGetIamPolicy
+newComputeFirewallPoliciesGetIamPolicy resource =
+  ComputeFirewallPoliciesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesGetIamPolicy where
+  type Rs ComputeFirewallPoliciesGetIamPolicy = Policy
+  type
+    Scopes ComputeFirewallPoliciesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesGetIamPolicy {..} =
+    go
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/GetRule.hs b/gen/Gogol/Compute/FirewallPolicies/GetRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/GetRule.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.GetRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.getRule@.
+module Gogol.Compute.FirewallPolicies.GetRule
+  ( -- * Resource
+    ComputeFirewallPoliciesGetRuleResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesGetRule (..),
+    newComputeFirewallPoliciesGetRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.getRule@ method which the
+-- 'ComputeFirewallPoliciesGetRule' request conforms to.
+type ComputeFirewallPoliciesGetRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyRule
+
+-- | Gets a rule of the specified priority.
+--
+-- /See:/ 'newComputeFirewallPoliciesGetRule' smart constructor.
+data ComputeFirewallPoliciesGetRule = ComputeFirewallPoliciesGetRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried rule belongs.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to get from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesGetRule' with the minimum fields required to make a request.
+newComputeFirewallPoliciesGetRule ::
+  -- |  Name of the firewall policy to which the queried rule belongs. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesGetRule
+newComputeFirewallPoliciesGetRule firewallPolicy =
+  ComputeFirewallPoliciesGetRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      priority = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesGetRule where
+  type Rs ComputeFirewallPoliciesGetRule = FirewallPolicyRule
+  type
+    Scopes ComputeFirewallPoliciesGetRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesGetRule {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesGetRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/Insert.hs b/gen/Gogol/Compute/FirewallPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/Insert.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.insert@.
+module Gogol.Compute.FirewallPolicies.Insert
+  ( -- * Resource
+    ComputeFirewallPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesInsert (..),
+    newComputeFirewallPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.insert@ method which the
+-- 'ComputeFirewallPoliciesInsert' request conforms to.
+type ComputeFirewallPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeFirewallPoliciesInsert' smart constructor.
+data ComputeFirewallPoliciesInsert = ComputeFirewallPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Parent ID for this request. The ID can be either be \"folders\/[FOLDER/ID]\" if the parent is a folder or \"organizations\/[ORGANIZATION/ID]\" if the parent is an organization.
+    parentId :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesInsert' with the minimum fields required to make a request.
+newComputeFirewallPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  ComputeFirewallPoliciesInsert
+newComputeFirewallPoliciesInsert payload =
+  ComputeFirewallPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      parentId = Core.Nothing,
+      payload = payload,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesInsert where
+  type Rs ComputeFirewallPoliciesInsert = Operation
+  type
+    Scopes ComputeFirewallPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesInsert {..} =
+    go
+      xgafv
+      accessToken
+      callback
+      parentId
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/List.hs b/gen/Gogol/Compute/FirewallPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/List.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the policies that have been configured for the specified folder or organization.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.list@.
+module Gogol.Compute.FirewallPolicies.List
+  ( -- * Resource
+    ComputeFirewallPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesList (..),
+    newComputeFirewallPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.list@ method which the
+-- 'ComputeFirewallPoliciesList' request conforms to.
+type ComputeFirewallPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyList
+
+-- | Lists all the policies that have been configured for the specified folder or organization.
+--
+-- /See:/ 'newComputeFirewallPoliciesList' smart constructor.
+data ComputeFirewallPoliciesList = ComputeFirewallPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Parent ID for this request. The ID can be either be \"folders\/[FOLDER/ID]\" if the parent is a folder or \"organizations\/[ORGANIZATION/ID]\" if the parent is an organization.
+    parentId :: (Core.Maybe Core.Text),
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesList' with the minimum fields required to make a request.
+newComputeFirewallPoliciesList ::
+  ComputeFirewallPoliciesList
+newComputeFirewallPoliciesList =
+  ComputeFirewallPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      parentId = Core.Nothing,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesList where
+  type Rs ComputeFirewallPoliciesList = FirewallPolicyList
+  type
+    Scopes ComputeFirewallPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesList {..} =
+    go
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      parentId
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/ListAssociations.hs b/gen/Gogol/Compute/FirewallPolicies/ListAssociations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/ListAssociations.hs
@@ -0,0 +1,116 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.ListAssociations
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists associations of a specified target, i.e., organization or folder.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.listAssociations@.
+module Gogol.Compute.FirewallPolicies.ListAssociations
+  ( -- * Resource
+    ComputeFirewallPoliciesListAssociationsResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesListAssociations (..),
+    newComputeFirewallPoliciesListAssociations,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.listAssociations@ method which the
+-- 'ComputeFirewallPoliciesListAssociations' request conforms to.
+type ComputeFirewallPoliciesListAssociationsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> "listAssociations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "targetResource" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPoliciesListAssociationsResponse
+
+-- | Lists associations of a specified target, i.e., organization or folder.
+--
+-- /See:/ 'newComputeFirewallPoliciesListAssociations' smart constructor.
+data ComputeFirewallPoliciesListAssociations = ComputeFirewallPoliciesListAssociations
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The target resource to list associations. It is an organization, or a folder.
+    targetResource :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesListAssociations' with the minimum fields required to make a request.
+newComputeFirewallPoliciesListAssociations ::
+  ComputeFirewallPoliciesListAssociations
+newComputeFirewallPoliciesListAssociations =
+  ComputeFirewallPoliciesListAssociations
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      targetResource = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesListAssociations where
+  type
+    Rs ComputeFirewallPoliciesListAssociations =
+      FirewallPoliciesListAssociationsResponse
+  type
+    Scopes ComputeFirewallPoliciesListAssociations =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesListAssociations {..} =
+    go
+      xgafv
+      accessToken
+      callback
+      targetResource
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesListAssociationsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/Move.hs b/gen/Gogol/Compute/FirewallPolicies/Move.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/Move.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.Move
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.move@.
+module Gogol.Compute.FirewallPolicies.Move
+  ( -- * Resource
+    ComputeFirewallPoliciesMoveResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesMove (..),
+    newComputeFirewallPoliciesMove,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.move@ method which the
+-- 'ComputeFirewallPoliciesMove' request conforms to.
+type ComputeFirewallPoliciesMoveResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "move"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Moves the specified firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesMove' smart constructor.
+data ComputeFirewallPoliciesMove = ComputeFirewallPoliciesMove
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | The new parent of the firewall policy. The ID can be either be \"folders\/[FOLDER/ID]\" if the parent is a folder or \"organizations\/[ORGANIZATION/ID]\" if the parent is an organization.
+    parentId :: (Core.Maybe Core.Text),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesMove' with the minimum fields required to make a request.
+newComputeFirewallPoliciesMove ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesMove
+newComputeFirewallPoliciesMove firewallPolicy =
+  ComputeFirewallPoliciesMove
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      parentId = Core.Nothing,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesMove where
+  type Rs ComputeFirewallPoliciesMove = Operation
+  type
+    Scopes ComputeFirewallPoliciesMove =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesMove {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      parentId
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesMoveResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/Patch.hs b/gen/Gogol/Compute/FirewallPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/Patch.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified policy with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.patch@.
+module Gogol.Compute.FirewallPolicies.Patch
+  ( -- * Resource
+    ComputeFirewallPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesPatch (..),
+    newComputeFirewallPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.patch@ method which the
+-- 'ComputeFirewallPoliciesPatch' request conforms to.
+type ComputeFirewallPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified policy with the data included in the request.
+--
+-- /See:/ 'newComputeFirewallPoliciesPatch' smart constructor.
+data ComputeFirewallPoliciesPatch = ComputeFirewallPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesPatch' with the minimum fields required to make a request.
+newComputeFirewallPoliciesPatch ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  ComputeFirewallPoliciesPatch
+newComputeFirewallPoliciesPatch firewallPolicy payload =
+  ComputeFirewallPoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      payload = payload,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesPatch where
+  type Rs ComputeFirewallPoliciesPatch = Operation
+  type
+    Scopes ComputeFirewallPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesPatch {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/PatchRule.hs b/gen/Gogol/Compute/FirewallPolicies/PatchRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/PatchRule.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.PatchRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.patchRule@.
+module Gogol.Compute.FirewallPolicies.PatchRule
+  ( -- * Resource
+    ComputeFirewallPoliciesPatchRuleResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesPatchRule (..),
+    newComputeFirewallPoliciesPatchRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.patchRule@ method which the
+-- 'ComputeFirewallPoliciesPatchRule' request conforms to.
+type ComputeFirewallPoliciesPatchRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "patchRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a rule of the specified priority.
+--
+-- /See:/ 'newComputeFirewallPoliciesPatchRule' smart constructor.
+data ComputeFirewallPoliciesPatchRule = ComputeFirewallPoliciesPatchRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesPatchRule' with the minimum fields required to make a request.
+newComputeFirewallPoliciesPatchRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  ComputeFirewallPoliciesPatchRule
+newComputeFirewallPoliciesPatchRule firewallPolicy payload =
+  ComputeFirewallPoliciesPatchRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      payload = payload,
+      priority = Core.Nothing,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesPatchRule where
+  type Rs ComputeFirewallPoliciesPatchRule = Operation
+  type
+    Scopes ComputeFirewallPoliciesPatchRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesPatchRule {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallPoliciesPatchRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/RemoveAssociation.hs b/gen/Gogol/Compute/FirewallPolicies/RemoveAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/RemoveAssociation.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.RemoveAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes an association for the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.removeAssociation@.
+module Gogol.Compute.FirewallPolicies.RemoveAssociation
+  ( -- * Resource
+    ComputeFirewallPoliciesRemoveAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesRemoveAssociation (..),
+    newComputeFirewallPoliciesRemoveAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.removeAssociation@ method which the
+-- 'ComputeFirewallPoliciesRemoveAssociation' request conforms to.
+type ComputeFirewallPoliciesRemoveAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes an association for the specified firewall policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesRemoveAssociation' smart constructor.
+data ComputeFirewallPoliciesRemoveAssociation = ComputeFirewallPoliciesRemoveAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Name for the attachment that will be removed.
+    name :: (Core.Maybe Core.Text),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesRemoveAssociation' with the minimum fields required to make a request.
+newComputeFirewallPoliciesRemoveAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesRemoveAssociation
+newComputeFirewallPoliciesRemoveAssociation firewallPolicy =
+  ComputeFirewallPoliciesRemoveAssociation
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      name = Core.Nothing,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeFirewallPoliciesRemoveAssociation
+  where
+  type Rs ComputeFirewallPoliciesRemoveAssociation = Operation
+  type
+    Scopes ComputeFirewallPoliciesRemoveAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesRemoveAssociation {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      name
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesRemoveAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/RemoveRule.hs b/gen/Gogol/Compute/FirewallPolicies/RemoveRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/RemoveRule.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.RemoveRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.removeRule@.
+module Gogol.Compute.FirewallPolicies.RemoveRule
+  ( -- * Resource
+    ComputeFirewallPoliciesRemoveRuleResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesRemoveRule (..),
+    newComputeFirewallPoliciesRemoveRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.removeRule@ method which the
+-- 'ComputeFirewallPoliciesRemoveRule' request conforms to.
+type ComputeFirewallPoliciesRemoveRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a rule of the specified priority.
+--
+-- /See:/ 'newComputeFirewallPoliciesRemoveRule' smart constructor.
+data ComputeFirewallPoliciesRemoveRule = ComputeFirewallPoliciesRemoveRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to remove from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesRemoveRule' with the minimum fields required to make a request.
+newComputeFirewallPoliciesRemoveRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  ComputeFirewallPoliciesRemoveRule
+newComputeFirewallPoliciesRemoveRule firewallPolicy =
+  ComputeFirewallPoliciesRemoveRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      priority = Core.Nothing,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesRemoveRule where
+  type Rs ComputeFirewallPoliciesRemoveRule = Operation
+  type
+    Scopes ComputeFirewallPoliciesRemoveRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesRemoveRule {..} =
+    go
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesRemoveRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/SetIamPolicy.hs b/gen/Gogol/Compute/FirewallPolicies/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/SetIamPolicy.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.setIamPolicy@.
+module Gogol.Compute.FirewallPolicies.SetIamPolicy
+  ( -- * Resource
+    ComputeFirewallPoliciesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesSetIamPolicy (..),
+    newComputeFirewallPoliciesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.setIamPolicy@ method which the
+-- 'ComputeFirewallPoliciesSetIamPolicy' request conforms to.
+type ComputeFirewallPoliciesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalOrganizationSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeFirewallPoliciesSetIamPolicy' smart constructor.
+data ComputeFirewallPoliciesSetIamPolicy = ComputeFirewallPoliciesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalOrganizationSetPolicyRequest,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesSetIamPolicy' with the minimum fields required to make a request.
+newComputeFirewallPoliciesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalOrganizationSetPolicyRequest ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeFirewallPoliciesSetIamPolicy
+newComputeFirewallPoliciesSetIamPolicy payload resource =
+  ComputeFirewallPoliciesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallPoliciesSetIamPolicy where
+  type Rs ComputeFirewallPoliciesSetIamPolicy = Policy
+  type
+    Scopes ComputeFirewallPoliciesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallPoliciesSetIamPolicy {..} =
+    go
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/FirewallPolicies/TestIamPermissions.hs b/gen/Gogol/Compute/FirewallPolicies/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/FirewallPolicies/TestIamPermissions.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.FirewallPolicies.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewallPolicies.testIamPermissions@.
+module Gogol.Compute.FirewallPolicies.TestIamPermissions
+  ( -- * Resource
+    ComputeFirewallPoliciesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallPoliciesTestIamPermissions (..),
+    newComputeFirewallPoliciesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewallPolicies.testIamPermissions@ method which the
+-- 'ComputeFirewallPoliciesTestIamPermissions' request conforms to.
+type ComputeFirewallPoliciesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeFirewallPoliciesTestIamPermissions' smart constructor.
+data ComputeFirewallPoliciesTestIamPermissions = ComputeFirewallPoliciesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallPoliciesTestIamPermissions' with the minimum fields required to make a request.
+newComputeFirewallPoliciesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeFirewallPoliciesTestIamPermissions
+newComputeFirewallPoliciesTestIamPermissions payload resource =
+  ComputeFirewallPoliciesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeFirewallPoliciesTestIamPermissions
+  where
+  type
+    Rs ComputeFirewallPoliciesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeFirewallPoliciesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallPoliciesTestIamPermissions {..} =
+    go
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeFirewallPoliciesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/Delete.hs b/gen/Gogol/Compute/Firewalls/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified firewall.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.delete@.
+module Gogol.Compute.Firewalls.Delete
+  ( -- * Resource
+    ComputeFirewallsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsDelete (..),
+    newComputeFirewallsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.delete@ method which the
+-- 'ComputeFirewallsDelete' request conforms to.
+type ComputeFirewallsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.Capture "firewall" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified firewall.
+--
+-- /See:/ 'newComputeFirewallsDelete' smart constructor.
+data ComputeFirewallsDelete = ComputeFirewallsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall rule to delete.
+    firewall :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsDelete' with the minimum fields required to make a request.
+newComputeFirewallsDelete ::
+  -- |  Name of the firewall rule to delete. See 'firewall'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsDelete
+newComputeFirewallsDelete firewall project =
+  ComputeFirewallsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewall = firewall,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsDelete where
+  type Rs ComputeFirewallsDelete = Operation
+  type
+    Scopes ComputeFirewallsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallsDelete {..} =
+    go
+      project
+      firewall
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/Get.hs b/gen/Gogol/Compute/Firewalls/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified firewall.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.get@.
+module Gogol.Compute.Firewalls.Get
+  ( -- * Resource
+    ComputeFirewallsGetResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsGet (..),
+    newComputeFirewallsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.get@ method which the
+-- 'ComputeFirewallsGet' request conforms to.
+type ComputeFirewallsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.Capture "firewall" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Firewall
+
+-- | Returns the specified firewall.
+--
+-- /See:/ 'newComputeFirewallsGet' smart constructor.
+data ComputeFirewallsGet = ComputeFirewallsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall rule to return.
+    firewall :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsGet' with the minimum fields required to make a request.
+newComputeFirewallsGet ::
+  -- |  Name of the firewall rule to return. See 'firewall'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsGet
+newComputeFirewallsGet firewall project =
+  ComputeFirewallsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewall = firewall,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsGet where
+  type Rs ComputeFirewallsGet = Firewall
+  type
+    Scopes ComputeFirewallsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallsGet {..} =
+    go
+      project
+      firewall
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/Insert.hs b/gen/Gogol/Compute/Firewalls/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a firewall rule in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.insert@.
+module Gogol.Compute.Firewalls.Insert
+  ( -- * Resource
+    ComputeFirewallsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsInsert (..),
+    newComputeFirewallsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.insert@ method which the
+-- 'ComputeFirewallsInsert' request conforms to.
+type ComputeFirewallsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Firewall
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a firewall rule in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeFirewallsInsert' smart constructor.
+data ComputeFirewallsInsert = ComputeFirewallsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Firewall,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsInsert' with the minimum fields required to make a request.
+newComputeFirewallsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Firewall ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsInsert
+newComputeFirewallsInsert payload project =
+  ComputeFirewallsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsInsert where
+  type Rs ComputeFirewallsInsert = Operation
+  type
+    Scopes ComputeFirewallsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/List.hs b/gen/Gogol/Compute/Firewalls/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of firewall rules available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.list@.
+module Gogol.Compute.Firewalls.List
+  ( -- * Resource
+    ComputeFirewallsListResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsList (..),
+    newComputeFirewallsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.list@ method which the
+-- 'ComputeFirewallsList' request conforms to.
+type ComputeFirewallsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallList
+
+-- | Retrieves the list of firewall rules available to the specified project.
+--
+-- /See:/ 'newComputeFirewallsList' smart constructor.
+data ComputeFirewallsList = ComputeFirewallsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsList' with the minimum fields required to make a request.
+newComputeFirewallsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsList
+newComputeFirewallsList project =
+  ComputeFirewallsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsList where
+  type Rs ComputeFirewallsList = FirewallList
+  type
+    Scopes ComputeFirewallsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeFirewallsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/Patch.hs b/gen/Gogol/Compute/Firewalls/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.patch@.
+module Gogol.Compute.Firewalls.Patch
+  ( -- * Resource
+    ComputeFirewallsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsPatch (..),
+    newComputeFirewallsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.patch@ method which the
+-- 'ComputeFirewallsPatch' request conforms to.
+type ComputeFirewallsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.Capture "firewall" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Firewall
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified firewall rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeFirewallsPatch' smart constructor.
+data ComputeFirewallsPatch = ComputeFirewallsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall rule to patch.
+    firewall :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Firewall,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsPatch' with the minimum fields required to make a request.
+newComputeFirewallsPatch ::
+  -- |  Name of the firewall rule to patch. See 'firewall'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Firewall ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsPatch
+newComputeFirewallsPatch firewall payload project =
+  ComputeFirewallsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewall = firewall,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsPatch where
+  type Rs ComputeFirewallsPatch = Operation
+  type
+    Scopes ComputeFirewallsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallsPatch {..} =
+    go
+      project
+      firewall
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Firewalls/Update.hs b/gen/Gogol/Compute/Firewalls/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Firewalls/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Firewalls.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.firewalls.update@.
+module Gogol.Compute.Firewalls.Update
+  ( -- * Resource
+    ComputeFirewallsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeFirewallsUpdate (..),
+    newComputeFirewallsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.firewalls.update@ method which the
+-- 'ComputeFirewallsUpdate' request conforms to.
+type ComputeFirewallsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewalls"
+    Core.:> Core.Capture "firewall" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Firewall
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified firewall rule with the data included in the request. Note that all fields will be updated if using PUT, even fields that are not specified. To update individual fields, please use PATCH instead.
+--
+-- /See:/ 'newComputeFirewallsUpdate' smart constructor.
+data ComputeFirewallsUpdate = ComputeFirewallsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall rule to update.
+    firewall :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Firewall,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeFirewallsUpdate' with the minimum fields required to make a request.
+newComputeFirewallsUpdate ::
+  -- |  Name of the firewall rule to update. See 'firewall'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Firewall ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeFirewallsUpdate
+newComputeFirewallsUpdate firewall payload project =
+  ComputeFirewallsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewall = firewall,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeFirewallsUpdate where
+  type Rs ComputeFirewallsUpdate = Operation
+  type
+    Scopes ComputeFirewallsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeFirewallsUpdate {..} =
+    go
+      project
+      firewall
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeFirewallsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/AggregatedList.hs b/gen/Gogol/Compute/ForwardingRules/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.aggregatedList@.
+module Gogol.Compute.ForwardingRules.AggregatedList
+  ( -- * Resource
+    ComputeForwardingRulesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesAggregatedList (..),
+    newComputeForwardingRulesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.aggregatedList@ method which the
+-- 'ComputeForwardingRulesAggregatedList' request conforms to.
+type ComputeForwardingRulesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "forwardingRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ForwardingRuleAggregatedList
+
+-- | Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeForwardingRulesAggregatedList' smart constructor.
+data ComputeForwardingRulesAggregatedList = ComputeForwardingRulesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesAggregatedList' with the minimum fields required to make a request.
+newComputeForwardingRulesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeForwardingRulesAggregatedList
+newComputeForwardingRulesAggregatedList project =
+  ComputeForwardingRulesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesAggregatedList where
+  type
+    Rs ComputeForwardingRulesAggregatedList =
+      ForwardingRuleAggregatedList
+  type
+    Scopes ComputeForwardingRulesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeForwardingRulesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeForwardingRulesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/Delete.hs b/gen/Gogol/Compute/ForwardingRules/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified ForwardingRule resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.delete@.
+module Gogol.Compute.ForwardingRules.Delete
+  ( -- * Resource
+    ComputeForwardingRulesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesDelete (..),
+    newComputeForwardingRulesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.delete@ method which the
+-- 'ComputeForwardingRulesDelete' request conforms to.
+type ComputeForwardingRulesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified ForwardingRule resource.
+--
+-- /See:/ 'newComputeForwardingRulesDelete' smart constructor.
+data ComputeForwardingRulesDelete = ComputeForwardingRulesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to delete.
+    forwardingRule :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesDelete' with the minimum fields required to make a request.
+newComputeForwardingRulesDelete ::
+  -- |  Name of the ForwardingRule resource to delete. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesDelete
+newComputeForwardingRulesDelete forwardingRule project region =
+  ComputeForwardingRulesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forwardingRule = forwardingRule,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesDelete where
+  type Rs ComputeForwardingRulesDelete = Operation
+  type
+    Scopes ComputeForwardingRulesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeForwardingRulesDelete {..} =
+    go
+      project
+      region
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/Get.hs b/gen/Gogol/Compute/ForwardingRules/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified ForwardingRule resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.get@.
+module Gogol.Compute.ForwardingRules.Get
+  ( -- * Resource
+    ComputeForwardingRulesGetResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesGet (..),
+    newComputeForwardingRulesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.get@ method which the
+-- 'ComputeForwardingRulesGet' request conforms to.
+type ComputeForwardingRulesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ForwardingRule
+
+-- | Returns the specified ForwardingRule resource.
+--
+-- /See:/ 'newComputeForwardingRulesGet' smart constructor.
+data ComputeForwardingRulesGet = ComputeForwardingRulesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to return.
+    forwardingRule :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesGet' with the minimum fields required to make a request.
+newComputeForwardingRulesGet ::
+  -- |  Name of the ForwardingRule resource to return. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesGet
+newComputeForwardingRulesGet forwardingRule project region =
+  ComputeForwardingRulesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forwardingRule = forwardingRule,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesGet where
+  type Rs ComputeForwardingRulesGet = ForwardingRule
+  type
+    Scopes ComputeForwardingRulesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeForwardingRulesGet {..} =
+    go
+      project
+      region
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/Insert.hs b/gen/Gogol/Compute/ForwardingRules/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a ForwardingRule resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.insert@.
+module Gogol.Compute.ForwardingRules.Insert
+  ( -- * Resource
+    ComputeForwardingRulesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesInsert (..),
+    newComputeForwardingRulesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.insert@ method which the
+-- 'ComputeForwardingRulesInsert' request conforms to.
+type ComputeForwardingRulesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ForwardingRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a ForwardingRule resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeForwardingRulesInsert' smart constructor.
+data ComputeForwardingRulesInsert = ComputeForwardingRulesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ForwardingRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesInsert' with the minimum fields required to make a request.
+newComputeForwardingRulesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  ForwardingRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesInsert
+newComputeForwardingRulesInsert payload project region =
+  ComputeForwardingRulesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesInsert where
+  type Rs ComputeForwardingRulesInsert = Operation
+  type
+    Scopes ComputeForwardingRulesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeForwardingRulesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/List.hs b/gen/Gogol/Compute/ForwardingRules/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of ForwardingRule resources available to the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.list@.
+module Gogol.Compute.ForwardingRules.List
+  ( -- * Resource
+    ComputeForwardingRulesListResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesList (..),
+    newComputeForwardingRulesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.list@ method which the
+-- 'ComputeForwardingRulesList' request conforms to.
+type ComputeForwardingRulesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ForwardingRuleList
+
+-- | Retrieves a list of ForwardingRule resources available to the specified project and region.
+--
+-- /See:/ 'newComputeForwardingRulesList' smart constructor.
+data ComputeForwardingRulesList = ComputeForwardingRulesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesList' with the minimum fields required to make a request.
+newComputeForwardingRulesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesList
+newComputeForwardingRulesList project region =
+  ComputeForwardingRulesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesList where
+  type Rs ComputeForwardingRulesList = ForwardingRuleList
+  type
+    Scopes ComputeForwardingRulesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeForwardingRulesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/Patch.hs b/gen/Gogol/Compute/ForwardingRules/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/Patch.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.patch@.
+module Gogol.Compute.ForwardingRules.Patch
+  ( -- * Resource
+    ComputeForwardingRulesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesPatch (..),
+    newComputeForwardingRulesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.patch@ method which the
+-- 'ComputeForwardingRulesPatch' request conforms to.
+type ComputeForwardingRulesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ForwardingRule
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.
+--
+-- /See:/ 'newComputeForwardingRulesPatch' smart constructor.
+data ComputeForwardingRulesPatch = ComputeForwardingRulesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to patch.
+    forwardingRule :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ForwardingRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesPatch' with the minimum fields required to make a request.
+newComputeForwardingRulesPatch ::
+  -- |  Name of the ForwardingRule resource to patch. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ForwardingRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesPatch
+newComputeForwardingRulesPatch
+  forwardingRule
+  payload
+  project
+  region =
+    ComputeForwardingRulesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        forwardingRule = forwardingRule,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeForwardingRulesPatch where
+  type Rs ComputeForwardingRulesPatch = Operation
+  type
+    Scopes ComputeForwardingRulesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeForwardingRulesPatch {..} =
+    go
+      project
+      region
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/SetLabels.hs b/gen/Gogol/Compute/ForwardingRules/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.setLabels@.
+module Gogol.Compute.ForwardingRules.SetLabels
+  ( -- * Resource
+    ComputeForwardingRulesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesSetLabels (..),
+    newComputeForwardingRulesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.setLabels@ method which the
+-- 'ComputeForwardingRulesSetLabels' request conforms to.
+type ComputeForwardingRulesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeForwardingRulesSetLabels' smart constructor.
+data ComputeForwardingRulesSetLabels = ComputeForwardingRulesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesSetLabels' with the minimum fields required to make a request.
+newComputeForwardingRulesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeForwardingRulesSetLabels
+newComputeForwardingRulesSetLabels payload project region resource =
+  ComputeForwardingRulesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeForwardingRulesSetLabels where
+  type Rs ComputeForwardingRulesSetLabels = Operation
+  type
+    Scopes ComputeForwardingRulesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeForwardingRulesSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ForwardingRules/SetTarget.hs b/gen/Gogol/Compute/ForwardingRules/SetTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ForwardingRules/SetTarget.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ForwardingRules.SetTarget
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes target URL for forwarding rule. The new target should be of the same type as the old target.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.forwardingRules.setTarget@.
+module Gogol.Compute.ForwardingRules.SetTarget
+  ( -- * Resource
+    ComputeForwardingRulesSetTargetResource,
+
+    -- ** Constructing a Request
+    ComputeForwardingRulesSetTarget (..),
+    newComputeForwardingRulesSetTarget,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.forwardingRules.setTarget@ method which the
+-- 'ComputeForwardingRulesSetTarget' request conforms to.
+type ComputeForwardingRulesSetTargetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> "setTarget"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes target URL for forwarding rule. The new target should be of the same type as the old target.
+--
+-- /See:/ 'newComputeForwardingRulesSetTarget' smart constructor.
+data ComputeForwardingRulesSetTarget = ComputeForwardingRulesSetTarget
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource in which target is to be set.
+    forwardingRule :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: TargetReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeForwardingRulesSetTarget' with the minimum fields required to make a request.
+newComputeForwardingRulesSetTarget ::
+  -- |  Name of the ForwardingRule resource in which target is to be set. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  TargetReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeForwardingRulesSetTarget
+newComputeForwardingRulesSetTarget
+  forwardingRule
+  payload
+  project
+  region =
+    ComputeForwardingRulesSetTarget
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        forwardingRule = forwardingRule,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeForwardingRulesSetTarget where
+  type Rs ComputeForwardingRulesSetTarget = Operation
+  type
+    Scopes ComputeForwardingRulesSetTarget =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeForwardingRulesSetTarget {..} =
+    go
+      project
+      region
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeForwardingRulesSetTargetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/Delete.hs b/gen/Gogol/Compute/GlobalAddresses/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified address resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.delete@.
+module Gogol.Compute.GlobalAddresses.Delete
+  ( -- * Resource
+    ComputeGlobalAddressesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesDelete (..),
+    newComputeGlobalAddressesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.delete@ method which the
+-- 'ComputeGlobalAddressesDelete' request conforms to.
+type ComputeGlobalAddressesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified address resource.
+--
+-- /See:/ 'newComputeGlobalAddressesDelete' smart constructor.
+data ComputeGlobalAddressesDelete = ComputeGlobalAddressesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to delete.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesDelete' with the minimum fields required to make a request.
+newComputeGlobalAddressesDelete ::
+  -- |  Name of the address resource to delete. See 'address'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalAddressesDelete
+newComputeGlobalAddressesDelete address project =
+  ComputeGlobalAddressesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesDelete where
+  type Rs ComputeGlobalAddressesDelete = Operation
+  type
+    Scopes ComputeGlobalAddressesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalAddressesDelete {..} =
+    go
+      project
+      address
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/Get.hs b/gen/Gogol/Compute/GlobalAddresses/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified address resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.get@.
+module Gogol.Compute.GlobalAddresses.Get
+  ( -- * Resource
+    ComputeGlobalAddressesGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesGet (..),
+    newComputeGlobalAddressesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.get@ method which the
+-- 'ComputeGlobalAddressesGet' request conforms to.
+type ComputeGlobalAddressesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Address
+
+-- | Returns the specified address resource.
+--
+-- /See:/ 'newComputeGlobalAddressesGet' smart constructor.
+data ComputeGlobalAddressesGet = ComputeGlobalAddressesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to return.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesGet' with the minimum fields required to make a request.
+newComputeGlobalAddressesGet ::
+  -- |  Name of the address resource to return. See 'address'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalAddressesGet
+newComputeGlobalAddressesGet address project =
+  ComputeGlobalAddressesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesGet where
+  type Rs ComputeGlobalAddressesGet = Address
+  type
+    Scopes ComputeGlobalAddressesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalAddressesGet {..} =
+    go
+      project
+      address
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/Insert.hs b/gen/Gogol/Compute/GlobalAddresses/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an address resource in the specified project by using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.insert@.
+module Gogol.Compute.GlobalAddresses.Insert
+  ( -- * Resource
+    ComputeGlobalAddressesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesInsert (..),
+    newComputeGlobalAddressesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.insert@ method which the
+-- 'ComputeGlobalAddressesInsert' request conforms to.
+type ComputeGlobalAddressesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Address
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an address resource in the specified project by using the data included in the request.
+--
+-- /See:/ 'newComputeGlobalAddressesInsert' smart constructor.
+data ComputeGlobalAddressesInsert = ComputeGlobalAddressesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Address,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesInsert' with the minimum fields required to make a request.
+newComputeGlobalAddressesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Address ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalAddressesInsert
+newComputeGlobalAddressesInsert payload project =
+  ComputeGlobalAddressesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesInsert where
+  type Rs ComputeGlobalAddressesInsert = Operation
+  type
+    Scopes ComputeGlobalAddressesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalAddressesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/List.hs b/gen/Gogol/Compute/GlobalAddresses/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of global addresses.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.list@.
+module Gogol.Compute.GlobalAddresses.List
+  ( -- * Resource
+    ComputeGlobalAddressesListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesList (..),
+    newComputeGlobalAddressesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.list@ method which the
+-- 'ComputeGlobalAddressesList' request conforms to.
+type ComputeGlobalAddressesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] AddressList
+
+-- | Retrieves a list of global addresses.
+--
+-- /See:/ 'newComputeGlobalAddressesList' smart constructor.
+data ComputeGlobalAddressesList = ComputeGlobalAddressesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesList' with the minimum fields required to make a request.
+newComputeGlobalAddressesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalAddressesList
+newComputeGlobalAddressesList project =
+  ComputeGlobalAddressesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesList where
+  type Rs ComputeGlobalAddressesList = AddressList
+  type
+    Scopes ComputeGlobalAddressesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalAddressesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/Move.hs b/gen/Gogol/Compute/GlobalAddresses/Move.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/Move.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.Move
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves the specified address resource from one project to another project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.move@.
+module Gogol.Compute.GlobalAddresses.Move
+  ( -- * Resource
+    ComputeGlobalAddressesMoveResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesMove (..),
+    newComputeGlobalAddressesMove,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.move@ method which the
+-- 'ComputeGlobalAddressesMove' request conforms to.
+type ComputeGlobalAddressesMoveResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.Capture "address" Core.Text
+    Core.:> "move"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalAddressesMoveRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Moves the specified address resource from one project to another project.
+--
+-- /See:/ 'newComputeGlobalAddressesMove' smart constructor.
+data ComputeGlobalAddressesMove = ComputeGlobalAddressesMove
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the address resource to move.
+    address :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalAddressesMoveRequest,
+    -- | Source project ID which the Address is moved from.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesMove' with the minimum fields required to make a request.
+newComputeGlobalAddressesMove ::
+  -- |  Name of the address resource to move. See 'address'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalAddressesMoveRequest ->
+  -- |  Source project ID which the Address is moved from. See 'project'.
+  Core.Text ->
+  ComputeGlobalAddressesMove
+newComputeGlobalAddressesMove address payload project =
+  ComputeGlobalAddressesMove
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      address = address,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesMove where
+  type Rs ComputeGlobalAddressesMove = Operation
+  type
+    Scopes ComputeGlobalAddressesMove =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalAddressesMove {..} =
+    go
+      project
+      address
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesMoveResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalAddresses/SetLabels.hs b/gen/Gogol/Compute/GlobalAddresses/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalAddresses/SetLabels.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalAddresses.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalAddresses.setLabels@.
+module Gogol.Compute.GlobalAddresses.SetLabels
+  ( -- * Resource
+    ComputeGlobalAddressesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalAddressesSetLabels (..),
+    newComputeGlobalAddressesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalAddresses.setLabels@ method which the
+-- 'ComputeGlobalAddressesSetLabels' request conforms to.
+type ComputeGlobalAddressesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "addresses"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeGlobalAddressesSetLabels' smart constructor.
+data ComputeGlobalAddressesSetLabels = ComputeGlobalAddressesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalAddressesSetLabels' with the minimum fields required to make a request.
+newComputeGlobalAddressesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeGlobalAddressesSetLabels
+newComputeGlobalAddressesSetLabels payload project resource =
+  ComputeGlobalAddressesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalAddressesSetLabels where
+  type Rs ComputeGlobalAddressesSetLabels = Operation
+  type
+    Scopes ComputeGlobalAddressesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalAddressesSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalAddressesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/Delete.hs b/gen/Gogol/Compute/GlobalForwardingRules/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/Delete.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified GlobalForwardingRule resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.delete@.
+module Gogol.Compute.GlobalForwardingRules.Delete
+  ( -- * Resource
+    ComputeGlobalForwardingRulesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesDelete (..),
+    newComputeGlobalForwardingRulesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.delete@ method which the
+-- 'ComputeGlobalForwardingRulesDelete' request conforms to.
+type ComputeGlobalForwardingRulesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified GlobalForwardingRule resource.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesDelete' smart constructor.
+data ComputeGlobalForwardingRulesDelete = ComputeGlobalForwardingRulesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to delete.
+    forwardingRule :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesDelete' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesDelete ::
+  -- |  Name of the ForwardingRule resource to delete. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesDelete
+newComputeGlobalForwardingRulesDelete forwardingRule project =
+  ComputeGlobalForwardingRulesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forwardingRule = forwardingRule,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesDelete where
+  type Rs ComputeGlobalForwardingRulesDelete = Operation
+  type
+    Scopes ComputeGlobalForwardingRulesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalForwardingRulesDelete {..} =
+    go
+      project
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalForwardingRulesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/Get.hs b/gen/Gogol/Compute/GlobalForwardingRules/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.get@.
+module Gogol.Compute.GlobalForwardingRules.Get
+  ( -- * Resource
+    ComputeGlobalForwardingRulesGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesGet (..),
+    newComputeGlobalForwardingRulesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.get@ method which the
+-- 'ComputeGlobalForwardingRulesGet' request conforms to.
+type ComputeGlobalForwardingRulesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ForwardingRule
+
+-- | Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesGet' smart constructor.
+data ComputeGlobalForwardingRulesGet = ComputeGlobalForwardingRulesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to return.
+    forwardingRule :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesGet' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesGet ::
+  -- |  Name of the ForwardingRule resource to return. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesGet
+newComputeGlobalForwardingRulesGet forwardingRule project =
+  ComputeGlobalForwardingRulesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forwardingRule = forwardingRule,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesGet where
+  type Rs ComputeGlobalForwardingRulesGet = ForwardingRule
+  type
+    Scopes ComputeGlobalForwardingRulesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalForwardingRulesGet {..} =
+    go
+      project
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalForwardingRulesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/Insert.hs b/gen/Gogol/Compute/GlobalForwardingRules/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/Insert.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.insert@.
+module Gogol.Compute.GlobalForwardingRules.Insert
+  ( -- * Resource
+    ComputeGlobalForwardingRulesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesInsert (..),
+    newComputeGlobalForwardingRulesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.insert@ method which the
+-- 'ComputeGlobalForwardingRulesInsert' request conforms to.
+type ComputeGlobalForwardingRulesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ForwardingRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a GlobalForwardingRule resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesInsert' smart constructor.
+data ComputeGlobalForwardingRulesInsert = ComputeGlobalForwardingRulesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ForwardingRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesInsert' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  ForwardingRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesInsert
+newComputeGlobalForwardingRulesInsert payload project =
+  ComputeGlobalForwardingRulesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesInsert where
+  type Rs ComputeGlobalForwardingRulesInsert = Operation
+  type
+    Scopes ComputeGlobalForwardingRulesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalForwardingRulesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalForwardingRulesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/List.hs b/gen/Gogol/Compute/GlobalForwardingRules/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of GlobalForwardingRule resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.list@.
+module Gogol.Compute.GlobalForwardingRules.List
+  ( -- * Resource
+    ComputeGlobalForwardingRulesListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesList (..),
+    newComputeGlobalForwardingRulesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.list@ method which the
+-- 'ComputeGlobalForwardingRulesList' request conforms to.
+type ComputeGlobalForwardingRulesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ForwardingRuleList
+
+-- | Retrieves a list of GlobalForwardingRule resources available to the specified project.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesList' smart constructor.
+data ComputeGlobalForwardingRulesList = ComputeGlobalForwardingRulesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesList' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesList
+newComputeGlobalForwardingRulesList project =
+  ComputeGlobalForwardingRulesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesList where
+  type Rs ComputeGlobalForwardingRulesList = ForwardingRuleList
+  type
+    Scopes ComputeGlobalForwardingRulesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalForwardingRulesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalForwardingRulesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/Patch.hs b/gen/Gogol/Compute/GlobalForwardingRules/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/Patch.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.patch@.
+module Gogol.Compute.GlobalForwardingRules.Patch
+  ( -- * Resource
+    ComputeGlobalForwardingRulesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesPatch (..),
+    newComputeGlobalForwardingRulesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.patch@ method which the
+-- 'ComputeGlobalForwardingRulesPatch' request conforms to.
+type ComputeGlobalForwardingRulesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ForwardingRule
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified forwarding rule with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. Currently, you can only patch the network_tier field.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesPatch' smart constructor.
+data ComputeGlobalForwardingRulesPatch = ComputeGlobalForwardingRulesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource to patch.
+    forwardingRule :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ForwardingRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesPatch' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesPatch ::
+  -- |  Name of the ForwardingRule resource to patch. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ForwardingRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesPatch
+newComputeGlobalForwardingRulesPatch forwardingRule payload project =
+  ComputeGlobalForwardingRulesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forwardingRule = forwardingRule,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesPatch where
+  type Rs ComputeGlobalForwardingRulesPatch = Operation
+  type
+    Scopes ComputeGlobalForwardingRulesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalForwardingRulesPatch {..} =
+    go
+      project
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalForwardingRulesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/SetLabels.hs b/gen/Gogol/Compute/GlobalForwardingRules/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/SetLabels.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.setLabels@.
+module Gogol.Compute.GlobalForwardingRules.SetLabels
+  ( -- * Resource
+    ComputeGlobalForwardingRulesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesSetLabels (..),
+    newComputeGlobalForwardingRulesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.setLabels@ method which the
+-- 'ComputeGlobalForwardingRulesSetLabels' request conforms to.
+type ComputeGlobalForwardingRulesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on the specified resource. To learn more about labels, read the Labeling resources documentation.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesSetLabels' smart constructor.
+data ComputeGlobalForwardingRulesSetLabels = ComputeGlobalForwardingRulesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesSetLabels' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesSetLabels
+newComputeGlobalForwardingRulesSetLabels payload project resource =
+  ComputeGlobalForwardingRulesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesSetLabels where
+  type Rs ComputeGlobalForwardingRulesSetLabels = Operation
+  type
+    Scopes ComputeGlobalForwardingRulesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalForwardingRulesSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalForwardingRulesSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalForwardingRules/SetTarget.hs b/gen/Gogol/Compute/GlobalForwardingRules/SetTarget.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalForwardingRules/SetTarget.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalForwardingRules.SetTarget
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalForwardingRules.setTarget@.
+module Gogol.Compute.GlobalForwardingRules.SetTarget
+  ( -- * Resource
+    ComputeGlobalForwardingRulesSetTargetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalForwardingRulesSetTarget (..),
+    newComputeGlobalForwardingRulesSetTarget,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalForwardingRules.setTarget@ method which the
+-- 'ComputeGlobalForwardingRulesSetTarget' request conforms to.
+type ComputeGlobalForwardingRulesSetTargetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "forwardingRules"
+    Core.:> Core.Capture "forwardingRule" Core.Text
+    Core.:> "setTarget"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.
+--
+-- /See:/ 'newComputeGlobalForwardingRulesSetTarget' smart constructor.
+data ComputeGlobalForwardingRulesSetTarget = ComputeGlobalForwardingRulesSetTarget
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the ForwardingRule resource in which target is to be set.
+    forwardingRule :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: TargetReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalForwardingRulesSetTarget' with the minimum fields required to make a request.
+newComputeGlobalForwardingRulesSetTarget ::
+  -- |  Name of the ForwardingRule resource in which target is to be set. See 'forwardingRule'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  TargetReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalForwardingRulesSetTarget
+newComputeGlobalForwardingRulesSetTarget
+  forwardingRule
+  payload
+  project =
+    ComputeGlobalForwardingRulesSetTarget
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        forwardingRule = forwardingRule,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeGlobalForwardingRulesSetTarget where
+  type Rs ComputeGlobalForwardingRulesSetTarget = Operation
+  type
+    Scopes ComputeGlobalForwardingRulesSetTarget =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalForwardingRulesSetTarget {..} =
+    go
+      project
+      forwardingRule
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalForwardingRulesSetTargetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/AttachNetworkEndpoints.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/AttachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/AttachNetworkEndpoints.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.AttachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attach a network endpoint to the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.attachNetworkEndpoints@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.AttachNetworkEndpoints
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.attachNetworkEndpoints@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "attachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              GlobalNetworkEndpointGroupsAttachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Attach a network endpoint to the specified network endpoint group.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints = ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: GlobalNetworkEndpointGroupsAttachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints ::
+  -- |  The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalNetworkEndpointGroupsAttachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints
+newComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project =
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints
+  where
+  type
+    Rs ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints =
+      Operation
+  type
+    Scopes
+      ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpoints {..} =
+      go
+        project
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeGlobalNetworkEndpointGroupsAttachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Delete.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.delete@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.Delete
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsDelete (..),
+    newComputeGlobalNetworkEndpointGroupsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.delete@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsDelete' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsDelete' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsDelete = ComputeGlobalNetworkEndpointGroupsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group to delete. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsDelete' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsDelete ::
+  -- |  The name of the network endpoint group to delete. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsDelete
+newComputeGlobalNetworkEndpointGroupsDelete
+  networkEndpointGroup
+  project =
+    ComputeGlobalNetworkEndpointGroupsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalNetworkEndpointGroupsDelete
+  where
+  type Rs ComputeGlobalNetworkEndpointGroupsDelete = Operation
+  type
+    Scopes ComputeGlobalNetworkEndpointGroupsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalNetworkEndpointGroupsDelete {..} =
+    go
+      project
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalNetworkEndpointGroupsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/DetachNetworkEndpoints.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/DetachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/DetachNetworkEndpoints.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.DetachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detach the network endpoint from the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.detachNetworkEndpoints@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.DetachNetworkEndpoints
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.detachNetworkEndpoints@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "detachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              GlobalNetworkEndpointGroupsDetachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Detach the network endpoint from the specified network endpoint group.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints = ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: GlobalNetworkEndpointGroupsDetachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints ::
+  -- |  The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalNetworkEndpointGroupsDetachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints
+newComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project =
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints
+  where
+  type
+    Rs ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints =
+      Operation
+  type
+    Scopes
+      ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpoints {..} =
+      go
+        project
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeGlobalNetworkEndpointGroupsDetachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Get.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Get.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.get@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.Get
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsGet (..),
+    newComputeGlobalNetworkEndpointGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.get@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsGet' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroup
+
+-- | Returns the specified network endpoint group.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsGet' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsGet = ComputeGlobalNetworkEndpointGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsGet' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsGet ::
+  -- |  The name of the network endpoint group. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsGet
+newComputeGlobalNetworkEndpointGroupsGet
+  networkEndpointGroup
+  project =
+    ComputeGlobalNetworkEndpointGroupsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeGlobalNetworkEndpointGroupsGet where
+  type
+    Rs ComputeGlobalNetworkEndpointGroupsGet =
+      NetworkEndpointGroup
+  type
+    Scopes ComputeGlobalNetworkEndpointGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalNetworkEndpointGroupsGet {..} =
+    go
+      project
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalNetworkEndpointGroupsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Insert.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/Insert.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.insert@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.Insert
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsInsert (..),
+    newComputeGlobalNetworkEndpointGroupsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.insert@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsInsert' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkEndpointGroup
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsInsert' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsInsert = ComputeGlobalNetworkEndpointGroupsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsInsert' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsInsert
+newComputeGlobalNetworkEndpointGroupsInsert payload project =
+  ComputeGlobalNetworkEndpointGroupsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalNetworkEndpointGroupsInsert
+  where
+  type Rs ComputeGlobalNetworkEndpointGroupsInsert = Operation
+  type
+    Scopes ComputeGlobalNetworkEndpointGroupsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalNetworkEndpointGroupsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalNetworkEndpointGroupsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/List.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/List.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of network endpoint groups that are located in the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.list@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.List
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsList (..),
+    newComputeGlobalNetworkEndpointGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.list@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsList' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroupList
+
+-- | Retrieves the list of network endpoint groups that are located in the specified project.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsList' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsList = ComputeGlobalNetworkEndpointGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsList' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsList
+newComputeGlobalNetworkEndpointGroupsList project =
+  ComputeGlobalNetworkEndpointGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalNetworkEndpointGroupsList where
+  type
+    Rs ComputeGlobalNetworkEndpointGroupsList =
+      NetworkEndpointGroupList
+  type
+    Scopes ComputeGlobalNetworkEndpointGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalNetworkEndpointGroupsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalNetworkEndpointGroupsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalNetworkEndpointGroups/ListNetworkEndpoints.hs b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/ListNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalNetworkEndpointGroups/ListNetworkEndpoints.hs
@@ -0,0 +1,163 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalNetworkEndpointGroups.ListNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalNetworkEndpointGroups.listNetworkEndpoints@.
+module Gogol.Compute.GlobalNetworkEndpointGroups.ListNetworkEndpoints
+  ( -- * Resource
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeGlobalNetworkEndpointGroupsListNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalNetworkEndpointGroups.listNetworkEndpoints@ method which the
+-- 'ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints' request conforms to.
+type ComputeGlobalNetworkEndpointGroupsListNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "listNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              NetworkEndpointGroupsListNetworkEndpoints
+
+-- | Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ 'newComputeGlobalNetworkEndpointGroupsListNetworkEndpoints' smart constructor.
+data ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints = ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints' with the minimum fields required to make a request.
+newComputeGlobalNetworkEndpointGroupsListNetworkEndpoints ::
+  -- |  The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints
+newComputeGlobalNetworkEndpointGroupsListNetworkEndpoints
+  networkEndpointGroup
+  project =
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        maxResults = 500,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints
+  where
+  type
+    Rs ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints =
+      NetworkEndpointGroupsListNetworkEndpoints
+  type
+    Scopes ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeGlobalNetworkEndpointGroupsListNetworkEndpoints {..} =
+      go
+        project
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeGlobalNetworkEndpointGroupsListNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOperations/AggregatedList.hs b/gen/Gogol/Compute/GlobalOperations/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOperations/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOperations.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOperations.aggregatedList@.
+module Gogol.Compute.GlobalOperations.AggregatedList
+  ( -- * Resource
+    ComputeGlobalOperationsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOperationsAggregatedList (..),
+    newComputeGlobalOperationsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOperations.aggregatedList@ method which the
+-- 'ComputeGlobalOperationsAggregatedList' request conforms to.
+type ComputeGlobalOperationsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "operations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] OperationAggregatedList
+
+-- | Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeGlobalOperationsAggregatedList' smart constructor.
+data ComputeGlobalOperationsAggregatedList = ComputeGlobalOperationsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOperationsAggregatedList' with the minimum fields required to make a request.
+newComputeGlobalOperationsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalOperationsAggregatedList
+newComputeGlobalOperationsAggregatedList project =
+  ComputeGlobalOperationsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOperationsAggregatedList where
+  type
+    Rs ComputeGlobalOperationsAggregatedList =
+      OperationAggregatedList
+  type
+    Scopes ComputeGlobalOperationsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOperationsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalOperationsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOperations/Delete.hs b/gen/Gogol/Compute/GlobalOperations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOperations/Delete.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOperations.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOperations.delete@.
+module Gogol.Compute.GlobalOperations.Delete
+  ( -- * Resource
+    ComputeGlobalOperationsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOperationsDelete (..),
+    newComputeGlobalOperationsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOperations.delete@ method which the
+-- 'ComputeGlobalOperationsDelete' request conforms to.
+type ComputeGlobalOperationsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes the specified Operations resource.
+--
+-- /See:/ 'newComputeGlobalOperationsDelete' smart constructor.
+data ComputeGlobalOperationsDelete = ComputeGlobalOperationsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to delete, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOperationsDelete' with the minimum fields required to make a request.
+newComputeGlobalOperationsDelete ::
+  -- |  Name of the Operations resource to delete, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalOperationsDelete
+newComputeGlobalOperationsDelete operation project =
+  ComputeGlobalOperationsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOperationsDelete where
+  type Rs ComputeGlobalOperationsDelete = ()
+  type
+    Scopes ComputeGlobalOperationsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalOperationsDelete {..} =
+    go
+      project
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalOperationsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOperations/Get.hs b/gen/Gogol/Compute/GlobalOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOperations/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOperations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the specified Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOperations.get@.
+module Gogol.Compute.GlobalOperations.Get
+  ( -- * Resource
+    ComputeGlobalOperationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOperationsGet (..),
+    newComputeGlobalOperationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOperations.get@ method which the
+-- 'ComputeGlobalOperationsGet' request conforms to.
+type ComputeGlobalOperationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Operation
+
+-- | Retrieves the specified Operations resource.
+--
+-- /See:/ 'newComputeGlobalOperationsGet' smart constructor.
+data ComputeGlobalOperationsGet = ComputeGlobalOperationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOperationsGet' with the minimum fields required to make a request.
+newComputeGlobalOperationsGet ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalOperationsGet
+newComputeGlobalOperationsGet operation project =
+  ComputeGlobalOperationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOperationsGet where
+  type Rs ComputeGlobalOperationsGet = Operation
+  type
+    Scopes ComputeGlobalOperationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOperationsGet {..} =
+    go
+      project
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalOperationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOperations/List.hs b/gen/Gogol/Compute/GlobalOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOperations/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOperations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of Operation resources contained within the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOperations.list@.
+module Gogol.Compute.GlobalOperations.List
+  ( -- * Resource
+    ComputeGlobalOperationsListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOperationsList (..),
+    newComputeGlobalOperationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOperations.list@ method which the
+-- 'ComputeGlobalOperationsList' request conforms to.
+type ComputeGlobalOperationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] OperationList
+
+-- | Retrieves a list of Operation resources contained within the specified project.
+--
+-- /See:/ 'newComputeGlobalOperationsList' smart constructor.
+data ComputeGlobalOperationsList = ComputeGlobalOperationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOperationsList' with the minimum fields required to make a request.
+newComputeGlobalOperationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalOperationsList
+newComputeGlobalOperationsList project =
+  ComputeGlobalOperationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOperationsList where
+  type Rs ComputeGlobalOperationsList = OperationList
+  type
+    Scopes ComputeGlobalOperationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOperationsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalOperationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOperations/Wait.hs b/gen/Gogol/Compute/GlobalOperations/Wait.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOperations/Wait.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOperations.Wait
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the @GET@ method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOperations.wait@.
+module Gogol.Compute.GlobalOperations.Wait
+  ( -- * Resource
+    ComputeGlobalOperationsWaitResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOperationsWait (..),
+    newComputeGlobalOperationsWait,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOperations.wait@ method which the
+-- 'ComputeGlobalOperationsWait' request conforms to.
+type ComputeGlobalOperationsWaitResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> "wait"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the @GET@ method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ 'newComputeGlobalOperationsWait' smart constructor.
+data ComputeGlobalOperationsWait = ComputeGlobalOperationsWait
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOperationsWait' with the minimum fields required to make a request.
+newComputeGlobalOperationsWait ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalOperationsWait
+newComputeGlobalOperationsWait operation project =
+  ComputeGlobalOperationsWait
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOperationsWait where
+  type Rs ComputeGlobalOperationsWait = Operation
+  type
+    Scopes ComputeGlobalOperationsWait =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOperationsWait {..} =
+    go
+      project
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeGlobalOperationsWaitResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOrganizationOperations/Delete.hs b/gen/Gogol/Compute/GlobalOrganizationOperations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOrganizationOperations/Delete.hs
@@ -0,0 +1,123 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOrganizationOperations.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOrganizationOperations.delete@.
+module Gogol.Compute.GlobalOrganizationOperations.Delete
+  ( -- * Resource
+    ComputeGlobalOrganizationOperationsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOrganizationOperationsDelete (..),
+    newComputeGlobalOrganizationOperationsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOrganizationOperations.delete@ method which the
+-- 'ComputeGlobalOrganizationOperationsDelete' request conforms to.
+type ComputeGlobalOrganizationOperationsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes the specified Operations resource.
+--
+-- /See:/ 'newComputeGlobalOrganizationOperationsDelete' smart constructor.
+data ComputeGlobalOrganizationOperationsDelete = ComputeGlobalOrganizationOperationsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to delete, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Parent ID for this request.
+    parentId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOrganizationOperationsDelete' with the minimum fields required to make a request.
+newComputeGlobalOrganizationOperationsDelete ::
+  -- |  Name of the Operations resource to delete, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  ComputeGlobalOrganizationOperationsDelete
+newComputeGlobalOrganizationOperationsDelete operation =
+  ComputeGlobalOrganizationOperationsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      parentId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalOrganizationOperationsDelete
+  where
+  type Rs ComputeGlobalOrganizationOperationsDelete = ()
+  type
+    Scopes ComputeGlobalOrganizationOperationsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalOrganizationOperationsDelete {..} =
+    go
+      operation
+      xgafv
+      accessToken
+      callback
+      parentId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalOrganizationOperationsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOrganizationOperations/Get.hs b/gen/Gogol/Compute/GlobalOrganizationOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOrganizationOperations/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOrganizationOperations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the specified Operations resource. Gets a list of operations by making a @list()@ request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOrganizationOperations.get@.
+module Gogol.Compute.GlobalOrganizationOperations.Get
+  ( -- * Resource
+    ComputeGlobalOrganizationOperationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOrganizationOperationsGet (..),
+    newComputeGlobalOrganizationOperationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOrganizationOperations.get@ method which the
+-- 'ComputeGlobalOrganizationOperationsGet' request conforms to.
+type ComputeGlobalOrganizationOperationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Operation
+
+-- | Retrieves the specified Operations resource. Gets a list of operations by making a @list()@ request.
+--
+-- /See:/ 'newComputeGlobalOrganizationOperationsGet' smart constructor.
+data ComputeGlobalOrganizationOperationsGet = ComputeGlobalOrganizationOperationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Parent ID for this request.
+    parentId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOrganizationOperationsGet' with the minimum fields required to make a request.
+newComputeGlobalOrganizationOperationsGet ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  ComputeGlobalOrganizationOperationsGet
+newComputeGlobalOrganizationOperationsGet operation =
+  ComputeGlobalOrganizationOperationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      parentId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOrganizationOperationsGet where
+  type Rs ComputeGlobalOrganizationOperationsGet = Operation
+  type
+    Scopes ComputeGlobalOrganizationOperationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOrganizationOperationsGet {..} =
+    go
+      operation
+      xgafv
+      accessToken
+      callback
+      parentId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalOrganizationOperationsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalOrganizationOperations/List.hs b/gen/Gogol/Compute/GlobalOrganizationOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalOrganizationOperations/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalOrganizationOperations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of Operation resources contained within the specified organization.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalOrganizationOperations.list@.
+module Gogol.Compute.GlobalOrganizationOperations.List
+  ( -- * Resource
+    ComputeGlobalOrganizationOperationsListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalOrganizationOperationsList (..),
+    newComputeGlobalOrganizationOperationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalOrganizationOperations.list@ method which the
+-- 'ComputeGlobalOrganizationOperationsList' request conforms to.
+type ComputeGlobalOrganizationOperationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "locations"
+    Core.:> "global"
+    Core.:> "operations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "parentId" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] OperationList
+
+-- | Retrieves a list of Operation resources contained within the specified organization.
+--
+-- /See:/ 'newComputeGlobalOrganizationOperationsList' smart constructor.
+data ComputeGlobalOrganizationOperationsList = ComputeGlobalOrganizationOperationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Parent ID for this request.
+    parentId :: (Core.Maybe Core.Text),
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalOrganizationOperationsList' with the minimum fields required to make a request.
+newComputeGlobalOrganizationOperationsList ::
+  ComputeGlobalOrganizationOperationsList
+newComputeGlobalOrganizationOperationsList =
+  ComputeGlobalOrganizationOperationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      parentId = Core.Nothing,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeGlobalOrganizationOperationsList where
+  type Rs ComputeGlobalOrganizationOperationsList = OperationList
+  type
+    Scopes ComputeGlobalOrganizationOperationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalOrganizationOperationsList {..} =
+    go
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      parentId
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalOrganizationOperationsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Delete.hs b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalPublicDelegatedPrefixes.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified global PublicDelegatedPrefix.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalPublicDelegatedPrefixes.delete@.
+module Gogol.Compute.GlobalPublicDelegatedPrefixes.Delete
+  ( -- * Resource
+    ComputeGlobalPublicDelegatedPrefixesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalPublicDelegatedPrefixesDelete (..),
+    newComputeGlobalPublicDelegatedPrefixesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalPublicDelegatedPrefixes.delete@ method which the
+-- 'ComputeGlobalPublicDelegatedPrefixesDelete' request conforms to.
+type ComputeGlobalPublicDelegatedPrefixesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified global PublicDelegatedPrefix.
+--
+-- /See:/ 'newComputeGlobalPublicDelegatedPrefixesDelete' smart constructor.
+data ComputeGlobalPublicDelegatedPrefixesDelete = ComputeGlobalPublicDelegatedPrefixesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to delete.
+    publicDelegatedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalPublicDelegatedPrefixesDelete' with the minimum fields required to make a request.
+newComputeGlobalPublicDelegatedPrefixesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to delete. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  ComputeGlobalPublicDelegatedPrefixesDelete
+newComputeGlobalPublicDelegatedPrefixesDelete
+  project
+  publicDelegatedPrefix =
+    ComputeGlobalPublicDelegatedPrefixesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalPublicDelegatedPrefixesDelete
+  where
+  type Rs ComputeGlobalPublicDelegatedPrefixesDelete = Operation
+  type
+    Scopes ComputeGlobalPublicDelegatedPrefixesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalPublicDelegatedPrefixesDelete {..} =
+    go
+      project
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalPublicDelegatedPrefixesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Get.hs b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Get.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalPublicDelegatedPrefixes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified global PublicDelegatedPrefix resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalPublicDelegatedPrefixes.get@.
+module Gogol.Compute.GlobalPublicDelegatedPrefixes.Get
+  ( -- * Resource
+    ComputeGlobalPublicDelegatedPrefixesGetResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalPublicDelegatedPrefixesGet (..),
+    newComputeGlobalPublicDelegatedPrefixesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalPublicDelegatedPrefixes.get@ method which the
+-- 'ComputeGlobalPublicDelegatedPrefixesGet' request conforms to.
+type ComputeGlobalPublicDelegatedPrefixesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicDelegatedPrefix
+
+-- | Returns the specified global PublicDelegatedPrefix resource.
+--
+-- /See:/ 'newComputeGlobalPublicDelegatedPrefixesGet' smart constructor.
+data ComputeGlobalPublicDelegatedPrefixesGet = ComputeGlobalPublicDelegatedPrefixesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to return.
+    publicDelegatedPrefix :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalPublicDelegatedPrefixesGet' with the minimum fields required to make a request.
+newComputeGlobalPublicDelegatedPrefixesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to return. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  ComputeGlobalPublicDelegatedPrefixesGet
+newComputeGlobalPublicDelegatedPrefixesGet
+  project
+  publicDelegatedPrefix =
+    ComputeGlobalPublicDelegatedPrefixesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeGlobalPublicDelegatedPrefixesGet where
+  type
+    Rs ComputeGlobalPublicDelegatedPrefixesGet =
+      PublicDelegatedPrefix
+  type
+    Scopes ComputeGlobalPublicDelegatedPrefixesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalPublicDelegatedPrefixesGet {..} =
+    go
+      project
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalPublicDelegatedPrefixesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Insert.hs b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Insert.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalPublicDelegatedPrefixes.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalPublicDelegatedPrefixes.insert@.
+module Gogol.Compute.GlobalPublicDelegatedPrefixes.Insert
+  ( -- * Resource
+    ComputeGlobalPublicDelegatedPrefixesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalPublicDelegatedPrefixesInsert (..),
+    newComputeGlobalPublicDelegatedPrefixesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalPublicDelegatedPrefixes.insert@ method which the
+-- 'ComputeGlobalPublicDelegatedPrefixesInsert' request conforms to.
+type ComputeGlobalPublicDelegatedPrefixesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicDelegatedPrefix
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeGlobalPublicDelegatedPrefixesInsert' smart constructor.
+data ComputeGlobalPublicDelegatedPrefixesInsert = ComputeGlobalPublicDelegatedPrefixesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicDelegatedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalPublicDelegatedPrefixesInsert' with the minimum fields required to make a request.
+newComputeGlobalPublicDelegatedPrefixesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicDelegatedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalPublicDelegatedPrefixesInsert
+newComputeGlobalPublicDelegatedPrefixesInsert payload project =
+  ComputeGlobalPublicDelegatedPrefixesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalPublicDelegatedPrefixesInsert
+  where
+  type Rs ComputeGlobalPublicDelegatedPrefixesInsert = Operation
+  type
+    Scopes ComputeGlobalPublicDelegatedPrefixesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalPublicDelegatedPrefixesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalPublicDelegatedPrefixesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/List.hs b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalPublicDelegatedPrefixes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the global PublicDelegatedPrefixes for a project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalPublicDelegatedPrefixes.list@.
+module Gogol.Compute.GlobalPublicDelegatedPrefixes.List
+  ( -- * Resource
+    ComputeGlobalPublicDelegatedPrefixesListResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalPublicDelegatedPrefixesList (..),
+    newComputeGlobalPublicDelegatedPrefixesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalPublicDelegatedPrefixes.list@ method which the
+-- 'ComputeGlobalPublicDelegatedPrefixesList' request conforms to.
+type ComputeGlobalPublicDelegatedPrefixesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicDelegatedPrefixList
+
+-- | Lists the global PublicDelegatedPrefixes for a project.
+--
+-- /See:/ 'newComputeGlobalPublicDelegatedPrefixesList' smart constructor.
+data ComputeGlobalPublicDelegatedPrefixesList = ComputeGlobalPublicDelegatedPrefixesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalPublicDelegatedPrefixesList' with the minimum fields required to make a request.
+newComputeGlobalPublicDelegatedPrefixesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeGlobalPublicDelegatedPrefixesList
+newComputeGlobalPublicDelegatedPrefixesList project =
+  ComputeGlobalPublicDelegatedPrefixesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalPublicDelegatedPrefixesList
+  where
+  type
+    Rs ComputeGlobalPublicDelegatedPrefixesList =
+      PublicDelegatedPrefixList
+  type
+    Scopes ComputeGlobalPublicDelegatedPrefixesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeGlobalPublicDelegatedPrefixesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalPublicDelegatedPrefixesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Patch.hs b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/GlobalPublicDelegatedPrefixes/Patch.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.GlobalPublicDelegatedPrefixes.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.globalPublicDelegatedPrefixes.patch@.
+module Gogol.Compute.GlobalPublicDelegatedPrefixes.Patch
+  ( -- * Resource
+    ComputeGlobalPublicDelegatedPrefixesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeGlobalPublicDelegatedPrefixesPatch (..),
+    newComputeGlobalPublicDelegatedPrefixesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.globalPublicDelegatedPrefixes.patch@ method which the
+-- 'ComputeGlobalPublicDelegatedPrefixesPatch' request conforms to.
+type ComputeGlobalPublicDelegatedPrefixesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicDelegatedPrefix
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified global PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeGlobalPublicDelegatedPrefixesPatch' smart constructor.
+data ComputeGlobalPublicDelegatedPrefixesPatch = ComputeGlobalPublicDelegatedPrefixesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicDelegatedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to patch.
+    publicDelegatedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeGlobalPublicDelegatedPrefixesPatch' with the minimum fields required to make a request.
+newComputeGlobalPublicDelegatedPrefixesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicDelegatedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to patch. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  ComputeGlobalPublicDelegatedPrefixesPatch
+newComputeGlobalPublicDelegatedPrefixesPatch
+  payload
+  project
+  publicDelegatedPrefix =
+    ComputeGlobalPublicDelegatedPrefixesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeGlobalPublicDelegatedPrefixesPatch
+  where
+  type Rs ComputeGlobalPublicDelegatedPrefixesPatch = Operation
+  type
+    Scopes ComputeGlobalPublicDelegatedPrefixesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeGlobalPublicDelegatedPrefixesPatch {..} =
+    go
+      project
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeGlobalPublicDelegatedPrefixesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/AggregatedList.hs b/gen/Gogol/Compute/HealthChecks/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.aggregatedList@.
+module Gogol.Compute.HealthChecks.AggregatedList
+  ( -- * Resource
+    ComputeHealthChecksAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksAggregatedList (..),
+    newComputeHealthChecksAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.aggregatedList@ method which the
+-- 'ComputeHealthChecksAggregatedList' request conforms to.
+type ComputeHealthChecksAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "healthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthChecksAggregatedList
+
+-- | Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeHealthChecksAggregatedList' smart constructor.
+data ComputeHealthChecksAggregatedList = ComputeHealthChecksAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksAggregatedList' with the minimum fields required to make a request.
+newComputeHealthChecksAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksAggregatedList
+newComputeHealthChecksAggregatedList project =
+  ComputeHealthChecksAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksAggregatedList where
+  type
+    Rs ComputeHealthChecksAggregatedList =
+      HealthChecksAggregatedList
+  type
+    Scopes ComputeHealthChecksAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHealthChecksAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeHealthChecksAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/Delete.hs b/gen/Gogol/Compute/HealthChecks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified HealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.delete@.
+module Gogol.Compute.HealthChecks.Delete
+  ( -- * Resource
+    ComputeHealthChecksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksDelete (..),
+    newComputeHealthChecksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.delete@ method which the
+-- 'ComputeHealthChecksDelete' request conforms to.
+type ComputeHealthChecksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified HealthCheck resource.
+--
+-- /See:/ 'newComputeHealthChecksDelete' smart constructor.
+data ComputeHealthChecksDelete = ComputeHealthChecksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to delete.
+    healthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksDelete' with the minimum fields required to make a request.
+newComputeHealthChecksDelete ::
+  -- |  Name of the HealthCheck resource to delete. See 'healthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksDelete
+newComputeHealthChecksDelete healthCheck project =
+  ComputeHealthChecksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksDelete where
+  type Rs ComputeHealthChecksDelete = Operation
+  type
+    Scopes ComputeHealthChecksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHealthChecksDelete {..} =
+    go
+      project
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/Get.hs b/gen/Gogol/Compute/HealthChecks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified HealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.get@.
+module Gogol.Compute.HealthChecks.Get
+  ( -- * Resource
+    ComputeHealthChecksGetResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksGet (..),
+    newComputeHealthChecksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.get@ method which the
+-- 'ComputeHealthChecksGet' request conforms to.
+type ComputeHealthChecksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheck
+
+-- | Returns the specified HealthCheck resource.
+--
+-- /See:/ 'newComputeHealthChecksGet' smart constructor.
+data ComputeHealthChecksGet = ComputeHealthChecksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to return.
+    healthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksGet' with the minimum fields required to make a request.
+newComputeHealthChecksGet ::
+  -- |  Name of the HealthCheck resource to return. See 'healthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksGet
+newComputeHealthChecksGet healthCheck project =
+  ComputeHealthChecksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksGet where
+  type Rs ComputeHealthChecksGet = HealthCheck
+  type
+    Scopes ComputeHealthChecksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHealthChecksGet {..} =
+    go
+      project
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/Insert.hs b/gen/Gogol/Compute/HealthChecks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.insert@.
+module Gogol.Compute.HealthChecks.Insert
+  ( -- * Resource
+    ComputeHealthChecksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksInsert (..),
+    newComputeHealthChecksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.insert@ method which the
+-- 'ComputeHealthChecksInsert' request conforms to.
+type ComputeHealthChecksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHealthChecksInsert' smart constructor.
+data ComputeHealthChecksInsert = ComputeHealthChecksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksInsert' with the minimum fields required to make a request.
+newComputeHealthChecksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksInsert
+newComputeHealthChecksInsert payload project =
+  ComputeHealthChecksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksInsert where
+  type Rs ComputeHealthChecksInsert = Operation
+  type
+    Scopes ComputeHealthChecksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHealthChecksInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/List.hs b/gen/Gogol/Compute/HealthChecks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of HealthCheck resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.list@.
+module Gogol.Compute.HealthChecks.List
+  ( -- * Resource
+    ComputeHealthChecksListResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksList (..),
+    newComputeHealthChecksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.list@ method which the
+-- 'ComputeHealthChecksList' request conforms to.
+type ComputeHealthChecksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheckList
+
+-- | Retrieves the list of HealthCheck resources available to the specified project.
+--
+-- /See:/ 'newComputeHealthChecksList' smart constructor.
+data ComputeHealthChecksList = ComputeHealthChecksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksList' with the minimum fields required to make a request.
+newComputeHealthChecksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksList
+newComputeHealthChecksList project =
+  ComputeHealthChecksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksList where
+  type Rs ComputeHealthChecksList = HealthCheckList
+  type
+    Scopes ComputeHealthChecksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHealthChecksList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/Patch.hs b/gen/Gogol/Compute/HealthChecks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.patch@.
+module Gogol.Compute.HealthChecks.Patch
+  ( -- * Resource
+    ComputeHealthChecksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksPatch (..),
+    newComputeHealthChecksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.patch@ method which the
+-- 'ComputeHealthChecksPatch' request conforms to.
+type ComputeHealthChecksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeHealthChecksPatch' smart constructor.
+data ComputeHealthChecksPatch = ComputeHealthChecksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to patch.
+    healthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksPatch' with the minimum fields required to make a request.
+newComputeHealthChecksPatch ::
+  -- |  Name of the HealthCheck resource to patch. See 'healthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksPatch
+newComputeHealthChecksPatch healthCheck payload project =
+  ComputeHealthChecksPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksPatch where
+  type Rs ComputeHealthChecksPatch = Operation
+  type
+    Scopes ComputeHealthChecksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHealthChecksPatch {..} =
+    go
+      project
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HealthChecks/Update.hs b/gen/Gogol/Compute/HealthChecks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HealthChecks/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HealthChecks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.healthChecks.update@.
+module Gogol.Compute.HealthChecks.Update
+  ( -- * Resource
+    ComputeHealthChecksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeHealthChecksUpdate (..),
+    newComputeHealthChecksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.healthChecks.update@ method which the
+-- 'ComputeHealthChecksUpdate' request conforms to.
+type ComputeHealthChecksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHealthChecksUpdate' smart constructor.
+data ComputeHealthChecksUpdate = ComputeHealthChecksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to update.
+    healthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHealthChecksUpdate' with the minimum fields required to make a request.
+newComputeHealthChecksUpdate ::
+  -- |  Name of the HealthCheck resource to update. See 'healthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHealthChecksUpdate
+newComputeHealthChecksUpdate healthCheck payload project =
+  ComputeHealthChecksUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHealthChecksUpdate where
+  type Rs ComputeHealthChecksUpdate = Operation
+  type
+    Scopes ComputeHealthChecksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHealthChecksUpdate {..} =
+    go
+      project
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHealthChecksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/Delete.hs b/gen/Gogol/Compute/HttpHealthChecks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified HttpHealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.delete@.
+module Gogol.Compute.HttpHealthChecks.Delete
+  ( -- * Resource
+    ComputeHttpHealthChecksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksDelete (..),
+    newComputeHttpHealthChecksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.delete@ method which the
+-- 'ComputeHttpHealthChecksDelete' request conforms to.
+type ComputeHttpHealthChecksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.Capture "httpHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified HttpHealthCheck resource.
+--
+-- /See:/ 'newComputeHttpHealthChecksDelete' smart constructor.
+data ComputeHttpHealthChecksDelete = ComputeHttpHealthChecksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpHealthCheck resource to delete.
+    httpHealthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksDelete' with the minimum fields required to make a request.
+newComputeHttpHealthChecksDelete ::
+  -- |  Name of the HttpHealthCheck resource to delete. See 'httpHealthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksDelete
+newComputeHttpHealthChecksDelete httpHealthCheck project =
+  ComputeHttpHealthChecksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpHealthCheck = httpHealthCheck,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksDelete where
+  type Rs ComputeHttpHealthChecksDelete = Operation
+  type
+    Scopes ComputeHttpHealthChecksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpHealthChecksDelete {..} =
+    go
+      project
+      httpHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/Get.hs b/gen/Gogol/Compute/HttpHealthChecks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified HttpHealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.get@.
+module Gogol.Compute.HttpHealthChecks.Get
+  ( -- * Resource
+    ComputeHttpHealthChecksGetResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksGet (..),
+    newComputeHttpHealthChecksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.get@ method which the
+-- 'ComputeHttpHealthChecksGet' request conforms to.
+type ComputeHttpHealthChecksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.Capture "httpHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HttpHealthCheck
+
+-- | Returns the specified HttpHealthCheck resource.
+--
+-- /See:/ 'newComputeHttpHealthChecksGet' smart constructor.
+data ComputeHttpHealthChecksGet = ComputeHttpHealthChecksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpHealthCheck resource to return.
+    httpHealthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksGet' with the minimum fields required to make a request.
+newComputeHttpHealthChecksGet ::
+  -- |  Name of the HttpHealthCheck resource to return. See 'httpHealthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksGet
+newComputeHttpHealthChecksGet httpHealthCheck project =
+  ComputeHttpHealthChecksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpHealthCheck = httpHealthCheck,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksGet where
+  type Rs ComputeHttpHealthChecksGet = HttpHealthCheck
+  type
+    Scopes ComputeHttpHealthChecksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHttpHealthChecksGet {..} =
+    go
+      project
+      httpHealthCheck
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/Insert.hs b/gen/Gogol/Compute/HttpHealthChecks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a HttpHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.insert@.
+module Gogol.Compute.HttpHealthChecks.Insert
+  ( -- * Resource
+    ComputeHttpHealthChecksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksInsert (..),
+    newComputeHttpHealthChecksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.insert@ method which the
+-- 'ComputeHttpHealthChecksInsert' request conforms to.
+type ComputeHttpHealthChecksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpHealthCheck
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a HttpHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHttpHealthChecksInsert' smart constructor.
+data ComputeHttpHealthChecksInsert = ComputeHttpHealthChecksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: HttpHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksInsert' with the minimum fields required to make a request.
+newComputeHttpHealthChecksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  HttpHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksInsert
+newComputeHttpHealthChecksInsert payload project =
+  ComputeHttpHealthChecksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksInsert where
+  type Rs ComputeHttpHealthChecksInsert = Operation
+  type
+    Scopes ComputeHttpHealthChecksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpHealthChecksInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/List.hs b/gen/Gogol/Compute/HttpHealthChecks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of HttpHealthCheck resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.list@.
+module Gogol.Compute.HttpHealthChecks.List
+  ( -- * Resource
+    ComputeHttpHealthChecksListResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksList (..),
+    newComputeHttpHealthChecksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.list@ method which the
+-- 'ComputeHttpHealthChecksList' request conforms to.
+type ComputeHttpHealthChecksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HttpHealthCheckList
+
+-- | Retrieves the list of HttpHealthCheck resources available to the specified project.
+--
+-- /See:/ 'newComputeHttpHealthChecksList' smart constructor.
+data ComputeHttpHealthChecksList = ComputeHttpHealthChecksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksList' with the minimum fields required to make a request.
+newComputeHttpHealthChecksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksList
+newComputeHttpHealthChecksList project =
+  ComputeHttpHealthChecksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksList where
+  type Rs ComputeHttpHealthChecksList = HttpHealthCheckList
+  type
+    Scopes ComputeHttpHealthChecksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHttpHealthChecksList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/Patch.hs b/gen/Gogol/Compute/HttpHealthChecks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.patch@.
+module Gogol.Compute.HttpHealthChecks.Patch
+  ( -- * Resource
+    ComputeHttpHealthChecksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksPatch (..),
+    newComputeHttpHealthChecksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.patch@ method which the
+-- 'ComputeHttpHealthChecksPatch' request conforms to.
+type ComputeHttpHealthChecksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.Capture "httpHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpHealthCheck
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a HttpHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeHttpHealthChecksPatch' smart constructor.
+data ComputeHttpHealthChecksPatch = ComputeHttpHealthChecksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpHealthCheck resource to patch.
+    httpHealthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HttpHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksPatch' with the minimum fields required to make a request.
+newComputeHttpHealthChecksPatch ::
+  -- |  Name of the HttpHealthCheck resource to patch. See 'httpHealthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HttpHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksPatch
+newComputeHttpHealthChecksPatch httpHealthCheck payload project =
+  ComputeHttpHealthChecksPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpHealthCheck = httpHealthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksPatch where
+  type Rs ComputeHttpHealthChecksPatch = Operation
+  type
+    Scopes ComputeHttpHealthChecksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpHealthChecksPatch {..} =
+    go
+      project
+      httpHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpHealthChecks/Update.hs b/gen/Gogol/Compute/HttpHealthChecks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpHealthChecks/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpHealthChecks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HttpHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpHealthChecks.update@.
+module Gogol.Compute.HttpHealthChecks.Update
+  ( -- * Resource
+    ComputeHttpHealthChecksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeHttpHealthChecksUpdate (..),
+    newComputeHttpHealthChecksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpHealthChecks.update@ method which the
+-- 'ComputeHttpHealthChecksUpdate' request conforms to.
+type ComputeHttpHealthChecksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpHealthChecks"
+    Core.:> Core.Capture "httpHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpHealthCheck
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates a HttpHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHttpHealthChecksUpdate' smart constructor.
+data ComputeHttpHealthChecksUpdate = ComputeHttpHealthChecksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpHealthCheck resource to update.
+    httpHealthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HttpHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpHealthChecksUpdate' with the minimum fields required to make a request.
+newComputeHttpHealthChecksUpdate ::
+  -- |  Name of the HttpHealthCheck resource to update. See 'httpHealthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HttpHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpHealthChecksUpdate
+newComputeHttpHealthChecksUpdate httpHealthCheck payload project =
+  ComputeHttpHealthChecksUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpHealthCheck = httpHealthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpHealthChecksUpdate where
+  type Rs ComputeHttpHealthChecksUpdate = Operation
+  type
+    Scopes ComputeHttpHealthChecksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpHealthChecksUpdate {..} =
+    go
+      project
+      httpHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpHealthChecksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/Delete.hs b/gen/Gogol/Compute/HttpsHealthChecks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified HttpsHealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.delete@.
+module Gogol.Compute.HttpsHealthChecks.Delete
+  ( -- * Resource
+    ComputeHttpsHealthChecksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksDelete (..),
+    newComputeHttpsHealthChecksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.delete@ method which the
+-- 'ComputeHttpsHealthChecksDelete' request conforms to.
+type ComputeHttpsHealthChecksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.Capture "httpsHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified HttpsHealthCheck resource.
+--
+-- /See:/ 'newComputeHttpsHealthChecksDelete' smart constructor.
+data ComputeHttpsHealthChecksDelete = ComputeHttpsHealthChecksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpsHealthCheck resource to delete.
+    httpsHealthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksDelete' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksDelete ::
+  -- |  Name of the HttpsHealthCheck resource to delete. See 'httpsHealthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksDelete
+newComputeHttpsHealthChecksDelete httpsHealthCheck project =
+  ComputeHttpsHealthChecksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpsHealthCheck = httpsHealthCheck,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksDelete where
+  type Rs ComputeHttpsHealthChecksDelete = Operation
+  type
+    Scopes ComputeHttpsHealthChecksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpsHealthChecksDelete {..} =
+    go
+      project
+      httpsHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/Get.hs b/gen/Gogol/Compute/HttpsHealthChecks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified HttpsHealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.get@.
+module Gogol.Compute.HttpsHealthChecks.Get
+  ( -- * Resource
+    ComputeHttpsHealthChecksGetResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksGet (..),
+    newComputeHttpsHealthChecksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.get@ method which the
+-- 'ComputeHttpsHealthChecksGet' request conforms to.
+type ComputeHttpsHealthChecksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.Capture "httpsHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HttpsHealthCheck
+
+-- | Returns the specified HttpsHealthCheck resource.
+--
+-- /See:/ 'newComputeHttpsHealthChecksGet' smart constructor.
+data ComputeHttpsHealthChecksGet = ComputeHttpsHealthChecksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpsHealthCheck resource to return.
+    httpsHealthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksGet' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksGet ::
+  -- |  Name of the HttpsHealthCheck resource to return. See 'httpsHealthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksGet
+newComputeHttpsHealthChecksGet httpsHealthCheck project =
+  ComputeHttpsHealthChecksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpsHealthCheck = httpsHealthCheck,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksGet where
+  type Rs ComputeHttpsHealthChecksGet = HttpsHealthCheck
+  type
+    Scopes ComputeHttpsHealthChecksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHttpsHealthChecksGet {..} =
+    go
+      project
+      httpsHealthCheck
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/Insert.hs b/gen/Gogol/Compute/HttpsHealthChecks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a HttpsHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.insert@.
+module Gogol.Compute.HttpsHealthChecks.Insert
+  ( -- * Resource
+    ComputeHttpsHealthChecksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksInsert (..),
+    newComputeHttpsHealthChecksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.insert@ method which the
+-- 'ComputeHttpsHealthChecksInsert' request conforms to.
+type ComputeHttpsHealthChecksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpsHealthCheck
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a HttpsHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHttpsHealthChecksInsert' smart constructor.
+data ComputeHttpsHealthChecksInsert = ComputeHttpsHealthChecksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: HttpsHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksInsert' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  HttpsHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksInsert
+newComputeHttpsHealthChecksInsert payload project =
+  ComputeHttpsHealthChecksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksInsert where
+  type Rs ComputeHttpsHealthChecksInsert = Operation
+  type
+    Scopes ComputeHttpsHealthChecksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpsHealthChecksInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/List.hs b/gen/Gogol/Compute/HttpsHealthChecks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of HttpsHealthCheck resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.list@.
+module Gogol.Compute.HttpsHealthChecks.List
+  ( -- * Resource
+    ComputeHttpsHealthChecksListResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksList (..),
+    newComputeHttpsHealthChecksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.list@ method which the
+-- 'ComputeHttpsHealthChecksList' request conforms to.
+type ComputeHttpsHealthChecksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HttpsHealthCheckList
+
+-- | Retrieves the list of HttpsHealthCheck resources available to the specified project.
+--
+-- /See:/ 'newComputeHttpsHealthChecksList' smart constructor.
+data ComputeHttpsHealthChecksList = ComputeHttpsHealthChecksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksList' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksList
+newComputeHttpsHealthChecksList project =
+  ComputeHttpsHealthChecksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksList where
+  type Rs ComputeHttpsHealthChecksList = HttpsHealthCheckList
+  type
+    Scopes ComputeHttpsHealthChecksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeHttpsHealthChecksList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/Patch.hs b/gen/Gogol/Compute/HttpsHealthChecks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.patch@.
+module Gogol.Compute.HttpsHealthChecks.Patch
+  ( -- * Resource
+    ComputeHttpsHealthChecksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksPatch (..),
+    newComputeHttpsHealthChecksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.patch@ method which the
+-- 'ComputeHttpsHealthChecksPatch' request conforms to.
+type ComputeHttpsHealthChecksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.Capture "httpsHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpsHealthCheck
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a HttpsHealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeHttpsHealthChecksPatch' smart constructor.
+data ComputeHttpsHealthChecksPatch = ComputeHttpsHealthChecksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpsHealthCheck resource to patch.
+    httpsHealthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HttpsHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksPatch' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksPatch ::
+  -- |  Name of the HttpsHealthCheck resource to patch. See 'httpsHealthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HttpsHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksPatch
+newComputeHttpsHealthChecksPatch httpsHealthCheck payload project =
+  ComputeHttpsHealthChecksPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpsHealthCheck = httpsHealthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksPatch where
+  type Rs ComputeHttpsHealthChecksPatch = Operation
+  type
+    Scopes ComputeHttpsHealthChecksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpsHealthChecksPatch {..} =
+    go
+      project
+      httpsHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/HttpsHealthChecks/Update.hs b/gen/Gogol/Compute/HttpsHealthChecks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/HttpsHealthChecks/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.HttpsHealthChecks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HttpsHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.httpsHealthChecks.update@.
+module Gogol.Compute.HttpsHealthChecks.Update
+  ( -- * Resource
+    ComputeHttpsHealthChecksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeHttpsHealthChecksUpdate (..),
+    newComputeHttpsHealthChecksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.httpsHealthChecks.update@ method which the
+-- 'ComputeHttpsHealthChecksUpdate' request conforms to.
+type ComputeHttpsHealthChecksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "httpsHealthChecks"
+    Core.:> Core.Capture "httpsHealthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HttpsHealthCheck
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates a HttpsHealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeHttpsHealthChecksUpdate' smart constructor.
+data ComputeHttpsHealthChecksUpdate = ComputeHttpsHealthChecksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HttpsHealthCheck resource to update.
+    httpsHealthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HttpsHealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeHttpsHealthChecksUpdate' with the minimum fields required to make a request.
+newComputeHttpsHealthChecksUpdate ::
+  -- |  Name of the HttpsHealthCheck resource to update. See 'httpsHealthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HttpsHealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeHttpsHealthChecksUpdate
+newComputeHttpsHealthChecksUpdate httpsHealthCheck payload project =
+  ComputeHttpsHealthChecksUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      httpsHealthCheck = httpsHealthCheck,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeHttpsHealthChecksUpdate where
+  type Rs ComputeHttpsHealthChecksUpdate = Operation
+  type
+    Scopes ComputeHttpsHealthChecksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeHttpsHealthChecksUpdate {..} =
+    go
+      project
+      httpsHealthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeHttpsHealthChecksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ImageFamilyViews/Get.hs b/gen/Gogol/Compute/ImageFamilyViews/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ImageFamilyViews/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ImageFamilyViews.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.imageFamilyViews.get@.
+module Gogol.Compute.ImageFamilyViews.Get
+  ( -- * Resource
+    ComputeImageFamilyViewsGetResource,
+
+    -- ** Constructing a Request
+    ComputeImageFamilyViewsGet (..),
+    newComputeImageFamilyViewsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.imageFamilyViews.get@ method which the
+-- 'ComputeImageFamilyViewsGet' request conforms to.
+type ComputeImageFamilyViewsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "imageFamilyViews"
+    Core.:> Core.Capture "family" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ImageFamilyView
+
+-- | Returns the latest image that is part of an image family, is not deprecated and is rolled out in the specified zone.
+--
+-- /See:/ 'newComputeImageFamilyViewsGet' smart constructor.
+data ComputeImageFamilyViewsGet = ComputeImageFamilyViewsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the image family to search for.
+    family :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImageFamilyViewsGet' with the minimum fields required to make a request.
+newComputeImageFamilyViewsGet ::
+  -- |  Name of the image family to search for. See 'family'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeImageFamilyViewsGet
+newComputeImageFamilyViewsGet family project zone =
+  ComputeImageFamilyViewsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      family = family,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeImageFamilyViewsGet where
+  type Rs ComputeImageFamilyViewsGet = ImageFamilyView
+  type
+    Scopes ComputeImageFamilyViewsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImageFamilyViewsGet {..} =
+    go
+      project
+      zone
+      family
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImageFamilyViewsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/Delete.hs b/gen/Gogol/Compute/Images/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified image.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.delete@.
+module Gogol.Compute.Images.Delete
+  ( -- * Resource
+    ComputeImagesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeImagesDelete (..),
+    newComputeImagesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.delete@ method which the
+-- 'ComputeImagesDelete' request conforms to.
+type ComputeImagesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "image" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified image.
+--
+-- /See:/ 'newComputeImagesDelete' smart constructor.
+data ComputeImagesDelete = ComputeImagesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the image resource to delete.
+    image :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesDelete' with the minimum fields required to make a request.
+newComputeImagesDelete ::
+  -- |  Name of the image resource to delete. See 'image'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesDelete
+newComputeImagesDelete image project =
+  ComputeImagesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      image = image,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesDelete where
+  type Rs ComputeImagesDelete = Operation
+  type
+    Scopes ComputeImagesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeImagesDelete {..} =
+    go
+      project
+      image
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/Deprecate.hs b/gen/Gogol/Compute/Images/Deprecate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/Deprecate.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.Deprecate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.deprecate@.
+module Gogol.Compute.Images.Deprecate
+  ( -- * Resource
+    ComputeImagesDeprecateResource,
+
+    -- ** Constructing a Request
+    ComputeImagesDeprecate (..),
+    newComputeImagesDeprecate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.deprecate@ method which the
+-- 'ComputeImagesDeprecate' request conforms to.
+type ComputeImagesDeprecateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "image" Core.Text
+    Core.:> "deprecate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DeprecationStatus
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the deprecation status of an image. If an empty request body is given, clears the deprecation status instead.
+--
+-- /See:/ 'newComputeImagesDeprecate' smart constructor.
+data ComputeImagesDeprecate = ComputeImagesDeprecate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Image name.
+    image :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DeprecationStatus,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesDeprecate' with the minimum fields required to make a request.
+newComputeImagesDeprecate ::
+  -- |  Image name. See 'image'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DeprecationStatus ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesDeprecate
+newComputeImagesDeprecate image payload project =
+  ComputeImagesDeprecate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      image = image,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesDeprecate where
+  type Rs ComputeImagesDeprecate = Operation
+  type
+    Scopes ComputeImagesDeprecate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeImagesDeprecate {..} =
+    go
+      project
+      image
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesDeprecateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/Get.hs b/gen/Gogol/Compute/Images/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified image.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.get@.
+module Gogol.Compute.Images.Get
+  ( -- * Resource
+    ComputeImagesGetResource,
+
+    -- ** Constructing a Request
+    ComputeImagesGet (..),
+    newComputeImagesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.get@ method which the
+-- 'ComputeImagesGet' request conforms to.
+type ComputeImagesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "image" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Image
+
+-- | Returns the specified image.
+--
+-- /See:/ 'newComputeImagesGet' smart constructor.
+data ComputeImagesGet = ComputeImagesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the image resource to return.
+    image :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesGet' with the minimum fields required to make a request.
+newComputeImagesGet ::
+  -- |  Name of the image resource to return. See 'image'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesGet
+newComputeImagesGet image project =
+  ComputeImagesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      image = image,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesGet where
+  type Rs ComputeImagesGet = Image
+  type
+    Scopes ComputeImagesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImagesGet {..} =
+    go
+      project
+      image
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/GetFromFamily.hs b/gen/Gogol/Compute/Images/GetFromFamily.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/GetFromFamily.hs
@@ -0,0 +1,121 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.GetFromFamily
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.getFromFamily@.
+module Gogol.Compute.Images.GetFromFamily
+  ( -- * Resource
+    ComputeImagesGetFromFamilyResource,
+
+    -- ** Constructing a Request
+    ComputeImagesGetFromFamily (..),
+    newComputeImagesGetFromFamily,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.getFromFamily@ method which the
+-- 'ComputeImagesGetFromFamily' request conforms to.
+type ComputeImagesGetFromFamilyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> "family"
+    Core.:> Core.Capture "family" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Image
+
+-- | Returns the latest image that is part of an image family and is not deprecated. For more information on image families, see Public image families documentation.
+--
+-- /See:/ 'newComputeImagesGetFromFamily' smart constructor.
+data ComputeImagesGetFromFamily = ComputeImagesGetFromFamily
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the image family to search for.
+    family :: Core.Text,
+    -- | The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesGetFromFamily' with the minimum fields required to make a request.
+newComputeImagesGetFromFamily ::
+  -- |  Name of the image family to search for. See 'family'.
+  Core.Text ->
+  -- |  The image project that the image belongs to. For example, to get a CentOS image, specify centos-cloud as the image project. See 'project'.
+  Core.Text ->
+  ComputeImagesGetFromFamily
+newComputeImagesGetFromFamily family project =
+  ComputeImagesGetFromFamily
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      family = family,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesGetFromFamily where
+  type Rs ComputeImagesGetFromFamily = Image
+  type
+    Scopes ComputeImagesGetFromFamily =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImagesGetFromFamily {..} =
+    go
+      project
+      family
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesGetFromFamilyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/GetIamPolicy.hs b/gen/Gogol/Compute/Images/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/GetIamPolicy.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.getIamPolicy@.
+module Gogol.Compute.Images.GetIamPolicy
+  ( -- * Resource
+    ComputeImagesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeImagesGetIamPolicy (..),
+    newComputeImagesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.getIamPolicy@ method which the
+-- 'ComputeImagesGetIamPolicy' request conforms to.
+type ComputeImagesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeImagesGetIamPolicy' smart constructor.
+data ComputeImagesGetIamPolicy = ComputeImagesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesGetIamPolicy' with the minimum fields required to make a request.
+newComputeImagesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeImagesGetIamPolicy
+newComputeImagesGetIamPolicy project resource =
+  ComputeImagesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesGetIamPolicy where
+  type Rs ComputeImagesGetIamPolicy = Policy
+  type
+    Scopes ComputeImagesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImagesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/Insert.hs b/gen/Gogol/Compute/Images/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/Insert.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an image in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.insert@.
+module Gogol.Compute.Images.Insert
+  ( -- * Resource
+    ComputeImagesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeImagesInsert (..),
+    newComputeImagesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.insert@ method which the
+-- 'ComputeImagesInsert' request conforms to.
+type ComputeImagesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "forceCreate" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Image
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an image in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeImagesInsert' smart constructor.
+data ComputeImagesInsert = ComputeImagesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Force image creation if true.
+    forceCreate :: (Core.Maybe Core.Bool),
+    -- | Multipart request metadata.
+    payload :: Image,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesInsert' with the minimum fields required to make a request.
+newComputeImagesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Image ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesInsert
+newComputeImagesInsert payload project =
+  ComputeImagesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forceCreate = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesInsert where
+  type Rs ComputeImagesInsert = Operation
+  type
+    Scopes ComputeImagesInsert =
+      '[ CloudPlatform'FullControl,
+         Compute'FullControl,
+         Devstorage'FullControl,
+         Devstorage'ReadOnly,
+         Devstorage'ReadWrite
+       ]
+  requestClient ComputeImagesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      forceCreate
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/List.hs b/gen/Gogol/Compute/Images/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.list@.
+module Gogol.Compute.Images.List
+  ( -- * Resource
+    ComputeImagesListResource,
+
+    -- ** Constructing a Request
+    ComputeImagesList (..),
+    newComputeImagesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.list@ method which the
+-- 'ComputeImagesList' request conforms to.
+type ComputeImagesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ImageList
+
+-- | Retrieves the list of custom images available to the specified project. Custom images are images you create that belong to your project. This method does not get any images that belong to other projects, including publicly-available images, like Debian 8. If you want to get a list of publicly-available images, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud.
+--
+-- /See:/ 'newComputeImagesList' smart constructor.
+data ComputeImagesList = ComputeImagesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesList' with the minimum fields required to make a request.
+newComputeImagesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesList
+newComputeImagesList project =
+  ComputeImagesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesList where
+  type Rs ComputeImagesList = ImageList
+  type
+    Scopes ComputeImagesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImagesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/Patch.hs b/gen/Gogol/Compute/Images/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.patch@.
+module Gogol.Compute.Images.Patch
+  ( -- * Resource
+    ComputeImagesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeImagesPatch (..),
+    newComputeImagesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.patch@ method which the
+-- 'ComputeImagesPatch' request conforms to.
+type ComputeImagesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "image" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Image
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.
+--
+-- /See:/ 'newComputeImagesPatch' smart constructor.
+data ComputeImagesPatch = ComputeImagesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the image resource to patch.
+    image :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Image,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesPatch' with the minimum fields required to make a request.
+newComputeImagesPatch ::
+  -- |  Name of the image resource to patch. See 'image'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Image ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeImagesPatch
+newComputeImagesPatch image payload project =
+  ComputeImagesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      image = image,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesPatch where
+  type Rs ComputeImagesPatch = Operation
+  type
+    Scopes ComputeImagesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeImagesPatch {..} =
+    go
+      project
+      image
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/SetIamPolicy.hs b/gen/Gogol/Compute/Images/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/SetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.setIamPolicy@.
+module Gogol.Compute.Images.SetIamPolicy
+  ( -- * Resource
+    ComputeImagesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeImagesSetIamPolicy (..),
+    newComputeImagesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.setIamPolicy@ method which the
+-- 'ComputeImagesSetIamPolicy' request conforms to.
+type ComputeImagesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeImagesSetIamPolicy' smart constructor.
+data ComputeImagesSetIamPolicy = ComputeImagesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesSetIamPolicy' with the minimum fields required to make a request.
+newComputeImagesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeImagesSetIamPolicy
+newComputeImagesSetIamPolicy payload project resource =
+  ComputeImagesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesSetIamPolicy where
+  type Rs ComputeImagesSetIamPolicy = Policy
+  type
+    Scopes ComputeImagesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeImagesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/SetLabels.hs b/gen/Gogol/Compute/Images/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/SetLabels.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.setLabels@.
+module Gogol.Compute.Images.SetLabels
+  ( -- * Resource
+    ComputeImagesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeImagesSetLabels (..),
+    newComputeImagesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.setLabels@ method which the
+-- 'ComputeImagesSetLabels' request conforms to.
+type ComputeImagesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeImagesSetLabels' smart constructor.
+data ComputeImagesSetLabels = ComputeImagesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesSetLabels' with the minimum fields required to make a request.
+newComputeImagesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeImagesSetLabels
+newComputeImagesSetLabels payload project resource =
+  ComputeImagesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesSetLabels where
+  type Rs ComputeImagesSetLabels = Operation
+  type
+    Scopes ComputeImagesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeImagesSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Images/TestIamPermissions.hs b/gen/Gogol/Compute/Images/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Images/TestIamPermissions.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Images.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.images.testIamPermissions@.
+module Gogol.Compute.Images.TestIamPermissions
+  ( -- * Resource
+    ComputeImagesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeImagesTestIamPermissions (..),
+    newComputeImagesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.images.testIamPermissions@ method which the
+-- 'ComputeImagesTestIamPermissions' request conforms to.
+type ComputeImagesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "images"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeImagesTestIamPermissions' smart constructor.
+data ComputeImagesTestIamPermissions = ComputeImagesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeImagesTestIamPermissions' with the minimum fields required to make a request.
+newComputeImagesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeImagesTestIamPermissions
+newComputeImagesTestIamPermissions payload project resource =
+  ComputeImagesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeImagesTestIamPermissions where
+  type Rs ComputeImagesTestIamPermissions = TestPermissionsResponse
+  type
+    Scopes ComputeImagesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeImagesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeImagesTestIamPermissionsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Cancel.hs b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Cancel.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Cancel.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagerResizeRequests.Cancel
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagerResizeRequests.cancel@.
+module Gogol.Compute.InstanceGroupManagerResizeRequests.Cancel
+  ( -- * Resource
+    ComputeInstanceGroupManagerResizeRequestsCancelResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagerResizeRequestsCancel (..),
+    newComputeInstanceGroupManagerResizeRequestsCancel,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagerResizeRequests.cancel@ method which the
+-- 'ComputeInstanceGroupManagerResizeRequestsCancel' request conforms to.
+type ComputeInstanceGroupManagerResizeRequestsCancelResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resizeRequests"
+    Core.:> Core.Capture "resizeRequest" Core.Text
+    Core.:> "cancel"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Cancels the specified resize request and removes it from the queue. Cancelled resize request does no longer wait for the resources to be provisioned. Cancel is only possible for requests that are accepted in the queue.
+--
+-- /See:/ 'newComputeInstanceGroupManagerResizeRequestsCancel' smart constructor.
+data ComputeInstanceGroupManagerResizeRequestsCancel = ComputeInstanceGroupManagerResizeRequestsCancel
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID.
+    resizeRequest :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. The name should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagerResizeRequestsCancel' with the minimum fields required to make a request.
+newComputeInstanceGroupManagerResizeRequestsCancel ::
+  -- |  The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the resize request to cancel. The name should conform to RFC1035 or be a resource ID. See 'resizeRequest'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. The name should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagerResizeRequestsCancel
+newComputeInstanceGroupManagerResizeRequestsCancel
+  instanceGroupManager
+  project
+  resizeRequest
+  zone =
+    ComputeInstanceGroupManagerResizeRequestsCancel
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        requestId = Core.Nothing,
+        resizeRequest = resizeRequest,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagerResizeRequestsCancel
+  where
+  type Rs ComputeInstanceGroupManagerResizeRequestsCancel = Operation
+  type
+    Scopes ComputeInstanceGroupManagerResizeRequestsCancel =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagerResizeRequestsCancel {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      resizeRequest
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagerResizeRequestsCancelResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Delete.hs b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Delete.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagerResizeRequests.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagerResizeRequests.delete@.
+module Gogol.Compute.InstanceGroupManagerResizeRequests.Delete
+  ( -- * Resource
+    ComputeInstanceGroupManagerResizeRequestsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagerResizeRequestsDelete (..),
+    newComputeInstanceGroupManagerResizeRequestsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagerResizeRequests.delete@ method which the
+-- 'ComputeInstanceGroupManagerResizeRequestsDelete' request conforms to.
+type ComputeInstanceGroupManagerResizeRequestsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resizeRequests"
+    Core.:> Core.Capture "resizeRequest" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified, inactive resize request. Requests that are still active cannot be deleted. Deleting request does not delete instances that were provisioned previously.
+--
+-- /See:/ 'newComputeInstanceGroupManagerResizeRequestsDelete' smart constructor.
+data ComputeInstanceGroupManagerResizeRequestsDelete = ComputeInstanceGroupManagerResizeRequestsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. The name should conform to RFC1035 or be a resource ID.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID.
+    resizeRequest :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. The name should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagerResizeRequestsDelete' with the minimum fields required to make a request.
+newComputeInstanceGroupManagerResizeRequestsDelete ::
+  -- |  The name of the managed instance group. The name should conform to RFC1035 or be a resource ID. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the resize request to delete. The name should conform to RFC1035 or be a resource ID. See 'resizeRequest'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. The name should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagerResizeRequestsDelete
+newComputeInstanceGroupManagerResizeRequestsDelete
+  instanceGroupManager
+  project
+  resizeRequest
+  zone =
+    ComputeInstanceGroupManagerResizeRequestsDelete
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        requestId = Core.Nothing,
+        resizeRequest = resizeRequest,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagerResizeRequestsDelete
+  where
+  type Rs ComputeInstanceGroupManagerResizeRequestsDelete = Operation
+  type
+    Scopes ComputeInstanceGroupManagerResizeRequestsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagerResizeRequestsDelete {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      resizeRequest
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagerResizeRequestsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Get.hs b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Get.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagerResizeRequests.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns all of the details about the specified resize request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagerResizeRequests.get@.
+module Gogol.Compute.InstanceGroupManagerResizeRequests.Get
+  ( -- * Resource
+    ComputeInstanceGroupManagerResizeRequestsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagerResizeRequestsGet (..),
+    newComputeInstanceGroupManagerResizeRequestsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagerResizeRequests.get@ method which the
+-- 'ComputeInstanceGroupManagerResizeRequestsGet' request conforms to.
+type ComputeInstanceGroupManagerResizeRequestsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resizeRequests"
+    Core.:> Core.Capture "resizeRequest" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupManagerResizeRequest
+
+-- | Returns all of the details about the specified resize request.
+--
+-- /See:/ 'newComputeInstanceGroupManagerResizeRequestsGet' smart constructor.
+data ComputeInstanceGroupManagerResizeRequestsGet = ComputeInstanceGroupManagerResizeRequestsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. Name should conform to RFC1035 or be a resource ID.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the resize request. Name should conform to RFC1035 or be a resource ID.
+    resizeRequest :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the href=\"\/compute\/docs\/regions-zones\/#available\">zone scoping this request. Name should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagerResizeRequestsGet' with the minimum fields required to make a request.
+newComputeInstanceGroupManagerResizeRequestsGet ::
+  -- |  The name of the managed instance group. Name should conform to RFC1035 or be a resource ID. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the resize request. Name should conform to RFC1035 or be a resource ID. See 'resizeRequest'.
+  Core.Text ->
+  -- |  Name of the href=\"\/compute\/docs\/regions-zones\/#available\">zone scoping this request. Name should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagerResizeRequestsGet
+newComputeInstanceGroupManagerResizeRequestsGet
+  instanceGroupManager
+  project
+  resizeRequest
+  zone =
+    ComputeInstanceGroupManagerResizeRequestsGet
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        resizeRequest = resizeRequest,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagerResizeRequestsGet
+  where
+  type
+    Rs ComputeInstanceGroupManagerResizeRequestsGet =
+      InstanceGroupManagerResizeRequest
+  type
+    Scopes ComputeInstanceGroupManagerResizeRequestsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagerResizeRequestsGet {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      resizeRequest
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagerResizeRequestsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Insert.hs b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/Insert.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagerResizeRequests.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new resize request that starts provisioning VMs immediately or queues VM creation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagerResizeRequests.insert@.
+module Gogol.Compute.InstanceGroupManagerResizeRequests.Insert
+  ( -- * Resource
+    ComputeInstanceGroupManagerResizeRequestsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagerResizeRequestsInsert (..),
+    newComputeInstanceGroupManagerResizeRequestsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagerResizeRequests.insert@ method which the
+-- 'ComputeInstanceGroupManagerResizeRequestsInsert' request conforms to.
+type ComputeInstanceGroupManagerResizeRequestsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resizeRequests"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupManagerResizeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new resize request that starts provisioning VMs immediately or queues VM creation.
+--
+-- /See:/ 'newComputeInstanceGroupManagerResizeRequestsInsert' smart constructor.
+data ComputeInstanceGroupManagerResizeRequestsInsert = ComputeInstanceGroupManagerResizeRequestsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagerResizeRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagerResizeRequestsInsert' with the minimum fields required to make a request.
+newComputeInstanceGroupManagerResizeRequestsInsert ::
+  -- |  The name of the managed instance group to which the resize request will be added. Name should conform to RFC1035 or be a resource ID. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagerResizeRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located and where the resize request will be created. Name should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagerResizeRequestsInsert
+newComputeInstanceGroupManagerResizeRequestsInsert
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagerResizeRequestsInsert
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagerResizeRequestsInsert
+  where
+  type Rs ComputeInstanceGroupManagerResizeRequestsInsert = Operation
+  type
+    Scopes ComputeInstanceGroupManagerResizeRequestsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagerResizeRequestsInsert {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagerResizeRequestsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/List.hs b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagerResizeRequests/List.hs
@@ -0,0 +1,168 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagerResizeRequests.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of resize requests that are contained in the managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagerResizeRequests.list@.
+module Gogol.Compute.InstanceGroupManagerResizeRequests.List
+  ( -- * Resource
+    ComputeInstanceGroupManagerResizeRequestsListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagerResizeRequestsList (..),
+    newComputeInstanceGroupManagerResizeRequestsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagerResizeRequests.list@ method which the
+-- 'ComputeInstanceGroupManagerResizeRequestsList' request conforms to.
+type ComputeInstanceGroupManagerResizeRequestsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resizeRequests"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              InstanceGroupManagerResizeRequestsListResponse
+
+-- | Retrieves a list of resize requests that are contained in the managed instance group.
+--
+-- /See:/ 'newComputeInstanceGroupManagerResizeRequestsList' smart constructor.
+data ComputeInstanceGroupManagerResizeRequestsList = ComputeInstanceGroupManagerResizeRequestsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. The name should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. The name should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagerResizeRequestsList' with the minimum fields required to make a request.
+newComputeInstanceGroupManagerResizeRequestsList ::
+  -- |  The name of the managed instance group. The name should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. The name should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagerResizeRequestsList
+newComputeInstanceGroupManagerResizeRequestsList
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagerResizeRequestsList
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagerResizeRequestsList
+  where
+  type
+    Rs ComputeInstanceGroupManagerResizeRequestsList =
+      InstanceGroupManagerResizeRequestsListResponse
+  type
+    Scopes ComputeInstanceGroupManagerResizeRequestsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagerResizeRequestsList {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagerResizeRequestsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/AbandonInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/AbandonInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/AbandonInstances.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.AbandonInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.abandonInstances@.
+module Gogol.Compute.InstanceGroupManagers.AbandonInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersAbandonInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersAbandonInstances (..),
+    newComputeInstanceGroupManagersAbandonInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.abandonInstances@ method which the
+-- 'ComputeInstanceGroupManagersAbandonInstances' request conforms to.
+type ComputeInstanceGroupManagersAbandonInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "abandonInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersAbandonInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances to be removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersAbandonInstances' smart constructor.
+data ComputeInstanceGroupManagersAbandonInstances = ComputeInstanceGroupManagersAbandonInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersAbandonInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersAbandonInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersAbandonInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersAbandonInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersAbandonInstances
+newComputeInstanceGroupManagersAbandonInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersAbandonInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersAbandonInstances
+  where
+  type Rs ComputeInstanceGroupManagersAbandonInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersAbandonInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersAbandonInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersAbandonInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/AggregatedList.hs b/gen/Gogol/Compute/InstanceGroupManagers/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/AggregatedList.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.aggregatedList@.
+module Gogol.Compute.InstanceGroupManagers.AggregatedList
+  ( -- * Resource
+    ComputeInstanceGroupManagersAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersAggregatedList (..),
+    newComputeInstanceGroupManagersAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.aggregatedList@ method which the
+-- 'ComputeInstanceGroupManagersAggregatedList' request conforms to.
+type ComputeInstanceGroupManagersAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupManagerAggregatedList
+
+-- | Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInstanceGroupManagersAggregatedList' smart constructor.
+data ComputeInstanceGroupManagersAggregatedList = ComputeInstanceGroupManagersAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersAggregatedList' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceGroupManagersAggregatedList
+newComputeInstanceGroupManagersAggregatedList project =
+  ComputeInstanceGroupManagersAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersAggregatedList
+  where
+  type
+    Rs ComputeInstanceGroupManagersAggregatedList =
+      InstanceGroupManagerAggregatedList
+  type
+    Scopes ComputeInstanceGroupManagersAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagersAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/ApplyUpdatesToInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/ApplyUpdatesToInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/ApplyUpdatesToInstances.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.ApplyUpdatesToInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and\/or new versions.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.applyUpdatesToInstances@.
+module Gogol.Compute.InstanceGroupManagers.ApplyUpdatesToInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersApplyUpdatesToInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersApplyUpdatesToInstances (..),
+    newComputeInstanceGroupManagersApplyUpdatesToInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.applyUpdatesToInstances@ method which the
+-- 'ComputeInstanceGroupManagersApplyUpdatesToInstances' request conforms to.
+type ComputeInstanceGroupManagersApplyUpdatesToInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "applyUpdatesToInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersApplyUpdatesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and\/or new versions.
+--
+-- /See:/ 'newComputeInstanceGroupManagersApplyUpdatesToInstances' smart constructor.
+data ComputeInstanceGroupManagersApplyUpdatesToInstances = ComputeInstanceGroupManagersApplyUpdatesToInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group, should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersApplyUpdatesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. Should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersApplyUpdatesToInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersApplyUpdatesToInstances ::
+  -- |  The name of the managed instance group, should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersApplyUpdatesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. Should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersApplyUpdatesToInstances
+newComputeInstanceGroupManagersApplyUpdatesToInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersApplyUpdatesToInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersApplyUpdatesToInstances
+  where
+  type
+    Rs ComputeInstanceGroupManagersApplyUpdatesToInstances =
+      Operation
+  type
+    Scopes ComputeInstanceGroupManagersApplyUpdatesToInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeInstanceGroupManagersApplyUpdatesToInstances {..} =
+      go
+        project
+        zone
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstanceGroupManagersApplyUpdatesToInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/CreateInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/CreateInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/CreateInstances.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.CreateInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.createInstances@.
+module Gogol.Compute.InstanceGroupManagers.CreateInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersCreateInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersCreateInstances (..),
+    newComputeInstanceGroupManagersCreateInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.createInstances@ method which the
+-- 'ComputeInstanceGroupManagersCreateInstances' request conforms to.
+type ComputeInstanceGroupManagersCreateInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "createInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersCreateInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates instances with per-instance configurations in this managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.
+--
+-- /See:/ 'newComputeInstanceGroupManagersCreateInstances' smart constructor.
+data ComputeInstanceGroupManagersCreateInstances = ComputeInstanceGroupManagersCreateInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersCreateInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersCreateInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersCreateInstances ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersCreateInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersCreateInstances
+newComputeInstanceGroupManagersCreateInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersCreateInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersCreateInstances
+  where
+  type Rs ComputeInstanceGroupManagersCreateInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersCreateInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersCreateInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersCreateInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/Delete.hs b/gen/Gogol/Compute/InstanceGroupManagers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read Deleting an instance group for more information.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.delete@.
+module Gogol.Compute.InstanceGroupManagers.Delete
+  ( -- * Resource
+    ComputeInstanceGroupManagersDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersDelete (..),
+    newComputeInstanceGroupManagersDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.delete@ method which the
+-- 'ComputeInstanceGroupManagersDelete' request conforms to.
+type ComputeInstanceGroupManagersDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified managed instance group and all of the instances in that group. Note that the instance group must not belong to a backend service. Read Deleting an instance group for more information.
+--
+-- /See:/ 'newComputeInstanceGroupManagersDelete' smart constructor.
+data ComputeInstanceGroupManagersDelete = ComputeInstanceGroupManagersDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group to delete.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersDelete' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersDelete ::
+  -- |  The name of the managed instance group to delete. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersDelete
+newComputeInstanceGroupManagersDelete
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagersDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersDelete where
+  type Rs ComputeInstanceGroupManagersDelete = Operation
+  type
+    Scopes ComputeInstanceGroupManagersDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersDelete {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/DeleteInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/DeleteInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/DeleteInstances.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.DeleteInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.deleteInstances@.
+module Gogol.Compute.InstanceGroupManagers.DeleteInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersDeleteInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersDeleteInstances (..),
+    newComputeInstanceGroupManagersDeleteInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.deleteInstances@ method which the
+-- 'ComputeInstanceGroupManagersDeleteInstances' request conforms to.
+type ComputeInstanceGroupManagersDeleteInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "deleteInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersDeleteInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group for immediate deletion. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. This operation is marked as DONE when the action is scheduled even if the instances are still being deleted. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersDeleteInstances' smart constructor.
+data ComputeInstanceGroupManagersDeleteInstances = ComputeInstanceGroupManagersDeleteInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersDeleteInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersDeleteInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersDeleteInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersDeleteInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersDeleteInstances
+newComputeInstanceGroupManagersDeleteInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersDeleteInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersDeleteInstances
+  where
+  type Rs ComputeInstanceGroupManagersDeleteInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersDeleteInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersDeleteInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersDeleteInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/DeletePerInstanceConfigs.hs b/gen/Gogol/Compute/InstanceGroupManagers/DeletePerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/DeletePerInstanceConfigs.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.DeletePerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes selected per-instance configurations for the managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.deletePerInstanceConfigs@.
+module Gogol.Compute.InstanceGroupManagers.DeletePerInstanceConfigs
+  ( -- * Resource
+    ComputeInstanceGroupManagersDeletePerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersDeletePerInstanceConfigs (..),
+    newComputeInstanceGroupManagersDeletePerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.deletePerInstanceConfigs@ method which the
+-- 'ComputeInstanceGroupManagersDeletePerInstanceConfigs' request conforms to.
+type ComputeInstanceGroupManagersDeletePerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "deletePerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersDeletePerInstanceConfigsReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes selected per-instance configurations for the managed instance group.
+--
+-- /See:/ 'newComputeInstanceGroupManagersDeletePerInstanceConfigs' smart constructor.
+data ComputeInstanceGroupManagersDeletePerInstanceConfigs = ComputeInstanceGroupManagersDeletePerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersDeletePerInstanceConfigsReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersDeletePerInstanceConfigs' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersDeletePerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersDeletePerInstanceConfigsReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersDeletePerInstanceConfigs
+newComputeInstanceGroupManagersDeletePerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersDeletePerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersDeletePerInstanceConfigs
+  where
+  type
+    Rs ComputeInstanceGroupManagersDeletePerInstanceConfigs =
+      Operation
+  type
+    Scopes ComputeInstanceGroupManagersDeletePerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeInstanceGroupManagersDeletePerInstanceConfigs {..} =
+      go
+        project
+        zone
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstanceGroupManagersDeletePerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/Get.hs b/gen/Gogol/Compute/InstanceGroupManagers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/Get.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns all of the details about the specified managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.get@.
+module Gogol.Compute.InstanceGroupManagers.Get
+  ( -- * Resource
+    ComputeInstanceGroupManagersGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersGet (..),
+    newComputeInstanceGroupManagersGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.get@ method which the
+-- 'ComputeInstanceGroupManagersGet' request conforms to.
+type ComputeInstanceGroupManagersGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupManager
+
+-- | Returns all of the details about the specified managed instance group.
+--
+-- /See:/ 'newComputeInstanceGroupManagersGet' smart constructor.
+data ComputeInstanceGroupManagersGet = ComputeInstanceGroupManagersGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersGet' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersGet ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersGet
+newComputeInstanceGroupManagersGet
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagersGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersGet where
+  type Rs ComputeInstanceGroupManagersGet = InstanceGroupManager
+  type
+    Scopes ComputeInstanceGroupManagersGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagersGet {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupManagersGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/Insert.hs b/gen/Gogol/Compute/InstanceGroupManagers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.insert@.
+module Gogol.Compute.InstanceGroupManagers.Insert
+  ( -- * Resource
+    ComputeInstanceGroupManagersInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersInsert (..),
+    newComputeInstanceGroupManagersInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.insert@ method which the
+-- 'ComputeInstanceGroupManagersInsert' request conforms to.
+type ComputeInstanceGroupManagersInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupManager
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A managed instance group can have up to 1000 VM instances per group. Please contact Cloud Support if you need an increase in this limit.
+--
+-- /See:/ 'newComputeInstanceGroupManagersInsert' smart constructor.
+data ComputeInstanceGroupManagersInsert = ComputeInstanceGroupManagersInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManager,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where you want to create the managed instance group.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersInsert' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManager ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where you want to create the managed instance group. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersInsert
+newComputeInstanceGroupManagersInsert payload project zone =
+  ComputeInstanceGroupManagersInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersInsert where
+  type Rs ComputeInstanceGroupManagersInsert = Operation
+  type
+    Scopes ComputeInstanceGroupManagersInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/List.hs b/gen/Gogol/Compute/InstanceGroupManagers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of managed instance groups that are contained within the specified project and zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.list@.
+module Gogol.Compute.InstanceGroupManagers.List
+  ( -- * Resource
+    ComputeInstanceGroupManagersListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersList (..),
+    newComputeInstanceGroupManagersList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.list@ method which the
+-- 'ComputeInstanceGroupManagersList' request conforms to.
+type ComputeInstanceGroupManagersListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupManagerList
+
+-- | Retrieves a list of managed instance groups that are contained within the specified project and zone.
+--
+-- /See:/ 'newComputeInstanceGroupManagersList' smart constructor.
+data ComputeInstanceGroupManagersList = ComputeInstanceGroupManagersList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersList' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersList
+newComputeInstanceGroupManagersList project zone =
+  ComputeInstanceGroupManagersList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersList where
+  type Rs ComputeInstanceGroupManagersList = InstanceGroupManagerList
+  type
+    Scopes ComputeInstanceGroupManagersList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagersList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupManagersListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/ListErrors.hs b/gen/Gogol/Compute/InstanceGroupManagers/ListErrors.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/ListErrors.hs
@@ -0,0 +1,164 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.ListErrors
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.listErrors@.
+module Gogol.Compute.InstanceGroupManagers.ListErrors
+  ( -- * Resource
+    ComputeInstanceGroupManagersListErrorsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersListErrors (..),
+    newComputeInstanceGroupManagersListErrors,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.listErrors@ method which the
+-- 'ComputeInstanceGroupManagersListErrors' request conforms to.
+type ComputeInstanceGroupManagersListErrorsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listErrors"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              InstanceGroupManagersListErrorsResponse
+
+-- | Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.
+--
+-- /See:/ 'newComputeInstanceGroupManagersListErrors' smart constructor.
+data ComputeInstanceGroupManagersListErrors = ComputeInstanceGroupManagersListErrors
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:<?:%5B-a-z0-9%5D%7B0,61%7D%5Ba-z0-9%5D a-z>?)|1-9{0,19}.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersListErrors' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersListErrors ::
+  -- |  The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:<?:%5B-a-z0-9%5D%7B0,61%7D%5Ba-z0-9%5D a-z>?)|1-9{0,19}. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersListErrors
+newComputeInstanceGroupManagersListErrors
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagersListErrors
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersListErrors where
+  type
+    Rs ComputeInstanceGroupManagersListErrors =
+      InstanceGroupManagersListErrorsResponse
+  type
+    Scopes ComputeInstanceGroupManagersListErrors =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagersListErrors {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersListErrorsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/ListManagedInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/ListManagedInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/ListManagedInstances.hs
@@ -0,0 +1,169 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.ListManagedInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The @pageToken@ query parameter is supported only if the group\'s @listManagedInstancesResults@ field is set to @PAGINATED@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.listManagedInstances@.
+module Gogol.Compute.InstanceGroupManagers.ListManagedInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersListManagedInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersListManagedInstances (..),
+    newComputeInstanceGroupManagersListManagedInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.listManagedInstances@ method which the
+-- 'ComputeInstanceGroupManagersListManagedInstances' request conforms to.
+type ComputeInstanceGroupManagersListManagedInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listManagedInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              InstanceGroupManagersListManagedInstancesResponse
+
+-- | Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The @pageToken@ query parameter is supported only if the group\'s @listManagedInstancesResults@ field is set to @PAGINATED@.
+--
+-- /See:/ 'newComputeInstanceGroupManagersListManagedInstances' smart constructor.
+data ComputeInstanceGroupManagersListManagedInstances = ComputeInstanceGroupManagersListManagedInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersListManagedInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersListManagedInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersListManagedInstances
+newComputeInstanceGroupManagersListManagedInstances
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagersListManagedInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersListManagedInstances
+  where
+  type
+    Rs ComputeInstanceGroupManagersListManagedInstances =
+      InstanceGroupManagersListManagedInstancesResponse
+  type
+    Scopes ComputeInstanceGroupManagersListManagedInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupManagersListManagedInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeInstanceGroupManagersListManagedInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/ListPerInstanceConfigs.hs b/gen/Gogol/Compute/InstanceGroupManagers/ListPerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/ListPerInstanceConfigs.hs
@@ -0,0 +1,170 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.ListPerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.listPerInstanceConfigs@.
+module Gogol.Compute.InstanceGroupManagers.ListPerInstanceConfigs
+  ( -- * Resource
+    ComputeInstanceGroupManagersListPerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersListPerInstanceConfigs (..),
+    newComputeInstanceGroupManagersListPerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.listPerInstanceConfigs@ method which the
+-- 'ComputeInstanceGroupManagersListPerInstanceConfigs' request conforms to.
+type ComputeInstanceGroupManagersListPerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listPerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              InstanceGroupManagersListPerInstanceConfigsResp
+
+-- | Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.
+--
+-- /See:/ 'newComputeInstanceGroupManagersListPerInstanceConfigs' smart constructor.
+data ComputeInstanceGroupManagersListPerInstanceConfigs = ComputeInstanceGroupManagersListPerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersListPerInstanceConfigs' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersListPerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersListPerInstanceConfigs
+newComputeInstanceGroupManagersListPerInstanceConfigs
+  instanceGroupManager
+  project
+  zone =
+    ComputeInstanceGroupManagersListPerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersListPerInstanceConfigs
+  where
+  type
+    Rs ComputeInstanceGroupManagersListPerInstanceConfigs =
+      InstanceGroupManagersListPerInstanceConfigsResp
+  type
+    Scopes ComputeInstanceGroupManagersListPerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeInstanceGroupManagersListPerInstanceConfigs {..} =
+      go
+        project
+        zone
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstanceGroupManagersListPerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/Patch.hs b/gen/Gogol/Compute/InstanceGroupManagers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it\'s possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.patch@.
+module Gogol.Compute.InstanceGroupManagers.Patch
+  ( -- * Resource
+    ComputeInstanceGroupManagersPatchResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersPatch (..),
+    newComputeInstanceGroupManagersPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.patch@ method which the
+-- 'ComputeInstanceGroupManagersPatch' request conforms to.
+type ComputeInstanceGroupManagersPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupManager
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listManagedInstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it\'s possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.
+--
+-- /See:/ 'newComputeInstanceGroupManagersPatch' smart constructor.
+data ComputeInstanceGroupManagersPatch = ComputeInstanceGroupManagersPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group manager.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManager,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where you want to create the managed instance group.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersPatch' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersPatch ::
+  -- |  The name of the instance group manager. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManager ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where you want to create the managed instance group. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersPatch
+newComputeInstanceGroupManagersPatch
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersPatch where
+  type Rs ComputeInstanceGroupManagersPatch = Operation
+  type
+    Scopes ComputeInstanceGroupManagersPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersPatch {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/PatchPerInstanceConfigs.hs b/gen/Gogol/Compute/InstanceGroupManagers/PatchPerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/PatchPerInstanceConfigs.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.PatchPerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.patchPerInstanceConfigs@.
+module Gogol.Compute.InstanceGroupManagers.PatchPerInstanceConfigs
+  ( -- * Resource
+    ComputeInstanceGroupManagersPatchPerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersPatchPerInstanceConfigs (..),
+    newComputeInstanceGroupManagersPatchPerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.patchPerInstanceConfigs@ method which the
+-- 'ComputeInstanceGroupManagersPatchPerInstanceConfigs' request conforms to.
+type ComputeInstanceGroupManagersPatchPerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "patchPerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersPatchPerInstanceConfigsReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ 'newComputeInstanceGroupManagersPatchPerInstanceConfigs' smart constructor.
+data ComputeInstanceGroupManagersPatchPerInstanceConfigs = ComputeInstanceGroupManagersPatchPerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersPatchPerInstanceConfigsReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersPatchPerInstanceConfigs' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersPatchPerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersPatchPerInstanceConfigsReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersPatchPerInstanceConfigs
+newComputeInstanceGroupManagersPatchPerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersPatchPerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersPatchPerInstanceConfigs
+  where
+  type
+    Rs ComputeInstanceGroupManagersPatchPerInstanceConfigs =
+      Operation
+  type
+    Scopes ComputeInstanceGroupManagersPatchPerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeInstanceGroupManagersPatchPerInstanceConfigs {..} =
+      go
+        project
+        zone
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstanceGroupManagersPatchPerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/RecreateInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/RecreateInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/RecreateInstances.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.RecreateInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group\'s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.recreateInstances@.
+module Gogol.Compute.InstanceGroupManagers.RecreateInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersRecreateInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersRecreateInstances (..),
+    newComputeInstanceGroupManagersRecreateInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.recreateInstances@ method which the
+-- 'ComputeInstanceGroupManagersRecreateInstances' request conforms to.
+type ComputeInstanceGroupManagersRecreateInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "recreateInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersRecreateInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group\'s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersRecreateInstances' smart constructor.
+data ComputeInstanceGroupManagersRecreateInstances = ComputeInstanceGroupManagersRecreateInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersRecreateInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersRecreateInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersRecreateInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersRecreateInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersRecreateInstances
+newComputeInstanceGroupManagersRecreateInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersRecreateInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersRecreateInstances
+  where
+  type Rs ComputeInstanceGroupManagersRecreateInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersRecreateInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersRecreateInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersRecreateInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/Resize.hs b/gen/Gogol/Compute/InstanceGroupManagers/Resize.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/Resize.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.Resize
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. When resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including: + The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance. This list is subject to change. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is
+-- removed or deleted.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.resize@.
+module Gogol.Compute.InstanceGroupManagers.Resize
+  ( -- * Resource
+    ComputeInstanceGroupManagersResizeResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersResize (..),
+    newComputeInstanceGroupManagersResize,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.resize@ method which the
+-- 'ComputeInstanceGroupManagersResize' request conforms to.
+type ComputeInstanceGroupManagersResizeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resize"
+    Core.:> Core.QueryParam "size" Core.Int32
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Resizes the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. When resizing down, the instance group arbitrarily chooses the order in which VMs are deleted. The group takes into account some VM attributes when making the selection including: + The status of the VM instance. + The health of the VM instance. + The instance template version the VM is based on. + For regional managed instance groups, the location of the VM instance. This list is subject to change. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is
+-- removed or deleted.
+--
+-- /See:/ 'newComputeInstanceGroupManagersResize' smart constructor.
+data ComputeInstanceGroupManagersResize = ComputeInstanceGroupManagersResize
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter.
+    size :: Core.Int32,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersResize' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersResize ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The number of running instances that the managed instance group should maintain at any given time. The group automatically adds or removes instances to maintain the number of instances specified by this parameter. See 'size'.
+  Core.Int32 ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersResize
+newComputeInstanceGroupManagersResize
+  instanceGroupManager
+  project
+  size
+  zone =
+    ComputeInstanceGroupManagersResize
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        requestId = Core.Nothing,
+        size = size,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupManagersResize where
+  type Rs ComputeInstanceGroupManagersResize = Operation
+  type
+    Scopes ComputeInstanceGroupManagersResize =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersResize {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      (Core.Just size)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersResizeResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/ResumeInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/ResumeInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/ResumeInstances.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.ResumeInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.resumeInstances@.
+module Gogol.Compute.InstanceGroupManagers.ResumeInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersResumeInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersResumeInstances (..),
+    newComputeInstanceGroupManagersResumeInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.resumeInstances@ method which the
+-- 'ComputeInstanceGroupManagersResumeInstances' request conforms to.
+type ComputeInstanceGroupManagersResumeInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resumeInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersResumeInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersResumeInstances' smart constructor.
+data ComputeInstanceGroupManagersResumeInstances = ComputeInstanceGroupManagersResumeInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersResumeInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersResumeInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersResumeInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersResumeInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersResumeInstances
+newComputeInstanceGroupManagersResumeInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersResumeInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersResumeInstances
+  where
+  type Rs ComputeInstanceGroupManagersResumeInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersResumeInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersResumeInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersResumeInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/SetInstanceTemplate.hs b/gen/Gogol/Compute/InstanceGroupManagers/SetInstanceTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/SetInstanceTemplate.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.SetInstanceTemplate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group\'s updatePolicy.type to PROACTIVE.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.setInstanceTemplate@.
+module Gogol.Compute.InstanceGroupManagers.SetInstanceTemplate
+  ( -- * Resource
+    ComputeInstanceGroupManagersSetInstanceTemplateResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersSetInstanceTemplate (..),
+    newComputeInstanceGroupManagersSetInstanceTemplate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.setInstanceTemplate@ method which the
+-- 'ComputeInstanceGroupManagersSetInstanceTemplate' request conforms to.
+type ComputeInstanceGroupManagersSetInstanceTemplateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "setInstanceTemplate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersSetInstanceTemplateRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Specifies the instance template to use when creating new instances in this group. The templates for existing instances in the group do not change unless you run recreateInstances, run applyUpdatesToInstances, or set the group\'s updatePolicy.type to PROACTIVE.
+--
+-- /See:/ 'newComputeInstanceGroupManagersSetInstanceTemplate' smart constructor.
+data ComputeInstanceGroupManagersSetInstanceTemplate = ComputeInstanceGroupManagersSetInstanceTemplate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersSetInstanceTemplateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersSetInstanceTemplate' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersSetInstanceTemplate ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersSetInstanceTemplateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersSetInstanceTemplate
+newComputeInstanceGroupManagersSetInstanceTemplate
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersSetInstanceTemplate
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersSetInstanceTemplate
+  where
+  type Rs ComputeInstanceGroupManagersSetInstanceTemplate = Operation
+  type
+    Scopes ComputeInstanceGroupManagersSetInstanceTemplate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersSetInstanceTemplate {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersSetInstanceTemplateResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/SetTargetPools.hs b/gen/Gogol/Compute/InstanceGroupManagers/SetTargetPools.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/SetTargetPools.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.SetTargetPools
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.setTargetPools@.
+module Gogol.Compute.InstanceGroupManagers.SetTargetPools
+  ( -- * Resource
+    ComputeInstanceGroupManagersSetTargetPoolsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersSetTargetPools (..),
+    newComputeInstanceGroupManagersSetTargetPools,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.setTargetPools@ method which the
+-- 'ComputeInstanceGroupManagersSetTargetPools' request conforms to.
+type ComputeInstanceGroupManagersSetTargetPoolsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "setTargetPools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersSetTargetPoolsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Modifies the target pools to which all instances in this managed instance group are assigned. The target pools automatically apply to all of the instances in the managed instance group. This operation is marked DONE when you make the request even if the instances have not yet been added to their target pools. The change might take some time to apply to all of the instances in the group depending on the size of the group.
+--
+-- /See:/ 'newComputeInstanceGroupManagersSetTargetPools' smart constructor.
+data ComputeInstanceGroupManagersSetTargetPools = ComputeInstanceGroupManagersSetTargetPools
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersSetTargetPoolsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersSetTargetPools' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersSetTargetPools ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersSetTargetPoolsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersSetTargetPools
+newComputeInstanceGroupManagersSetTargetPools
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersSetTargetPools
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersSetTargetPools
+  where
+  type Rs ComputeInstanceGroupManagersSetTargetPools = Operation
+  type
+    Scopes ComputeInstanceGroupManagersSetTargetPools =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersSetTargetPools {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersSetTargetPoolsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/StartInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/StartInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/StartInstances.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.StartInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.startInstances@.
+module Gogol.Compute.InstanceGroupManagers.StartInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersStartInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersStartInstances (..),
+    newComputeInstanceGroupManagersStartInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.startInstances@ method which the
+-- 'ComputeInstanceGroupManagersStartInstances' request conforms to.
+type ComputeInstanceGroupManagersStartInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "startInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersStartInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersStartInstances' smart constructor.
+data ComputeInstanceGroupManagersStartInstances = ComputeInstanceGroupManagersStartInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersStartInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersStartInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersStartInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersStartInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersStartInstances
+newComputeInstanceGroupManagersStartInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersStartInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersStartInstances
+  where
+  type Rs ComputeInstanceGroupManagersStartInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersStartInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersStartInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersStartInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/StopInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/StopInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/StopInstances.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.StopInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection
+-- draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.stopInstances@.
+module Gogol.Compute.InstanceGroupManagers.StopInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersStopInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersStopInstances (..),
+    newComputeInstanceGroupManagersStopInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.stopInstances@ method which the
+-- 'ComputeInstanceGroupManagersStopInstances' request conforms to.
+type ComputeInstanceGroupManagersStopInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "stopInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersStopInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection
+-- draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersStopInstances' smart constructor.
+data ComputeInstanceGroupManagersStopInstances = ComputeInstanceGroupManagersStopInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersStopInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersStopInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersStopInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersStopInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersStopInstances
+newComputeInstanceGroupManagersStopInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersStopInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersStopInstances
+  where
+  type Rs ComputeInstanceGroupManagersStopInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersStopInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersStopInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersStopInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/SuspendInstances.hs b/gen/Gogol/Compute/InstanceGroupManagers/SuspendInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/SuspendInstances.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.SuspendInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has
+-- enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.suspendInstances@.
+module Gogol.Compute.InstanceGroupManagers.SuspendInstances
+  ( -- * Resource
+    ComputeInstanceGroupManagersSuspendInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersSuspendInstances (..),
+    newComputeInstanceGroupManagersSuspendInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.suspendInstances@ method which the
+-- 'ComputeInstanceGroupManagersSuspendInstances' request conforms to.
+type ComputeInstanceGroupManagersSuspendInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "suspendInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersSuspendInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has
+-- enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeInstanceGroupManagersSuspendInstances' smart constructor.
+data ComputeInstanceGroupManagersSuspendInstances = ComputeInstanceGroupManagersSuspendInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersSuspendInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersSuspendInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersSuspendInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersSuspendInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersSuspendInstances
+newComputeInstanceGroupManagersSuspendInstances
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersSuspendInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersSuspendInstances
+  where
+  type Rs ComputeInstanceGroupManagersSuspendInstances = Operation
+  type
+    Scopes ComputeInstanceGroupManagersSuspendInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupManagersSuspendInstances {..} =
+    go
+      project
+      zone
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupManagersSuspendInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroupManagers/UpdatePerInstanceConfigs.hs b/gen/Gogol/Compute/InstanceGroupManagers/UpdatePerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroupManagers/UpdatePerInstanceConfigs.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroupManagers.UpdatePerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroupManagers.updatePerInstanceConfigs@.
+module Gogol.Compute.InstanceGroupManagers.UpdatePerInstanceConfigs
+  ( -- * Resource
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigs (..),
+    newComputeInstanceGroupManagersUpdatePerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroupManagers.updatePerInstanceConfigs@ method which the
+-- 'ComputeInstanceGroupManagersUpdatePerInstanceConfigs' request conforms to.
+type ComputeInstanceGroupManagersUpdatePerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "updatePerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupManagersUpdatePerInstanceConfigsReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ 'newComputeInstanceGroupManagersUpdatePerInstanceConfigs' smart constructor.
+data ComputeInstanceGroupManagersUpdatePerInstanceConfigs = ComputeInstanceGroupManagersUpdatePerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManagersUpdatePerInstanceConfigsReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the managed instance group is located. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupManagersUpdatePerInstanceConfigs' with the minimum fields required to make a request.
+newComputeInstanceGroupManagersUpdatePerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManagersUpdatePerInstanceConfigsReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the managed instance group is located. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupManagersUpdatePerInstanceConfigs
+newComputeInstanceGroupManagersUpdatePerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  zone =
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigs
+  where
+  type
+    Rs ComputeInstanceGroupManagersUpdatePerInstanceConfigs =
+      Operation
+  type
+    Scopes ComputeInstanceGroupManagersUpdatePerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeInstanceGroupManagersUpdatePerInstanceConfigs {..} =
+      go
+        project
+        zone
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstanceGroupManagersUpdatePerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/AddInstances.hs b/gen/Gogol/Compute/InstanceGroups/AddInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/AddInstances.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.AddInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network\/subnetwork. Read Adding instances for more information.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.addInstances@.
+module Gogol.Compute.InstanceGroups.AddInstances
+  ( -- * Resource
+    ComputeInstanceGroupsAddInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsAddInstances (..),
+    newComputeInstanceGroupsAddInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.addInstances@ method which the
+-- 'ComputeInstanceGroupsAddInstances' request conforms to.
+type ComputeInstanceGroupsAddInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "addInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupsAddInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds a list of instances to the specified instance group. All of the instances in the instance group must be in the same network\/subnetwork. Read Adding instances for more information.
+--
+-- /See:/ 'newComputeInstanceGroupsAddInstances' smart constructor.
+data ComputeInstanceGroupsAddInstances = ComputeInstanceGroupsAddInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group where you are adding instances.
+    instanceGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupsAddInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsAddInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupsAddInstances ::
+  -- |  The name of the instance group where you are adding instances. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupsAddInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsAddInstances
+newComputeInstanceGroupsAddInstances
+  instanceGroup
+  payload
+  project
+  zone =
+    ComputeInstanceGroupsAddInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroup = instanceGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupsAddInstances where
+  type Rs ComputeInstanceGroupsAddInstances = Operation
+  type
+    Scopes ComputeInstanceGroupsAddInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupsAddInstances {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupsAddInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/AggregatedList.hs b/gen/Gogol/Compute/InstanceGroups/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.aggregatedList@.
+module Gogol.Compute.InstanceGroups.AggregatedList
+  ( -- * Resource
+    ComputeInstanceGroupsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsAggregatedList (..),
+    newComputeInstanceGroupsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.aggregatedList@ method which the
+-- 'ComputeInstanceGroupsAggregatedList' request conforms to.
+type ComputeInstanceGroupsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "instanceGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupAggregatedList
+
+-- | Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInstanceGroupsAggregatedList' smart constructor.
+data ComputeInstanceGroupsAggregatedList = ComputeInstanceGroupsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsAggregatedList' with the minimum fields required to make a request.
+newComputeInstanceGroupsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceGroupsAggregatedList
+newComputeInstanceGroupsAggregatedList project =
+  ComputeInstanceGroupsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupsAggregatedList where
+  type
+    Rs ComputeInstanceGroupsAggregatedList =
+      InstanceGroupAggregatedList
+  type
+    Scopes ComputeInstanceGroupsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/Delete.hs b/gen/Gogol/Compute/InstanceGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read Deleting an instance group for more information.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.delete@.
+module Gogol.Compute.InstanceGroups.Delete
+  ( -- * Resource
+    ComputeInstanceGroupsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsDelete (..),
+    newComputeInstanceGroupsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.delete@ method which the
+-- 'ComputeInstanceGroupsDelete' request conforms to.
+type ComputeInstanceGroupsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified instance group. The instances in the group are not deleted. Note that instance group must not belong to a backend service. Read Deleting an instance group for more information.
+--
+-- /See:/ 'newComputeInstanceGroupsDelete' smart constructor.
+data ComputeInstanceGroupsDelete = ComputeInstanceGroupsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group to delete.
+    instanceGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsDelete' with the minimum fields required to make a request.
+newComputeInstanceGroupsDelete ::
+  -- |  The name of the instance group to delete. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsDelete
+newComputeInstanceGroupsDelete instanceGroup project zone =
+  ComputeInstanceGroupsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instanceGroup = instanceGroup,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupsDelete where
+  type Rs ComputeInstanceGroupsDelete = Operation
+  type
+    Scopes ComputeInstanceGroupsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupsDelete {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/Get.hs b/gen/Gogol/Compute/InstanceGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.get@.
+module Gogol.Compute.InstanceGroups.Get
+  ( -- * Resource
+    ComputeInstanceGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsGet (..),
+    newComputeInstanceGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.get@ method which the
+-- 'ComputeInstanceGroupsGet' request conforms to.
+type ComputeInstanceGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroup
+
+-- | Returns the specified zonal instance group. Get a list of available zonal instance groups by making a list() request. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.
+--
+-- /See:/ 'newComputeInstanceGroupsGet' smart constructor.
+data ComputeInstanceGroupsGet = ComputeInstanceGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group.
+    instanceGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsGet' with the minimum fields required to make a request.
+newComputeInstanceGroupsGet ::
+  -- |  The name of the instance group. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsGet
+newComputeInstanceGroupsGet instanceGroup project zone =
+  ComputeInstanceGroupsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instanceGroup = instanceGroup,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupsGet where
+  type Rs ComputeInstanceGroupsGet = InstanceGroup
+  type
+    Scopes ComputeInstanceGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupsGet {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/Insert.hs b/gen/Gogol/Compute/InstanceGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instance group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.insert@.
+module Gogol.Compute.InstanceGroups.Insert
+  ( -- * Resource
+    ComputeInstanceGroupsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsInsert (..),
+    newComputeInstanceGroupsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.insert@ method which the
+-- 'ComputeInstanceGroupsInsert' request conforms to.
+type ComputeInstanceGroupsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroup
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instance group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeInstanceGroupsInsert' smart constructor.
+data ComputeInstanceGroupsInsert = ComputeInstanceGroupsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where you want to create the instance group.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsInsert' with the minimum fields required to make a request.
+newComputeInstanceGroupsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where you want to create the instance group. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsInsert
+newComputeInstanceGroupsInsert payload project zone =
+  ComputeInstanceGroupsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupsInsert where
+  type Rs ComputeInstanceGroupsInsert = Operation
+  type
+    Scopes ComputeInstanceGroupsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupsInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/List.hs b/gen/Gogol/Compute/InstanceGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.list@.
+module Gogol.Compute.InstanceGroups.List
+  ( -- * Resource
+    ComputeInstanceGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsList (..),
+    newComputeInstanceGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.list@ method which the
+-- 'ComputeInstanceGroupsList' request conforms to.
+type ComputeInstanceGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupList
+
+-- | Retrieves the list of zonal instance group resources contained within the specified zone. For managed instance groups, use the instanceGroupManagers or regionInstanceGroupManagers methods instead.
+--
+-- /See:/ 'newComputeInstanceGroupsList' smart constructor.
+data ComputeInstanceGroupsList = ComputeInstanceGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsList' with the minimum fields required to make a request.
+newComputeInstanceGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsList
+newComputeInstanceGroupsList project zone =
+  ComputeInstanceGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceGroupsList where
+  type Rs ComputeInstanceGroupsList = InstanceGroupList
+  type
+    Scopes ComputeInstanceGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceGroupsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/ListInstances.hs b/gen/Gogol/Compute/InstanceGroups/ListInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/ListInstances.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.ListInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use @eq@ (equal) or @ne@ (not equal) operators.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.listInstances@.
+module Gogol.Compute.InstanceGroups.ListInstances
+  ( -- * Resource
+    ComputeInstanceGroupsListInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsListInstances (..),
+    newComputeInstanceGroupsListInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.listInstances@ method which the
+-- 'ComputeInstanceGroupsListInstances' request conforms to.
+type ComputeInstanceGroupsListInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "listInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstanceGroupsListInstancesRequest
+    Core.:> Core.Post '[Core.JSON] InstanceGroupsListInstances
+
+-- | Lists the instances in the specified instance group. The orderBy query parameter is not supported. The filter query parameter is supported, but only for expressions that use @eq@ (equal) or @ne@ (not equal) operators.
+--
+-- /See:/ 'newComputeInstanceGroupsListInstances' smart constructor.
+data ComputeInstanceGroupsListInstances = ComputeInstanceGroupsListInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the instance group from which you want to generate a list of included instances.
+    instanceGroup :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceGroupsListInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsListInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupsListInstances ::
+  -- |  The name of the instance group from which you want to generate a list of included instances. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupsListInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsListInstances
+newComputeInstanceGroupsListInstances
+  instanceGroup
+  payload
+  project
+  zone =
+    ComputeInstanceGroupsListInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroup = instanceGroup,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        payload = payload,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupsListInstances where
+  type
+    Rs ComputeInstanceGroupsListInstances =
+      InstanceGroupsListInstances
+  type
+    Scopes ComputeInstanceGroupsListInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceGroupsListInstances {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupsListInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/RemoveInstances.hs b/gen/Gogol/Compute/InstanceGroups/RemoveInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/RemoveInstances.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.RemoveInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes one or more instances from the specified instance group, but does not delete those instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.removeInstances@.
+module Gogol.Compute.InstanceGroups.RemoveInstances
+  ( -- * Resource
+    ComputeInstanceGroupsRemoveInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsRemoveInstances (..),
+    newComputeInstanceGroupsRemoveInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.removeInstances@ method which the
+-- 'ComputeInstanceGroupsRemoveInstances' request conforms to.
+type ComputeInstanceGroupsRemoveInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "removeInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupsRemoveInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes one or more instances from the specified instance group, but does not delete those instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration before the VM instance is removed or deleted.
+--
+-- /See:/ 'newComputeInstanceGroupsRemoveInstances' smart constructor.
+data ComputeInstanceGroupsRemoveInstances = ComputeInstanceGroupsRemoveInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group where the specified instances will be removed.
+    instanceGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupsRemoveInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsRemoveInstances' with the minimum fields required to make a request.
+newComputeInstanceGroupsRemoveInstances ::
+  -- |  The name of the instance group where the specified instances will be removed. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupsRemoveInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsRemoveInstances
+newComputeInstanceGroupsRemoveInstances
+  instanceGroup
+  payload
+  project
+  zone =
+    ComputeInstanceGroupsRemoveInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroup = instanceGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupsRemoveInstances where
+  type Rs ComputeInstanceGroupsRemoveInstances = Operation
+  type
+    Scopes ComputeInstanceGroupsRemoveInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupsRemoveInstances {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupsRemoveInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceGroups/SetNamedPorts.hs b/gen/Gogol/Compute/InstanceGroups/SetNamedPorts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceGroups/SetNamedPorts.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceGroups.SetNamedPorts
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the named ports for the specified instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceGroups.setNamedPorts@.
+module Gogol.Compute.InstanceGroups.SetNamedPorts
+  ( -- * Resource
+    ComputeInstanceGroupsSetNamedPortsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceGroupsSetNamedPorts (..),
+    newComputeInstanceGroupsSetNamedPorts,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceGroups.setNamedPorts@ method which the
+-- 'ComputeInstanceGroupsSetNamedPorts' request conforms to.
+type ComputeInstanceGroupsSetNamedPortsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "setNamedPorts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupsSetNamedPortsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the named ports for the specified instance group.
+--
+-- /See:/ 'newComputeInstanceGroupsSetNamedPorts' smart constructor.
+data ComputeInstanceGroupsSetNamedPorts = ComputeInstanceGroupsSetNamedPorts
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group where the named ports are updated.
+    instanceGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupsSetNamedPortsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the instance group is located.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceGroupsSetNamedPorts' with the minimum fields required to make a request.
+newComputeInstanceGroupsSetNamedPorts ::
+  -- |  The name of the instance group where the named ports are updated. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupsSetNamedPortsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the instance group is located. See 'zone'.
+  Core.Text ->
+  ComputeInstanceGroupsSetNamedPorts
+newComputeInstanceGroupsSetNamedPorts
+  instanceGroup
+  payload
+  project
+  zone =
+    ComputeInstanceGroupsSetNamedPorts
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroup = instanceGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstanceGroupsSetNamedPorts where
+  type Rs ComputeInstanceGroupsSetNamedPorts = Operation
+  type
+    Scopes ComputeInstanceGroupsSetNamedPorts =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceGroupsSetNamedPorts {..} =
+    go
+      project
+      zone
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceGroupsSetNamedPortsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceSettings/Get.hs b/gen/Gogol/Compute/InstanceSettings/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceSettings/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceSettings.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Get Instance settings.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceSettings.get@.
+module Gogol.Compute.InstanceSettings.Get
+  ( -- * Resource
+    ComputeInstanceSettingsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceSettingsGet (..),
+    newComputeInstanceSettingsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceSettings.get@ method which the
+-- 'ComputeInstanceSettingsGet' request conforms to.
+type ComputeInstanceSettingsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceSettings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceSettings
+
+-- | Get Instance settings.
+--
+-- /See:/ 'newComputeInstanceSettingsGet' smart constructor.
+data ComputeInstanceSettingsGet = ComputeInstanceSettingsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceSettingsGet' with the minimum fields required to make a request.
+newComputeInstanceSettingsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstanceSettingsGet
+newComputeInstanceSettingsGet project zone =
+  ComputeInstanceSettingsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceSettingsGet where
+  type Rs ComputeInstanceSettingsGet = InstanceSettings
+  type
+    Scopes ComputeInstanceSettingsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceSettingsGet {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceSettingsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceSettings/Patch.hs b/gen/Gogol/Compute/InstanceSettings/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceSettings/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceSettings.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patch Instance settings
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceSettings.patch@.
+module Gogol.Compute.InstanceSettings.Patch
+  ( -- * Resource
+    ComputeInstanceSettingsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceSettingsPatch (..),
+    newComputeInstanceSettingsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceSettings.patch@ method which the
+-- 'ComputeInstanceSettingsPatch' request conforms to.
+type ComputeInstanceSettingsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instanceSettings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceSettings
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patch Instance settings
+--
+-- /See:/ 'newComputeInstanceSettingsPatch' smart constructor.
+data ComputeInstanceSettingsPatch = ComputeInstanceSettingsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceSettings,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The zone scoping this request. It should conform to RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceSettingsPatch' with the minimum fields required to make a request.
+newComputeInstanceSettingsPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceSettings ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The zone scoping this request. It should conform to RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeInstanceSettingsPatch
+newComputeInstanceSettingsPatch payload project zone =
+  ComputeInstanceSettingsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstanceSettingsPatch where
+  type Rs ComputeInstanceSettingsPatch = Operation
+  type
+    Scopes ComputeInstanceSettingsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceSettingsPatch {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceSettingsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/AggregatedList.hs b/gen/Gogol/Compute/InstanceTemplates/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.aggregatedList@.
+module Gogol.Compute.InstanceTemplates.AggregatedList
+  ( -- * Resource
+    ComputeInstanceTemplatesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesAggregatedList (..),
+    newComputeInstanceTemplatesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.aggregatedList@ method which the
+-- 'ComputeInstanceTemplatesAggregatedList' request conforms to.
+type ComputeInstanceTemplatesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "instanceTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceTemplateAggregatedList
+
+-- | Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInstanceTemplatesAggregatedList' smart constructor.
+data ComputeInstanceTemplatesAggregatedList = ComputeInstanceTemplatesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesAggregatedList' with the minimum fields required to make a request.
+newComputeInstanceTemplatesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceTemplatesAggregatedList
+newComputeInstanceTemplatesAggregatedList project =
+  ComputeInstanceTemplatesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesAggregatedList where
+  type
+    Rs ComputeInstanceTemplatesAggregatedList =
+      InstanceTemplateAggregatedList
+  type
+    Scopes ComputeInstanceTemplatesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceTemplatesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceTemplatesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/Delete.hs b/gen/Gogol/Compute/InstanceTemplates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.delete@.
+module Gogol.Compute.InstanceTemplates.Delete
+  ( -- * Resource
+    ComputeInstanceTemplatesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesDelete (..),
+    newComputeInstanceTemplatesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.delete@ method which the
+-- 'ComputeInstanceTemplatesDelete' request conforms to.
+type ComputeInstanceTemplatesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "instanceTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone. It is not possible to delete templates that are already in use by a managed instance group.
+--
+-- /See:/ 'newComputeInstanceTemplatesDelete' smart constructor.
+data ComputeInstanceTemplatesDelete = ComputeInstanceTemplatesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance template to delete.
+    instanceTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesDelete' with the minimum fields required to make a request.
+newComputeInstanceTemplatesDelete ::
+  -- |  The name of the instance template to delete. See 'instanceTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceTemplatesDelete
+newComputeInstanceTemplatesDelete instanceTemplate project =
+  ComputeInstanceTemplatesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instanceTemplate = instanceTemplate,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesDelete where
+  type Rs ComputeInstanceTemplatesDelete = Operation
+  type
+    Scopes ComputeInstanceTemplatesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceTemplatesDelete {..} =
+    go
+      project
+      instanceTemplate
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceTemplatesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/Get.hs b/gen/Gogol/Compute/InstanceTemplates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified instance template.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.get@.
+module Gogol.Compute.InstanceTemplates.Get
+  ( -- * Resource
+    ComputeInstanceTemplatesGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesGet (..),
+    newComputeInstanceTemplatesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.get@ method which the
+-- 'ComputeInstanceTemplatesGet' request conforms to.
+type ComputeInstanceTemplatesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "instanceTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceTemplate
+
+-- | Returns the specified instance template.
+--
+-- /See:/ 'newComputeInstanceTemplatesGet' smart constructor.
+data ComputeInstanceTemplatesGet = ComputeInstanceTemplatesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance template.
+    instanceTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesGet' with the minimum fields required to make a request.
+newComputeInstanceTemplatesGet ::
+  -- |  The name of the instance template. See 'instanceTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceTemplatesGet
+newComputeInstanceTemplatesGet instanceTemplate project =
+  ComputeInstanceTemplatesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instanceTemplate = instanceTemplate,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesGet where
+  type Rs ComputeInstanceTemplatesGet = InstanceTemplate
+  type
+    Scopes ComputeInstanceTemplatesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceTemplatesGet {..} =
+    go
+      project
+      instanceTemplate
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceTemplatesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/GetIamPolicy.hs b/gen/Gogol/Compute/InstanceTemplates/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/GetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.getIamPolicy@.
+module Gogol.Compute.InstanceTemplates.GetIamPolicy
+  ( -- * Resource
+    ComputeInstanceTemplatesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesGetIamPolicy (..),
+    newComputeInstanceTemplatesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.getIamPolicy@ method which the
+-- 'ComputeInstanceTemplatesGetIamPolicy' request conforms to.
+type ComputeInstanceTemplatesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeInstanceTemplatesGetIamPolicy' smart constructor.
+data ComputeInstanceTemplatesGetIamPolicy = ComputeInstanceTemplatesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesGetIamPolicy' with the minimum fields required to make a request.
+newComputeInstanceTemplatesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeInstanceTemplatesGetIamPolicy
+newComputeInstanceTemplatesGetIamPolicy project resource =
+  ComputeInstanceTemplatesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesGetIamPolicy where
+  type Rs ComputeInstanceTemplatesGetIamPolicy = Policy
+  type
+    Scopes ComputeInstanceTemplatesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceTemplatesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceTemplatesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/Insert.hs b/gen/Gogol/Compute/InstanceTemplates/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.insert@.
+module Gogol.Compute.InstanceTemplates.Insert
+  ( -- * Resource
+    ComputeInstanceTemplatesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesInsert (..),
+    newComputeInstanceTemplatesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.insert@ method which the
+-- 'ComputeInstanceTemplatesInsert' request conforms to.
+type ComputeInstanceTemplatesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceTemplate
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instance template in the specified project using the data that is included in the request. If you are creating a new template to update an existing instance group, your new instance template must use the same network or, if applicable, the same subnetwork as the original template.
+--
+-- /See:/ 'newComputeInstanceTemplatesInsert' smart constructor.
+data ComputeInstanceTemplatesInsert = ComputeInstanceTemplatesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceTemplate,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesInsert' with the minimum fields required to make a request.
+newComputeInstanceTemplatesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceTemplate ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceTemplatesInsert
+newComputeInstanceTemplatesInsert payload project =
+  ComputeInstanceTemplatesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesInsert where
+  type Rs ComputeInstanceTemplatesInsert = Operation
+  type
+    Scopes ComputeInstanceTemplatesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceTemplatesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceTemplatesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/List.hs b/gen/Gogol/Compute/InstanceTemplates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of instance templates that are contained within the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.list@.
+module Gogol.Compute.InstanceTemplates.List
+  ( -- * Resource
+    ComputeInstanceTemplatesListResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesList (..),
+    newComputeInstanceTemplatesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.list@ method which the
+-- 'ComputeInstanceTemplatesList' request conforms to.
+type ComputeInstanceTemplatesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceTemplateList
+
+-- | Retrieves a list of instance templates that are contained within the specified project.
+--
+-- /See:/ 'newComputeInstanceTemplatesList' smart constructor.
+data ComputeInstanceTemplatesList = ComputeInstanceTemplatesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesList' with the minimum fields required to make a request.
+newComputeInstanceTemplatesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstanceTemplatesList
+newComputeInstanceTemplatesList project =
+  ComputeInstanceTemplatesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesList where
+  type Rs ComputeInstanceTemplatesList = InstanceTemplateList
+  type
+    Scopes ComputeInstanceTemplatesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceTemplatesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstanceTemplatesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/SetIamPolicy.hs b/gen/Gogol/Compute/InstanceTemplates/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/SetIamPolicy.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.setIamPolicy@.
+module Gogol.Compute.InstanceTemplates.SetIamPolicy
+  ( -- * Resource
+    ComputeInstanceTemplatesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesSetIamPolicy (..),
+    newComputeInstanceTemplatesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.setIamPolicy@ method which the
+-- 'ComputeInstanceTemplatesSetIamPolicy' request conforms to.
+type ComputeInstanceTemplatesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeInstanceTemplatesSetIamPolicy' smart constructor.
+data ComputeInstanceTemplatesSetIamPolicy = ComputeInstanceTemplatesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesSetIamPolicy' with the minimum fields required to make a request.
+newComputeInstanceTemplatesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeInstanceTemplatesSetIamPolicy
+newComputeInstanceTemplatesSetIamPolicy payload project resource =
+  ComputeInstanceTemplatesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstanceTemplatesSetIamPolicy where
+  type Rs ComputeInstanceTemplatesSetIamPolicy = Policy
+  type
+    Scopes ComputeInstanceTemplatesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstanceTemplatesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceTemplatesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstanceTemplates/TestIamPermissions.hs b/gen/Gogol/Compute/InstanceTemplates/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstanceTemplates/TestIamPermissions.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstanceTemplates.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instanceTemplates.testIamPermissions@.
+module Gogol.Compute.InstanceTemplates.TestIamPermissions
+  ( -- * Resource
+    ComputeInstanceTemplatesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeInstanceTemplatesTestIamPermissions (..),
+    newComputeInstanceTemplatesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instanceTemplates.testIamPermissions@ method which the
+-- 'ComputeInstanceTemplatesTestIamPermissions' request conforms to.
+type ComputeInstanceTemplatesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeInstanceTemplatesTestIamPermissions' smart constructor.
+data ComputeInstanceTemplatesTestIamPermissions = ComputeInstanceTemplatesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstanceTemplatesTestIamPermissions' with the minimum fields required to make a request.
+newComputeInstanceTemplatesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeInstanceTemplatesTestIamPermissions
+newComputeInstanceTemplatesTestIamPermissions
+  payload
+  project
+  resource =
+    ComputeInstanceTemplatesTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstanceTemplatesTestIamPermissions
+  where
+  type
+    Rs ComputeInstanceTemplatesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeInstanceTemplatesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstanceTemplatesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstanceTemplatesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/AddAccessConfig.hs b/gen/Gogol/Compute/Instances/AddAccessConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/AddAccessConfig.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.AddAccessConfig
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds an access config to an instance\'s network interface.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.addAccessConfig@.
+module Gogol.Compute.Instances.AddAccessConfig
+  ( -- * Resource
+    ComputeInstancesAddAccessConfigResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesAddAccessConfig (..),
+    newComputeInstancesAddAccessConfig,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.addAccessConfig@ method which the
+-- 'ComputeInstancesAddAccessConfig' request conforms to.
+type ComputeInstancesAddAccessConfigResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "addAccessConfig"
+    Core.:> Core.QueryParam "networkInterface" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AccessConfig
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds an access config to an instance\'s network interface.
+--
+-- /See:/ 'newComputeInstancesAddAccessConfig' smart constructor.
+data ComputeInstancesAddAccessConfig = ComputeInstancesAddAccessConfig
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | The name of the network interface to add to this instance.
+    networkInterface :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AccessConfig,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesAddAccessConfig' with the minimum fields required to make a request.
+newComputeInstancesAddAccessConfig ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  The name of the network interface to add to this instance. See 'networkInterface'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AccessConfig ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesAddAccessConfig
+newComputeInstancesAddAccessConfig
+  instance'
+  networkInterface
+  payload
+  project
+  zone =
+    ComputeInstancesAddAccessConfig
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        networkInterface = networkInterface,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesAddAccessConfig where
+  type Rs ComputeInstancesAddAccessConfig = Operation
+  type
+    Scopes ComputeInstancesAddAccessConfig =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesAddAccessConfig {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just networkInterface)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesAddAccessConfigResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/AddResourcePolicies.hs b/gen/Gogol/Compute/Instances/AddResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/AddResourcePolicies.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.AddResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.addResourcePolicies@.
+module Gogol.Compute.Instances.AddResourcePolicies
+  ( -- * Resource
+    ComputeInstancesAddResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesAddResourcePolicies (..),
+    newComputeInstancesAddResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.addResourcePolicies@ method which the
+-- 'ComputeInstancesAddResourcePolicies' request conforms to.
+type ComputeInstancesAddResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "addResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesAddResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds existing resource policies to an instance. You can only add one policy right now which will be applied to this instance for scheduling live migrations.
+--
+-- /See:/ 'newComputeInstancesAddResourcePolicies' smart constructor.
+data ComputeInstancesAddResourcePolicies = ComputeInstancesAddResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesAddResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesAddResourcePolicies' with the minimum fields required to make a request.
+newComputeInstancesAddResourcePolicies ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesAddResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesAddResourcePolicies
+newComputeInstancesAddResourcePolicies
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesAddResourcePolicies
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesAddResourcePolicies where
+  type Rs ComputeInstancesAddResourcePolicies = Operation
+  type
+    Scopes ComputeInstancesAddResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesAddResourcePolicies {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesAddResourcePoliciesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/AggregatedList.hs b/gen/Gogol/Compute/Instances/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.aggregatedList@.
+module Gogol.Compute.Instances.AggregatedList
+  ( -- * Resource
+    ComputeInstancesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesAggregatedList (..),
+    newComputeInstancesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.aggregatedList@ method which the
+-- 'ComputeInstancesAggregatedList' request conforms to.
+type ComputeInstancesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "instances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceAggregatedList
+
+-- | Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInstancesAggregatedList' smart constructor.
+data ComputeInstancesAggregatedList = ComputeInstancesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesAggregatedList' with the minimum fields required to make a request.
+newComputeInstancesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstancesAggregatedList
+newComputeInstancesAggregatedList project =
+  ComputeInstancesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstancesAggregatedList where
+  type Rs ComputeInstancesAggregatedList = InstanceAggregatedList
+  type
+    Scopes ComputeInstancesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/AttachDisk.hs b/gen/Gogol/Compute/Instances/AttachDisk.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/AttachDisk.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.AttachDisk
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.attachDisk@.
+module Gogol.Compute.Instances.AttachDisk
+  ( -- * Resource
+    ComputeInstancesAttachDiskResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesAttachDisk (..),
+    newComputeInstancesAttachDisk,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.attachDisk@ method which the
+-- 'ComputeInstancesAttachDisk' request conforms to.
+type ComputeInstancesAttachDiskResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "attachDisk"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "forceAttach" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AttachedDisk
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Attaches an existing Disk resource to an instance. You must first create the disk before you can attach it. It is not possible to create and attach a disk at the same time. For more information, read Adding a persistent disk to your instance.
+--
+-- /See:/ 'newComputeInstancesAttachDisk' smart constructor.
+data ComputeInstancesAttachDisk = ComputeInstancesAttachDisk
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Whether to force attach the regional disk even if it\'s currently attached to another instance. If you try to force attach a zonal disk to an instance, you will receive an error.
+    forceAttach :: (Core.Maybe Core.Bool),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AttachedDisk,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesAttachDisk' with the minimum fields required to make a request.
+newComputeInstancesAttachDisk ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AttachedDisk ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesAttachDisk
+newComputeInstancesAttachDisk instance' payload project zone =
+  ComputeInstancesAttachDisk
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      forceAttach = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesAttachDisk where
+  type Rs ComputeInstancesAttachDisk = Operation
+  type
+    Scopes ComputeInstancesAttachDisk =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesAttachDisk {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      forceAttach
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesAttachDiskResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/BulkInsert.hs b/gen/Gogol/Compute/Instances/BulkInsert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/BulkInsert.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.BulkInsert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.bulkInsert@.
+module Gogol.Compute.Instances.BulkInsert
+  ( -- * Resource
+    ComputeInstancesBulkInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesBulkInsert (..),
+    newComputeInstancesBulkInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.bulkInsert@ method which the
+-- 'ComputeInstancesBulkInsert' request conforms to.
+type ComputeInstancesBulkInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> "bulkInsert"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BulkInsertInstanceResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates multiple instances. Count specifies the number of instances to create. For more information, see About bulk creation of VMs.
+--
+-- /See:/ 'newComputeInstancesBulkInsert' smart constructor.
+data ComputeInstancesBulkInsert = ComputeInstancesBulkInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BulkInsertInstanceResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesBulkInsert' with the minimum fields required to make a request.
+newComputeInstancesBulkInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BulkInsertInstanceResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesBulkInsert
+newComputeInstancesBulkInsert payload project zone =
+  ComputeInstancesBulkInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesBulkInsert where
+  type Rs ComputeInstancesBulkInsert = Operation
+  type
+    Scopes ComputeInstancesBulkInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesBulkInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesBulkInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Delete.hs b/gen/Gogol/Compute/Instances/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Instance resource. For more information, see Deleting an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.delete@.
+module Gogol.Compute.Instances.Delete
+  ( -- * Resource
+    ComputeInstancesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesDelete (..),
+    newComputeInstancesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.delete@ method which the
+-- 'ComputeInstancesDelete' request conforms to.
+type ComputeInstancesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified Instance resource. For more information, see Deleting an instance.
+--
+-- /See:/ 'newComputeInstancesDelete' smart constructor.
+data ComputeInstancesDelete = ComputeInstancesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to delete.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesDelete' with the minimum fields required to make a request.
+newComputeInstancesDelete ::
+  -- |  Name of the instance resource to delete. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesDelete
+newComputeInstancesDelete instance' project zone =
+  ComputeInstancesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesDelete where
+  type Rs ComputeInstancesDelete = Operation
+  type
+    Scopes ComputeInstancesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesDelete {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/DeleteAccessConfig.hs b/gen/Gogol/Compute/Instances/DeleteAccessConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/DeleteAccessConfig.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.DeleteAccessConfig
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an access config from an instance\'s network interface.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.deleteAccessConfig@.
+module Gogol.Compute.Instances.DeleteAccessConfig
+  ( -- * Resource
+    ComputeInstancesDeleteAccessConfigResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesDeleteAccessConfig (..),
+    newComputeInstancesDeleteAccessConfig,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.deleteAccessConfig@ method which the
+-- 'ComputeInstancesDeleteAccessConfig' request conforms to.
+type ComputeInstancesDeleteAccessConfigResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "deleteAccessConfig"
+    Core.:> Core.QueryParam "accessConfig" Core.Text
+    Core.:> Core.QueryParam "networkInterface" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes an access config from an instance\'s network interface.
+--
+-- /See:/ 'newComputeInstancesDeleteAccessConfig' smart constructor.
+data ComputeInstancesDeleteAccessConfig = ComputeInstancesDeleteAccessConfig
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | The name of the access config to delete.
+    accessConfig :: Core.Text,
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | The name of the network interface.
+    networkInterface :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesDeleteAccessConfig' with the minimum fields required to make a request.
+newComputeInstancesDeleteAccessConfig ::
+  -- |  The name of the access config to delete. See 'accessConfig'.
+  Core.Text ->
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  The name of the network interface. See 'networkInterface'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesDeleteAccessConfig
+newComputeInstancesDeleteAccessConfig
+  accessConfig
+  instance'
+  networkInterface
+  project
+  zone =
+    ComputeInstancesDeleteAccessConfig
+      { xgafv = Core.Nothing,
+        accessConfig = accessConfig,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        networkInterface = networkInterface,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesDeleteAccessConfig where
+  type Rs ComputeInstancesDeleteAccessConfig = Operation
+  type
+    Scopes ComputeInstancesDeleteAccessConfig =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesDeleteAccessConfig {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just accessConfig)
+      (Core.Just networkInterface)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesDeleteAccessConfigResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/DetachDisk.hs b/gen/Gogol/Compute/Instances/DetachDisk.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/DetachDisk.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.DetachDisk
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detaches a disk from an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.detachDisk@.
+module Gogol.Compute.Instances.DetachDisk
+  ( -- * Resource
+    ComputeInstancesDetachDiskResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesDetachDisk (..),
+    newComputeInstancesDetachDisk,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.detachDisk@ method which the
+-- 'ComputeInstancesDetachDisk' request conforms to.
+type ComputeInstancesDetachDiskResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "detachDisk"
+    Core.:> Core.QueryParam "deviceName" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Detaches a disk from an instance.
+--
+-- /See:/ 'newComputeInstancesDetachDisk' smart constructor.
+data ComputeInstancesDetachDisk = ComputeInstancesDetachDisk
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.
+    deviceName :: Core.Text,
+    -- | Instance name for this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesDetachDisk' with the minimum fields required to make a request.
+newComputeInstancesDetachDisk ::
+  -- |  The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names. See 'deviceName'.
+  Core.Text ->
+  -- |  Instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesDetachDisk
+newComputeInstancesDetachDisk deviceName instance' project zone =
+  ComputeInstancesDetachDisk
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      deviceName = deviceName,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesDetachDisk where
+  type Rs ComputeInstancesDetachDisk = Operation
+  type
+    Scopes ComputeInstancesDetachDisk =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesDetachDisk {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just deviceName)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesDetachDiskResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Get.hs b/gen/Gogol/Compute/Instances/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Instance resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.get@.
+module Gogol.Compute.Instances.Get
+  ( -- * Resource
+    ComputeInstancesGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGet (..),
+    newComputeInstancesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.get@ method which the
+-- 'ComputeInstancesGet' request conforms to.
+type ComputeInstancesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Instance
+
+-- | Returns the specified Instance resource.
+--
+-- /See:/ 'newComputeInstancesGet' smart constructor.
+data ComputeInstancesGet = ComputeInstancesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to return.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGet' with the minimum fields required to make a request.
+newComputeInstancesGet ::
+  -- |  Name of the instance resource to return. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGet
+newComputeInstancesGet instance' project zone =
+  ComputeInstancesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesGet where
+  type Rs ComputeInstancesGet = Instance
+  type
+    Scopes ComputeInstancesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGet {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetEffectiveFirewalls.hs b/gen/Gogol/Compute/Instances/GetEffectiveFirewalls.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetEffectiveFirewalls.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetEffectiveFirewalls
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns effective firewalls applied to an interface of the instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getEffectiveFirewalls@.
+module Gogol.Compute.Instances.GetEffectiveFirewalls
+  ( -- * Resource
+    ComputeInstancesGetEffectiveFirewallsResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetEffectiveFirewalls (..),
+    newComputeInstancesGetEffectiveFirewalls,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getEffectiveFirewalls@ method which the
+-- 'ComputeInstancesGetEffectiveFirewalls' request conforms to.
+type ComputeInstancesGetEffectiveFirewallsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "getEffectiveFirewalls"
+    Core.:> Core.QueryParam "networkInterface" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstancesGetEffectiveFirewallsResponse
+
+-- | Returns effective firewalls applied to an interface of the instance.
+--
+-- /See:/ 'newComputeInstancesGetEffectiveFirewalls' smart constructor.
+data ComputeInstancesGetEffectiveFirewalls = ComputeInstancesGetEffectiveFirewalls
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | The name of the network interface to get the effective firewalls.
+    networkInterface :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetEffectiveFirewalls' with the minimum fields required to make a request.
+newComputeInstancesGetEffectiveFirewalls ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  The name of the network interface to get the effective firewalls. See 'networkInterface'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetEffectiveFirewalls
+newComputeInstancesGetEffectiveFirewalls
+  instance'
+  networkInterface
+  project
+  zone =
+    ComputeInstancesGetEffectiveFirewalls
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        networkInterface = networkInterface,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesGetEffectiveFirewalls where
+  type
+    Rs ComputeInstancesGetEffectiveFirewalls =
+      InstancesGetEffectiveFirewallsResponse
+  type
+    Scopes ComputeInstancesGetEffectiveFirewalls =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetEffectiveFirewalls {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just networkInterface)
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesGetEffectiveFirewallsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetGuestAttributes.hs b/gen/Gogol/Compute/Instances/GetGuestAttributes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetGuestAttributes.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetGuestAttributes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified guest attributes entry.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getGuestAttributes@.
+module Gogol.Compute.Instances.GetGuestAttributes
+  ( -- * Resource
+    ComputeInstancesGetGuestAttributesResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetGuestAttributes (..),
+    newComputeInstancesGetGuestAttributes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getGuestAttributes@ method which the
+-- 'ComputeInstancesGetGuestAttributes' request conforms to.
+type ComputeInstancesGetGuestAttributesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "getGuestAttributes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "queryPath" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "variableKey" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] GuestAttributes
+
+-- | Returns the specified guest attributes entry.
+--
+-- /See:/ 'newComputeInstancesGetGuestAttributes' smart constructor.
+data ComputeInstancesGetGuestAttributes = ComputeInstancesGetGuestAttributes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Specifies the guest attributes path to be queried.
+    queryPath :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Specifies the key for the guest attributes entry.
+    variableKey :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetGuestAttributes' with the minimum fields required to make a request.
+newComputeInstancesGetGuestAttributes ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetGuestAttributes
+newComputeInstancesGetGuestAttributes instance' project zone =
+  ComputeInstancesGetGuestAttributes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      queryPath = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      variableKey = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesGetGuestAttributes where
+  type Rs ComputeInstancesGetGuestAttributes = GuestAttributes
+  type
+    Scopes ComputeInstancesGetGuestAttributes =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetGuestAttributes {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      queryPath
+      uploadType
+      uploadProtocol
+      variableKey
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesGetGuestAttributesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetIamPolicy.hs b/gen/Gogol/Compute/Instances/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getIamPolicy@.
+module Gogol.Compute.Instances.GetIamPolicy
+  ( -- * Resource
+    ComputeInstancesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetIamPolicy (..),
+    newComputeInstancesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getIamPolicy@ method which the
+-- 'ComputeInstancesGetIamPolicy' request conforms to.
+type ComputeInstancesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeInstancesGetIamPolicy' smart constructor.
+data ComputeInstancesGetIamPolicy = ComputeInstancesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetIamPolicy' with the minimum fields required to make a request.
+newComputeInstancesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetIamPolicy
+newComputeInstancesGetIamPolicy project resource zone =
+  ComputeInstancesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesGetIamPolicy where
+  type Rs ComputeInstancesGetIamPolicy = Policy
+  type
+    Scopes ComputeInstancesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetScreenshot.hs b/gen/Gogol/Compute/Instances/GetScreenshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetScreenshot.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetScreenshot
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the screenshot from the specified instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getScreenshot@.
+module Gogol.Compute.Instances.GetScreenshot
+  ( -- * Resource
+    ComputeInstancesGetScreenshotResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetScreenshot (..),
+    newComputeInstancesGetScreenshot,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getScreenshot@ method which the
+-- 'ComputeInstancesGetScreenshot' request conforms to.
+type ComputeInstancesGetScreenshotResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "screenshot"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Screenshot
+
+-- | Returns the screenshot from the specified instance.
+--
+-- /See:/ 'newComputeInstancesGetScreenshot' smart constructor.
+data ComputeInstancesGetScreenshot = ComputeInstancesGetScreenshot
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetScreenshot' with the minimum fields required to make a request.
+newComputeInstancesGetScreenshot ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetScreenshot
+newComputeInstancesGetScreenshot instance' project zone =
+  ComputeInstancesGetScreenshot
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesGetScreenshot where
+  type Rs ComputeInstancesGetScreenshot = Screenshot
+  type
+    Scopes ComputeInstancesGetScreenshot =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetScreenshot {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesGetScreenshotResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetSerialPortOutput.hs b/gen/Gogol/Compute/Instances/GetSerialPortOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetSerialPortOutput.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetSerialPortOutput
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the last 1 MB of serial port output from the specified instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getSerialPortOutput@.
+module Gogol.Compute.Instances.GetSerialPortOutput
+  ( -- * Resource
+    ComputeInstancesGetSerialPortOutputResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetSerialPortOutput (..),
+    newComputeInstancesGetSerialPortOutput,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getSerialPortOutput@ method which the
+-- 'ComputeInstancesGetSerialPortOutput' request conforms to.
+type ComputeInstancesGetSerialPortOutputResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "serialPort"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "port" Core.Int32
+    Core.:> Core.QueryParam "start" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SerialPortOutput
+
+-- | Returns the last 1 MB of serial port output from the specified instance.
+--
+-- /See:/ 'newComputeInstancesGetSerialPortOutput' smart constructor.
+data ComputeInstancesGetSerialPortOutput = ComputeInstancesGetSerialPortOutput
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance for this request.
+    instance' :: Core.Text,
+    -- | Specifies which COM or serial port to retrieve data from.
+    port :: Core.Int32,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Specifies the starting byte position of the output to return. To start with the first byte of output to the specified port, omit this field or set it to @0@. If the output for that byte position is available, this field matches the @start@ parameter sent with the request. If the amount of serial console output exceeds the size of the buffer (1 MB), the oldest output is discarded and is no longer available. If the requested start position refers to discarded output, the start position is adjusted to the oldest output still available, and the adjusted start position is returned as the @start@ property value. You can also provide a negative start position, which translates to the most recent number of bytes written to the serial port. For example, -3 is interpreted as the most recent 3 bytes written to the serial console. Note that the negative start is bounded by the retained buffer size, and the returned serial console output will not exceed the max buffer size.
+    start :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetSerialPortOutput' with the minimum fields required to make a request.
+newComputeInstancesGetSerialPortOutput ::
+  -- |  Name of the instance for this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetSerialPortOutput
+newComputeInstancesGetSerialPortOutput instance' project zone =
+  ComputeInstancesGetSerialPortOutput
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      port = 1,
+      project = project,
+      start = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesGetSerialPortOutput where
+  type Rs ComputeInstancesGetSerialPortOutput = SerialPortOutput
+  type
+    Scopes ComputeInstancesGetSerialPortOutput =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetSerialPortOutput {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      (Core.Just port)
+      start
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesGetSerialPortOutputResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/GetShieldedInstanceIdentity.hs b/gen/Gogol/Compute/Instances/GetShieldedInstanceIdentity.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/GetShieldedInstanceIdentity.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.GetShieldedInstanceIdentity
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the Shielded Instance Identity of an instance
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.getShieldedInstanceIdentity@.
+module Gogol.Compute.Instances.GetShieldedInstanceIdentity
+  ( -- * Resource
+    ComputeInstancesGetShieldedInstanceIdentityResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesGetShieldedInstanceIdentity (..),
+    newComputeInstancesGetShieldedInstanceIdentity,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.getShieldedInstanceIdentity@ method which the
+-- 'ComputeInstancesGetShieldedInstanceIdentity' request conforms to.
+type ComputeInstancesGetShieldedInstanceIdentityResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "getShieldedInstanceIdentity"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ShieldedInstanceIdentity
+
+-- | Returns the Shielded Instance Identity of an instance
+--
+-- /See:/ 'newComputeInstancesGetShieldedInstanceIdentity' smart constructor.
+data ComputeInstancesGetShieldedInstanceIdentity = ComputeInstancesGetShieldedInstanceIdentity
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name or id of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesGetShieldedInstanceIdentity' with the minimum fields required to make a request.
+newComputeInstancesGetShieldedInstanceIdentity ::
+  -- |  Name or id of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesGetShieldedInstanceIdentity
+newComputeInstancesGetShieldedInstanceIdentity
+  instance'
+  project
+  zone =
+    ComputeInstancesGetShieldedInstanceIdentity
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstancesGetShieldedInstanceIdentity
+  where
+  type
+    Rs ComputeInstancesGetShieldedInstanceIdentity =
+      ShieldedInstanceIdentity
+  type
+    Scopes ComputeInstancesGetShieldedInstanceIdentity =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesGetShieldedInstanceIdentity {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesGetShieldedInstanceIdentityResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Insert.hs b/gen/Gogol/Compute/Instances/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Insert.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instance resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.insert@.
+module Gogol.Compute.Instances.Insert
+  ( -- * Resource
+    ComputeInstancesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesInsert (..),
+    newComputeInstancesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.insert@ method which the
+-- 'ComputeInstancesInsert' request conforms to.
+type ComputeInstancesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceInstanceTemplate" Core.Text
+    Core.:> Core.QueryParam "sourceMachineImage" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Instance
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instance resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeInstancesInsert' smart constructor.
+data ComputeInstancesInsert = ComputeInstancesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Instance,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Specifies instance template to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template: - https:\/\/www.googleapis.com\/compute\/v1\/projects\/project \/global\/instanceTemplates\/instanceTemplate - projects\/project\/global\/instanceTemplates\/instanceTemplate - global\/instanceTemplates\/instanceTemplate
+    sourceInstanceTemplate :: (Core.Maybe Core.Text),
+    -- | Specifies the machine image to use to create the instance. This field is optional. It can be a full or partial URL. For example, the following are all valid URLs to a machine image: - https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/global \/machineImages\/machineImage - projects\/project\/global\/global\/machineImages\/machineImage - global\/machineImages\/machineImage
+    sourceMachineImage :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesInsert' with the minimum fields required to make a request.
+newComputeInstancesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Instance ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesInsert
+newComputeInstancesInsert payload project zone =
+  ComputeInstancesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      sourceInstanceTemplate = Core.Nothing,
+      sourceMachineImage = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesInsert where
+  type Rs ComputeInstancesInsert = Operation
+  type
+    Scopes ComputeInstancesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceInstanceTemplate
+      sourceMachineImage
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/List.hs b/gen/Gogol/Compute/Instances/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of instances contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.list@.
+module Gogol.Compute.Instances.List
+  ( -- * Resource
+    ComputeInstancesListResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesList (..),
+    newComputeInstancesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.list@ method which the
+-- 'ComputeInstancesList' request conforms to.
+type ComputeInstancesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceList
+
+-- | Retrieves the list of instances contained within the specified zone.
+--
+-- /See:/ 'newComputeInstancesList' smart constructor.
+data ComputeInstancesList = ComputeInstancesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesList' with the minimum fields required to make a request.
+newComputeInstancesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesList
+newComputeInstancesList project zone =
+  ComputeInstancesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesList where
+  type Rs ComputeInstancesList = InstanceList
+  type
+    Scopes ComputeInstancesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/ListReferrers.hs b/gen/Gogol/Compute/Instances/ListReferrers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/ListReferrers.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.ListReferrers
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.listReferrers@.
+module Gogol.Compute.Instances.ListReferrers
+  ( -- * Resource
+    ComputeInstancesListReferrersResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesListReferrers (..),
+    newComputeInstancesListReferrers,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.listReferrers@ method which the
+-- 'ComputeInstancesListReferrers' request conforms to.
+type ComputeInstancesListReferrersResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "referrers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceListReferrers
+
+-- | Retrieves a list of resources that refer to the VM instance specified in the request. For example, if the VM instance is part of a managed or unmanaged instance group, the referrers list includes the instance group. For more information, read Viewing referrers to VM instances.
+--
+-- /See:/ 'newComputeInstancesListReferrers' smart constructor.
+data ComputeInstancesListReferrers = ComputeInstancesListReferrers
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Name of the target instance scoping this request, or \'-\' if the request should span over all instances in the container.
+    instance' :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesListReferrers' with the minimum fields required to make a request.
+newComputeInstancesListReferrers ::
+  -- |  Name of the target instance scoping this request, or \'-\' if the request should span over all instances in the container. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesListReferrers
+newComputeInstancesListReferrers instance' project zone =
+  ComputeInstancesListReferrers
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      instance' = instance',
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesListReferrers where
+  type Rs ComputeInstancesListReferrers = InstanceListReferrers
+  type
+    Scopes ComputeInstancesListReferrers =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesListReferrers {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesListReferrersResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/PerformMaintenance.hs b/gen/Gogol/Compute/Instances/PerformMaintenance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/PerformMaintenance.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.PerformMaintenance
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Perform a manual maintenance on the instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.performMaintenance@.
+module Gogol.Compute.Instances.PerformMaintenance
+  ( -- * Resource
+    ComputeInstancesPerformMaintenanceResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesPerformMaintenance (..),
+    newComputeInstancesPerformMaintenance,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.performMaintenance@ method which the
+-- 'ComputeInstancesPerformMaintenance' request conforms to.
+type ComputeInstancesPerformMaintenanceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "performMaintenance"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Perform a manual maintenance on the instance.
+--
+-- /See:/ 'newComputeInstancesPerformMaintenance' smart constructor.
+data ComputeInstancesPerformMaintenance = ComputeInstancesPerformMaintenance
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesPerformMaintenance' with the minimum fields required to make a request.
+newComputeInstancesPerformMaintenance ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesPerformMaintenance
+newComputeInstancesPerformMaintenance instance' project zone =
+  ComputeInstancesPerformMaintenance
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesPerformMaintenance where
+  type Rs ComputeInstancesPerformMaintenance = Operation
+  type
+    Scopes ComputeInstancesPerformMaintenance =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesPerformMaintenance {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesPerformMaintenanceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/RemoveResourcePolicies.hs b/gen/Gogol/Compute/Instances/RemoveResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/RemoveResourcePolicies.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.RemoveResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes resource policies from an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.removeResourcePolicies@.
+module Gogol.Compute.Instances.RemoveResourcePolicies
+  ( -- * Resource
+    ComputeInstancesRemoveResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesRemoveResourcePolicies (..),
+    newComputeInstancesRemoveResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.removeResourcePolicies@ method which the
+-- 'ComputeInstancesRemoveResourcePolicies' request conforms to.
+type ComputeInstancesRemoveResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "removeResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstancesRemoveResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes resource policies from an instance.
+--
+-- /See:/ 'newComputeInstancesRemoveResourcePolicies' smart constructor.
+data ComputeInstancesRemoveResourcePolicies = ComputeInstancesRemoveResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesRemoveResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesRemoveResourcePolicies' with the minimum fields required to make a request.
+newComputeInstancesRemoveResourcePolicies ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesRemoveResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesRemoveResourcePolicies
+newComputeInstancesRemoveResourcePolicies
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesRemoveResourcePolicies
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesRemoveResourcePolicies where
+  type Rs ComputeInstancesRemoveResourcePolicies = Operation
+  type
+    Scopes ComputeInstancesRemoveResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesRemoveResourcePolicies {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesRemoveResourcePoliciesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/ReportHostAsFaulty.hs b/gen/Gogol/Compute/Instances/ReportHostAsFaulty.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/ReportHostAsFaulty.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.ReportHostAsFaulty
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Mark the host as faulty and try to restart the instance on a new host.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.reportHostAsFaulty@.
+module Gogol.Compute.Instances.ReportHostAsFaulty
+  ( -- * Resource
+    ComputeInstancesReportHostAsFaultyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesReportHostAsFaulty (..),
+    newComputeInstancesReportHostAsFaulty,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.reportHostAsFaulty@ method which the
+-- 'ComputeInstancesReportHostAsFaulty' request conforms to.
+type ComputeInstancesReportHostAsFaultyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "reportHostAsFaulty"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesReportHostAsFaultyRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Mark the host as faulty and try to restart the instance on a new host.
+--
+-- /See:/ 'newComputeInstancesReportHostAsFaulty' smart constructor.
+data ComputeInstancesReportHostAsFaulty = ComputeInstancesReportHostAsFaulty
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesReportHostAsFaultyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesReportHostAsFaulty' with the minimum fields required to make a request.
+newComputeInstancesReportHostAsFaulty ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesReportHostAsFaultyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesReportHostAsFaulty
+newComputeInstancesReportHostAsFaulty
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesReportHostAsFaulty
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesReportHostAsFaulty where
+  type Rs ComputeInstancesReportHostAsFaulty = Operation
+  type
+    Scopes ComputeInstancesReportHostAsFaulty =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesReportHostAsFaulty {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesReportHostAsFaultyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Reset.hs b/gen/Gogol/Compute/Instances/Reset.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Reset.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Reset
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.reset@.
+module Gogol.Compute.Instances.Reset
+  ( -- * Resource
+    ComputeInstancesResetResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesReset (..),
+    newComputeInstancesReset,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.reset@ method which the
+-- 'ComputeInstancesReset' request conforms to.
+type ComputeInstancesResetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "reset"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.
+--
+-- /See:/ 'newComputeInstancesReset' smart constructor.
+data ComputeInstancesReset = ComputeInstancesReset
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesReset' with the minimum fields required to make a request.
+newComputeInstancesReset ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesReset
+newComputeInstancesReset instance' project zone =
+  ComputeInstancesReset
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesReset where
+  type Rs ComputeInstancesReset = Operation
+  type
+    Scopes ComputeInstancesReset =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesReset {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesResetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Resume.hs b/gen/Gogol/Compute/Instances/Resume.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Resume.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Resume
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Resumes an instance that was suspended using the instances().suspend method.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.resume@.
+module Gogol.Compute.Instances.Resume
+  ( -- * Resource
+    ComputeInstancesResumeResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesResume (..),
+    newComputeInstancesResume,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.resume@ method which the
+-- 'ComputeInstancesResume' request conforms to.
+type ComputeInstancesResumeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "resume"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Resumes an instance that was suspended using the instances().suspend method.
+--
+-- /See:/ 'newComputeInstancesResume' smart constructor.
+data ComputeInstancesResume = ComputeInstancesResume
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to resume.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesResume' with the minimum fields required to make a request.
+newComputeInstancesResume ::
+  -- |  Name of the instance resource to resume. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesResume
+newComputeInstancesResume instance' project zone =
+  ComputeInstancesResume
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesResume where
+  type Rs ComputeInstancesResume = Operation
+  type
+    Scopes ComputeInstancesResume =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesResume {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesResumeResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SendDiagnosticInterrupt.hs b/gen/Gogol/Compute/Instances/SendDiagnosticInterrupt.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SendDiagnosticInterrupt.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SendDiagnosticInterrupt
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sends diagnostic interrupt to the instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.sendDiagnosticInterrupt@.
+module Gogol.Compute.Instances.SendDiagnosticInterrupt
+  ( -- * Resource
+    ComputeInstancesSendDiagnosticInterruptResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSendDiagnosticInterrupt (..),
+    newComputeInstancesSendDiagnosticInterrupt,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.sendDiagnosticInterrupt@ method which the
+-- 'ComputeInstancesSendDiagnosticInterrupt' request conforms to.
+type ComputeInstancesSendDiagnosticInterruptResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "sendDiagnosticInterrupt"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] ()
+
+-- | Sends diagnostic interrupt to the instance.
+--
+-- /See:/ 'newComputeInstancesSendDiagnosticInterrupt' smart constructor.
+data ComputeInstancesSendDiagnosticInterrupt = ComputeInstancesSendDiagnosticInterrupt
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSendDiagnosticInterrupt' with the minimum fields required to make a request.
+newComputeInstancesSendDiagnosticInterrupt ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSendDiagnosticInterrupt
+newComputeInstancesSendDiagnosticInterrupt instance' project zone =
+  ComputeInstancesSendDiagnosticInterrupt
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSendDiagnosticInterrupt where
+  type Rs ComputeInstancesSendDiagnosticInterrupt = ()
+  type
+    Scopes ComputeInstancesSendDiagnosticInterrupt =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSendDiagnosticInterrupt {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSendDiagnosticInterruptResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetDeletionProtection.hs b/gen/Gogol/Compute/Instances/SetDeletionProtection.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetDeletionProtection.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetDeletionProtection
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets deletion protection on the instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setDeletionProtection@.
+module Gogol.Compute.Instances.SetDeletionProtection
+  ( -- * Resource
+    ComputeInstancesSetDeletionProtectionResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetDeletionProtection (..),
+    newComputeInstancesSetDeletionProtection,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setDeletionProtection@ method which the
+-- 'ComputeInstancesSetDeletionProtection' request conforms to.
+type ComputeInstancesSetDeletionProtectionResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setDeletionProtection"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "deletionProtection" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets deletion protection on the instance.
+--
+-- /See:/ 'newComputeInstancesSetDeletionProtection' smart constructor.
+data ComputeInstancesSetDeletionProtection = ComputeInstancesSetDeletionProtection
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Whether the resource should be protected against deletion.
+    deletionProtection :: Core.Bool,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetDeletionProtection' with the minimum fields required to make a request.
+newComputeInstancesSetDeletionProtection ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetDeletionProtection
+newComputeInstancesSetDeletionProtection project resource zone =
+  ComputeInstancesSetDeletionProtection
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      deletionProtection = Core.True,
+      project = project,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetDeletionProtection where
+  type Rs ComputeInstancesSetDeletionProtection = Operation
+  type
+    Scopes ComputeInstancesSetDeletionProtection =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetDeletionProtection {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      (Core.Just deletionProtection)
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetDeletionProtectionResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetDiskAutoDelete.hs b/gen/Gogol/Compute/Instances/SetDiskAutoDelete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetDiskAutoDelete.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetDiskAutoDelete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the auto-delete flag for a disk attached to an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setDiskAutoDelete@.
+module Gogol.Compute.Instances.SetDiskAutoDelete
+  ( -- * Resource
+    ComputeInstancesSetDiskAutoDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetDiskAutoDelete (..),
+    newComputeInstancesSetDiskAutoDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setDiskAutoDelete@ method which the
+-- 'ComputeInstancesSetDiskAutoDelete' request conforms to.
+type ComputeInstancesSetDiskAutoDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setDiskAutoDelete"
+    Core.:> Core.QueryParam "autoDelete" Core.Bool
+    Core.:> Core.QueryParam "deviceName" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the auto-delete flag for a disk attached to an instance.
+--
+-- /See:/ 'newComputeInstancesSetDiskAutoDelete' smart constructor.
+data ComputeInstancesSetDiskAutoDelete = ComputeInstancesSetDiskAutoDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Whether to auto-delete the disk when the instance is deleted.
+    autoDelete :: Core.Bool,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.
+    deviceName :: Core.Text,
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetDiskAutoDelete' with the minimum fields required to make a request.
+newComputeInstancesSetDiskAutoDelete ::
+  -- |  Whether to auto-delete the disk when the instance is deleted. See 'autoDelete'.
+  Core.Bool ->
+  -- |  The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names. See 'deviceName'.
+  Core.Text ->
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetDiskAutoDelete
+newComputeInstancesSetDiskAutoDelete
+  autoDelete
+  deviceName
+  instance'
+  project
+  zone =
+    ComputeInstancesSetDiskAutoDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        autoDelete = autoDelete,
+        callback = Core.Nothing,
+        deviceName = deviceName,
+        instance' = instance',
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesSetDiskAutoDelete where
+  type Rs ComputeInstancesSetDiskAutoDelete = Operation
+  type
+    Scopes ComputeInstancesSetDiskAutoDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetDiskAutoDelete {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just autoDelete)
+      (Core.Just deviceName)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetDiskAutoDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetIamPolicy.hs b/gen/Gogol/Compute/Instances/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setIamPolicy@.
+module Gogol.Compute.Instances.SetIamPolicy
+  ( -- * Resource
+    ComputeInstancesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetIamPolicy (..),
+    newComputeInstancesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setIamPolicy@ method which the
+-- 'ComputeInstancesSetIamPolicy' request conforms to.
+type ComputeInstancesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeInstancesSetIamPolicy' smart constructor.
+data ComputeInstancesSetIamPolicy = ComputeInstancesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetIamPolicy' with the minimum fields required to make a request.
+newComputeInstancesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetIamPolicy
+newComputeInstancesSetIamPolicy payload project resource zone =
+  ComputeInstancesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetIamPolicy where
+  type Rs ComputeInstancesSetIamPolicy = Policy
+  type
+    Scopes ComputeInstancesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetLabels.hs b/gen/Gogol/Compute/Instances/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setLabels@.
+module Gogol.Compute.Instances.SetLabels
+  ( -- * Resource
+    ComputeInstancesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetLabels (..),
+    newComputeInstancesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setLabels@ method which the
+-- 'ComputeInstancesSetLabels' request conforms to.
+type ComputeInstancesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeInstancesSetLabels' smart constructor.
+data ComputeInstancesSetLabels = ComputeInstancesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetLabels' with the minimum fields required to make a request.
+newComputeInstancesSetLabels ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetLabels
+newComputeInstancesSetLabels instance' payload project zone =
+  ComputeInstancesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetLabels where
+  type Rs ComputeInstancesSetLabels = Operation
+  type
+    Scopes ComputeInstancesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetLabels {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetMachineResources.hs b/gen/Gogol/Compute/Instances/SetMachineResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetMachineResources.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetMachineResources
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the number and\/or type of accelerator for a stopped instance to the values specified in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setMachineResources@.
+module Gogol.Compute.Instances.SetMachineResources
+  ( -- * Resource
+    ComputeInstancesSetMachineResourcesResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetMachineResources (..),
+    newComputeInstancesSetMachineResources,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setMachineResources@ method which the
+-- 'ComputeInstancesSetMachineResources' request conforms to.
+type ComputeInstancesSetMachineResourcesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setMachineResources"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetMachineResourcesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the number and\/or type of accelerator for a stopped instance to the values specified in the request.
+--
+-- /See:/ 'newComputeInstancesSetMachineResources' smart constructor.
+data ComputeInstancesSetMachineResources = ComputeInstancesSetMachineResources
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetMachineResourcesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetMachineResources' with the minimum fields required to make a request.
+newComputeInstancesSetMachineResources ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetMachineResourcesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetMachineResources
+newComputeInstancesSetMachineResources
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesSetMachineResources
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesSetMachineResources where
+  type Rs ComputeInstancesSetMachineResources = Operation
+  type
+    Scopes ComputeInstancesSetMachineResources =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetMachineResources {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetMachineResourcesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetMachineType.hs b/gen/Gogol/Compute/Instances/SetMachineType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetMachineType.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetMachineType
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the machine type for a stopped instance to the machine type specified in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setMachineType@.
+module Gogol.Compute.Instances.SetMachineType
+  ( -- * Resource
+    ComputeInstancesSetMachineTypeResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetMachineType (..),
+    newComputeInstancesSetMachineType,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setMachineType@ method which the
+-- 'ComputeInstancesSetMachineType' request conforms to.
+type ComputeInstancesSetMachineTypeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setMachineType"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetMachineTypeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the machine type for a stopped instance to the machine type specified in the request.
+--
+-- /See:/ 'newComputeInstancesSetMachineType' smart constructor.
+data ComputeInstancesSetMachineType = ComputeInstancesSetMachineType
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetMachineTypeRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetMachineType' with the minimum fields required to make a request.
+newComputeInstancesSetMachineType ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetMachineTypeRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetMachineType
+newComputeInstancesSetMachineType instance' payload project zone =
+  ComputeInstancesSetMachineType
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetMachineType where
+  type Rs ComputeInstancesSetMachineType = Operation
+  type
+    Scopes ComputeInstancesSetMachineType =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetMachineType {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetMachineTypeResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetMetadata.hs b/gen/Gogol/Compute/Instances/SetMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetMetadata.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetMetadata
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets metadata for the specified instance to the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setMetadata@.
+module Gogol.Compute.Instances.SetMetadata
+  ( -- * Resource
+    ComputeInstancesSetMetadataResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetMetadata (..),
+    newComputeInstancesSetMetadata,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setMetadata@ method which the
+-- 'ComputeInstancesSetMetadata' request conforms to.
+type ComputeInstancesSetMetadataResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setMetadata"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Metadata
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets metadata for the specified instance to the data included in the request.
+--
+-- /See:/ 'newComputeInstancesSetMetadata' smart constructor.
+data ComputeInstancesSetMetadata = ComputeInstancesSetMetadata
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Metadata,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetMetadata' with the minimum fields required to make a request.
+newComputeInstancesSetMetadata ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Metadata ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetMetadata
+newComputeInstancesSetMetadata instance' payload project zone =
+  ComputeInstancesSetMetadata
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetMetadata where
+  type Rs ComputeInstancesSetMetadata = Operation
+  type
+    Scopes ComputeInstancesSetMetadata =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetMetadata {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetMetadataResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetMinCpuPlatform.hs b/gen/Gogol/Compute/Instances/SetMinCpuPlatform.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetMinCpuPlatform.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetMinCpuPlatform
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setMinCpuPlatform@.
+module Gogol.Compute.Instances.SetMinCpuPlatform
+  ( -- * Resource
+    ComputeInstancesSetMinCpuPlatformResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetMinCpuPlatform (..),
+    newComputeInstancesSetMinCpuPlatform,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setMinCpuPlatform@ method which the
+-- 'ComputeInstancesSetMinCpuPlatform' request conforms to.
+type ComputeInstancesSetMinCpuPlatformResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setMinCpuPlatform"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetMinCpuPlatformRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.
+--
+-- /See:/ 'newComputeInstancesSetMinCpuPlatform' smart constructor.
+data ComputeInstancesSetMinCpuPlatform = ComputeInstancesSetMinCpuPlatform
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetMinCpuPlatformRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetMinCpuPlatform' with the minimum fields required to make a request.
+newComputeInstancesSetMinCpuPlatform ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetMinCpuPlatformRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetMinCpuPlatform
+newComputeInstancesSetMinCpuPlatform instance' payload project zone =
+  ComputeInstancesSetMinCpuPlatform
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetMinCpuPlatform where
+  type Rs ComputeInstancesSetMinCpuPlatform = Operation
+  type
+    Scopes ComputeInstancesSetMinCpuPlatform =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetMinCpuPlatform {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetMinCpuPlatformResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetName.hs b/gen/Gogol/Compute/Instances/SetName.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetName.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetName
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets name of an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setName@.
+module Gogol.Compute.Instances.SetName
+  ( -- * Resource
+    ComputeInstancesSetNameResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetName (..),
+    newComputeInstancesSetName,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setName@ method which the
+-- 'ComputeInstancesSetName' request conforms to.
+type ComputeInstancesSetNameResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setName"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetNameRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets name of an instance.
+--
+-- /See:/ 'newComputeInstancesSetName' smart constructor.
+data ComputeInstancesSetName = ComputeInstancesSetName
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetNameRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetName' with the minimum fields required to make a request.
+newComputeInstancesSetName ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetNameRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetName
+newComputeInstancesSetName instance' payload project zone =
+  ComputeInstancesSetName
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetName where
+  type Rs ComputeInstancesSetName = Operation
+  type
+    Scopes ComputeInstancesSetName =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetName {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetNameResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetScheduling.hs b/gen/Gogol/Compute/Instances/SetScheduling.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetScheduling.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetScheduling
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets an instance\'s scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a @TERMINATED@ state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setScheduling@.
+module Gogol.Compute.Instances.SetScheduling
+  ( -- * Resource
+    ComputeInstancesSetSchedulingResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetScheduling (..),
+    newComputeInstancesSetScheduling,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setScheduling@ method which the
+-- 'ComputeInstancesSetScheduling' request conforms to.
+type ComputeInstancesSetSchedulingResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setScheduling"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Scheduling
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets an instance\'s scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a @TERMINATED@ state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.
+--
+-- /See:/ 'newComputeInstancesSetScheduling' smart constructor.
+data ComputeInstancesSetScheduling = ComputeInstancesSetScheduling
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Instance name for this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Scheduling,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetScheduling' with the minimum fields required to make a request.
+newComputeInstancesSetScheduling ::
+  -- |  Instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Scheduling ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetScheduling
+newComputeInstancesSetScheduling instance' payload project zone =
+  ComputeInstancesSetScheduling
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetScheduling where
+  type Rs ComputeInstancesSetScheduling = Operation
+  type
+    Scopes ComputeInstancesSetScheduling =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetScheduling {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetSchedulingResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetSecurityPolicy.hs b/gen/Gogol/Compute/Instances/SetSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetSecurityPolicy.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setSecurityPolicy@.
+module Gogol.Compute.Instances.SetSecurityPolicy
+  ( -- * Resource
+    ComputeInstancesSetSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetSecurityPolicy (..),
+    newComputeInstancesSetSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setSecurityPolicy@ method which the
+-- 'ComputeInstancesSetSecurityPolicy' request conforms to.
+type ComputeInstancesSetSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetSecurityPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ 'newComputeInstancesSetSecurityPolicy' smart constructor.
+data ComputeInstancesSetSecurityPolicy = ComputeInstancesSetSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetSecurityPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetSecurityPolicy' with the minimum fields required to make a request.
+newComputeInstancesSetSecurityPolicy ::
+  -- |  Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetSecurityPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetSecurityPolicy
+newComputeInstancesSetSecurityPolicy instance' payload project zone =
+  ComputeInstancesSetSecurityPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetSecurityPolicy where
+  type Rs ComputeInstancesSetSecurityPolicy = Operation
+  type
+    Scopes ComputeInstancesSetSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetSecurityPolicy {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetServiceAccount.hs b/gen/Gogol/Compute/Instances/SetServiceAccount.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetServiceAccount.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetServiceAccount
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setServiceAccount@.
+module Gogol.Compute.Instances.SetServiceAccount
+  ( -- * Resource
+    ComputeInstancesSetServiceAccountResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetServiceAccount (..),
+    newComputeInstancesSetServiceAccount,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setServiceAccount@ method which the
+-- 'ComputeInstancesSetServiceAccount' request conforms to.
+type ComputeInstancesSetServiceAccountResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setServiceAccount"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstancesSetServiceAccountRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.
+--
+-- /See:/ 'newComputeInstancesSetServiceAccount' smart constructor.
+data ComputeInstancesSetServiceAccount = ComputeInstancesSetServiceAccount
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to start.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesSetServiceAccountRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetServiceAccount' with the minimum fields required to make a request.
+newComputeInstancesSetServiceAccount ::
+  -- |  Name of the instance resource to start. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesSetServiceAccountRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetServiceAccount
+newComputeInstancesSetServiceAccount instance' payload project zone =
+  ComputeInstancesSetServiceAccount
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetServiceAccount where
+  type Rs ComputeInstancesSetServiceAccount = Operation
+  type
+    Scopes ComputeInstancesSetServiceAccount =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetServiceAccount {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSetServiceAccountResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs b/gen/Gogol/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetShieldedInstanceIntegrityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setShieldedInstanceIntegrityPolicy@.
+module Gogol.Compute.Instances.SetShieldedInstanceIntegrityPolicy
+  ( -- * Resource
+    ComputeInstancesSetShieldedInstanceIntegrityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetShieldedInstanceIntegrityPolicy (..),
+    newComputeInstancesSetShieldedInstanceIntegrityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setShieldedInstanceIntegrityPolicy@ method which the
+-- 'ComputeInstancesSetShieldedInstanceIntegrityPolicy' request conforms to.
+type ComputeInstancesSetShieldedInstanceIntegrityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setShieldedInstanceIntegrityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ShieldedInstanceIntegrityPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInstancesSetShieldedInstanceIntegrityPolicy' smart constructor.
+data ComputeInstancesSetShieldedInstanceIntegrityPolicy = ComputeInstancesSetShieldedInstanceIntegrityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name or id of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ShieldedInstanceIntegrityPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetShieldedInstanceIntegrityPolicy' with the minimum fields required to make a request.
+newComputeInstancesSetShieldedInstanceIntegrityPolicy ::
+  -- |  Name or id of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ShieldedInstanceIntegrityPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetShieldedInstanceIntegrityPolicy
+newComputeInstancesSetShieldedInstanceIntegrityPolicy
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesSetShieldedInstanceIntegrityPolicy
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstancesSetShieldedInstanceIntegrityPolicy
+  where
+  type
+    Rs ComputeInstancesSetShieldedInstanceIntegrityPolicy =
+      Operation
+  type
+    Scopes ComputeInstancesSetShieldedInstanceIntegrityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeInstancesSetShieldedInstanceIntegrityPolicy {..} =
+      go
+        project
+        zone
+        instance'
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeInstancesSetShieldedInstanceIntegrityPolicyResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SetTags.hs b/gen/Gogol/Compute/Instances/SetTags.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SetTags.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SetTags
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets network tags for the specified instance to the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.setTags@.
+module Gogol.Compute.Instances.SetTags
+  ( -- * Resource
+    ComputeInstancesSetTagsResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSetTags (..),
+    newComputeInstancesSetTags,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.setTags@ method which the
+-- 'ComputeInstancesSetTags' request conforms to.
+type ComputeInstancesSetTagsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "setTags"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Tags
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets network tags for the specified instance to the data included in the request.
+--
+-- /See:/ 'newComputeInstancesSetTags' smart constructor.
+data ComputeInstancesSetTags = ComputeInstancesSetTags
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Tags,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSetTags' with the minimum fields required to make a request.
+newComputeInstancesSetTags ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Tags ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSetTags
+newComputeInstancesSetTags instance' payload project zone =
+  ComputeInstancesSetTags
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSetTags where
+  type Rs ComputeInstancesSetTags = Operation
+  type
+    Scopes ComputeInstancesSetTags =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSetTags {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSetTagsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/SimulateMaintenanceEvent.hs b/gen/Gogol/Compute/Instances/SimulateMaintenanceEvent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/SimulateMaintenanceEvent.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.SimulateMaintenanceEvent
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.simulateMaintenanceEvent@.
+module Gogol.Compute.Instances.SimulateMaintenanceEvent
+  ( -- * Resource
+    ComputeInstancesSimulateMaintenanceEventResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSimulateMaintenanceEvent (..),
+    newComputeInstancesSimulateMaintenanceEvent,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.simulateMaintenanceEvent@ method which the
+-- 'ComputeInstancesSimulateMaintenanceEvent' request conforms to.
+type ComputeInstancesSimulateMaintenanceEventResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "simulateMaintenanceEvent"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "withExtendedNotifications" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.
+--
+-- /See:/ 'newComputeInstancesSimulateMaintenanceEvent' smart constructor.
+data ComputeInstancesSimulateMaintenanceEvent = ComputeInstancesSimulateMaintenanceEvent
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Determines whether the customers receive notifications before migration. Only applicable to SF vms.
+    withExtendedNotifications :: (Core.Maybe Core.Bool),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSimulateMaintenanceEvent' with the minimum fields required to make a request.
+newComputeInstancesSimulateMaintenanceEvent ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSimulateMaintenanceEvent
+newComputeInstancesSimulateMaintenanceEvent instance' project zone =
+  ComputeInstancesSimulateMaintenanceEvent
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      withExtendedNotifications = Core.Nothing,
+      zone = zone
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeInstancesSimulateMaintenanceEvent
+  where
+  type Rs ComputeInstancesSimulateMaintenanceEvent = Operation
+  type
+    Scopes ComputeInstancesSimulateMaintenanceEvent =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSimulateMaintenanceEvent {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      withExtendedNotifications
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesSimulateMaintenanceEventResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Start.hs b/gen/Gogol/Compute/Instances/Start.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Start.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Start
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.start@.
+module Gogol.Compute.Instances.Start
+  ( -- * Resource
+    ComputeInstancesStartResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesStart (..),
+    newComputeInstancesStart,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.start@ method which the
+-- 'ComputeInstancesStart' request conforms to.
+type ComputeInstancesStartResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "start"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.
+--
+-- /See:/ 'newComputeInstancesStart' smart constructor.
+data ComputeInstancesStart = ComputeInstancesStart
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to start.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesStart' with the minimum fields required to make a request.
+newComputeInstancesStart ::
+  -- |  Name of the instance resource to start. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesStart
+newComputeInstancesStart instance' project zone =
+  ComputeInstancesStart
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesStart where
+  type Rs ComputeInstancesStart = Operation
+  type
+    Scopes ComputeInstancesStart =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesStart {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesStartResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/StartWithEncryptionKey.hs b/gen/Gogol/Compute/Instances/StartWithEncryptionKey.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/StartWithEncryptionKey.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.StartWithEncryptionKey
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.startWithEncryptionKey@.
+module Gogol.Compute.Instances.StartWithEncryptionKey
+  ( -- * Resource
+    ComputeInstancesStartWithEncryptionKeyResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesStartWithEncryptionKey (..),
+    newComputeInstancesStartWithEncryptionKey,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.startWithEncryptionKey@ method which the
+-- 'ComputeInstancesStartWithEncryptionKey' request conforms to.
+type ComputeInstancesStartWithEncryptionKeyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "startWithEncryptionKey"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              InstancesStartWithEncryptionKeyRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.
+--
+-- /See:/ 'newComputeInstancesStartWithEncryptionKey' smart constructor.
+data ComputeInstancesStartWithEncryptionKey = ComputeInstancesStartWithEncryptionKey
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to start.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstancesStartWithEncryptionKeyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesStartWithEncryptionKey' with the minimum fields required to make a request.
+newComputeInstancesStartWithEncryptionKey ::
+  -- |  Name of the instance resource to start. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstancesStartWithEncryptionKeyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesStartWithEncryptionKey
+newComputeInstancesStartWithEncryptionKey
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesStartWithEncryptionKey
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesStartWithEncryptionKey where
+  type Rs ComputeInstancesStartWithEncryptionKey = Operation
+  type
+    Scopes ComputeInstancesStartWithEncryptionKey =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesStartWithEncryptionKey {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesStartWithEncryptionKeyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Stop.hs b/gen/Gogol/Compute/Instances/Stop.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Stop.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Stop
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.stop@.
+module Gogol.Compute.Instances.Stop
+  ( -- * Resource
+    ComputeInstancesStopResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesStop (..),
+    newComputeInstancesStop,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.stop@ method which the
+-- 'ComputeInstancesStop' request conforms to.
+type ComputeInstancesStopResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "stop"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "discardLocalSsd" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Stops a running instance, shutting it down cleanly, and allows you to restart the instance at a later time. Stopped instances do not incur VM usage charges while they are stopped. However, resources that the VM is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted. For more information, see Stopping an instance.
+--
+-- /See:/ 'newComputeInstancesStop' smart constructor.
+data ComputeInstancesStop = ComputeInstancesStop
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.
+    discardLocalSsd :: (Core.Maybe Core.Bool),
+    -- | Name of the instance resource to stop.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesStop' with the minimum fields required to make a request.
+newComputeInstancesStop ::
+  -- |  Name of the instance resource to stop. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesStop
+newComputeInstancesStop instance' project zone =
+  ComputeInstancesStop
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      discardLocalSsd = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesStop where
+  type Rs ComputeInstancesStop = Operation
+  type
+    Scopes ComputeInstancesStop =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesStop {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      discardLocalSsd
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesStopResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Suspend.hs b/gen/Gogol/Compute/Instances/Suspend.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Suspend.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Suspend
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances have no compute costs (cores or RAM), and incur only storage charges for the saved VM memory and localSSD data. Any charged resources the virtual machine was using, such as persistent disks and static IP addresses, will continue to be charged while the instance is suspended. For more information, see Suspending and resuming an instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.suspend@.
+module Gogol.Compute.Instances.Suspend
+  ( -- * Resource
+    ComputeInstancesSuspendResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesSuspend (..),
+    newComputeInstancesSuspend,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.suspend@ method which the
+-- 'ComputeInstancesSuspend' request conforms to.
+type ComputeInstancesSuspendResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "suspend"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "discardLocalSsd" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances have no compute costs (cores or RAM), and incur only storage charges for the saved VM memory and localSSD data. Any charged resources the virtual machine was using, such as persistent disks and static IP addresses, will continue to be charged while the instance is suspended. For more information, see Suspending and resuming an instance.
+--
+-- /See:/ 'newComputeInstancesSuspend' smart constructor.
+data ComputeInstancesSuspend = ComputeInstancesSuspend
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.
+    discardLocalSsd :: (Core.Maybe Core.Bool),
+    -- | Name of the instance resource to suspend.
+    instance' :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesSuspend' with the minimum fields required to make a request.
+newComputeInstancesSuspend ::
+  -- |  Name of the instance resource to suspend. See 'instance''.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesSuspend
+newComputeInstancesSuspend instance' project zone =
+  ComputeInstancesSuspend
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      discardLocalSsd = Core.Nothing,
+      instance' = instance',
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesSuspend where
+  type Rs ComputeInstancesSuspend = Operation
+  type
+    Scopes ComputeInstancesSuspend =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesSuspend {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      discardLocalSsd
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesSuspendResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/TestIamPermissions.hs b/gen/Gogol/Compute/Instances/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/TestIamPermissions.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.testIamPermissions@.
+module Gogol.Compute.Instances.TestIamPermissions
+  ( -- * Resource
+    ComputeInstancesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesTestIamPermissions (..),
+    newComputeInstancesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.testIamPermissions@ method which the
+-- 'ComputeInstancesTestIamPermissions' request conforms to.
+type ComputeInstancesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeInstancesTestIamPermissions' smart constructor.
+data ComputeInstancesTestIamPermissions = ComputeInstancesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesTestIamPermissions' with the minimum fields required to make a request.
+newComputeInstancesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesTestIamPermissions
+newComputeInstancesTestIamPermissions payload project resource zone =
+  ComputeInstancesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesTestIamPermissions where
+  type
+    Rs ComputeInstancesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeInstancesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstancesTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/Update.hs b/gen/Gogol/Compute/Instances/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/Update.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See Updating a running instance for a list of updatable instance properties.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.update@.
+module Gogol.Compute.Instances.Update
+  ( -- * Resource
+    ComputeInstancesUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesUpdate (..),
+    newComputeInstancesUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.update@ method which the
+-- 'ComputeInstancesUpdate' request conforms to.
+type ComputeInstancesUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "minimalAction" InstancesUpdateMinimalAction
+    Core.:> Core.QueryParam
+              "mostDisruptiveAllowedAction"
+              InstancesUpdateMostDisruptiveAllowedAction
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Instance
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates an instance only if the necessary resources are available. This method can update only a specific set of instance properties. See Updating a running instance for a list of updatable instance properties.
+--
+-- /See:/ 'newComputeInstancesUpdate' smart constructor.
+data ComputeInstancesUpdate = ComputeInstancesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance resource to update.
+    instance' :: Core.Text,
+    -- | Specifies the action to take when updating an instance even if the updated properties do not require it. If not specified, then Compute Engine acts based on the minimum action that the updated properties require.
+    minimalAction :: (Core.Maybe InstancesUpdateMinimalAction),
+    -- | Specifies the most disruptive action that can be taken on the instance as part of the update. Compute Engine returns an error if the instance properties require a more disruptive action as part of the instance update. Valid options from lowest to highest are NO_EFFECT, REFRESH, and RESTART.
+    mostDisruptiveAllowedAction :: (Core.Maybe InstancesUpdateMostDisruptiveAllowedAction),
+    -- | Multipart request metadata.
+    payload :: Instance,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesUpdate' with the minimum fields required to make a request.
+newComputeInstancesUpdate ::
+  -- |  Name of the instance resource to update. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Instance ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesUpdate
+newComputeInstancesUpdate instance' payload project zone =
+  ComputeInstancesUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instance' = instance',
+      minimalAction = Core.Nothing,
+      mostDisruptiveAllowedAction = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstancesUpdate where
+  type Rs ComputeInstancesUpdate = Operation
+  type
+    Scopes ComputeInstancesUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesUpdate {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      minimalAction
+      mostDisruptiveAllowedAction
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstancesUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/UpdateAccessConfig.hs b/gen/Gogol/Compute/Instances/UpdateAccessConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/UpdateAccessConfig.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.UpdateAccessConfig
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified access config from an instance\'s network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.updateAccessConfig@.
+module Gogol.Compute.Instances.UpdateAccessConfig
+  ( -- * Resource
+    ComputeInstancesUpdateAccessConfigResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesUpdateAccessConfig (..),
+    newComputeInstancesUpdateAccessConfig,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.updateAccessConfig@ method which the
+-- 'ComputeInstancesUpdateAccessConfig' request conforms to.
+type ComputeInstancesUpdateAccessConfigResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "updateAccessConfig"
+    Core.:> Core.QueryParam "networkInterface" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] AccessConfig
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Updates the specified access config from an instance\'s network interface with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInstancesUpdateAccessConfig' smart constructor.
+data ComputeInstancesUpdateAccessConfig = ComputeInstancesUpdateAccessConfig
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | The name of the network interface where the access config is attached.
+    networkInterface :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: AccessConfig,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesUpdateAccessConfig' with the minimum fields required to make a request.
+newComputeInstancesUpdateAccessConfig ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  The name of the network interface where the access config is attached. See 'networkInterface'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  AccessConfig ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesUpdateAccessConfig
+newComputeInstancesUpdateAccessConfig
+  instance'
+  networkInterface
+  payload
+  project
+  zone =
+    ComputeInstancesUpdateAccessConfig
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        networkInterface = networkInterface,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesUpdateAccessConfig where
+  type Rs ComputeInstancesUpdateAccessConfig = Operation
+  type
+    Scopes ComputeInstancesUpdateAccessConfig =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesUpdateAccessConfig {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just networkInterface)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesUpdateAccessConfigResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/UpdateDisplayDevice.hs b/gen/Gogol/Compute/Instances/UpdateDisplayDevice.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/UpdateDisplayDevice.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.UpdateDisplayDevice
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.updateDisplayDevice@.
+module Gogol.Compute.Instances.UpdateDisplayDevice
+  ( -- * Resource
+    ComputeInstancesUpdateDisplayDeviceResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesUpdateDisplayDevice (..),
+    newComputeInstancesUpdateDisplayDevice,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.updateDisplayDevice@ method which the
+-- 'ComputeInstancesUpdateDisplayDevice' request conforms to.
+type ComputeInstancesUpdateDisplayDeviceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "updateDisplayDevice"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisplayDevice
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the Display config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInstancesUpdateDisplayDevice' smart constructor.
+data ComputeInstancesUpdateDisplayDevice = ComputeInstancesUpdateDisplayDevice
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: DisplayDevice,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesUpdateDisplayDevice' with the minimum fields required to make a request.
+newComputeInstancesUpdateDisplayDevice ::
+  -- |  Name of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  DisplayDevice ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesUpdateDisplayDevice
+newComputeInstancesUpdateDisplayDevice
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesUpdateDisplayDevice
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesUpdateDisplayDevice where
+  type Rs ComputeInstancesUpdateDisplayDevice = Operation
+  type
+    Scopes ComputeInstancesUpdateDisplayDevice =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesUpdateDisplayDevice {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesUpdateDisplayDeviceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/UpdateNetworkInterface.hs b/gen/Gogol/Compute/Instances/UpdateNetworkInterface.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/UpdateNetworkInterface.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.UpdateNetworkInterface
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an instance\'s network interface. This method can only update an interface\'s alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.updateNetworkInterface@.
+module Gogol.Compute.Instances.UpdateNetworkInterface
+  ( -- * Resource
+    ComputeInstancesUpdateNetworkInterfaceResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesUpdateNetworkInterface (..),
+    newComputeInstancesUpdateNetworkInterface,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.updateNetworkInterface@ method which the
+-- 'ComputeInstancesUpdateNetworkInterface' request conforms to.
+type ComputeInstancesUpdateNetworkInterfaceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "updateNetworkInterface"
+    Core.:> Core.QueryParam "networkInterface" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkInterface
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates an instance\'s network interface. This method can only update an interface\'s alias IP range and attached network. See Modifying alias IP ranges for an existing instance for instructions on changing alias IP ranges. See Migrating a VM between networks for instructions on migrating an interface. This method follows PATCH semantics.
+--
+-- /See:/ 'newComputeInstancesUpdateNetworkInterface' smart constructor.
+data ComputeInstancesUpdateNetworkInterface = ComputeInstancesUpdateNetworkInterface
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The instance name for this request.
+    instance' :: Core.Text,
+    -- | The name of the network interface to update.
+    networkInterface :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworkInterface,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesUpdateNetworkInterface' with the minimum fields required to make a request.
+newComputeInstancesUpdateNetworkInterface ::
+  -- |  The instance name for this request. See 'instance''.
+  Core.Text ->
+  -- |  The name of the network interface to update. See 'networkInterface'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkInterface ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesUpdateNetworkInterface
+newComputeInstancesUpdateNetworkInterface
+  instance'
+  networkInterface
+  payload
+  project
+  zone =
+    ComputeInstancesUpdateNetworkInterface
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        networkInterface = networkInterface,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstancesUpdateNetworkInterface where
+  type Rs ComputeInstancesUpdateNetworkInterface = Operation
+  type
+    Scopes ComputeInstancesUpdateNetworkInterface =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesUpdateNetworkInterface {..} =
+    go
+      project
+      zone
+      instance'
+      (Core.Just networkInterface)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesUpdateNetworkInterfaceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Instances/UpdateShieldedInstanceConfig.hs b/gen/Gogol/Compute/Instances/UpdateShieldedInstanceConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Instances/UpdateShieldedInstanceConfig.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Instances.UpdateShieldedInstanceConfig
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instances.updateShieldedInstanceConfig@.
+module Gogol.Compute.Instances.UpdateShieldedInstanceConfig
+  ( -- * Resource
+    ComputeInstancesUpdateShieldedInstanceConfigResource,
+
+    -- ** Constructing a Request
+    ComputeInstancesUpdateShieldedInstanceConfig (..),
+    newComputeInstancesUpdateShieldedInstanceConfig,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instances.updateShieldedInstanceConfig@ method which the
+-- 'ComputeInstancesUpdateShieldedInstanceConfig' request conforms to.
+type ComputeInstancesUpdateShieldedInstanceConfigResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instances"
+    Core.:> Core.Capture "instance" Core.Text
+    Core.:> "updateShieldedInstanceConfig"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ShieldedInstanceConfig
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the Shielded Instance config for an instance. You can only use this method on a stopped instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInstancesUpdateShieldedInstanceConfig' smart constructor.
+data ComputeInstancesUpdateShieldedInstanceConfig = ComputeInstancesUpdateShieldedInstanceConfig
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name or id of the instance scoping this request.
+    instance' :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: ShieldedInstanceConfig,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstancesUpdateShieldedInstanceConfig' with the minimum fields required to make a request.
+newComputeInstancesUpdateShieldedInstanceConfig ::
+  -- |  Name or id of the instance scoping this request. See 'instance''.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ShieldedInstanceConfig ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstancesUpdateShieldedInstanceConfig
+newComputeInstancesUpdateShieldedInstanceConfig
+  instance'
+  payload
+  project
+  zone =
+    ComputeInstancesUpdateShieldedInstanceConfig
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instance' = instance',
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstancesUpdateShieldedInstanceConfig
+  where
+  type Rs ComputeInstancesUpdateShieldedInstanceConfig = Operation
+  type
+    Scopes ComputeInstancesUpdateShieldedInstanceConfig =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstancesUpdateShieldedInstanceConfig {..} =
+    go
+      project
+      zone
+      instance'
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstancesUpdateShieldedInstanceConfigResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/AggregatedList.hs b/gen/Gogol/Compute/InstantSnapshots/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.aggregatedList@.
+module Gogol.Compute.InstantSnapshots.AggregatedList
+  ( -- * Resource
+    ComputeInstantSnapshotsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsAggregatedList (..),
+    newComputeInstantSnapshotsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.aggregatedList@ method which the
+-- 'ComputeInstantSnapshotsAggregatedList' request conforms to.
+type ComputeInstantSnapshotsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "instantSnapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstantSnapshotAggregatedList
+
+-- | Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInstantSnapshotsAggregatedList' smart constructor.
+data ComputeInstantSnapshotsAggregatedList = ComputeInstantSnapshotsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsAggregatedList' with the minimum fields required to make a request.
+newComputeInstantSnapshotsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInstantSnapshotsAggregatedList
+newComputeInstantSnapshotsAggregatedList project =
+  ComputeInstantSnapshotsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsAggregatedList where
+  type
+    Rs ComputeInstantSnapshotsAggregatedList =
+      InstantSnapshotAggregatedList
+  type
+    Scopes ComputeInstantSnapshotsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstantSnapshotsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstantSnapshotsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/Delete.hs b/gen/Gogol/Compute/InstantSnapshots/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.delete@.
+module Gogol.Compute.InstantSnapshots.Delete
+  ( -- * Resource
+    ComputeInstantSnapshotsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsDelete (..),
+    newComputeInstantSnapshotsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.delete@ method which the
+-- 'ComputeInstantSnapshotsDelete' request conforms to.
+type ComputeInstantSnapshotsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "instantSnapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.
+--
+-- /See:/ 'newComputeInstantSnapshotsDelete' smart constructor.
+data ComputeInstantSnapshotsDelete = ComputeInstantSnapshotsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the InstantSnapshot resource to delete.
+    instantSnapshot :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsDelete' with the minimum fields required to make a request.
+newComputeInstantSnapshotsDelete ::
+  -- |  Name of the InstantSnapshot resource to delete. See 'instantSnapshot'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsDelete
+newComputeInstantSnapshotsDelete instantSnapshot project zone =
+  ComputeInstantSnapshotsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instantSnapshot = instantSnapshot,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsDelete where
+  type Rs ComputeInstantSnapshotsDelete = Operation
+  type
+    Scopes ComputeInstantSnapshotsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstantSnapshotsDelete {..} =
+    go
+      project
+      zone
+      instantSnapshot
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstantSnapshotsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/Get.hs b/gen/Gogol/Compute/InstantSnapshots/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified InstantSnapshot resource in the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.get@.
+module Gogol.Compute.InstantSnapshots.Get
+  ( -- * Resource
+    ComputeInstantSnapshotsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsGet (..),
+    newComputeInstantSnapshotsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.get@ method which the
+-- 'ComputeInstantSnapshotsGet' request conforms to.
+type ComputeInstantSnapshotsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "instantSnapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstantSnapshot
+
+-- | Returns the specified InstantSnapshot resource in the specified zone.
+--
+-- /See:/ 'newComputeInstantSnapshotsGet' smart constructor.
+data ComputeInstantSnapshotsGet = ComputeInstantSnapshotsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the InstantSnapshot resource to return.
+    instantSnapshot :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsGet' with the minimum fields required to make a request.
+newComputeInstantSnapshotsGet ::
+  -- |  Name of the InstantSnapshot resource to return. See 'instantSnapshot'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsGet
+newComputeInstantSnapshotsGet instantSnapshot project zone =
+  ComputeInstantSnapshotsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instantSnapshot = instantSnapshot,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsGet where
+  type Rs ComputeInstantSnapshotsGet = InstantSnapshot
+  type
+    Scopes ComputeInstantSnapshotsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstantSnapshotsGet {..} =
+    go
+      project
+      zone
+      instantSnapshot
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstantSnapshotsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/GetIamPolicy.hs b/gen/Gogol/Compute/InstantSnapshots/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/GetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.getIamPolicy@.
+module Gogol.Compute.InstantSnapshots.GetIamPolicy
+  ( -- * Resource
+    ComputeInstantSnapshotsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsGetIamPolicy (..),
+    newComputeInstantSnapshotsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.getIamPolicy@ method which the
+-- 'ComputeInstantSnapshotsGetIamPolicy' request conforms to.
+type ComputeInstantSnapshotsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeInstantSnapshotsGetIamPolicy' smart constructor.
+data ComputeInstantSnapshotsGetIamPolicy = ComputeInstantSnapshotsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsGetIamPolicy' with the minimum fields required to make a request.
+newComputeInstantSnapshotsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsGetIamPolicy
+newComputeInstantSnapshotsGetIamPolicy project resource zone =
+  ComputeInstantSnapshotsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsGetIamPolicy where
+  type Rs ComputeInstantSnapshotsGetIamPolicy = Policy
+  type
+    Scopes ComputeInstantSnapshotsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstantSnapshotsGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstantSnapshotsGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/Insert.hs b/gen/Gogol/Compute/InstantSnapshots/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instant snapshot in the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.insert@.
+module Gogol.Compute.InstantSnapshots.Insert
+  ( -- * Resource
+    ComputeInstantSnapshotsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsInsert (..),
+    newComputeInstantSnapshotsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.insert@ method which the
+-- 'ComputeInstantSnapshotsInsert' request conforms to.
+type ComputeInstantSnapshotsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstantSnapshot
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instant snapshot in the specified zone.
+--
+-- /See:/ 'newComputeInstantSnapshotsInsert' smart constructor.
+data ComputeInstantSnapshotsInsert = ComputeInstantSnapshotsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstantSnapshot,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsInsert' with the minimum fields required to make a request.
+newComputeInstantSnapshotsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstantSnapshot ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsInsert
+newComputeInstantSnapshotsInsert payload project zone =
+  ComputeInstantSnapshotsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsInsert where
+  type Rs ComputeInstantSnapshotsInsert = Operation
+  type
+    Scopes ComputeInstantSnapshotsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstantSnapshotsInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstantSnapshotsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/List.hs b/gen/Gogol/Compute/InstantSnapshots/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of InstantSnapshot resources contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.list@.
+module Gogol.Compute.InstantSnapshots.List
+  ( -- * Resource
+    ComputeInstantSnapshotsListResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsList (..),
+    newComputeInstantSnapshotsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.list@ method which the
+-- 'ComputeInstantSnapshotsList' request conforms to.
+type ComputeInstantSnapshotsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstantSnapshotList
+
+-- | Retrieves the list of InstantSnapshot resources contained within the specified zone.
+--
+-- /See:/ 'newComputeInstantSnapshotsList' smart constructor.
+data ComputeInstantSnapshotsList = ComputeInstantSnapshotsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsList' with the minimum fields required to make a request.
+newComputeInstantSnapshotsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsList
+newComputeInstantSnapshotsList project zone =
+  ComputeInstantSnapshotsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsList where
+  type Rs ComputeInstantSnapshotsList = InstantSnapshotList
+  type
+    Scopes ComputeInstantSnapshotsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstantSnapshotsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstantSnapshotsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/SetIamPolicy.hs b/gen/Gogol/Compute/InstantSnapshots/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/SetIamPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.setIamPolicy@.
+module Gogol.Compute.InstantSnapshots.SetIamPolicy
+  ( -- * Resource
+    ComputeInstantSnapshotsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsSetIamPolicy (..),
+    newComputeInstantSnapshotsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.setIamPolicy@ method which the
+-- 'ComputeInstantSnapshotsSetIamPolicy' request conforms to.
+type ComputeInstantSnapshotsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeInstantSnapshotsSetIamPolicy' smart constructor.
+data ComputeInstantSnapshotsSetIamPolicy = ComputeInstantSnapshotsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsSetIamPolicy' with the minimum fields required to make a request.
+newComputeInstantSnapshotsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsSetIamPolicy
+newComputeInstantSnapshotsSetIamPolicy
+  payload
+  project
+  resource
+  zone =
+    ComputeInstantSnapshotsSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsSetIamPolicy where
+  type Rs ComputeInstantSnapshotsSetIamPolicy = Policy
+  type
+    Scopes ComputeInstantSnapshotsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstantSnapshotsSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstantSnapshotsSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/SetLabels.hs b/gen/Gogol/Compute/InstantSnapshots/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.setLabels@.
+module Gogol.Compute.InstantSnapshots.SetLabels
+  ( -- * Resource
+    ComputeInstantSnapshotsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsSetLabels (..),
+    newComputeInstantSnapshotsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.setLabels@ method which the
+-- 'ComputeInstantSnapshotsSetLabels' request conforms to.
+type ComputeInstantSnapshotsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeInstantSnapshotsSetLabels' smart constructor.
+data ComputeInstantSnapshotsSetLabels = ComputeInstantSnapshotsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsSetLabels' with the minimum fields required to make a request.
+newComputeInstantSnapshotsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsSetLabels
+newComputeInstantSnapshotsSetLabels payload project resource zone =
+  ComputeInstantSnapshotsSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeInstantSnapshotsSetLabels where
+  type Rs ComputeInstantSnapshotsSetLabels = Operation
+  type
+    Scopes ComputeInstantSnapshotsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInstantSnapshotsSetLabels {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInstantSnapshotsSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InstantSnapshots/TestIamPermissions.hs b/gen/Gogol/Compute/InstantSnapshots/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InstantSnapshots/TestIamPermissions.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InstantSnapshots.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.instantSnapshots.testIamPermissions@.
+module Gogol.Compute.InstantSnapshots.TestIamPermissions
+  ( -- * Resource
+    ComputeInstantSnapshotsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeInstantSnapshotsTestIamPermissions (..),
+    newComputeInstantSnapshotsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.instantSnapshots.testIamPermissions@ method which the
+-- 'ComputeInstantSnapshotsTestIamPermissions' request conforms to.
+type ComputeInstantSnapshotsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeInstantSnapshotsTestIamPermissions' smart constructor.
+data ComputeInstantSnapshotsTestIamPermissions = ComputeInstantSnapshotsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInstantSnapshotsTestIamPermissions' with the minimum fields required to make a request.
+newComputeInstantSnapshotsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeInstantSnapshotsTestIamPermissions
+newComputeInstantSnapshotsTestIamPermissions
+  payload
+  project
+  resource
+  zone =
+    ComputeInstantSnapshotsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeInstantSnapshotsTestIamPermissions
+  where
+  type
+    Rs ComputeInstantSnapshotsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeInstantSnapshotsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInstantSnapshotsTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInstantSnapshotsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/AggregatedList.hs b/gen/Gogol/Compute/InterconnectAttachments/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/AggregatedList.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.aggregatedList@.
+module Gogol.Compute.InterconnectAttachments.AggregatedList
+  ( -- * Resource
+    ComputeInterconnectAttachmentsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsAggregatedList (..),
+    newComputeInterconnectAttachmentsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.aggregatedList@ method which the
+-- 'ComputeInterconnectAttachmentsAggregatedList' request conforms to.
+type ComputeInterconnectAttachmentsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "interconnectAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              InterconnectAttachmentAggregatedList
+
+-- | Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsAggregatedList' smart constructor.
+data ComputeInterconnectAttachmentsAggregatedList = ComputeInterconnectAttachmentsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsAggregatedList' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsAggregatedList
+newComputeInterconnectAttachmentsAggregatedList project =
+  ComputeInterconnectAttachmentsAggregatedList
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeInterconnectAttachmentsAggregatedList
+  where
+  type
+    Rs ComputeInterconnectAttachmentsAggregatedList =
+      InterconnectAttachmentAggregatedList
+  type
+    Scopes ComputeInterconnectAttachmentsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectAttachmentsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/Delete.hs b/gen/Gogol/Compute/InterconnectAttachments/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified interconnect attachment.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.delete@.
+module Gogol.Compute.InterconnectAttachments.Delete
+  ( -- * Resource
+    ComputeInterconnectAttachmentsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsDelete (..),
+    newComputeInterconnectAttachmentsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.delete@ method which the
+-- 'ComputeInterconnectAttachmentsDelete' request conforms to.
+type ComputeInterconnectAttachmentsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.Capture "interconnectAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified interconnect attachment.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsDelete' smart constructor.
+data ComputeInterconnectAttachmentsDelete = ComputeInterconnectAttachmentsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect attachment to delete.
+    interconnectAttachment :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsDelete' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsDelete ::
+  -- |  Name of the interconnect attachment to delete. See 'interconnectAttachment'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsDelete
+newComputeInterconnectAttachmentsDelete
+  interconnectAttachment
+  project
+  region =
+    ComputeInterconnectAttachmentsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        interconnectAttachment = interconnectAttachment,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsDelete where
+  type Rs ComputeInterconnectAttachmentsDelete = Operation
+  type
+    Scopes ComputeInterconnectAttachmentsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectAttachmentsDelete {..} =
+    go
+      project
+      region
+      interconnectAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/Get.hs b/gen/Gogol/Compute/InterconnectAttachments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified interconnect attachment.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.get@.
+module Gogol.Compute.InterconnectAttachments.Get
+  ( -- * Resource
+    ComputeInterconnectAttachmentsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsGet (..),
+    newComputeInterconnectAttachmentsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.get@ method which the
+-- 'ComputeInterconnectAttachmentsGet' request conforms to.
+type ComputeInterconnectAttachmentsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.Capture "interconnectAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectAttachment
+
+-- | Returns the specified interconnect attachment.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsGet' smart constructor.
+data ComputeInterconnectAttachmentsGet = ComputeInterconnectAttachmentsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect attachment to return.
+    interconnectAttachment :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsGet' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsGet ::
+  -- |  Name of the interconnect attachment to return. See 'interconnectAttachment'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsGet
+newComputeInterconnectAttachmentsGet
+  interconnectAttachment
+  project
+  region =
+    ComputeInterconnectAttachmentsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        interconnectAttachment = interconnectAttachment,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsGet where
+  type Rs ComputeInterconnectAttachmentsGet = InterconnectAttachment
+  type
+    Scopes ComputeInterconnectAttachmentsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectAttachmentsGet {..} =
+    go
+      project
+      region
+      interconnectAttachment
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/Insert.hs b/gen/Gogol/Compute/InterconnectAttachments/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/Insert.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an InterconnectAttachment in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.insert@.
+module Gogol.Compute.InterconnectAttachments.Insert
+  ( -- * Resource
+    ComputeInterconnectAttachmentsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsInsert (..),
+    newComputeInterconnectAttachmentsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.insert@ method which the
+-- 'ComputeInterconnectAttachmentsInsert' request conforms to.
+type ComputeInterconnectAttachmentsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InterconnectAttachment
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an InterconnectAttachment in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsInsert' smart constructor.
+data ComputeInterconnectAttachmentsInsert = ComputeInterconnectAttachmentsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InterconnectAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsInsert' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InterconnectAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsInsert
+newComputeInterconnectAttachmentsInsert payload project region =
+  ComputeInterconnectAttachmentsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsInsert where
+  type Rs ComputeInterconnectAttachmentsInsert = Operation
+  type
+    Scopes ComputeInterconnectAttachmentsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectAttachmentsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/List.hs b/gen/Gogol/Compute/InterconnectAttachments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of interconnect attachments contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.list@.
+module Gogol.Compute.InterconnectAttachments.List
+  ( -- * Resource
+    ComputeInterconnectAttachmentsListResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsList (..),
+    newComputeInterconnectAttachmentsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.list@ method which the
+-- 'ComputeInterconnectAttachmentsList' request conforms to.
+type ComputeInterconnectAttachmentsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectAttachmentList
+
+-- | Retrieves the list of interconnect attachments contained within the specified region.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsList' smart constructor.
+data ComputeInterconnectAttachmentsList = ComputeInterconnectAttachmentsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsList' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsList
+newComputeInterconnectAttachmentsList project region =
+  ComputeInterconnectAttachmentsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsList where
+  type
+    Rs ComputeInterconnectAttachmentsList =
+      InterconnectAttachmentList
+  type
+    Scopes ComputeInterconnectAttachmentsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectAttachmentsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/Patch.hs b/gen/Gogol/Compute/InterconnectAttachments/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.patch@.
+module Gogol.Compute.InterconnectAttachments.Patch
+  ( -- * Resource
+    ComputeInterconnectAttachmentsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsPatch (..),
+    newComputeInterconnectAttachmentsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.patch@ method which the
+-- 'ComputeInterconnectAttachmentsPatch' request conforms to.
+type ComputeInterconnectAttachmentsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.Capture "interconnectAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InterconnectAttachment
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsPatch' smart constructor.
+data ComputeInterconnectAttachmentsPatch = ComputeInterconnectAttachmentsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect attachment to patch.
+    interconnectAttachment :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InterconnectAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsPatch' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsPatch ::
+  -- |  Name of the interconnect attachment to patch. See 'interconnectAttachment'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InterconnectAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsPatch
+newComputeInterconnectAttachmentsPatch
+  interconnectAttachment
+  payload
+  project
+  region =
+    ComputeInterconnectAttachmentsPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        interconnectAttachment = interconnectAttachment,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsPatch where
+  type Rs ComputeInterconnectAttachmentsPatch = Operation
+  type
+    Scopes ComputeInterconnectAttachmentsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectAttachmentsPatch {..} =
+    go
+      project
+      region
+      interconnectAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectAttachments/SetLabels.hs b/gen/Gogol/Compute/InterconnectAttachments/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectAttachments/SetLabels.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectAttachments.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectAttachments.setLabels@.
+module Gogol.Compute.InterconnectAttachments.SetLabels
+  ( -- * Resource
+    ComputeInterconnectAttachmentsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectAttachmentsSetLabels (..),
+    newComputeInterconnectAttachmentsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectAttachments.setLabels@ method which the
+-- 'ComputeInterconnectAttachmentsSetLabels' request conforms to.
+type ComputeInterconnectAttachmentsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "interconnectAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeInterconnectAttachmentsSetLabels' smart constructor.
+data ComputeInterconnectAttachmentsSetLabels = ComputeInterconnectAttachmentsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectAttachmentsSetLabels' with the minimum fields required to make a request.
+newComputeInterconnectAttachmentsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeInterconnectAttachmentsSetLabels
+newComputeInterconnectAttachmentsSetLabels
+  payload
+  project
+  region
+  resource =
+    ComputeInterconnectAttachmentsSetLabels
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeInterconnectAttachmentsSetLabels where
+  type Rs ComputeInterconnectAttachmentsSetLabels = Operation
+  type
+    Scopes ComputeInterconnectAttachmentsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectAttachmentsSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectAttachmentsSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectLocations/Get.hs b/gen/Gogol/Compute/InterconnectLocations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectLocations/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectLocations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectLocations.get@.
+module Gogol.Compute.InterconnectLocations.Get
+  ( -- * Resource
+    ComputeInterconnectLocationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectLocationsGet (..),
+    newComputeInterconnectLocationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectLocations.get@ method which the
+-- 'ComputeInterconnectLocationsGet' request conforms to.
+type ComputeInterconnectLocationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnectLocations"
+    Core.:> Core.Capture "interconnectLocation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectLocation
+
+-- | Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.
+--
+-- /See:/ 'newComputeInterconnectLocationsGet' smart constructor.
+data ComputeInterconnectLocationsGet = ComputeInterconnectLocationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect location to return.
+    interconnectLocation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectLocationsGet' with the minimum fields required to make a request.
+newComputeInterconnectLocationsGet ::
+  -- |  Name of the interconnect location to return. See 'interconnectLocation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectLocationsGet
+newComputeInterconnectLocationsGet interconnectLocation project =
+  ComputeInterconnectLocationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnectLocation = interconnectLocation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectLocationsGet where
+  type Rs ComputeInterconnectLocationsGet = InterconnectLocation
+  type
+    Scopes ComputeInterconnectLocationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectLocationsGet {..} =
+    go
+      project
+      interconnectLocation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectLocationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectLocations/List.hs b/gen/Gogol/Compute/InterconnectLocations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectLocations/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectLocations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of interconnect locations available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectLocations.list@.
+module Gogol.Compute.InterconnectLocations.List
+  ( -- * Resource
+    ComputeInterconnectLocationsListResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectLocationsList (..),
+    newComputeInterconnectLocationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectLocations.list@ method which the
+-- 'ComputeInterconnectLocationsList' request conforms to.
+type ComputeInterconnectLocationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnectLocations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectLocationList
+
+-- | Retrieves the list of interconnect locations available to the specified project.
+--
+-- /See:/ 'newComputeInterconnectLocationsList' smart constructor.
+data ComputeInterconnectLocationsList = ComputeInterconnectLocationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectLocationsList' with the minimum fields required to make a request.
+newComputeInterconnectLocationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectLocationsList
+newComputeInterconnectLocationsList project =
+  ComputeInterconnectLocationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectLocationsList where
+  type Rs ComputeInterconnectLocationsList = InterconnectLocationList
+  type
+    Scopes ComputeInterconnectLocationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectLocationsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectLocationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectRemoteLocations/Get.hs b/gen/Gogol/Compute/InterconnectRemoteLocations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectRemoteLocations/Get.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectRemoteLocations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectRemoteLocations.get@.
+module Gogol.Compute.InterconnectRemoteLocations.Get
+  ( -- * Resource
+    ComputeInterconnectRemoteLocationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectRemoteLocationsGet (..),
+    newComputeInterconnectRemoteLocationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectRemoteLocations.get@ method which the
+-- 'ComputeInterconnectRemoteLocationsGet' request conforms to.
+type ComputeInterconnectRemoteLocationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnectRemoteLocations"
+    Core.:> Core.Capture "interconnectRemoteLocation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectRemoteLocation
+
+-- | Returns the details for the specified interconnect remote location. Gets a list of available interconnect remote locations by making a list() request.
+--
+-- /See:/ 'newComputeInterconnectRemoteLocationsGet' smart constructor.
+data ComputeInterconnectRemoteLocationsGet = ComputeInterconnectRemoteLocationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect remote location to return.
+    interconnectRemoteLocation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectRemoteLocationsGet' with the minimum fields required to make a request.
+newComputeInterconnectRemoteLocationsGet ::
+  -- |  Name of the interconnect remote location to return. See 'interconnectRemoteLocation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectRemoteLocationsGet
+newComputeInterconnectRemoteLocationsGet
+  interconnectRemoteLocation
+  project =
+    ComputeInterconnectRemoteLocationsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        interconnectRemoteLocation = interconnectRemoteLocation,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeInterconnectRemoteLocationsGet where
+  type
+    Rs ComputeInterconnectRemoteLocationsGet =
+      InterconnectRemoteLocation
+  type
+    Scopes ComputeInterconnectRemoteLocationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectRemoteLocationsGet {..} =
+    go
+      project
+      interconnectRemoteLocation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectRemoteLocationsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/InterconnectRemoteLocations/List.hs b/gen/Gogol/Compute/InterconnectRemoteLocations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/InterconnectRemoteLocations/List.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.InterconnectRemoteLocations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of interconnect remote locations available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnectRemoteLocations.list@.
+module Gogol.Compute.InterconnectRemoteLocations.List
+  ( -- * Resource
+    ComputeInterconnectRemoteLocationsListResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectRemoteLocationsList (..),
+    newComputeInterconnectRemoteLocationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnectRemoteLocations.list@ method which the
+-- 'ComputeInterconnectRemoteLocationsList' request conforms to.
+type ComputeInterconnectRemoteLocationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnectRemoteLocations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectRemoteLocationList
+
+-- | Retrieves the list of interconnect remote locations available to the specified project.
+--
+-- /See:/ 'newComputeInterconnectRemoteLocationsList' smart constructor.
+data ComputeInterconnectRemoteLocationsList = ComputeInterconnectRemoteLocationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectRemoteLocationsList' with the minimum fields required to make a request.
+newComputeInterconnectRemoteLocationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectRemoteLocationsList
+newComputeInterconnectRemoteLocationsList project =
+  ComputeInterconnectRemoteLocationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectRemoteLocationsList where
+  type
+    Rs ComputeInterconnectRemoteLocationsList =
+      InterconnectRemoteLocationList
+  type
+    Scopes ComputeInterconnectRemoteLocationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectRemoteLocationsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectRemoteLocationsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/Delete.hs b/gen/Gogol/Compute/Interconnects/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Interconnect.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.delete@.
+module Gogol.Compute.Interconnects.Delete
+  ( -- * Resource
+    ComputeInterconnectsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsDelete (..),
+    newComputeInterconnectsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.delete@ method which the
+-- 'ComputeInterconnectsDelete' request conforms to.
+type ComputeInterconnectsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "interconnect" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified Interconnect.
+--
+-- /See:/ 'newComputeInterconnectsDelete' smart constructor.
+data ComputeInterconnectsDelete = ComputeInterconnectsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect to delete.
+    interconnect :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsDelete' with the minimum fields required to make a request.
+newComputeInterconnectsDelete ::
+  -- |  Name of the interconnect to delete. See 'interconnect'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsDelete
+newComputeInterconnectsDelete interconnect project =
+  ComputeInterconnectsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnect = interconnect,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsDelete where
+  type Rs ComputeInterconnectsDelete = Operation
+  type
+    Scopes ComputeInterconnectsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectsDelete {..} =
+    go
+      project
+      interconnect
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/Get.hs b/gen/Gogol/Compute/Interconnects/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.get@.
+module Gogol.Compute.Interconnects.Get
+  ( -- * Resource
+    ComputeInterconnectsGetResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsGet (..),
+    newComputeInterconnectsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.get@ method which the
+-- 'ComputeInterconnectsGet' request conforms to.
+type ComputeInterconnectsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "interconnect" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Interconnect
+
+-- | Returns the specified Interconnect. Get a list of available Interconnects by making a list() request.
+--
+-- /See:/ 'newComputeInterconnectsGet' smart constructor.
+data ComputeInterconnectsGet = ComputeInterconnectsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect to return.
+    interconnect :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsGet' with the minimum fields required to make a request.
+newComputeInterconnectsGet ::
+  -- |  Name of the interconnect to return. See 'interconnect'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsGet
+newComputeInterconnectsGet interconnect project =
+  ComputeInterconnectsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnect = interconnect,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsGet where
+  type Rs ComputeInterconnectsGet = Interconnect
+  type
+    Scopes ComputeInterconnectsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectsGet {..} =
+    go
+      project
+      interconnect
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/GetDiagnostics.hs b/gen/Gogol/Compute/Interconnects/GetDiagnostics.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/GetDiagnostics.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.GetDiagnostics
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.getDiagnostics@.
+module Gogol.Compute.Interconnects.GetDiagnostics
+  ( -- * Resource
+    ComputeInterconnectsGetDiagnosticsResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsGetDiagnostics (..),
+    newComputeInterconnectsGetDiagnostics,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.getDiagnostics@ method which the
+-- 'ComputeInterconnectsGetDiagnostics' request conforms to.
+type ComputeInterconnectsGetDiagnosticsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "interconnect" Core.Text
+    Core.:> "getDiagnostics"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectsGetDiagnosticsResponse
+
+-- | Returns the interconnectDiagnostics for the specified Interconnect. In the event of a global outage, do not use this API to make decisions about where to redirect your network traffic. Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.
+--
+-- /See:/ 'newComputeInterconnectsGetDiagnostics' smart constructor.
+data ComputeInterconnectsGetDiagnostics = ComputeInterconnectsGetDiagnostics
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect resource to query.
+    interconnect :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsGetDiagnostics' with the minimum fields required to make a request.
+newComputeInterconnectsGetDiagnostics ::
+  -- |  Name of the interconnect resource to query. See 'interconnect'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsGetDiagnostics
+newComputeInterconnectsGetDiagnostics interconnect project =
+  ComputeInterconnectsGetDiagnostics
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnect = interconnect,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsGetDiagnostics where
+  type
+    Rs ComputeInterconnectsGetDiagnostics =
+      InterconnectsGetDiagnosticsResponse
+  type
+    Scopes ComputeInterconnectsGetDiagnostics =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectsGetDiagnostics {..} =
+    go
+      project
+      interconnect
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectsGetDiagnosticsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/GetMacsecConfig.hs b/gen/Gogol/Compute/Interconnects/GetMacsecConfig.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/GetMacsecConfig.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.GetMacsecConfig
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the interconnectMacsecConfig for the specified Interconnect.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.getMacsecConfig@.
+module Gogol.Compute.Interconnects.GetMacsecConfig
+  ( -- * Resource
+    ComputeInterconnectsGetMacsecConfigResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsGetMacsecConfig (..),
+    newComputeInterconnectsGetMacsecConfig,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.getMacsecConfig@ method which the
+-- 'ComputeInterconnectsGetMacsecConfig' request conforms to.
+type ComputeInterconnectsGetMacsecConfigResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "interconnect" Core.Text
+    Core.:> "getMacsecConfig"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectsGetMacsecConfigResponse
+
+-- | Returns the interconnectMacsecConfig for the specified Interconnect.
+--
+-- /See:/ 'newComputeInterconnectsGetMacsecConfig' smart constructor.
+data ComputeInterconnectsGetMacsecConfig = ComputeInterconnectsGetMacsecConfig
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect resource to query.
+    interconnect :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsGetMacsecConfig' with the minimum fields required to make a request.
+newComputeInterconnectsGetMacsecConfig ::
+  -- |  Name of the interconnect resource to query. See 'interconnect'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsGetMacsecConfig
+newComputeInterconnectsGetMacsecConfig interconnect project =
+  ComputeInterconnectsGetMacsecConfig
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnect = interconnect,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsGetMacsecConfig where
+  type
+    Rs ComputeInterconnectsGetMacsecConfig =
+      InterconnectsGetMacsecConfigResponse
+  type
+    Scopes ComputeInterconnectsGetMacsecConfig =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectsGetMacsecConfig {..} =
+    go
+      project
+      interconnect
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeInterconnectsGetMacsecConfigResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/Insert.hs b/gen/Gogol/Compute/Interconnects/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an Interconnect in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.insert@.
+module Gogol.Compute.Interconnects.Insert
+  ( -- * Resource
+    ComputeInterconnectsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsInsert (..),
+    newComputeInterconnectsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.insert@ method which the
+-- 'ComputeInterconnectsInsert' request conforms to.
+type ComputeInterconnectsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Interconnect
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an Interconnect in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeInterconnectsInsert' smart constructor.
+data ComputeInterconnectsInsert = ComputeInterconnectsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Interconnect,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsInsert' with the minimum fields required to make a request.
+newComputeInterconnectsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Interconnect ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsInsert
+newComputeInterconnectsInsert payload project =
+  ComputeInterconnectsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsInsert where
+  type Rs ComputeInterconnectsInsert = Operation
+  type
+    Scopes ComputeInterconnectsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/List.hs b/gen/Gogol/Compute/Interconnects/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of Interconnects available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.list@.
+module Gogol.Compute.Interconnects.List
+  ( -- * Resource
+    ComputeInterconnectsListResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsList (..),
+    newComputeInterconnectsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.list@ method which the
+-- 'ComputeInterconnectsList' request conforms to.
+type ComputeInterconnectsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InterconnectList
+
+-- | Retrieves the list of Interconnects available to the specified project.
+--
+-- /See:/ 'newComputeInterconnectsList' smart constructor.
+data ComputeInterconnectsList = ComputeInterconnectsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsList' with the minimum fields required to make a request.
+newComputeInterconnectsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsList
+newComputeInterconnectsList project =
+  ComputeInterconnectsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsList where
+  type Rs ComputeInterconnectsList = InterconnectList
+  type
+    Scopes ComputeInterconnectsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeInterconnectsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/Patch.hs b/gen/Gogol/Compute/Interconnects/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.patch@.
+module Gogol.Compute.Interconnects.Patch
+  ( -- * Resource
+    ComputeInterconnectsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsPatch (..),
+    newComputeInterconnectsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.patch@ method which the
+-- 'ComputeInterconnectsPatch' request conforms to.
+type ComputeInterconnectsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "interconnect" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Interconnect
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified Interconnect with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeInterconnectsPatch' smart constructor.
+data ComputeInterconnectsPatch = ComputeInterconnectsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the interconnect to update.
+    interconnect :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Interconnect,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsPatch' with the minimum fields required to make a request.
+newComputeInterconnectsPatch ::
+  -- |  Name of the interconnect to update. See 'interconnect'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Interconnect ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeInterconnectsPatch
+newComputeInterconnectsPatch interconnect payload project =
+  ComputeInterconnectsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      interconnect = interconnect,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsPatch where
+  type Rs ComputeInterconnectsPatch = Operation
+  type
+    Scopes ComputeInterconnectsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectsPatch {..} =
+    go
+      project
+      interconnect
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Interconnects/SetLabels.hs b/gen/Gogol/Compute/Interconnects/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Interconnects/SetLabels.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Interconnects.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.interconnects.setLabels@.
+module Gogol.Compute.Interconnects.SetLabels
+  ( -- * Resource
+    ComputeInterconnectsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeInterconnectsSetLabels (..),
+    newComputeInterconnectsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.interconnects.setLabels@ method which the
+-- 'ComputeInterconnectsSetLabels' request conforms to.
+type ComputeInterconnectsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "interconnects"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeInterconnectsSetLabels' smart constructor.
+data ComputeInterconnectsSetLabels = ComputeInterconnectsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeInterconnectsSetLabels' with the minimum fields required to make a request.
+newComputeInterconnectsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeInterconnectsSetLabels
+newComputeInterconnectsSetLabels payload project resource =
+  ComputeInterconnectsSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeInterconnectsSetLabels where
+  type Rs ComputeInterconnectsSetLabels = Operation
+  type
+    Scopes ComputeInterconnectsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeInterconnectsSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeInterconnectsSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Internal/Product.hs b/gen/Gogol/Compute/Internal/Product.hs
new file mode 100644
# file too large to diff: gen/Gogol/Compute/Internal/Product.hs
diff --git a/gen/Gogol/Compute/Internal/Sum.hs b/gen/Gogol/Compute/Internal/Sum.hs
new file mode 100644
# file too large to diff: gen/Gogol/Compute/Internal/Sum.hs
diff --git a/gen/Gogol/Compute/LicenseCodes/Get.hs b/gen/Gogol/Compute/LicenseCodes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/LicenseCodes/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.LicenseCodes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenseCodes.get@.
+module Gogol.Compute.LicenseCodes.Get
+  ( -- * Resource
+    ComputeLicenseCodesGetResource,
+
+    -- ** Constructing a Request
+    ComputeLicenseCodesGet (..),
+    newComputeLicenseCodesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenseCodes.get@ method which the
+-- 'ComputeLicenseCodesGet' request conforms to.
+type ComputeLicenseCodesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenseCodes"
+    Core.:> Core.Capture "licenseCode" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] LicenseCode
+
+-- | Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicenseCodesGet' smart constructor.
+data ComputeLicenseCodesGet = ComputeLicenseCodesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Number corresponding to the License code resource to return.
+    licenseCode :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicenseCodesGet' with the minimum fields required to make a request.
+newComputeLicenseCodesGet ::
+  -- |  Number corresponding to the License code resource to return. See 'licenseCode'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeLicenseCodesGet
+newComputeLicenseCodesGet licenseCode project =
+  ComputeLicenseCodesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      licenseCode = licenseCode,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicenseCodesGet where
+  type Rs ComputeLicenseCodesGet = LicenseCode
+  type
+    Scopes ComputeLicenseCodesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicenseCodesGet {..} =
+    go
+      project
+      licenseCode
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicenseCodesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/LicenseCodes/TestIamPermissions.hs b/gen/Gogol/Compute/LicenseCodes/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/LicenseCodes/TestIamPermissions.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.LicenseCodes.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenseCodes.testIamPermissions@.
+module Gogol.Compute.LicenseCodes.TestIamPermissions
+  ( -- * Resource
+    ComputeLicenseCodesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeLicenseCodesTestIamPermissions (..),
+    newComputeLicenseCodesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenseCodes.testIamPermissions@ method which the
+-- 'ComputeLicenseCodesTestIamPermissions' request conforms to.
+type ComputeLicenseCodesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenseCodes"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicenseCodesTestIamPermissions' smart constructor.
+data ComputeLicenseCodesTestIamPermissions = ComputeLicenseCodesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicenseCodesTestIamPermissions' with the minimum fields required to make a request.
+newComputeLicenseCodesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeLicenseCodesTestIamPermissions
+newComputeLicenseCodesTestIamPermissions payload project resource =
+  ComputeLicenseCodesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicenseCodesTestIamPermissions where
+  type
+    Rs ComputeLicenseCodesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeLicenseCodesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicenseCodesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeLicenseCodesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/Delete.hs b/gen/Gogol/Compute/Licenses/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified license. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.delete@.
+module Gogol.Compute.Licenses.Delete
+  ( -- * Resource
+    ComputeLicensesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesDelete (..),
+    newComputeLicensesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.delete@ method which the
+-- 'ComputeLicensesDelete' request conforms to.
+type ComputeLicensesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.Capture "license" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified license. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesDelete' smart constructor.
+data ComputeLicensesDelete = ComputeLicensesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the license resource to delete.
+    license :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesDelete' with the minimum fields required to make a request.
+newComputeLicensesDelete ::
+  -- |  Name of the license resource to delete. See 'license'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeLicensesDelete
+newComputeLicensesDelete license project =
+  ComputeLicensesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      license = license,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesDelete where
+  type Rs ComputeLicensesDelete = Operation
+  type
+    Scopes ComputeLicensesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeLicensesDelete {..} =
+    go
+      project
+      license
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/Get.hs b/gen/Gogol/Compute/Licenses/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified License resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.get@.
+module Gogol.Compute.Licenses.Get
+  ( -- * Resource
+    ComputeLicensesGetResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesGet (..),
+    newComputeLicensesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.get@ method which the
+-- 'ComputeLicensesGet' request conforms to.
+type ComputeLicensesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.Capture "license" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] License
+
+-- | Returns the specified License resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesGet' smart constructor.
+data ComputeLicensesGet = ComputeLicensesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the License resource to return.
+    license :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesGet' with the minimum fields required to make a request.
+newComputeLicensesGet ::
+  -- |  Name of the License resource to return. See 'license'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeLicensesGet
+newComputeLicensesGet license project =
+  ComputeLicensesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      license = license,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesGet where
+  type Rs ComputeLicensesGet = License
+  type
+    Scopes ComputeLicensesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicensesGet {..} =
+    go
+      project
+      license
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/GetIamPolicy.hs b/gen/Gogol/Compute/Licenses/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/GetIamPolicy.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.getIamPolicy@.
+module Gogol.Compute.Licenses.GetIamPolicy
+  ( -- * Resource
+    ComputeLicensesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesGetIamPolicy (..),
+    newComputeLicensesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.getIamPolicy@ method which the
+-- 'ComputeLicensesGetIamPolicy' request conforms to.
+type ComputeLicensesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesGetIamPolicy' smart constructor.
+data ComputeLicensesGetIamPolicy = ComputeLicensesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesGetIamPolicy' with the minimum fields required to make a request.
+newComputeLicensesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeLicensesGetIamPolicy
+newComputeLicensesGetIamPolicy project resource =
+  ComputeLicensesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesGetIamPolicy where
+  type Rs ComputeLicensesGetIamPolicy = Policy
+  type
+    Scopes ComputeLicensesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicensesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/Insert.hs b/gen/Gogol/Compute/Licenses/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/Insert.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Create a License resource in the specified project. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.insert@.
+module Gogol.Compute.Licenses.Insert
+  ( -- * Resource
+    ComputeLicensesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesInsert (..),
+    newComputeLicensesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.insert@ method which the
+-- 'ComputeLicensesInsert' request conforms to.
+type ComputeLicensesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] License
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Create a License resource in the specified project. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesInsert' smart constructor.
+data ComputeLicensesInsert = ComputeLicensesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: License,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesInsert' with the minimum fields required to make a request.
+newComputeLicensesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  License ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeLicensesInsert
+newComputeLicensesInsert payload project =
+  ComputeLicensesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesInsert where
+  type Rs ComputeLicensesInsert = Operation
+  type
+    Scopes ComputeLicensesInsert =
+      '[ CloudPlatform'FullControl,
+         Compute'FullControl,
+         Devstorage'FullControl,
+         Devstorage'ReadOnly,
+         Devstorage'ReadWrite
+       ]
+  requestClient ComputeLicensesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/List.hs b/gen/Gogol/Compute/Licenses/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.list@.
+module Gogol.Compute.Licenses.List
+  ( -- * Resource
+    ComputeLicensesListResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesList (..),
+    newComputeLicensesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.list@ method which the
+-- 'ComputeLicensesList' request conforms to.
+type ComputeLicensesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] LicensesListResponse
+
+-- | Retrieves the list of licenses available in the specified project. This method does not get any licenses that belong to other projects, including licenses attached to publicly-available images, like Debian 9. If you want to get a list of publicly-available licenses, use this method to make a request to the respective image project, such as debian-cloud or windows-cloud. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesList' smart constructor.
+data ComputeLicensesList = ComputeLicensesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesList' with the minimum fields required to make a request.
+newComputeLicensesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeLicensesList
+newComputeLicensesList project =
+  ComputeLicensesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesList where
+  type Rs ComputeLicensesList = LicensesListResponse
+  type
+    Scopes ComputeLicensesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicensesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/SetIamPolicy.hs b/gen/Gogol/Compute/Licenses/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/SetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.setIamPolicy@.
+module Gogol.Compute.Licenses.SetIamPolicy
+  ( -- * Resource
+    ComputeLicensesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesSetIamPolicy (..),
+    newComputeLicensesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.setIamPolicy@ method which the
+-- 'ComputeLicensesSetIamPolicy' request conforms to.
+type ComputeLicensesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesSetIamPolicy' smart constructor.
+data ComputeLicensesSetIamPolicy = ComputeLicensesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesSetIamPolicy' with the minimum fields required to make a request.
+newComputeLicensesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeLicensesSetIamPolicy
+newComputeLicensesSetIamPolicy payload project resource =
+  ComputeLicensesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesSetIamPolicy where
+  type Rs ComputeLicensesSetIamPolicy = Policy
+  type
+    Scopes ComputeLicensesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeLicensesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeLicensesSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Licenses/TestIamPermissions.hs b/gen/Gogol/Compute/Licenses/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Licenses/TestIamPermissions.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Licenses.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.licenses.testIamPermissions@.
+module Gogol.Compute.Licenses.TestIamPermissions
+  ( -- * Resource
+    ComputeLicensesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeLicensesTestIamPermissions (..),
+    newComputeLicensesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.licenses.testIamPermissions@ method which the
+-- 'ComputeLicensesTestIamPermissions' request conforms to.
+type ComputeLicensesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "licenses"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource. /Caution/ This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.
+--
+-- /See:/ 'newComputeLicensesTestIamPermissions' smart constructor.
+data ComputeLicensesTestIamPermissions = ComputeLicensesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeLicensesTestIamPermissions' with the minimum fields required to make a request.
+newComputeLicensesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeLicensesTestIamPermissions
+newComputeLicensesTestIamPermissions payload project resource =
+  ComputeLicensesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeLicensesTestIamPermissions where
+  type Rs ComputeLicensesTestIamPermissions = TestPermissionsResponse
+  type
+    Scopes ComputeLicensesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeLicensesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeLicensesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/Delete.hs b/gen/Gogol/Compute/MachineImages/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.delete@.
+module Gogol.Compute.MachineImages.Delete
+  ( -- * Resource
+    ComputeMachineImagesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesDelete (..),
+    newComputeMachineImagesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.delete@ method which the
+-- 'ComputeMachineImagesDelete' request conforms to.
+type ComputeMachineImagesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.Capture "machineImage" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.
+--
+-- /See:/ 'newComputeMachineImagesDelete' smart constructor.
+data ComputeMachineImagesDelete = ComputeMachineImagesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the machine image to delete.
+    machineImage :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesDelete' with the minimum fields required to make a request.
+newComputeMachineImagesDelete ::
+  -- |  The name of the machine image to delete. See 'machineImage'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeMachineImagesDelete
+newComputeMachineImagesDelete machineImage project =
+  ComputeMachineImagesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      machineImage = machineImage,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesDelete where
+  type Rs ComputeMachineImagesDelete = Operation
+  type
+    Scopes ComputeMachineImagesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeMachineImagesDelete {..} =
+    go
+      project
+      machineImage
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/Get.hs b/gen/Gogol/Compute/MachineImages/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified machine image.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.get@.
+module Gogol.Compute.MachineImages.Get
+  ( -- * Resource
+    ComputeMachineImagesGetResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesGet (..),
+    newComputeMachineImagesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.get@ method which the
+-- 'ComputeMachineImagesGet' request conforms to.
+type ComputeMachineImagesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.Capture "machineImage" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] MachineImage
+
+-- | Returns the specified machine image.
+--
+-- /See:/ 'newComputeMachineImagesGet' smart constructor.
+data ComputeMachineImagesGet = ComputeMachineImagesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the machine image.
+    machineImage :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesGet' with the minimum fields required to make a request.
+newComputeMachineImagesGet ::
+  -- |  The name of the machine image. See 'machineImage'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeMachineImagesGet
+newComputeMachineImagesGet machineImage project =
+  ComputeMachineImagesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      machineImage = machineImage,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesGet where
+  type Rs ComputeMachineImagesGet = MachineImage
+  type
+    Scopes ComputeMachineImagesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineImagesGet {..} =
+    go
+      project
+      machineImage
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/GetIamPolicy.hs b/gen/Gogol/Compute/MachineImages/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/GetIamPolicy.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.getIamPolicy@.
+module Gogol.Compute.MachineImages.GetIamPolicy
+  ( -- * Resource
+    ComputeMachineImagesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesGetIamPolicy (..),
+    newComputeMachineImagesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.getIamPolicy@ method which the
+-- 'ComputeMachineImagesGetIamPolicy' request conforms to.
+type ComputeMachineImagesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeMachineImagesGetIamPolicy' smart constructor.
+data ComputeMachineImagesGetIamPolicy = ComputeMachineImagesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesGetIamPolicy' with the minimum fields required to make a request.
+newComputeMachineImagesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeMachineImagesGetIamPolicy
+newComputeMachineImagesGetIamPolicy project resource =
+  ComputeMachineImagesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesGetIamPolicy where
+  type Rs ComputeMachineImagesGetIamPolicy = Policy
+  type
+    Scopes ComputeMachineImagesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineImagesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/Insert.hs b/gen/Gogol/Compute/MachineImages/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/Insert.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.insert@.
+module Gogol.Compute.MachineImages.Insert
+  ( -- * Resource
+    ComputeMachineImagesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesInsert (..),
+    newComputeMachineImagesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.insert@ method which the
+-- 'ComputeMachineImagesInsert' request conforms to.
+type ComputeMachineImagesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceInstance" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] MachineImage
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.
+--
+-- /See:/ 'newComputeMachineImagesInsert' smart constructor.
+data ComputeMachineImagesInsert = ComputeMachineImagesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: MachineImage,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Required. Source instance that is used to create the machine image from.
+    sourceInstance :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesInsert' with the minimum fields required to make a request.
+newComputeMachineImagesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  MachineImage ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeMachineImagesInsert
+newComputeMachineImagesInsert payload project =
+  ComputeMachineImagesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      sourceInstance = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesInsert where
+  type Rs ComputeMachineImagesInsert = Operation
+  type
+    Scopes ComputeMachineImagesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeMachineImagesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceInstance
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/List.hs b/gen/Gogol/Compute/MachineImages/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of machine images that are contained within the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.list@.
+module Gogol.Compute.MachineImages.List
+  ( -- * Resource
+    ComputeMachineImagesListResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesList (..),
+    newComputeMachineImagesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.list@ method which the
+-- 'ComputeMachineImagesList' request conforms to.
+type ComputeMachineImagesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] MachineImageList
+
+-- | Retrieves a list of machine images that are contained within the specified project.
+--
+-- /See:/ 'newComputeMachineImagesList' smart constructor.
+data ComputeMachineImagesList = ComputeMachineImagesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesList' with the minimum fields required to make a request.
+newComputeMachineImagesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeMachineImagesList
+newComputeMachineImagesList project =
+  ComputeMachineImagesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesList where
+  type Rs ComputeMachineImagesList = MachineImageList
+  type
+    Scopes ComputeMachineImagesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineImagesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/SetIamPolicy.hs b/gen/Gogol/Compute/MachineImages/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/SetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.setIamPolicy@.
+module Gogol.Compute.MachineImages.SetIamPolicy
+  ( -- * Resource
+    ComputeMachineImagesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesSetIamPolicy (..),
+    newComputeMachineImagesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.setIamPolicy@ method which the
+-- 'ComputeMachineImagesSetIamPolicy' request conforms to.
+type ComputeMachineImagesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeMachineImagesSetIamPolicy' smart constructor.
+data ComputeMachineImagesSetIamPolicy = ComputeMachineImagesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesSetIamPolicy' with the minimum fields required to make a request.
+newComputeMachineImagesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeMachineImagesSetIamPolicy
+newComputeMachineImagesSetIamPolicy payload project resource =
+  ComputeMachineImagesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesSetIamPolicy where
+  type Rs ComputeMachineImagesSetIamPolicy = Policy
+  type
+    Scopes ComputeMachineImagesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeMachineImagesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineImagesSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineImages/TestIamPermissions.hs b/gen/Gogol/Compute/MachineImages/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineImages/TestIamPermissions.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineImages.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineImages.testIamPermissions@.
+module Gogol.Compute.MachineImages.TestIamPermissions
+  ( -- * Resource
+    ComputeMachineImagesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeMachineImagesTestIamPermissions (..),
+    newComputeMachineImagesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineImages.testIamPermissions@ method which the
+-- 'ComputeMachineImagesTestIamPermissions' request conforms to.
+type ComputeMachineImagesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "machineImages"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeMachineImagesTestIamPermissions' smart constructor.
+data ComputeMachineImagesTestIamPermissions = ComputeMachineImagesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineImagesTestIamPermissions' with the minimum fields required to make a request.
+newComputeMachineImagesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeMachineImagesTestIamPermissions
+newComputeMachineImagesTestIamPermissions payload project resource =
+  ComputeMachineImagesTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineImagesTestIamPermissions where
+  type
+    Rs ComputeMachineImagesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeMachineImagesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineImagesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeMachineImagesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineTypes/AggregatedList.hs b/gen/Gogol/Compute/MachineTypes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineTypes/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineTypes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineTypes.aggregatedList@.
+module Gogol.Compute.MachineTypes.AggregatedList
+  ( -- * Resource
+    ComputeMachineTypesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeMachineTypesAggregatedList (..),
+    newComputeMachineTypesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineTypes.aggregatedList@ method which the
+-- 'ComputeMachineTypesAggregatedList' request conforms to.
+type ComputeMachineTypesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "machineTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] MachineTypeAggregatedList
+
+-- | Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeMachineTypesAggregatedList' smart constructor.
+data ComputeMachineTypesAggregatedList = ComputeMachineTypesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineTypesAggregatedList' with the minimum fields required to make a request.
+newComputeMachineTypesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeMachineTypesAggregatedList
+newComputeMachineTypesAggregatedList project =
+  ComputeMachineTypesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeMachineTypesAggregatedList where
+  type
+    Rs ComputeMachineTypesAggregatedList =
+      MachineTypeAggregatedList
+  type
+    Scopes ComputeMachineTypesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineTypesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeMachineTypesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineTypes/Get.hs b/gen/Gogol/Compute/MachineTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified machine type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineTypes.get@.
+module Gogol.Compute.MachineTypes.Get
+  ( -- * Resource
+    ComputeMachineTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeMachineTypesGet (..),
+    newComputeMachineTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineTypes.get@ method which the
+-- 'ComputeMachineTypesGet' request conforms to.
+type ComputeMachineTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "machineTypes"
+    Core.:> Core.Capture "machineType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] MachineType
+
+-- | Returns the specified machine type.
+--
+-- /See:/ 'newComputeMachineTypesGet' smart constructor.
+data ComputeMachineTypesGet = ComputeMachineTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the machine type to return.
+    machineType :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineTypesGet' with the minimum fields required to make a request.
+newComputeMachineTypesGet ::
+  -- |  Name of the machine type to return. See 'machineType'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeMachineTypesGet
+newComputeMachineTypesGet machineType project zone =
+  ComputeMachineTypesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      machineType = machineType,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeMachineTypesGet where
+  type Rs ComputeMachineTypesGet = MachineType
+  type
+    Scopes ComputeMachineTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineTypesGet {..} =
+    go
+      project
+      zone
+      machineType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/MachineTypes/List.hs b/gen/Gogol/Compute/MachineTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/MachineTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.MachineTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of machine types available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.machineTypes.list@.
+module Gogol.Compute.MachineTypes.List
+  ( -- * Resource
+    ComputeMachineTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeMachineTypesList (..),
+    newComputeMachineTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.machineTypes.list@ method which the
+-- 'ComputeMachineTypesList' request conforms to.
+type ComputeMachineTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "machineTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] MachineTypeList
+
+-- | Retrieves a list of machine types available to the specified project.
+--
+-- /See:/ 'newComputeMachineTypesList' smart constructor.
+data ComputeMachineTypesList = ComputeMachineTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeMachineTypesList' with the minimum fields required to make a request.
+newComputeMachineTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeMachineTypesList
+newComputeMachineTypesList project zone =
+  ComputeMachineTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeMachineTypesList where
+  type Rs ComputeMachineTypesList = MachineTypeList
+  type
+    Scopes ComputeMachineTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeMachineTypesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeMachineTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/AggregatedList.hs b/gen/Gogol/Compute/NetworkAttachments/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.aggregatedList@.
+module Gogol.Compute.NetworkAttachments.AggregatedList
+  ( -- * Resource
+    ComputeNetworkAttachmentsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsAggregatedList (..),
+    newComputeNetworkAttachmentsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.aggregatedList@ method which the
+-- 'ComputeNetworkAttachmentsAggregatedList' request conforms to.
+type ComputeNetworkAttachmentsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "networkAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkAttachmentAggregatedList
+
+-- | Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNetworkAttachmentsAggregatedList' smart constructor.
+data ComputeNetworkAttachmentsAggregatedList = ComputeNetworkAttachmentsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsAggregatedList' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkAttachmentsAggregatedList
+newComputeNetworkAttachmentsAggregatedList project =
+  ComputeNetworkAttachmentsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsAggregatedList where
+  type
+    Rs ComputeNetworkAttachmentsAggregatedList =
+      NetworkAttachmentAggregatedList
+  type
+    Scopes ComputeNetworkAttachmentsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkAttachmentsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkAttachmentsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/Delete.hs b/gen/Gogol/Compute/NetworkAttachments/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified NetworkAttachment in the given scope
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.delete@.
+module Gogol.Compute.NetworkAttachments.Delete
+  ( -- * Resource
+    ComputeNetworkAttachmentsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsDelete (..),
+    newComputeNetworkAttachmentsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.delete@ method which the
+-- 'ComputeNetworkAttachmentsDelete' request conforms to.
+type ComputeNetworkAttachmentsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "networkAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified NetworkAttachment in the given scope
+--
+-- /See:/ 'newComputeNetworkAttachmentsDelete' smart constructor.
+data ComputeNetworkAttachmentsDelete = ComputeNetworkAttachmentsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NetworkAttachment resource to delete.
+    networkAttachment :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsDelete' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsDelete ::
+  -- |  Name of the NetworkAttachment resource to delete. See 'networkAttachment'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkAttachmentsDelete
+newComputeNetworkAttachmentsDelete networkAttachment project region =
+  ComputeNetworkAttachmentsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      networkAttachment = networkAttachment,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsDelete where
+  type Rs ComputeNetworkAttachmentsDelete = Operation
+  type
+    Scopes ComputeNetworkAttachmentsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkAttachmentsDelete {..} =
+    go
+      project
+      region
+      networkAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkAttachmentsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/Get.hs b/gen/Gogol/Compute/NetworkAttachments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified NetworkAttachment resource in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.get@.
+module Gogol.Compute.NetworkAttachments.Get
+  ( -- * Resource
+    ComputeNetworkAttachmentsGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsGet (..),
+    newComputeNetworkAttachmentsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.get@ method which the
+-- 'ComputeNetworkAttachmentsGet' request conforms to.
+type ComputeNetworkAttachmentsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "networkAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkAttachment
+
+-- | Returns the specified NetworkAttachment resource in the given scope.
+--
+-- /See:/ 'newComputeNetworkAttachmentsGet' smart constructor.
+data ComputeNetworkAttachmentsGet = ComputeNetworkAttachmentsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NetworkAttachment resource to return.
+    networkAttachment :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsGet' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsGet ::
+  -- |  Name of the NetworkAttachment resource to return. See 'networkAttachment'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkAttachmentsGet
+newComputeNetworkAttachmentsGet networkAttachment project region =
+  ComputeNetworkAttachmentsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      networkAttachment = networkAttachment,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsGet where
+  type Rs ComputeNetworkAttachmentsGet = NetworkAttachment
+  type
+    Scopes ComputeNetworkAttachmentsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkAttachmentsGet {..} =
+    go
+      project
+      region
+      networkAttachment
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkAttachmentsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/GetIamPolicy.hs b/gen/Gogol/Compute/NetworkAttachments/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/GetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.getIamPolicy@.
+module Gogol.Compute.NetworkAttachments.GetIamPolicy
+  ( -- * Resource
+    ComputeNetworkAttachmentsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsGetIamPolicy (..),
+    newComputeNetworkAttachmentsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.getIamPolicy@ method which the
+-- 'ComputeNetworkAttachmentsGetIamPolicy' request conforms to.
+type ComputeNetworkAttachmentsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeNetworkAttachmentsGetIamPolicy' smart constructor.
+data ComputeNetworkAttachmentsGetIamPolicy = ComputeNetworkAttachmentsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsGetIamPolicy' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkAttachmentsGetIamPolicy
+newComputeNetworkAttachmentsGetIamPolicy project region resource =
+  ComputeNetworkAttachmentsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsGetIamPolicy where
+  type Rs ComputeNetworkAttachmentsGetIamPolicy = Policy
+  type
+    Scopes ComputeNetworkAttachmentsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkAttachmentsGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkAttachmentsGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/Insert.hs b/gen/Gogol/Compute/NetworkAttachments/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.insert@.
+module Gogol.Compute.NetworkAttachments.Insert
+  ( -- * Resource
+    ComputeNetworkAttachmentsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsInsert (..),
+    newComputeNetworkAttachmentsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.insert@ method which the
+-- 'ComputeNetworkAttachmentsInsert' request conforms to.
+type ComputeNetworkAttachmentsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkAttachment
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a NetworkAttachment in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeNetworkAttachmentsInsert' smart constructor.
+data ComputeNetworkAttachmentsInsert = ComputeNetworkAttachmentsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsInsert' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkAttachmentsInsert
+newComputeNetworkAttachmentsInsert payload project region =
+  ComputeNetworkAttachmentsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsInsert where
+  type Rs ComputeNetworkAttachmentsInsert = Operation
+  type
+    Scopes ComputeNetworkAttachmentsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkAttachmentsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkAttachmentsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/List.hs b/gen/Gogol/Compute/NetworkAttachments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the NetworkAttachments for a project in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.list@.
+module Gogol.Compute.NetworkAttachments.List
+  ( -- * Resource
+    ComputeNetworkAttachmentsListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsList (..),
+    newComputeNetworkAttachmentsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.list@ method which the
+-- 'ComputeNetworkAttachmentsList' request conforms to.
+type ComputeNetworkAttachmentsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkAttachmentList
+
+-- | Lists the NetworkAttachments for a project in the given scope.
+--
+-- /See:/ 'newComputeNetworkAttachmentsList' smart constructor.
+data ComputeNetworkAttachmentsList = ComputeNetworkAttachmentsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsList' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkAttachmentsList
+newComputeNetworkAttachmentsList project region =
+  ComputeNetworkAttachmentsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsList where
+  type Rs ComputeNetworkAttachmentsList = NetworkAttachmentList
+  type
+    Scopes ComputeNetworkAttachmentsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkAttachmentsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkAttachmentsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/Patch.hs b/gen/Gogol/Compute/NetworkAttachments/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/Patch.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.patch@.
+module Gogol.Compute.NetworkAttachments.Patch
+  ( -- * Resource
+    ComputeNetworkAttachmentsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsPatch (..),
+    newComputeNetworkAttachmentsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.patch@ method which the
+-- 'ComputeNetworkAttachmentsPatch' request conforms to.
+type ComputeNetworkAttachmentsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "networkAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkAttachment
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified NetworkAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeNetworkAttachmentsPatch' smart constructor.
+data ComputeNetworkAttachmentsPatch = ComputeNetworkAttachmentsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NetworkAttachment resource to patch.
+    networkAttachment :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworkAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsPatch' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsPatch ::
+  -- |  Name of the NetworkAttachment resource to patch. See 'networkAttachment'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkAttachmentsPatch
+newComputeNetworkAttachmentsPatch
+  networkAttachment
+  payload
+  project
+  region =
+    ComputeNetworkAttachmentsPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkAttachment = networkAttachment,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsPatch where
+  type Rs ComputeNetworkAttachmentsPatch = Operation
+  type
+    Scopes ComputeNetworkAttachmentsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkAttachmentsPatch {..} =
+    go
+      project
+      region
+      networkAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkAttachmentsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/SetIamPolicy.hs b/gen/Gogol/Compute/NetworkAttachments/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/SetIamPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.setIamPolicy@.
+module Gogol.Compute.NetworkAttachments.SetIamPolicy
+  ( -- * Resource
+    ComputeNetworkAttachmentsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsSetIamPolicy (..),
+    newComputeNetworkAttachmentsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.setIamPolicy@ method which the
+-- 'ComputeNetworkAttachmentsSetIamPolicy' request conforms to.
+type ComputeNetworkAttachmentsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeNetworkAttachmentsSetIamPolicy' smart constructor.
+data ComputeNetworkAttachmentsSetIamPolicy = ComputeNetworkAttachmentsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsSetIamPolicy' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkAttachmentsSetIamPolicy
+newComputeNetworkAttachmentsSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeNetworkAttachmentsSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkAttachmentsSetIamPolicy where
+  type Rs ComputeNetworkAttachmentsSetIamPolicy = Policy
+  type
+    Scopes ComputeNetworkAttachmentsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkAttachmentsSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkAttachmentsSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkAttachments/TestIamPermissions.hs b/gen/Gogol/Compute/NetworkAttachments/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkAttachments/TestIamPermissions.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkAttachments.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkAttachments.testIamPermissions@.
+module Gogol.Compute.NetworkAttachments.TestIamPermissions
+  ( -- * Resource
+    ComputeNetworkAttachmentsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkAttachmentsTestIamPermissions (..),
+    newComputeNetworkAttachmentsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkAttachments.testIamPermissions@ method which the
+-- 'ComputeNetworkAttachmentsTestIamPermissions' request conforms to.
+type ComputeNetworkAttachmentsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeNetworkAttachmentsTestIamPermissions' smart constructor.
+data ComputeNetworkAttachmentsTestIamPermissions = ComputeNetworkAttachmentsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkAttachmentsTestIamPermissions' with the minimum fields required to make a request.
+newComputeNetworkAttachmentsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkAttachmentsTestIamPermissions
+newComputeNetworkAttachmentsTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeNetworkAttachmentsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkAttachmentsTestIamPermissions
+  where
+  type
+    Rs ComputeNetworkAttachmentsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeNetworkAttachmentsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkAttachmentsTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkAttachmentsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEdgeSecurityServices/AggregatedList.hs b/gen/Gogol/Compute/NetworkEdgeSecurityServices/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEdgeSecurityServices/AggregatedList.hs
@@ -0,0 +1,161 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEdgeSecurityServices.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEdgeSecurityServices.aggregatedList@.
+module Gogol.Compute.NetworkEdgeSecurityServices.AggregatedList
+  ( -- * Resource
+    ComputeNetworkEdgeSecurityServicesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEdgeSecurityServicesAggregatedList (..),
+    newComputeNetworkEdgeSecurityServicesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEdgeSecurityServices.aggregatedList@ method which the
+-- 'ComputeNetworkEdgeSecurityServicesAggregatedList' request conforms to.
+type ComputeNetworkEdgeSecurityServicesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "networkEdgeSecurityServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              NetworkEdgeSecurityServiceAggregatedList
+
+-- | Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNetworkEdgeSecurityServicesAggregatedList' smart constructor.
+data ComputeNetworkEdgeSecurityServicesAggregatedList = ComputeNetworkEdgeSecurityServicesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEdgeSecurityServicesAggregatedList' with the minimum fields required to make a request.
+newComputeNetworkEdgeSecurityServicesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkEdgeSecurityServicesAggregatedList
+newComputeNetworkEdgeSecurityServicesAggregatedList project =
+  ComputeNetworkEdgeSecurityServicesAggregatedList
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEdgeSecurityServicesAggregatedList
+  where
+  type
+    Rs ComputeNetworkEdgeSecurityServicesAggregatedList =
+      NetworkEdgeSecurityServiceAggregatedList
+  type
+    Scopes ComputeNetworkEdgeSecurityServicesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEdgeSecurityServicesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeNetworkEdgeSecurityServicesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEdgeSecurityServices/Delete.hs b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Delete.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEdgeSecurityServices.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified service.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEdgeSecurityServices.delete@.
+module Gogol.Compute.NetworkEdgeSecurityServices.Delete
+  ( -- * Resource
+    ComputeNetworkEdgeSecurityServicesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEdgeSecurityServicesDelete (..),
+    newComputeNetworkEdgeSecurityServicesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEdgeSecurityServices.delete@ method which the
+-- 'ComputeNetworkEdgeSecurityServicesDelete' request conforms to.
+type ComputeNetworkEdgeSecurityServicesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEdgeSecurityServices"
+    Core.:> Core.Capture "networkEdgeSecurityService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified service.
+--
+-- /See:/ 'newComputeNetworkEdgeSecurityServicesDelete' smart constructor.
+data ComputeNetworkEdgeSecurityServicesDelete = ComputeNetworkEdgeSecurityServicesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network edge security service to delete.
+    networkEdgeSecurityService :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEdgeSecurityServicesDelete' with the minimum fields required to make a request.
+newComputeNetworkEdgeSecurityServicesDelete ::
+  -- |  Name of the network edge security service to delete. See 'networkEdgeSecurityService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkEdgeSecurityServicesDelete
+newComputeNetworkEdgeSecurityServicesDelete
+  networkEdgeSecurityService
+  project
+  region =
+    ComputeNetworkEdgeSecurityServicesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEdgeSecurityService =
+          networkEdgeSecurityService,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEdgeSecurityServicesDelete
+  where
+  type Rs ComputeNetworkEdgeSecurityServicesDelete = Operation
+  type
+    Scopes ComputeNetworkEdgeSecurityServicesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkEdgeSecurityServicesDelete {..} =
+    go
+      project
+      region
+      networkEdgeSecurityService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEdgeSecurityServicesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEdgeSecurityServices/Get.hs b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Get.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEdgeSecurityServices.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a specified NetworkEdgeSecurityService.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEdgeSecurityServices.get@.
+module Gogol.Compute.NetworkEdgeSecurityServices.Get
+  ( -- * Resource
+    ComputeNetworkEdgeSecurityServicesGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEdgeSecurityServicesGet (..),
+    newComputeNetworkEdgeSecurityServicesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEdgeSecurityServices.get@ method which the
+-- 'ComputeNetworkEdgeSecurityServicesGet' request conforms to.
+type ComputeNetworkEdgeSecurityServicesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEdgeSecurityServices"
+    Core.:> Core.Capture "networkEdgeSecurityService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEdgeSecurityService
+
+-- | Gets a specified NetworkEdgeSecurityService.
+--
+-- /See:/ 'newComputeNetworkEdgeSecurityServicesGet' smart constructor.
+data ComputeNetworkEdgeSecurityServicesGet = ComputeNetworkEdgeSecurityServicesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network edge security service to get.
+    networkEdgeSecurityService :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEdgeSecurityServicesGet' with the minimum fields required to make a request.
+newComputeNetworkEdgeSecurityServicesGet ::
+  -- |  Name of the network edge security service to get. See 'networkEdgeSecurityService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkEdgeSecurityServicesGet
+newComputeNetworkEdgeSecurityServicesGet
+  networkEdgeSecurityService
+  project
+  region =
+    ComputeNetworkEdgeSecurityServicesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEdgeSecurityService = networkEdgeSecurityService,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkEdgeSecurityServicesGet where
+  type
+    Rs ComputeNetworkEdgeSecurityServicesGet =
+      NetworkEdgeSecurityService
+  type
+    Scopes ComputeNetworkEdgeSecurityServicesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEdgeSecurityServicesGet {..} =
+    go
+      project
+      region
+      networkEdgeSecurityService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEdgeSecurityServicesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEdgeSecurityServices/Insert.hs b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Insert.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEdgeSecurityServices.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new service in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEdgeSecurityServices.insert@.
+module Gogol.Compute.NetworkEdgeSecurityServices.Insert
+  ( -- * Resource
+    ComputeNetworkEdgeSecurityServicesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEdgeSecurityServicesInsert (..),
+    newComputeNetworkEdgeSecurityServicesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEdgeSecurityServices.insert@ method which the
+-- 'ComputeNetworkEdgeSecurityServicesInsert' request conforms to.
+type ComputeNetworkEdgeSecurityServicesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEdgeSecurityServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkEdgeSecurityService
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new service in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeNetworkEdgeSecurityServicesInsert' smart constructor.
+data ComputeNetworkEdgeSecurityServicesInsert = ComputeNetworkEdgeSecurityServicesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkEdgeSecurityService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEdgeSecurityServicesInsert' with the minimum fields required to make a request.
+newComputeNetworkEdgeSecurityServicesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEdgeSecurityService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkEdgeSecurityServicesInsert
+newComputeNetworkEdgeSecurityServicesInsert payload project region =
+  ComputeNetworkEdgeSecurityServicesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEdgeSecurityServicesInsert
+  where
+  type Rs ComputeNetworkEdgeSecurityServicesInsert = Operation
+  type
+    Scopes ComputeNetworkEdgeSecurityServicesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkEdgeSecurityServicesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEdgeSecurityServicesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEdgeSecurityServices/Patch.hs b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEdgeSecurityServices/Patch.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEdgeSecurityServices.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified policy with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEdgeSecurityServices.patch@.
+module Gogol.Compute.NetworkEdgeSecurityServices.Patch
+  ( -- * Resource
+    ComputeNetworkEdgeSecurityServicesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEdgeSecurityServicesPatch (..),
+    newComputeNetworkEdgeSecurityServicesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEdgeSecurityServices.patch@ method which the
+-- 'ComputeNetworkEdgeSecurityServicesPatch' request conforms to.
+type ComputeNetworkEdgeSecurityServicesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEdgeSecurityServices"
+    Core.:> Core.Capture "networkEdgeSecurityService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "paths" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkEdgeSecurityService
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified policy with the data included in the request.
+--
+-- /See:/ 'newComputeNetworkEdgeSecurityServicesPatch' smart constructor.
+data ComputeNetworkEdgeSecurityServicesPatch = ComputeNetworkEdgeSecurityServicesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network edge security service to update.
+    networkEdgeSecurityService :: Core.Text,
+    paths :: (Core.Maybe [Core.Text]),
+    -- | Multipart request metadata.
+    payload :: NetworkEdgeSecurityService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEdgeSecurityServicesPatch' with the minimum fields required to make a request.
+newComputeNetworkEdgeSecurityServicesPatch ::
+  -- |  Name of the network edge security service to update. See 'networkEdgeSecurityService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEdgeSecurityService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeNetworkEdgeSecurityServicesPatch
+newComputeNetworkEdgeSecurityServicesPatch
+  networkEdgeSecurityService
+  payload
+  project
+  region =
+    ComputeNetworkEdgeSecurityServicesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEdgeSecurityService = networkEdgeSecurityService,
+        paths = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        updateMask = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkEdgeSecurityServicesPatch where
+  type Rs ComputeNetworkEdgeSecurityServicesPatch = Operation
+  type
+    Scopes ComputeNetworkEdgeSecurityServicesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkEdgeSecurityServicesPatch {..} =
+    go
+      project
+      region
+      networkEdgeSecurityService
+      xgafv
+      accessToken
+      callback
+      (paths Core.^. Core._Default)
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEdgeSecurityServicesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/AggregatedList.hs b/gen/Gogol/Compute/NetworkEndpointGroups/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/AggregatedList.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.aggregatedList@.
+module Gogol.Compute.NetworkEndpointGroups.AggregatedList
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsAggregatedList (..),
+    newComputeNetworkEndpointGroupsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.aggregatedList@ method which the
+-- 'ComputeNetworkEndpointGroupsAggregatedList' request conforms to.
+type ComputeNetworkEndpointGroupsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroupAggregatedList
+
+-- | Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsAggregatedList' smart constructor.
+data ComputeNetworkEndpointGroupsAggregatedList = ComputeNetworkEndpointGroupsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsAggregatedList' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsAggregatedList
+newComputeNetworkEndpointGroupsAggregatedList project =
+  ComputeNetworkEndpointGroupsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEndpointGroupsAggregatedList
+  where
+  type
+    Rs ComputeNetworkEndpointGroupsAggregatedList =
+      NetworkEndpointGroupAggregatedList
+  type
+    Scopes ComputeNetworkEndpointGroupsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEndpointGroupsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEndpointGroupsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs b/gen/Gogol/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attach a list of network endpoints to the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.attachNetworkEndpoints@.
+module Gogol.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsAttachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsAttachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.attachNetworkEndpoints@ method which the
+-- 'ComputeNetworkEndpointGroupsAttachNetworkEndpoints' request conforms to.
+type ComputeNetworkEndpointGroupsAttachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "attachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              NetworkEndpointGroupsAttachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Attach a list of network endpoints to the specified network endpoint group.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsAttachNetworkEndpoints' smart constructor.
+data ComputeNetworkEndpointGroupsAttachNetworkEndpoints = ComputeNetworkEndpointGroupsAttachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroupsAttachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsAttachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsAttachNetworkEndpoints ::
+  -- |  The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroupsAttachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsAttachNetworkEndpoints
+newComputeNetworkEndpointGroupsAttachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project
+  zone =
+    ComputeNetworkEndpointGroupsAttachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEndpointGroupsAttachNetworkEndpoints
+  where
+  type
+    Rs ComputeNetworkEndpointGroupsAttachNetworkEndpoints =
+      Operation
+  type
+    Scopes ComputeNetworkEndpointGroupsAttachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeNetworkEndpointGroupsAttachNetworkEndpoints {..} =
+      go
+        project
+        zone
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkEndpointGroupsAttachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/Delete.hs b/gen/Gogol/Compute/NetworkEndpointGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.delete@.
+module Gogol.Compute.NetworkEndpointGroups.Delete
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsDelete (..),
+    newComputeNetworkEndpointGroupsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.delete@ method which the
+-- 'ComputeNetworkEndpointGroupsDelete' request conforms to.
+type ComputeNetworkEndpointGroupsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified network endpoint group. The network endpoints in the NEG and the VM instances they belong to are not terminated when the NEG is deleted. Note that the NEG cannot be deleted if there are backend services referencing it.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsDelete' smart constructor.
+data ComputeNetworkEndpointGroupsDelete = ComputeNetworkEndpointGroupsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group to delete. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsDelete' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsDelete ::
+  -- |  The name of the network endpoint group to delete. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsDelete
+newComputeNetworkEndpointGroupsDelete
+  networkEndpointGroup
+  project
+  zone =
+    ComputeNetworkEndpointGroupsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeNetworkEndpointGroupsDelete where
+  type Rs ComputeNetworkEndpointGroupsDelete = Operation
+  type
+    Scopes ComputeNetworkEndpointGroupsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkEndpointGroupsDelete {..} =
+    go
+      project
+      zone
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEndpointGroupsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs b/gen/Gogol/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detach a list of network endpoints from the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.detachNetworkEndpoints@.
+module Gogol.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsDetachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsDetachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.detachNetworkEndpoints@ method which the
+-- 'ComputeNetworkEndpointGroupsDetachNetworkEndpoints' request conforms to.
+type ComputeNetworkEndpointGroupsDetachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "detachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              NetworkEndpointGroupsDetachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Detach a list of network endpoints from the specified network endpoint group.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsDetachNetworkEndpoints' smart constructor.
+data ComputeNetworkEndpointGroupsDetachNetworkEndpoints = ComputeNetworkEndpointGroupsDetachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroupsDetachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsDetachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsDetachNetworkEndpoints ::
+  -- |  The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroupsDetachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsDetachNetworkEndpoints
+newComputeNetworkEndpointGroupsDetachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project
+  zone =
+    ComputeNetworkEndpointGroupsDetachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEndpointGroupsDetachNetworkEndpoints
+  where
+  type
+    Rs ComputeNetworkEndpointGroupsDetachNetworkEndpoints =
+      Operation
+  type
+    Scopes ComputeNetworkEndpointGroupsDetachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeNetworkEndpointGroupsDetachNetworkEndpoints {..} =
+      go
+        project
+        zone
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkEndpointGroupsDetachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/Get.hs b/gen/Gogol/Compute/NetworkEndpointGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/Get.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.get@.
+module Gogol.Compute.NetworkEndpointGroups.Get
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsGet (..),
+    newComputeNetworkEndpointGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.get@ method which the
+-- 'ComputeNetworkEndpointGroupsGet' request conforms to.
+type ComputeNetworkEndpointGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroup
+
+-- | Returns the specified network endpoint group.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsGet' smart constructor.
+data ComputeNetworkEndpointGroupsGet = ComputeNetworkEndpointGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsGet' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsGet ::
+  -- |  The name of the network endpoint group. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsGet
+newComputeNetworkEndpointGroupsGet
+  networkEndpointGroup
+  project
+  zone =
+    ComputeNetworkEndpointGroupsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeNetworkEndpointGroupsGet where
+  type Rs ComputeNetworkEndpointGroupsGet = NetworkEndpointGroup
+  type
+    Scopes ComputeNetworkEndpointGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEndpointGroupsGet {..} =
+    go
+      project
+      zone
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkEndpointGroupsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/Insert.hs b/gen/Gogol/Compute/NetworkEndpointGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.insert@.
+module Gogol.Compute.NetworkEndpointGroups.Insert
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsInsert (..),
+    newComputeNetworkEndpointGroupsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.insert@ method which the
+-- 'ComputeNetworkEndpointGroupsInsert' request conforms to.
+type ComputeNetworkEndpointGroupsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkEndpointGroup
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsInsert' smart constructor.
+data ComputeNetworkEndpointGroupsInsert = ComputeNetworkEndpointGroupsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsInsert' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where you want to create the network endpoint group. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsInsert
+newComputeNetworkEndpointGroupsInsert payload project zone =
+  ComputeNetworkEndpointGroupsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNetworkEndpointGroupsInsert where
+  type Rs ComputeNetworkEndpointGroupsInsert = Operation
+  type
+    Scopes ComputeNetworkEndpointGroupsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkEndpointGroupsInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEndpointGroupsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/List.hs b/gen/Gogol/Compute/NetworkEndpointGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of network endpoint groups that are located in the specified project and zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.list@.
+module Gogol.Compute.NetworkEndpointGroups.List
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsList (..),
+    newComputeNetworkEndpointGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.list@ method which the
+-- 'ComputeNetworkEndpointGroupsList' request conforms to.
+type ComputeNetworkEndpointGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroupList
+
+-- | Retrieves the list of network endpoint groups that are located in the specified project and zone.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsList' smart constructor.
+data ComputeNetworkEndpointGroupsList = ComputeNetworkEndpointGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsList' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsList
+newComputeNetworkEndpointGroupsList project zone =
+  ComputeNetworkEndpointGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNetworkEndpointGroupsList where
+  type Rs ComputeNetworkEndpointGroupsList = NetworkEndpointGroupList
+  type
+    Scopes ComputeNetworkEndpointGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEndpointGroupsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkEndpointGroupsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs b/gen/Gogol/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs
@@ -0,0 +1,179 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.ListNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.listNetworkEndpoints@.
+module Gogol.Compute.NetworkEndpointGroups.ListNetworkEndpoints
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsListNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeNetworkEndpointGroupsListNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.listNetworkEndpoints@ method which the
+-- 'ComputeNetworkEndpointGroupsListNetworkEndpoints' request conforms to.
+type ComputeNetworkEndpointGroupsListNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "listNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              NetworkEndpointGroupsListEndpointsRequest
+    Core.:> Core.Post
+              '[Core.JSON]
+              NetworkEndpointGroupsListNetworkEndpoints
+
+-- | Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsListNetworkEndpoints' smart constructor.
+data ComputeNetworkEndpointGroupsListNetworkEndpoints = ComputeNetworkEndpointGroupsListNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroupsListEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone where the network endpoint group is located. It should comply with RFC1035.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsListNetworkEndpoints' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsListNetworkEndpoints ::
+  -- |  The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroupsListEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone where the network endpoint group is located. It should comply with RFC1035. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsListNetworkEndpoints
+newComputeNetworkEndpointGroupsListNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project
+  zone =
+    ComputeNetworkEndpointGroupsListNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        maxResults = 500,
+        networkEndpointGroup = networkEndpointGroup,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        payload = payload,
+        project = project,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEndpointGroupsListNetworkEndpoints
+  where
+  type
+    Rs ComputeNetworkEndpointGroupsListNetworkEndpoints =
+      NetworkEndpointGroupsListNetworkEndpoints
+  type
+    Scopes ComputeNetworkEndpointGroupsListNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEndpointGroupsListNetworkEndpoints {..} =
+    go
+      project
+      zone
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeNetworkEndpointGroupsListNetworkEndpointsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkEndpointGroups/TestIamPermissions.hs b/gen/Gogol/Compute/NetworkEndpointGroups/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkEndpointGroups/TestIamPermissions.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkEndpointGroups.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkEndpointGroups.testIamPermissions@.
+module Gogol.Compute.NetworkEndpointGroups.TestIamPermissions
+  ( -- * Resource
+    ComputeNetworkEndpointGroupsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkEndpointGroupsTestIamPermissions (..),
+    newComputeNetworkEndpointGroupsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkEndpointGroups.testIamPermissions@ method which the
+-- 'ComputeNetworkEndpointGroupsTestIamPermissions' request conforms to.
+type ComputeNetworkEndpointGroupsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeNetworkEndpointGroupsTestIamPermissions' smart constructor.
+data ComputeNetworkEndpointGroupsTestIamPermissions = ComputeNetworkEndpointGroupsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkEndpointGroupsTestIamPermissions' with the minimum fields required to make a request.
+newComputeNetworkEndpointGroupsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNetworkEndpointGroupsTestIamPermissions
+newComputeNetworkEndpointGroupsTestIamPermissions
+  payload
+  project
+  resource
+  zone =
+    ComputeNetworkEndpointGroupsTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkEndpointGroupsTestIamPermissions
+  where
+  type
+    Rs ComputeNetworkEndpointGroupsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeNetworkEndpointGroupsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkEndpointGroupsTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkEndpointGroupsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/AddAssociation.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/AddAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/AddAssociation.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.AddAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts an association for the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.addAssociation@.
+module Gogol.Compute.NetworkFirewallPolicies.AddAssociation
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesAddAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesAddAssociation (..),
+    newComputeNetworkFirewallPoliciesAddAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.addAssociation@ method which the
+-- 'ComputeNetworkFirewallPoliciesAddAssociation' request conforms to.
+type ComputeNetworkFirewallPoliciesAddAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "replaceExistingAssociation" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyAssociation
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts an association for the specified firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesAddAssociation' smart constructor.
+data ComputeNetworkFirewallPoliciesAddAssociation = ComputeNetworkFirewallPoliciesAddAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyAssociation,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Indicates whether or not to replace it if an association of the attachment already exists. This is false by default, in which case an error will be returned if an association already exists.
+    replaceExistingAssociation :: (Core.Maybe Core.Bool),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesAddAssociation' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesAddAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyAssociation ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesAddAssociation
+newComputeNetworkFirewallPoliciesAddAssociation
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesAddAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        project = project,
+        replaceExistingAssociation = Core.Nothing,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesAddAssociation
+  where
+  type Rs ComputeNetworkFirewallPoliciesAddAssociation = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesAddAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesAddAssociation {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      replaceExistingAssociation
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesAddAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/AddPacketMirroringRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/AddPacketMirroringRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/AddPacketMirroringRule.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.AddPacketMirroringRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a packet mirroring rule into a firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.addPacketMirroringRule@.
+module Gogol.Compute.NetworkFirewallPolicies.AddPacketMirroringRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesAddPacketMirroringRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.addPacketMirroringRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesAddPacketMirroringRule' request conforms to.
+type ComputeNetworkFirewallPoliciesAddPacketMirroringRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addPacketMirroringRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxPriority" Core.Int32
+    Core.:> Core.QueryParam "minPriority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a packet mirroring rule into a firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesAddPacketMirroringRule' smart constructor.
+data ComputeNetworkFirewallPoliciesAddPacketMirroringRule = ComputeNetworkFirewallPoliciesAddPacketMirroringRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    maxPriority :: (Core.Maybe Core.Int32),
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    minPriority :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesAddPacketMirroringRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesAddPacketMirroringRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesAddPacketMirroringRule
+newComputeNetworkFirewallPoliciesAddPacketMirroringRule
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        maxPriority = Core.Nothing,
+        minPriority = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRule
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesAddPacketMirroringRule =
+      Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesAddPacketMirroringRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeNetworkFirewallPoliciesAddPacketMirroringRule {..} =
+      go
+        project
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        maxPriority
+        minPriority
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkFirewallPoliciesAddPacketMirroringRuleResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/AddRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/AddRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/AddRule.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.AddRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a rule into a firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.addRule@.
+module Gogol.Compute.NetworkFirewallPolicies.AddRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesAddRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesAddRule (..),
+    newComputeNetworkFirewallPoliciesAddRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.addRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesAddRule' request conforms to.
+type ComputeNetworkFirewallPoliciesAddRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxPriority" Core.Int32
+    Core.:> Core.QueryParam "minPriority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a rule into a firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesAddRule' smart constructor.
+data ComputeNetworkFirewallPoliciesAddRule = ComputeNetworkFirewallPoliciesAddRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    maxPriority :: (Core.Maybe Core.Int32),
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    minPriority :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesAddRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesAddRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesAddRule
+newComputeNetworkFirewallPoliciesAddRule
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesAddRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        maxPriority = Core.Nothing,
+        minPriority = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesAddRule where
+  type Rs ComputeNetworkFirewallPoliciesAddRule = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesAddRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesAddRule {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      maxPriority
+      minPriority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesAddRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/AggregatedList.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/AggregatedList.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of network firewall policies, listing network firewall policies from all applicable scopes (global and regional) and grouping the results per scope. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.aggregatedList@.
+module Gogol.Compute.NetworkFirewallPolicies.AggregatedList
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesAggregatedList (..),
+    newComputeNetworkFirewallPoliciesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.aggregatedList@ method which the
+-- 'ComputeNetworkFirewallPoliciesAggregatedList' request conforms to.
+type ComputeNetworkFirewallPoliciesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkFirewallPolicyAggregatedList
+
+-- | Retrieves an aggregated list of network firewall policies, listing network firewall policies from all applicable scopes (global and regional) and grouping the results per scope. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesAggregatedList' smart constructor.
+data ComputeNetworkFirewallPoliciesAggregatedList = ComputeNetworkFirewallPoliciesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesAggregatedList' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesAggregatedList
+newComputeNetworkFirewallPoliciesAggregatedList project =
+  ComputeNetworkFirewallPoliciesAggregatedList
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesAggregatedList
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesAggregatedList =
+      NetworkFirewallPolicyAggregatedList
+  type
+    Scopes ComputeNetworkFirewallPoliciesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/CloneRules.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/CloneRules.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/CloneRules.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.CloneRules
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Copies rules to the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.cloneRules@.
+module Gogol.Compute.NetworkFirewallPolicies.CloneRules
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesCloneRulesResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesCloneRules (..),
+    newComputeNetworkFirewallPoliciesCloneRules,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.cloneRules@ method which the
+-- 'ComputeNetworkFirewallPoliciesCloneRules' request conforms to.
+type ComputeNetworkFirewallPoliciesCloneRulesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "cloneRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceFirewallPolicy" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Copies rules to the specified firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesCloneRules' smart constructor.
+data ComputeNetworkFirewallPoliciesCloneRules = ComputeNetworkFirewallPoliciesCloneRules
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The firewall policy from which to copy rules.
+    sourceFirewallPolicy :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesCloneRules' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesCloneRules ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesCloneRules
+newComputeNetworkFirewallPoliciesCloneRules firewallPolicy project =
+  ComputeNetworkFirewallPoliciesCloneRules
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      project = project,
+      requestId = Core.Nothing,
+      sourceFirewallPolicy = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesCloneRules
+  where
+  type Rs ComputeNetworkFirewallPoliciesCloneRules = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesCloneRules =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesCloneRules {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceFirewallPolicy
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesCloneRulesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/Delete.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/Delete.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.delete@.
+module Gogol.Compute.NetworkFirewallPolicies.Delete
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesDelete (..),
+    newComputeNetworkFirewallPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.delete@ method which the
+-- 'ComputeNetworkFirewallPoliciesDelete' request conforms to.
+type ComputeNetworkFirewallPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesDelete' smart constructor.
+data ComputeNetworkFirewallPoliciesDelete = ComputeNetworkFirewallPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to delete.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesDelete' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesDelete ::
+  -- |  Name of the firewall policy to delete. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesDelete
+newComputeNetworkFirewallPoliciesDelete firewallPolicy project =
+  ComputeNetworkFirewallPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesDelete where
+  type Rs ComputeNetworkFirewallPoliciesDelete = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesDelete {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/Get.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/Get.hs
@@ -0,0 +1,122 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.get@.
+module Gogol.Compute.NetworkFirewallPolicies.Get
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesGet (..),
+    newComputeNetworkFirewallPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.get@ method which the
+-- 'ComputeNetworkFirewallPoliciesGet' request conforms to.
+type ComputeNetworkFirewallPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicy
+
+-- | Returns the specified network firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesGet' smart constructor.
+data ComputeNetworkFirewallPoliciesGet = ComputeNetworkFirewallPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to get.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesGet' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesGet ::
+  -- |  Name of the firewall policy to get. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesGet
+newComputeNetworkFirewallPoliciesGet firewallPolicy project =
+  ComputeNetworkFirewallPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesGet where
+  type Rs ComputeNetworkFirewallPoliciesGet = FirewallPolicy
+  type
+    Scopes ComputeNetworkFirewallPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesGet {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/GetAssociation.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/GetAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/GetAssociation.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.GetAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets an association with the specified name.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.getAssociation@.
+module Gogol.Compute.NetworkFirewallPolicies.GetAssociation
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesGetAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesGetAssociation (..),
+    newComputeNetworkFirewallPoliciesGetAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.getAssociation@ method which the
+-- 'ComputeNetworkFirewallPoliciesGetAssociation' request conforms to.
+type ComputeNetworkFirewallPoliciesGetAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyAssociation
+
+-- | Gets an association with the specified name.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesGetAssociation' smart constructor.
+data ComputeNetworkFirewallPoliciesGetAssociation = ComputeNetworkFirewallPoliciesGetAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried association belongs.
+    firewallPolicy :: Core.Text,
+    -- | The name of the association to get from the firewall policy.
+    name :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesGetAssociation' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesGetAssociation ::
+  -- |  Name of the firewall policy to which the queried association belongs. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesGetAssociation
+newComputeNetworkFirewallPoliciesGetAssociation
+  firewallPolicy
+  project =
+    ComputeNetworkFirewallPoliciesGetAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        name = Core.Nothing,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesGetAssociation
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesGetAssociation =
+      FirewallPolicyAssociation
+  type
+    Scopes ComputeNetworkFirewallPoliciesGetAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesGetAssociation {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      name
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesGetAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/GetIamPolicy.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/GetIamPolicy.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.getIamPolicy@.
+module Gogol.Compute.NetworkFirewallPolicies.GetIamPolicy
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesGetIamPolicy (..),
+    newComputeNetworkFirewallPoliciesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.getIamPolicy@ method which the
+-- 'ComputeNetworkFirewallPoliciesGetIamPolicy' request conforms to.
+type ComputeNetworkFirewallPoliciesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesGetIamPolicy' smart constructor.
+data ComputeNetworkFirewallPoliciesGetIamPolicy = ComputeNetworkFirewallPoliciesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesGetIamPolicy' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesGetIamPolicy
+newComputeNetworkFirewallPoliciesGetIamPolicy project resource =
+  ComputeNetworkFirewallPoliciesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesGetIamPolicy
+  where
+  type Rs ComputeNetworkFirewallPoliciesGetIamPolicy = Policy
+  type
+    Scopes ComputeNetworkFirewallPoliciesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/GetPacketMirroringRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/GetPacketMirroringRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/GetPacketMirroringRule.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.GetPacketMirroringRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a packet mirroring rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.getPacketMirroringRule@.
+module Gogol.Compute.NetworkFirewallPolicies.GetPacketMirroringRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesGetPacketMirroringRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.getPacketMirroringRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesGetPacketMirroringRule' request conforms to.
+type ComputeNetworkFirewallPoliciesGetPacketMirroringRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getPacketMirroringRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyRule
+
+-- | Gets a packet mirroring rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesGetPacketMirroringRule' smart constructor.
+data ComputeNetworkFirewallPoliciesGetPacketMirroringRule = ComputeNetworkFirewallPoliciesGetPacketMirroringRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried rule belongs.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to get from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesGetPacketMirroringRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesGetPacketMirroringRule ::
+  -- |  Name of the firewall policy to which the queried rule belongs. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesGetPacketMirroringRule
+newComputeNetworkFirewallPoliciesGetPacketMirroringRule
+  firewallPolicy
+  project =
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        priority = Core.Nothing,
+        project = project,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRule
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesGetPacketMirroringRule =
+      FirewallPolicyRule
+  type
+    Scopes ComputeNetworkFirewallPoliciesGetPacketMirroringRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeNetworkFirewallPoliciesGetPacketMirroringRule {..} =
+      go
+        project
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        priority
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkFirewallPoliciesGetPacketMirroringRuleResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/GetRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/GetRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/GetRule.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.GetRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.getRule@.
+module Gogol.Compute.NetworkFirewallPolicies.GetRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesGetRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesGetRule (..),
+    newComputeNetworkFirewallPoliciesGetRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.getRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesGetRule' request conforms to.
+type ComputeNetworkFirewallPoliciesGetRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyRule
+
+-- | Gets a rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesGetRule' smart constructor.
+data ComputeNetworkFirewallPoliciesGetRule = ComputeNetworkFirewallPoliciesGetRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried rule belongs.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to get from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesGetRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesGetRule ::
+  -- |  Name of the firewall policy to which the queried rule belongs. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesGetRule
+newComputeNetworkFirewallPoliciesGetRule firewallPolicy project =
+  ComputeNetworkFirewallPoliciesGetRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      priority = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesGetRule where
+  type Rs ComputeNetworkFirewallPoliciesGetRule = FirewallPolicyRule
+  type
+    Scopes ComputeNetworkFirewallPoliciesGetRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesGetRule {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesGetRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/Insert.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/Insert.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.insert@.
+module Gogol.Compute.NetworkFirewallPolicies.Insert
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesInsert (..),
+    newComputeNetworkFirewallPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.insert@ method which the
+-- 'ComputeNetworkFirewallPoliciesInsert' request conforms to.
+type ComputeNetworkFirewallPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesInsert' smart constructor.
+data ComputeNetworkFirewallPoliciesInsert = ComputeNetworkFirewallPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesInsert' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesInsert
+newComputeNetworkFirewallPoliciesInsert payload project =
+  ComputeNetworkFirewallPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesInsert where
+  type Rs ComputeNetworkFirewallPoliciesInsert = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/List.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/List.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the policies that have been configured for the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.list@.
+module Gogol.Compute.NetworkFirewallPolicies.List
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesList (..),
+    newComputeNetworkFirewallPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.list@ method which the
+-- 'ComputeNetworkFirewallPoliciesList' request conforms to.
+type ComputeNetworkFirewallPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyList
+
+-- | Lists all the policies that have been configured for the specified project.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesList' smart constructor.
+data ComputeNetworkFirewallPoliciesList = ComputeNetworkFirewallPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesList' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesList
+newComputeNetworkFirewallPoliciesList project =
+  ComputeNetworkFirewallPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesList where
+  type Rs ComputeNetworkFirewallPoliciesList = FirewallPolicyList
+  type
+    Scopes ComputeNetworkFirewallPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/Patch.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified policy with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.patch@.
+module Gogol.Compute.NetworkFirewallPolicies.Patch
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesPatch (..),
+    newComputeNetworkFirewallPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.patch@ method which the
+-- 'ComputeNetworkFirewallPoliciesPatch' request conforms to.
+type ComputeNetworkFirewallPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified policy with the data included in the request.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesPatch' smart constructor.
+data ComputeNetworkFirewallPoliciesPatch = ComputeNetworkFirewallPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesPatch' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesPatch ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesPatch
+newComputeNetworkFirewallPoliciesPatch
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesPatch where
+  type Rs ComputeNetworkFirewallPoliciesPatch = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesPatch {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/PatchPacketMirroringRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/PatchPacketMirroringRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/PatchPacketMirroringRule.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.PatchPacketMirroringRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a packet mirroring rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.patchPacketMirroringRule@.
+module Gogol.Compute.NetworkFirewallPolicies.PatchPacketMirroringRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesPatchPacketMirroringRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.patchPacketMirroringRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesPatchPacketMirroringRule' request conforms to.
+type ComputeNetworkFirewallPoliciesPatchPacketMirroringRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "patchPacketMirroringRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a packet mirroring rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesPatchPacketMirroringRule' smart constructor.
+data ComputeNetworkFirewallPoliciesPatchPacketMirroringRule = ComputeNetworkFirewallPoliciesPatchPacketMirroringRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesPatchPacketMirroringRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesPatchPacketMirroringRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesPatchPacketMirroringRule
+newComputeNetworkFirewallPoliciesPatchPacketMirroringRule
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        priority = Core.Nothing,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRule
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesPatchPacketMirroringRule =
+      Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesPatchPacketMirroringRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeNetworkFirewallPoliciesPatchPacketMirroringRule {..} =
+      go
+        project
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        priority
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkFirewallPoliciesPatchPacketMirroringRuleResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/PatchRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/PatchRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/PatchRule.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.PatchRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.patchRule@.
+module Gogol.Compute.NetworkFirewallPolicies.PatchRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesPatchRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesPatchRule (..),
+    newComputeNetworkFirewallPoliciesPatchRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.patchRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesPatchRule' request conforms to.
+type ComputeNetworkFirewallPoliciesPatchRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "patchRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesPatchRule' smart constructor.
+data ComputeNetworkFirewallPoliciesPatchRule = ComputeNetworkFirewallPoliciesPatchRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesPatchRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesPatchRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesPatchRule
+newComputeNetworkFirewallPoliciesPatchRule
+  firewallPolicy
+  payload
+  project =
+    ComputeNetworkFirewallPoliciesPatchRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        priority = Core.Nothing,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNetworkFirewallPoliciesPatchRule where
+  type Rs ComputeNetworkFirewallPoliciesPatchRule = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesPatchRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesPatchRule {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesPatchRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveAssociation.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveAssociation.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.RemoveAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes an association for the specified firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.removeAssociation@.
+module Gogol.Compute.NetworkFirewallPolicies.RemoveAssociation
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesRemoveAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesRemoveAssociation (..),
+    newComputeNetworkFirewallPoliciesRemoveAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.removeAssociation@ method which the
+-- 'ComputeNetworkFirewallPoliciesRemoveAssociation' request conforms to.
+type ComputeNetworkFirewallPoliciesRemoveAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes an association for the specified firewall policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesRemoveAssociation' smart constructor.
+data ComputeNetworkFirewallPoliciesRemoveAssociation = ComputeNetworkFirewallPoliciesRemoveAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Name for the attachment that will be removed.
+    name :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesRemoveAssociation' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesRemoveAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesRemoveAssociation
+newComputeNetworkFirewallPoliciesRemoveAssociation
+  firewallPolicy
+  project =
+    ComputeNetworkFirewallPoliciesRemoveAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        name = Core.Nothing,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesRemoveAssociation
+  where
+  type Rs ComputeNetworkFirewallPoliciesRemoveAssociation = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesRemoveAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesRemoveAssociation {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      name
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesRemoveAssociationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/RemovePacketMirroringRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/RemovePacketMirroringRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/RemovePacketMirroringRule.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.RemovePacketMirroringRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a packet mirroring rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.removePacketMirroringRule@.
+module Gogol.Compute.NetworkFirewallPolicies.RemovePacketMirroringRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRule (..),
+    newComputeNetworkFirewallPoliciesRemovePacketMirroringRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.removePacketMirroringRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesRemovePacketMirroringRule' request conforms to.
+type ComputeNetworkFirewallPoliciesRemovePacketMirroringRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removePacketMirroringRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a packet mirroring rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesRemovePacketMirroringRule' smart constructor.
+data ComputeNetworkFirewallPoliciesRemovePacketMirroringRule = ComputeNetworkFirewallPoliciesRemovePacketMirroringRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to remove from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesRemovePacketMirroringRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesRemovePacketMirroringRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesRemovePacketMirroringRule
+newComputeNetworkFirewallPoliciesRemovePacketMirroringRule
+  firewallPolicy
+  project =
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        priority = Core.Nothing,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRule
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesRemovePacketMirroringRule =
+      Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesRemovePacketMirroringRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeNetworkFirewallPoliciesRemovePacketMirroringRule {..} =
+      go
+        project
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        priority
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeNetworkFirewallPoliciesRemovePacketMirroringRuleResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveRule.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/RemoveRule.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.RemoveRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.removeRule@.
+module Gogol.Compute.NetworkFirewallPolicies.RemoveRule
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesRemoveRuleResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesRemoveRule (..),
+    newComputeNetworkFirewallPoliciesRemoveRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.removeRule@ method which the
+-- 'ComputeNetworkFirewallPoliciesRemoveRule' request conforms to.
+type ComputeNetworkFirewallPoliciesRemoveRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a rule of the specified priority.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesRemoveRule' smart constructor.
+data ComputeNetworkFirewallPoliciesRemoveRule = ComputeNetworkFirewallPoliciesRemoveRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to remove from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesRemoveRule' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesRemoveRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesRemoveRule
+newComputeNetworkFirewallPoliciesRemoveRule firewallPolicy project =
+  ComputeNetworkFirewallPoliciesRemoveRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      firewallPolicy = firewallPolicy,
+      priority = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesRemoveRule
+  where
+  type Rs ComputeNetworkFirewallPoliciesRemoveRule = Operation
+  type
+    Scopes ComputeNetworkFirewallPoliciesRemoveRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesRemoveRule {..} =
+    go
+      project
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesRemoveRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/SetIamPolicy.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/SetIamPolicy.hs
@@ -0,0 +1,136 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.setIamPolicy@.
+module Gogol.Compute.NetworkFirewallPolicies.SetIamPolicy
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesSetIamPolicy (..),
+    newComputeNetworkFirewallPoliciesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.setIamPolicy@ method which the
+-- 'ComputeNetworkFirewallPoliciesSetIamPolicy' request conforms to.
+type ComputeNetworkFirewallPoliciesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesSetIamPolicy' smart constructor.
+data ComputeNetworkFirewallPoliciesSetIamPolicy = ComputeNetworkFirewallPoliciesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesSetIamPolicy' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesSetIamPolicy
+newComputeNetworkFirewallPoliciesSetIamPolicy
+  payload
+  project
+  resource =
+    ComputeNetworkFirewallPoliciesSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesSetIamPolicy
+  where
+  type Rs ComputeNetworkFirewallPoliciesSetIamPolicy = Policy
+  type
+    Scopes ComputeNetworkFirewallPoliciesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworkFirewallPoliciesSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworkFirewallPoliciesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkFirewallPolicies/TestIamPermissions.hs b/gen/Gogol/Compute/NetworkFirewallPolicies/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkFirewallPolicies/TestIamPermissions.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkFirewallPolicies.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkFirewallPolicies.testIamPermissions@.
+module Gogol.Compute.NetworkFirewallPolicies.TestIamPermissions
+  ( -- * Resource
+    ComputeNetworkFirewallPoliciesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkFirewallPoliciesTestIamPermissions (..),
+    newComputeNetworkFirewallPoliciesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkFirewallPolicies.testIamPermissions@ method which the
+-- 'ComputeNetworkFirewallPoliciesTestIamPermissions' request conforms to.
+type ComputeNetworkFirewallPoliciesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeNetworkFirewallPoliciesTestIamPermissions' smart constructor.
+data ComputeNetworkFirewallPoliciesTestIamPermissions = ComputeNetworkFirewallPoliciesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkFirewallPoliciesTestIamPermissions' with the minimum fields required to make a request.
+newComputeNetworkFirewallPoliciesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNetworkFirewallPoliciesTestIamPermissions
+newComputeNetworkFirewallPoliciesTestIamPermissions
+  payload
+  project
+  resource =
+    ComputeNetworkFirewallPoliciesTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNetworkFirewallPoliciesTestIamPermissions
+  where
+  type
+    Rs ComputeNetworkFirewallPoliciesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeNetworkFirewallPoliciesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkFirewallPoliciesTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeNetworkFirewallPoliciesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkProfiles/Get.hs b/gen/Gogol/Compute/NetworkProfiles/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkProfiles/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkProfiles.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network profile.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkProfiles.get@.
+module Gogol.Compute.NetworkProfiles.Get
+  ( -- * Resource
+    ComputeNetworkProfilesGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkProfilesGet (..),
+    newComputeNetworkProfilesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkProfiles.get@ method which the
+-- 'ComputeNetworkProfilesGet' request conforms to.
+type ComputeNetworkProfilesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkProfiles"
+    Core.:> Core.Capture "networkProfile" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkProfile
+
+-- | Returns the specified network profile.
+--
+-- /See:/ 'newComputeNetworkProfilesGet' smart constructor.
+data ComputeNetworkProfilesGet = ComputeNetworkProfilesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network profile to return.
+    networkProfile :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkProfilesGet' with the minimum fields required to make a request.
+newComputeNetworkProfilesGet ::
+  -- |  Name of the network profile to return. See 'networkProfile'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkProfilesGet
+newComputeNetworkProfilesGet networkProfile project =
+  ComputeNetworkProfilesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      networkProfile = networkProfile,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkProfilesGet where
+  type Rs ComputeNetworkProfilesGet = NetworkProfile
+  type
+    Scopes ComputeNetworkProfilesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkProfilesGet {..} =
+    go
+      project
+      networkProfile
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkProfilesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NetworkProfiles/List.hs b/gen/Gogol/Compute/NetworkProfiles/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NetworkProfiles/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NetworkProfiles.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of network profiles available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networkProfiles.list@.
+module Gogol.Compute.NetworkProfiles.List
+  ( -- * Resource
+    ComputeNetworkProfilesListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworkProfilesList (..),
+    newComputeNetworkProfilesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networkProfiles.list@ method which the
+-- 'ComputeNetworkProfilesList' request conforms to.
+type ComputeNetworkProfilesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networkProfiles"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkProfilesListResponse
+
+-- | Retrieves a list of network profiles available to the specified project.
+--
+-- /See:/ 'newComputeNetworkProfilesList' smart constructor.
+data ComputeNetworkProfilesList = ComputeNetworkProfilesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworkProfilesList' with the minimum fields required to make a request.
+newComputeNetworkProfilesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworkProfilesList
+newComputeNetworkProfilesList project =
+  ComputeNetworkProfilesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworkProfilesList where
+  type Rs ComputeNetworkProfilesList = NetworkProfilesListResponse
+  type
+    Scopes ComputeNetworkProfilesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworkProfilesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworkProfilesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/AddPeering.hs b/gen/Gogol/Compute/Networks/AddPeering.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/AddPeering.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.AddPeering
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a peering to the specified network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.addPeering@.
+module Gogol.Compute.Networks.AddPeering
+  ( -- * Resource
+    ComputeNetworksAddPeeringResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksAddPeering (..),
+    newComputeNetworksAddPeering,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.addPeering@ method which the
+-- 'ComputeNetworksAddPeering' request conforms to.
+type ComputeNetworksAddPeeringResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "addPeering"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworksAddPeeringRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds a peering to the specified network.
+--
+-- /See:/ 'newComputeNetworksAddPeering' smart constructor.
+data ComputeNetworksAddPeering = ComputeNetworksAddPeering
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network resource to add peering to.
+    network :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworksAddPeeringRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksAddPeering' with the minimum fields required to make a request.
+newComputeNetworksAddPeering ::
+  -- |  Name of the network resource to add peering to. See 'network'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworksAddPeeringRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksAddPeering
+newComputeNetworksAddPeering network payload project =
+  ComputeNetworksAddPeering
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksAddPeering where
+  type Rs ComputeNetworksAddPeering = Operation
+  type
+    Scopes ComputeNetworksAddPeering =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksAddPeering {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksAddPeeringResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/Delete.hs b/gen/Gogol/Compute/Networks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.delete@.
+module Gogol.Compute.Networks.Delete
+  ( -- * Resource
+    ComputeNetworksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksDelete (..),
+    newComputeNetworksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.delete@ method which the
+-- 'ComputeNetworksDelete' request conforms to.
+type ComputeNetworksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified network.
+--
+-- /See:/ 'newComputeNetworksDelete' smart constructor.
+data ComputeNetworksDelete = ComputeNetworksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network to delete.
+    network :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksDelete' with the minimum fields required to make a request.
+newComputeNetworksDelete ::
+  -- |  Name of the network to delete. See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksDelete
+newComputeNetworksDelete network project =
+  ComputeNetworksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksDelete where
+  type Rs ComputeNetworksDelete = Operation
+  type
+    Scopes ComputeNetworksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksDelete {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/Get.hs b/gen/Gogol/Compute/Networks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.get@.
+module Gogol.Compute.Networks.Get
+  ( -- * Resource
+    ComputeNetworksGetResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksGet (..),
+    newComputeNetworksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.get@ method which the
+-- 'ComputeNetworksGet' request conforms to.
+type ComputeNetworksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Network
+
+-- | Returns the specified network.
+--
+-- /See:/ 'newComputeNetworksGet' smart constructor.
+data ComputeNetworksGet = ComputeNetworksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network to return.
+    network :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksGet' with the minimum fields required to make a request.
+newComputeNetworksGet ::
+  -- |  Name of the network to return. See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksGet
+newComputeNetworksGet network project =
+  ComputeNetworksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksGet where
+  type Rs ComputeNetworksGet = Network
+  type
+    Scopes ComputeNetworksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworksGet {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/GetEffectiveFirewalls.hs b/gen/Gogol/Compute/Networks/GetEffectiveFirewalls.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/GetEffectiveFirewalls.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.GetEffectiveFirewalls
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the effective firewalls on a given network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.getEffectiveFirewalls@.
+module Gogol.Compute.Networks.GetEffectiveFirewalls
+  ( -- * Resource
+    ComputeNetworksGetEffectiveFirewallsResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksGetEffectiveFirewalls (..),
+    newComputeNetworksGetEffectiveFirewalls,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.getEffectiveFirewalls@ method which the
+-- 'ComputeNetworksGetEffectiveFirewalls' request conforms to.
+type ComputeNetworksGetEffectiveFirewallsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "getEffectiveFirewalls"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworksGetEffectiveFirewallsResponse
+
+-- | Returns the effective firewalls on a given network.
+--
+-- /See:/ 'newComputeNetworksGetEffectiveFirewalls' smart constructor.
+data ComputeNetworksGetEffectiveFirewalls = ComputeNetworksGetEffectiveFirewalls
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network for this request.
+    network :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksGetEffectiveFirewalls' with the minimum fields required to make a request.
+newComputeNetworksGetEffectiveFirewalls ::
+  -- |  Name of the network for this request. See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksGetEffectiveFirewalls
+newComputeNetworksGetEffectiveFirewalls network project =
+  ComputeNetworksGetEffectiveFirewalls
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksGetEffectiveFirewalls where
+  type
+    Rs ComputeNetworksGetEffectiveFirewalls =
+      NetworksGetEffectiveFirewallsResponse
+  type
+    Scopes ComputeNetworksGetEffectiveFirewalls =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworksGetEffectiveFirewalls {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworksGetEffectiveFirewallsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/Insert.hs b/gen/Gogol/Compute/Networks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a network in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.insert@.
+module Gogol.Compute.Networks.Insert
+  ( -- * Resource
+    ComputeNetworksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksInsert (..),
+    newComputeNetworksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.insert@ method which the
+-- 'ComputeNetworksInsert' request conforms to.
+type ComputeNetworksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Network
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a network in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeNetworksInsert' smart constructor.
+data ComputeNetworksInsert = ComputeNetworksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Network,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksInsert' with the minimum fields required to make a request.
+newComputeNetworksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Network ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksInsert
+newComputeNetworksInsert payload project =
+  ComputeNetworksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksInsert where
+  type Rs ComputeNetworksInsert = Operation
+  type
+    Scopes ComputeNetworksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/List.hs b/gen/Gogol/Compute/Networks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of networks available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.list@.
+module Gogol.Compute.Networks.List
+  ( -- * Resource
+    ComputeNetworksListResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksList (..),
+    newComputeNetworksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.list@ method which the
+-- 'ComputeNetworksList' request conforms to.
+type ComputeNetworksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkList
+
+-- | Retrieves the list of networks available to the specified project.
+--
+-- /See:/ 'newComputeNetworksList' smart constructor.
+data ComputeNetworksList = ComputeNetworksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksList' with the minimum fields required to make a request.
+newComputeNetworksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksList
+newComputeNetworksList project =
+  ComputeNetworksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksList where
+  type Rs ComputeNetworksList = NetworkList
+  type
+    Scopes ComputeNetworksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworksList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/ListPeeringRoutes.hs b/gen/Gogol/Compute/Networks/ListPeeringRoutes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/ListPeeringRoutes.hs
@@ -0,0 +1,165 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.ListPeeringRoutes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the peering routes exchanged over peering connection.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.listPeeringRoutes@.
+module Gogol.Compute.Networks.ListPeeringRoutes
+  ( -- * Resource
+    ComputeNetworksListPeeringRoutesResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksListPeeringRoutes (..),
+    newComputeNetworksListPeeringRoutes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.listPeeringRoutes@ method which the
+-- 'ComputeNetworksListPeeringRoutes' request conforms to.
+type ComputeNetworksListPeeringRoutesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "listPeeringRoutes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "direction" NetworksListPeeringRoutesDirection
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "peeringName" Core.Text
+    Core.:> Core.QueryParam "region" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ExchangedPeeringRoutesList
+
+-- | Lists the peering routes exchanged over peering connection.
+--
+-- /See:/ 'newComputeNetworksListPeeringRoutes' smart constructor.
+data ComputeNetworksListPeeringRoutes = ComputeNetworksListPeeringRoutes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The direction of the exchanged routes.
+    direction :: (Core.Maybe NetworksListPeeringRoutesDirection),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Name of the network for this request.
+    network :: Core.Text,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | The response will show routes exchanged over the given peering connection.
+    peeringName :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.
+    region :: (Core.Maybe Core.Text),
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksListPeeringRoutes' with the minimum fields required to make a request.
+newComputeNetworksListPeeringRoutes ::
+  -- |  Name of the network for this request. See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksListPeeringRoutes
+newComputeNetworksListPeeringRoutes network project =
+  ComputeNetworksListPeeringRoutes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      direction = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      network = network,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      peeringName = Core.Nothing,
+      project = project,
+      region = Core.Nothing,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksListPeeringRoutes where
+  type
+    Rs ComputeNetworksListPeeringRoutes =
+      ExchangedPeeringRoutesList
+  type
+    Scopes ComputeNetworksListPeeringRoutes =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNetworksListPeeringRoutes {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      direction
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      peeringName
+      region
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksListPeeringRoutesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/Patch.hs b/gen/Gogol/Compute/Networks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified network with the data included in the request. Only routingConfig can be modified.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.patch@.
+module Gogol.Compute.Networks.Patch
+  ( -- * Resource
+    ComputeNetworksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksPatch (..),
+    newComputeNetworksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.patch@ method which the
+-- 'ComputeNetworksPatch' request conforms to.
+type ComputeNetworksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Network
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified network with the data included in the request. Only routingConfig can be modified.
+--
+-- /See:/ 'newComputeNetworksPatch' smart constructor.
+data ComputeNetworksPatch = ComputeNetworksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network to update.
+    network :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Network,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksPatch' with the minimum fields required to make a request.
+newComputeNetworksPatch ::
+  -- |  Name of the network to update. See 'network'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Network ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksPatch
+newComputeNetworksPatch network payload project =
+  ComputeNetworksPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksPatch where
+  type Rs ComputeNetworksPatch = Operation
+  type
+    Scopes ComputeNetworksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksPatch {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/RemovePeering.hs b/gen/Gogol/Compute/Networks/RemovePeering.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/RemovePeering.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.RemovePeering
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes a peering from the specified network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.removePeering@.
+module Gogol.Compute.Networks.RemovePeering
+  ( -- * Resource
+    ComputeNetworksRemovePeeringResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksRemovePeering (..),
+    newComputeNetworksRemovePeering,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.removePeering@ method which the
+-- 'ComputeNetworksRemovePeering' request conforms to.
+type ComputeNetworksRemovePeeringResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "removePeering"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworksRemovePeeringRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes a peering from the specified network.
+--
+-- /See:/ 'newComputeNetworksRemovePeering' smart constructor.
+data ComputeNetworksRemovePeering = ComputeNetworksRemovePeering
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network resource to remove peering from.
+    network :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworksRemovePeeringRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksRemovePeering' with the minimum fields required to make a request.
+newComputeNetworksRemovePeering ::
+  -- |  Name of the network resource to remove peering from. See 'network'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworksRemovePeeringRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksRemovePeering
+newComputeNetworksRemovePeering network payload project =
+  ComputeNetworksRemovePeering
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksRemovePeering where
+  type Rs ComputeNetworksRemovePeering = Operation
+  type
+    Scopes ComputeNetworksRemovePeering =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksRemovePeering {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksRemovePeeringResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/SwitchToCustomMode.hs b/gen/Gogol/Compute/Networks/SwitchToCustomMode.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/SwitchToCustomMode.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.SwitchToCustomMode
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Switches the network mode from auto subnet mode to custom subnet mode.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.switchToCustomMode@.
+module Gogol.Compute.Networks.SwitchToCustomMode
+  ( -- * Resource
+    ComputeNetworksSwitchToCustomModeResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksSwitchToCustomMode (..),
+    newComputeNetworksSwitchToCustomMode,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.switchToCustomMode@ method which the
+-- 'ComputeNetworksSwitchToCustomMode' request conforms to.
+type ComputeNetworksSwitchToCustomModeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "switchToCustomMode"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Switches the network mode from auto subnet mode to custom subnet mode.
+--
+-- /See:/ 'newComputeNetworksSwitchToCustomMode' smart constructor.
+data ComputeNetworksSwitchToCustomMode = ComputeNetworksSwitchToCustomMode
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network to be updated.
+    network :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksSwitchToCustomMode' with the minimum fields required to make a request.
+newComputeNetworksSwitchToCustomMode ::
+  -- |  Name of the network to be updated. See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksSwitchToCustomMode
+newComputeNetworksSwitchToCustomMode network project =
+  ComputeNetworksSwitchToCustomMode
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksSwitchToCustomMode where
+  type Rs ComputeNetworksSwitchToCustomMode = Operation
+  type
+    Scopes ComputeNetworksSwitchToCustomMode =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksSwitchToCustomMode {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNetworksSwitchToCustomModeResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Networks/UpdatePeering.hs b/gen/Gogol/Compute/Networks/UpdatePeering.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Networks/UpdatePeering.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Networks.UpdatePeering
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export/custom/routes field and the NetworkPeering.import/custom/routes field.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.networks.updatePeering@.
+module Gogol.Compute.Networks.UpdatePeering
+  ( -- * Resource
+    ComputeNetworksUpdatePeeringResource,
+
+    -- ** Constructing a Request
+    ComputeNetworksUpdatePeering (..),
+    newComputeNetworksUpdatePeering,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.networks.updatePeering@ method which the
+-- 'ComputeNetworksUpdatePeering' request conforms to.
+type ComputeNetworksUpdatePeeringResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "networks"
+    Core.:> Core.Capture "network" Core.Text
+    Core.:> "updatePeering"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworksUpdatePeeringRequest
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified network peering with the data included in the request. You can only modify the NetworkPeering.export/custom/routes field and the NetworkPeering.import/custom/routes field.
+--
+-- /See:/ 'newComputeNetworksUpdatePeering' smart constructor.
+data ComputeNetworksUpdatePeering = ComputeNetworksUpdatePeering
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the network resource which the updated peering is belonging to.
+    network :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NetworksUpdatePeeringRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNetworksUpdatePeering' with the minimum fields required to make a request.
+newComputeNetworksUpdatePeering ::
+  -- |  Name of the network resource which the updated peering is belonging to. See 'network'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NetworksUpdatePeeringRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNetworksUpdatePeering
+newComputeNetworksUpdatePeering network payload project =
+  ComputeNetworksUpdatePeering
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      network = network,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNetworksUpdatePeering where
+  type Rs ComputeNetworksUpdatePeering = Operation
+  type
+    Scopes ComputeNetworksUpdatePeering =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNetworksUpdatePeering {..} =
+    go
+      project
+      network
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNetworksUpdatePeeringResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/AddNodes.hs b/gen/Gogol/Compute/NodeGroups/AddNodes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/AddNodes.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.AddNodes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds specified number of nodes to the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.addNodes@.
+module Gogol.Compute.NodeGroups.AddNodes
+  ( -- * Resource
+    ComputeNodeGroupsAddNodesResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsAddNodes (..),
+    newComputeNodeGroupsAddNodes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.addNodes@ method which the
+-- 'ComputeNodeGroupsAddNodes' request conforms to.
+type ComputeNodeGroupsAddNodesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "addNodes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroupsAddNodesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds specified number of nodes to the node group.
+--
+-- /See:/ 'newComputeNodeGroupsAddNodes' smart constructor.
+data ComputeNodeGroupsAddNodes = ComputeNodeGroupsAddNodes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroupsAddNodesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsAddNodes' with the minimum fields required to make a request.
+newComputeNodeGroupsAddNodes ::
+  -- |  Name of the NodeGroup resource. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroupsAddNodesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsAddNodes
+newComputeNodeGroupsAddNodes nodeGroup payload project zone =
+  ComputeNodeGroupsAddNodes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsAddNodes where
+  type Rs ComputeNodeGroupsAddNodes = Operation
+  type
+    Scopes ComputeNodeGroupsAddNodes =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsAddNodes {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsAddNodesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/AggregatedList.hs b/gen/Gogol/Compute/NodeGroups/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.aggregatedList@.
+module Gogol.Compute.NodeGroups.AggregatedList
+  ( -- * Resource
+    ComputeNodeGroupsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsAggregatedList (..),
+    newComputeNodeGroupsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.aggregatedList@ method which the
+-- 'ComputeNodeGroupsAggregatedList' request conforms to.
+type ComputeNodeGroupsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "nodeGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeGroupAggregatedList
+
+-- | Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNodeGroupsAggregatedList' smart constructor.
+data ComputeNodeGroupsAggregatedList = ComputeNodeGroupsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsAggregatedList' with the minimum fields required to make a request.
+newComputeNodeGroupsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNodeGroupsAggregatedList
+newComputeNodeGroupsAggregatedList project =
+  ComputeNodeGroupsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsAggregatedList where
+  type Rs ComputeNodeGroupsAggregatedList = NodeGroupAggregatedList
+  type
+    Scopes ComputeNodeGroupsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/Delete.hs b/gen/Gogol/Compute/NodeGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified NodeGroup resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.delete@.
+module Gogol.Compute.NodeGroups.Delete
+  ( -- * Resource
+    ComputeNodeGroupsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsDelete (..),
+    newComputeNodeGroupsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.delete@ method which the
+-- 'ComputeNodeGroupsDelete' request conforms to.
+type ComputeNodeGroupsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified NodeGroup resource.
+--
+-- /See:/ 'newComputeNodeGroupsDelete' smart constructor.
+data ComputeNodeGroupsDelete = ComputeNodeGroupsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource to delete.
+    nodeGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsDelete' with the minimum fields required to make a request.
+newComputeNodeGroupsDelete ::
+  -- |  Name of the NodeGroup resource to delete. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsDelete
+newComputeNodeGroupsDelete nodeGroup project zone =
+  ComputeNodeGroupsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsDelete where
+  type Rs ComputeNodeGroupsDelete = Operation
+  type
+    Scopes ComputeNodeGroupsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsDelete {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/DeleteNodes.hs b/gen/Gogol/Compute/NodeGroups/DeleteNodes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/DeleteNodes.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.DeleteNodes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes specified nodes from the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.deleteNodes@.
+module Gogol.Compute.NodeGroups.DeleteNodes
+  ( -- * Resource
+    ComputeNodeGroupsDeleteNodesResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsDeleteNodes (..),
+    newComputeNodeGroupsDeleteNodes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.deleteNodes@ method which the
+-- 'ComputeNodeGroupsDeleteNodes' request conforms to.
+type ComputeNodeGroupsDeleteNodesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "deleteNodes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroupsDeleteNodesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes specified nodes from the node group.
+--
+-- /See:/ 'newComputeNodeGroupsDeleteNodes' smart constructor.
+data ComputeNodeGroupsDeleteNodes = ComputeNodeGroupsDeleteNodes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource whose nodes will be deleted.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroupsDeleteNodesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsDeleteNodes' with the minimum fields required to make a request.
+newComputeNodeGroupsDeleteNodes ::
+  -- |  Name of the NodeGroup resource whose nodes will be deleted. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroupsDeleteNodesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsDeleteNodes
+newComputeNodeGroupsDeleteNodes nodeGroup payload project zone =
+  ComputeNodeGroupsDeleteNodes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsDeleteNodes where
+  type Rs ComputeNodeGroupsDeleteNodes = Operation
+  type
+    Scopes ComputeNodeGroupsDeleteNodes =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsDeleteNodes {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsDeleteNodesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/Get.hs b/gen/Gogol/Compute/NodeGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.get@.
+module Gogol.Compute.NodeGroups.Get
+  ( -- * Resource
+    ComputeNodeGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsGet (..),
+    newComputeNodeGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.get@ method which the
+-- 'ComputeNodeGroupsGet' request conforms to.
+type ComputeNodeGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeGroup
+
+-- | Returns the specified NodeGroup. Get a list of available NodeGroups by making a list() request. Note: the \"nodes\" field should not be used. Use nodeGroups.listNodes instead.
+--
+-- /See:/ 'newComputeNodeGroupsGet' smart constructor.
+data ComputeNodeGroupsGet = ComputeNodeGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the node group to return.
+    nodeGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsGet' with the minimum fields required to make a request.
+newComputeNodeGroupsGet ::
+  -- |  Name of the node group to return. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsGet
+newComputeNodeGroupsGet nodeGroup project zone =
+  ComputeNodeGroupsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsGet where
+  type Rs ComputeNodeGroupsGet = NodeGroup
+  type
+    Scopes ComputeNodeGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsGet {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/GetIamPolicy.hs b/gen/Gogol/Compute/NodeGroups/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.getIamPolicy@.
+module Gogol.Compute.NodeGroups.GetIamPolicy
+  ( -- * Resource
+    ComputeNodeGroupsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsGetIamPolicy (..),
+    newComputeNodeGroupsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.getIamPolicy@ method which the
+-- 'ComputeNodeGroupsGetIamPolicy' request conforms to.
+type ComputeNodeGroupsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeNodeGroupsGetIamPolicy' smart constructor.
+data ComputeNodeGroupsGetIamPolicy = ComputeNodeGroupsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsGetIamPolicy' with the minimum fields required to make a request.
+newComputeNodeGroupsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsGetIamPolicy
+newComputeNodeGroupsGetIamPolicy project resource zone =
+  ComputeNodeGroupsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsGetIamPolicy where
+  type Rs ComputeNodeGroupsGetIamPolicy = Policy
+  type
+    Scopes ComputeNodeGroupsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/Insert.hs b/gen/Gogol/Compute/NodeGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/Insert.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a NodeGroup resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.insert@.
+module Gogol.Compute.NodeGroups.Insert
+  ( -- * Resource
+    ComputeNodeGroupsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsInsert (..),
+    newComputeNodeGroupsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.insert@ method which the
+-- 'ComputeNodeGroupsInsert' request conforms to.
+type ComputeNodeGroupsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.QueryParam "initialNodeCount" Core.Int32
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroup
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a NodeGroup resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeNodeGroupsInsert' smart constructor.
+data ComputeNodeGroupsInsert = ComputeNodeGroupsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Initial count of nodes in the node group.
+    initialNodeCount :: Core.Int32,
+    -- | Multipart request metadata.
+    payload :: NodeGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsInsert' with the minimum fields required to make a request.
+newComputeNodeGroupsInsert ::
+  -- |  Initial count of nodes in the node group. See 'initialNodeCount'.
+  Core.Int32 ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsInsert
+newComputeNodeGroupsInsert initialNodeCount payload project zone =
+  ComputeNodeGroupsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      initialNodeCount = initialNodeCount,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsInsert where
+  type Rs ComputeNodeGroupsInsert = Operation
+  type
+    Scopes ComputeNodeGroupsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsInsert {..} =
+    go
+      project
+      zone
+      (Core.Just initialNodeCount)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/List.hs b/gen/Gogol/Compute/NodeGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.list@.
+module Gogol.Compute.NodeGroups.List
+  ( -- * Resource
+    ComputeNodeGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsList (..),
+    newComputeNodeGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.list@ method which the
+-- 'ComputeNodeGroupsList' request conforms to.
+type ComputeNodeGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeGroupList
+
+-- | Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.
+--
+-- /See:/ 'newComputeNodeGroupsList' smart constructor.
+data ComputeNodeGroupsList = ComputeNodeGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsList' with the minimum fields required to make a request.
+newComputeNodeGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsList
+newComputeNodeGroupsList project zone =
+  ComputeNodeGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsList where
+  type Rs ComputeNodeGroupsList = NodeGroupList
+  type
+    Scopes ComputeNodeGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/ListNodes.hs b/gen/Gogol/Compute/NodeGroups/ListNodes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/ListNodes.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.ListNodes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists nodes in the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.listNodes@.
+module Gogol.Compute.NodeGroups.ListNodes
+  ( -- * Resource
+    ComputeNodeGroupsListNodesResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsListNodes (..),
+    newComputeNodeGroupsListNodes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.listNodes@ method which the
+-- 'ComputeNodeGroupsListNodes' request conforms to.
+type ComputeNodeGroupsListNodesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "listNodes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] NodeGroupsListNodes
+
+-- | Lists nodes in the node group.
+--
+-- /See:/ 'newComputeNodeGroupsListNodes' smart constructor.
+data ComputeNodeGroupsListNodes = ComputeNodeGroupsListNodes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Name of the NodeGroup resource whose nodes you want to list.
+    nodeGroup :: Core.Text,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsListNodes' with the minimum fields required to make a request.
+newComputeNodeGroupsListNodes ::
+  -- |  Name of the NodeGroup resource whose nodes you want to list. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsListNodes
+newComputeNodeGroupsListNodes nodeGroup project zone =
+  ComputeNodeGroupsListNodes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      nodeGroup = nodeGroup,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsListNodes where
+  type Rs ComputeNodeGroupsListNodes = NodeGroupsListNodes
+  type
+    Scopes ComputeNodeGroupsListNodes =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsListNodes {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsListNodesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/Patch.hs b/gen/Gogol/Compute/NodeGroups/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/Patch.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.patch@.
+module Gogol.Compute.NodeGroups.Patch
+  ( -- * Resource
+    ComputeNodeGroupsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsPatch (..),
+    newComputeNodeGroupsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.patch@ method which the
+-- 'ComputeNodeGroupsPatch' request conforms to.
+type ComputeNodeGroupsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroup
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified node group.
+--
+-- /See:/ 'newComputeNodeGroupsPatch' smart constructor.
+data ComputeNodeGroupsPatch = ComputeNodeGroupsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource to update.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsPatch' with the minimum fields required to make a request.
+newComputeNodeGroupsPatch ::
+  -- |  Name of the NodeGroup resource to update. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsPatch
+newComputeNodeGroupsPatch nodeGroup payload project zone =
+  ComputeNodeGroupsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsPatch where
+  type Rs ComputeNodeGroupsPatch = Operation
+  type
+    Scopes ComputeNodeGroupsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsPatch {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/PerformMaintenance.hs b/gen/Gogol/Compute/NodeGroups/PerformMaintenance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/PerformMaintenance.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.PerformMaintenance
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Perform maintenance on a subset of nodes in the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.performMaintenance@.
+module Gogol.Compute.NodeGroups.PerformMaintenance
+  ( -- * Resource
+    ComputeNodeGroupsPerformMaintenanceResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsPerformMaintenance (..),
+    newComputeNodeGroupsPerformMaintenance,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.performMaintenance@ method which the
+-- 'ComputeNodeGroupsPerformMaintenance' request conforms to.
+type ComputeNodeGroupsPerformMaintenanceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "performMaintenance"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroupsPerformMaintenanceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Perform maintenance on a subset of nodes in the node group.
+--
+-- /See:/ 'newComputeNodeGroupsPerformMaintenance' smart constructor.
+data ComputeNodeGroupsPerformMaintenance = ComputeNodeGroupsPerformMaintenance
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the node group scoping this request.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroupsPerformMaintenanceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsPerformMaintenance' with the minimum fields required to make a request.
+newComputeNodeGroupsPerformMaintenance ::
+  -- |  Name of the node group scoping this request. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroupsPerformMaintenanceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsPerformMaintenance
+newComputeNodeGroupsPerformMaintenance
+  nodeGroup
+  payload
+  project
+  zone =
+    ComputeNodeGroupsPerformMaintenance
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        nodeGroup = nodeGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeNodeGroupsPerformMaintenance where
+  type Rs ComputeNodeGroupsPerformMaintenance = Operation
+  type
+    Scopes ComputeNodeGroupsPerformMaintenance =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsPerformMaintenance {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNodeGroupsPerformMaintenanceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/SetIamPolicy.hs b/gen/Gogol/Compute/NodeGroups/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.setIamPolicy@.
+module Gogol.Compute.NodeGroups.SetIamPolicy
+  ( -- * Resource
+    ComputeNodeGroupsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsSetIamPolicy (..),
+    newComputeNodeGroupsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.setIamPolicy@ method which the
+-- 'ComputeNodeGroupsSetIamPolicy' request conforms to.
+type ComputeNodeGroupsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeNodeGroupsSetIamPolicy' smart constructor.
+data ComputeNodeGroupsSetIamPolicy = ComputeNodeGroupsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsSetIamPolicy' with the minimum fields required to make a request.
+newComputeNodeGroupsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsSetIamPolicy
+newComputeNodeGroupsSetIamPolicy payload project resource zone =
+  ComputeNodeGroupsSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsSetIamPolicy where
+  type Rs ComputeNodeGroupsSetIamPolicy = Policy
+  type
+    Scopes ComputeNodeGroupsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/SetNodeTemplate.hs b/gen/Gogol/Compute/NodeGroups/SetNodeTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/SetNodeTemplate.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.SetNodeTemplate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the node template of the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.setNodeTemplate@.
+module Gogol.Compute.NodeGroups.SetNodeTemplate
+  ( -- * Resource
+    ComputeNodeGroupsSetNodeTemplateResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsSetNodeTemplate (..),
+    newComputeNodeGroupsSetNodeTemplate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.setNodeTemplate@ method which the
+-- 'ComputeNodeGroupsSetNodeTemplate' request conforms to.
+type ComputeNodeGroupsSetNodeTemplateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "setNodeTemplate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeGroupsSetNodeTemplateRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Updates the node template of the node group.
+--
+-- /See:/ 'newComputeNodeGroupsSetNodeTemplate' smart constructor.
+data ComputeNodeGroupsSetNodeTemplate = ComputeNodeGroupsSetNodeTemplate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource to update.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroupsSetNodeTemplateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsSetNodeTemplate' with the minimum fields required to make a request.
+newComputeNodeGroupsSetNodeTemplate ::
+  -- |  Name of the NodeGroup resource to update. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroupsSetNodeTemplateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsSetNodeTemplate
+newComputeNodeGroupsSetNodeTemplate nodeGroup payload project zone =
+  ComputeNodeGroupsSetNodeTemplate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeGroup = nodeGroup,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeGroupsSetNodeTemplate where
+  type Rs ComputeNodeGroupsSetNodeTemplate = Operation
+  type
+    Scopes ComputeNodeGroupsSetNodeTemplate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsSetNodeTemplate {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeGroupsSetNodeTemplateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/SimulateMaintenanceEvent.hs b/gen/Gogol/Compute/NodeGroups/SimulateMaintenanceEvent.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/SimulateMaintenanceEvent.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.SimulateMaintenanceEvent
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Simulates maintenance event on specified nodes from the node group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.simulateMaintenanceEvent@.
+module Gogol.Compute.NodeGroups.SimulateMaintenanceEvent
+  ( -- * Resource
+    ComputeNodeGroupsSimulateMaintenanceEventResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsSimulateMaintenanceEvent (..),
+    newComputeNodeGroupsSimulateMaintenanceEvent,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.simulateMaintenanceEvent@ method which the
+-- 'ComputeNodeGroupsSimulateMaintenanceEvent' request conforms to.
+type ComputeNodeGroupsSimulateMaintenanceEventResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "nodeGroup" Core.Text
+    Core.:> "simulateMaintenanceEvent"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              NodeGroupsSimulateMaintenanceEventRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Simulates maintenance event on specified nodes from the node group.
+--
+-- /See:/ 'newComputeNodeGroupsSimulateMaintenanceEvent' smart constructor.
+data ComputeNodeGroupsSimulateMaintenanceEvent = ComputeNodeGroupsSimulateMaintenanceEvent
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeGroup resource whose nodes will go under maintenance simulation.
+    nodeGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: NodeGroupsSimulateMaintenanceEventRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsSimulateMaintenanceEvent' with the minimum fields required to make a request.
+newComputeNodeGroupsSimulateMaintenanceEvent ::
+  -- |  Name of the NodeGroup resource whose nodes will go under maintenance simulation. See 'nodeGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  NodeGroupsSimulateMaintenanceEventRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsSimulateMaintenanceEvent
+newComputeNodeGroupsSimulateMaintenanceEvent
+  nodeGroup
+  payload
+  project
+  zone =
+    ComputeNodeGroupsSimulateMaintenanceEvent
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        nodeGroup = nodeGroup,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeNodeGroupsSimulateMaintenanceEvent
+  where
+  type Rs ComputeNodeGroupsSimulateMaintenanceEvent = Operation
+  type
+    Scopes ComputeNodeGroupsSimulateMaintenanceEvent =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeGroupsSimulateMaintenanceEvent {..} =
+    go
+      project
+      zone
+      nodeGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNodeGroupsSimulateMaintenanceEventResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeGroups/TestIamPermissions.hs b/gen/Gogol/Compute/NodeGroups/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeGroups/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeGroups.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeGroups.testIamPermissions@.
+module Gogol.Compute.NodeGroups.TestIamPermissions
+  ( -- * Resource
+    ComputeNodeGroupsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeNodeGroupsTestIamPermissions (..),
+    newComputeNodeGroupsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeGroups.testIamPermissions@ method which the
+-- 'ComputeNodeGroupsTestIamPermissions' request conforms to.
+type ComputeNodeGroupsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeGroups"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeNodeGroupsTestIamPermissions' smart constructor.
+data ComputeNodeGroupsTestIamPermissions = ComputeNodeGroupsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeGroupsTestIamPermissions' with the minimum fields required to make a request.
+newComputeNodeGroupsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeGroupsTestIamPermissions
+newComputeNodeGroupsTestIamPermissions
+  payload
+  project
+  resource
+  zone =
+    ComputeNodeGroupsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeNodeGroupsTestIamPermissions where
+  type
+    Rs ComputeNodeGroupsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeNodeGroupsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeGroupsTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNodeGroupsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/AggregatedList.hs b/gen/Gogol/Compute/NodeTemplates/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.aggregatedList@.
+module Gogol.Compute.NodeTemplates.AggregatedList
+  ( -- * Resource
+    ComputeNodeTemplatesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesAggregatedList (..),
+    newComputeNodeTemplatesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.aggregatedList@ method which the
+-- 'ComputeNodeTemplatesAggregatedList' request conforms to.
+type ComputeNodeTemplatesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "nodeTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeTemplateAggregatedList
+
+-- | Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNodeTemplatesAggregatedList' smart constructor.
+data ComputeNodeTemplatesAggregatedList = ComputeNodeTemplatesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesAggregatedList' with the minimum fields required to make a request.
+newComputeNodeTemplatesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNodeTemplatesAggregatedList
+newComputeNodeTemplatesAggregatedList project =
+  ComputeNodeTemplatesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesAggregatedList where
+  type
+    Rs ComputeNodeTemplatesAggregatedList =
+      NodeTemplateAggregatedList
+  type
+    Scopes ComputeNodeTemplatesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTemplatesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNodeTemplatesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/Delete.hs b/gen/Gogol/Compute/NodeTemplates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified NodeTemplate resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.delete@.
+module Gogol.Compute.NodeTemplates.Delete
+  ( -- * Resource
+    ComputeNodeTemplatesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesDelete (..),
+    newComputeNodeTemplatesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.delete@ method which the
+-- 'ComputeNodeTemplatesDelete' request conforms to.
+type ComputeNodeTemplatesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.Capture "nodeTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified NodeTemplate resource.
+--
+-- /See:/ 'newComputeNodeTemplatesDelete' smart constructor.
+data ComputeNodeTemplatesDelete = ComputeNodeTemplatesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NodeTemplate resource to delete.
+    nodeTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesDelete' with the minimum fields required to make a request.
+newComputeNodeTemplatesDelete ::
+  -- |  Name of the NodeTemplate resource to delete. See 'nodeTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeNodeTemplatesDelete
+newComputeNodeTemplatesDelete nodeTemplate project region =
+  ComputeNodeTemplatesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeTemplate = nodeTemplate,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesDelete where
+  type Rs ComputeNodeTemplatesDelete = Operation
+  type
+    Scopes ComputeNodeTemplatesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeTemplatesDelete {..} =
+    go
+      project
+      region
+      nodeTemplate
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/Get.hs b/gen/Gogol/Compute/NodeTemplates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified node template.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.get@.
+module Gogol.Compute.NodeTemplates.Get
+  ( -- * Resource
+    ComputeNodeTemplatesGetResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesGet (..),
+    newComputeNodeTemplatesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.get@ method which the
+-- 'ComputeNodeTemplatesGet' request conforms to.
+type ComputeNodeTemplatesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.Capture "nodeTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeTemplate
+
+-- | Returns the specified node template.
+--
+-- /See:/ 'newComputeNodeTemplatesGet' smart constructor.
+data ComputeNodeTemplatesGet = ComputeNodeTemplatesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the node template to return.
+    nodeTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesGet' with the minimum fields required to make a request.
+newComputeNodeTemplatesGet ::
+  -- |  Name of the node template to return. See 'nodeTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeNodeTemplatesGet
+newComputeNodeTemplatesGet nodeTemplate project region =
+  ComputeNodeTemplatesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeTemplate = nodeTemplate,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesGet where
+  type Rs ComputeNodeTemplatesGet = NodeTemplate
+  type
+    Scopes ComputeNodeTemplatesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTemplatesGet {..} =
+    go
+      project
+      region
+      nodeTemplate
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/GetIamPolicy.hs b/gen/Gogol/Compute/NodeTemplates/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.getIamPolicy@.
+module Gogol.Compute.NodeTemplates.GetIamPolicy
+  ( -- * Resource
+    ComputeNodeTemplatesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesGetIamPolicy (..),
+    newComputeNodeTemplatesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.getIamPolicy@ method which the
+-- 'ComputeNodeTemplatesGetIamPolicy' request conforms to.
+type ComputeNodeTemplatesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeNodeTemplatesGetIamPolicy' smart constructor.
+data ComputeNodeTemplatesGetIamPolicy = ComputeNodeTemplatesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesGetIamPolicy' with the minimum fields required to make a request.
+newComputeNodeTemplatesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNodeTemplatesGetIamPolicy
+newComputeNodeTemplatesGetIamPolicy project region resource =
+  ComputeNodeTemplatesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesGetIamPolicy where
+  type Rs ComputeNodeTemplatesGetIamPolicy = Policy
+  type
+    Scopes ComputeNodeTemplatesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTemplatesGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/Insert.hs b/gen/Gogol/Compute/NodeTemplates/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a NodeTemplate resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.insert@.
+module Gogol.Compute.NodeTemplates.Insert
+  ( -- * Resource
+    ComputeNodeTemplatesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesInsert (..),
+    newComputeNodeTemplatesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.insert@ method which the
+-- 'ComputeNodeTemplatesInsert' request conforms to.
+type ComputeNodeTemplatesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NodeTemplate
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a NodeTemplate resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeNodeTemplatesInsert' smart constructor.
+data ComputeNodeTemplatesInsert = ComputeNodeTemplatesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NodeTemplate,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesInsert' with the minimum fields required to make a request.
+newComputeNodeTemplatesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NodeTemplate ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeNodeTemplatesInsert
+newComputeNodeTemplatesInsert payload project region =
+  ComputeNodeTemplatesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesInsert where
+  type Rs ComputeNodeTemplatesInsert = Operation
+  type
+    Scopes ComputeNodeTemplatesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeTemplatesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/List.hs b/gen/Gogol/Compute/NodeTemplates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of node templates available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.list@.
+module Gogol.Compute.NodeTemplates.List
+  ( -- * Resource
+    ComputeNodeTemplatesListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesList (..),
+    newComputeNodeTemplatesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.list@ method which the
+-- 'ComputeNodeTemplatesList' request conforms to.
+type ComputeNodeTemplatesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeTemplateList
+
+-- | Retrieves a list of node templates available to the specified project.
+--
+-- /See:/ 'newComputeNodeTemplatesList' smart constructor.
+data ComputeNodeTemplatesList = ComputeNodeTemplatesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesList' with the minimum fields required to make a request.
+newComputeNodeTemplatesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeNodeTemplatesList
+newComputeNodeTemplatesList project region =
+  ComputeNodeTemplatesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesList where
+  type Rs ComputeNodeTemplatesList = NodeTemplateList
+  type
+    Scopes ComputeNodeTemplatesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTemplatesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/SetIamPolicy.hs b/gen/Gogol/Compute/NodeTemplates/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.setIamPolicy@.
+module Gogol.Compute.NodeTemplates.SetIamPolicy
+  ( -- * Resource
+    ComputeNodeTemplatesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesSetIamPolicy (..),
+    newComputeNodeTemplatesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.setIamPolicy@ method which the
+-- 'ComputeNodeTemplatesSetIamPolicy' request conforms to.
+type ComputeNodeTemplatesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeNodeTemplatesSetIamPolicy' smart constructor.
+data ComputeNodeTemplatesSetIamPolicy = ComputeNodeTemplatesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesSetIamPolicy' with the minimum fields required to make a request.
+newComputeNodeTemplatesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNodeTemplatesSetIamPolicy
+newComputeNodeTemplatesSetIamPolicy payload project region resource =
+  ComputeNodeTemplatesSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTemplatesSetIamPolicy where
+  type Rs ComputeNodeTemplatesSetIamPolicy = Policy
+  type
+    Scopes ComputeNodeTemplatesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeNodeTemplatesSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTemplatesSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTemplates/TestIamPermissions.hs b/gen/Gogol/Compute/NodeTemplates/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTemplates/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTemplates.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTemplates.testIamPermissions@.
+module Gogol.Compute.NodeTemplates.TestIamPermissions
+  ( -- * Resource
+    ComputeNodeTemplatesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTemplatesTestIamPermissions (..),
+    newComputeNodeTemplatesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTemplates.testIamPermissions@ method which the
+-- 'ComputeNodeTemplatesTestIamPermissions' request conforms to.
+type ComputeNodeTemplatesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "nodeTemplates"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeNodeTemplatesTestIamPermissions' smart constructor.
+data ComputeNodeTemplatesTestIamPermissions = ComputeNodeTemplatesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTemplatesTestIamPermissions' with the minimum fields required to make a request.
+newComputeNodeTemplatesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeNodeTemplatesTestIamPermissions
+newComputeNodeTemplatesTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeNodeTemplatesTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeNodeTemplatesTestIamPermissions where
+  type
+    Rs ComputeNodeTemplatesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeNodeTemplatesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTemplatesTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeNodeTemplatesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTypes/AggregatedList.hs b/gen/Gogol/Compute/NodeTypes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTypes/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTypes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTypes.aggregatedList@.
+module Gogol.Compute.NodeTypes.AggregatedList
+  ( -- * Resource
+    ComputeNodeTypesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTypesAggregatedList (..),
+    newComputeNodeTypesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTypes.aggregatedList@ method which the
+-- 'ComputeNodeTypesAggregatedList' request conforms to.
+type ComputeNodeTypesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "nodeTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeTypeAggregatedList
+
+-- | Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeNodeTypesAggregatedList' smart constructor.
+data ComputeNodeTypesAggregatedList = ComputeNodeTypesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTypesAggregatedList' with the minimum fields required to make a request.
+newComputeNodeTypesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeNodeTypesAggregatedList
+newComputeNodeTypesAggregatedList project =
+  ComputeNodeTypesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeNodeTypesAggregatedList where
+  type Rs ComputeNodeTypesAggregatedList = NodeTypeAggregatedList
+  type
+    Scopes ComputeNodeTypesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTypesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTypesAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTypes/Get.hs b/gen/Gogol/Compute/NodeTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified node type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTypes.get@.
+module Gogol.Compute.NodeTypes.Get
+  ( -- * Resource
+    ComputeNodeTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTypesGet (..),
+    newComputeNodeTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTypes.get@ method which the
+-- 'ComputeNodeTypesGet' request conforms to.
+type ComputeNodeTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeTypes"
+    Core.:> Core.Capture "nodeType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeType
+
+-- | Returns the specified node type.
+--
+-- /See:/ 'newComputeNodeTypesGet' smart constructor.
+data ComputeNodeTypesGet = ComputeNodeTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the node type to return.
+    nodeType :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTypesGet' with the minimum fields required to make a request.
+newComputeNodeTypesGet ::
+  -- |  Name of the node type to return. See 'nodeType'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeTypesGet
+newComputeNodeTypesGet nodeType project zone =
+  ComputeNodeTypesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      nodeType = nodeType,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeTypesGet where
+  type Rs ComputeNodeTypesGet = NodeType
+  type
+    Scopes ComputeNodeTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTypesGet {..} =
+    go
+      project
+      zone
+      nodeType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/NodeTypes/List.hs b/gen/Gogol/Compute/NodeTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/NodeTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.NodeTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of node types available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.nodeTypes.list@.
+module Gogol.Compute.NodeTypes.List
+  ( -- * Resource
+    ComputeNodeTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeNodeTypesList (..),
+    newComputeNodeTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.nodeTypes.list@ method which the
+-- 'ComputeNodeTypesList' request conforms to.
+type ComputeNodeTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "nodeTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NodeTypeList
+
+-- | Retrieves a list of node types available to the specified project.
+--
+-- /See:/ 'newComputeNodeTypesList' smart constructor.
+data ComputeNodeTypesList = ComputeNodeTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeNodeTypesList' with the minimum fields required to make a request.
+newComputeNodeTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeNodeTypesList
+newComputeNodeTypesList project zone =
+  ComputeNodeTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeNodeTypesList where
+  type Rs ComputeNodeTypesList = NodeTypeList
+  type
+    Scopes ComputeNodeTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeNodeTypesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeNodeTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/AggregatedList.hs b/gen/Gogol/Compute/PacketMirrorings/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.aggregatedList@.
+module Gogol.Compute.PacketMirrorings.AggregatedList
+  ( -- * Resource
+    ComputePacketMirroringsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsAggregatedList (..),
+    newComputePacketMirroringsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.aggregatedList@ method which the
+-- 'ComputePacketMirroringsAggregatedList' request conforms to.
+type ComputePacketMirroringsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "packetMirrorings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PacketMirroringAggregatedList
+
+-- | Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputePacketMirroringsAggregatedList' smart constructor.
+data ComputePacketMirroringsAggregatedList = ComputePacketMirroringsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsAggregatedList' with the minimum fields required to make a request.
+newComputePacketMirroringsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputePacketMirroringsAggregatedList
+newComputePacketMirroringsAggregatedList project =
+  ComputePacketMirroringsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePacketMirroringsAggregatedList where
+  type
+    Rs ComputePacketMirroringsAggregatedList =
+      PacketMirroringAggregatedList
+  type
+    Scopes ComputePacketMirroringsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePacketMirroringsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePacketMirroringsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/Delete.hs b/gen/Gogol/Compute/PacketMirrorings/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified PacketMirroring resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.delete@.
+module Gogol.Compute.PacketMirrorings.Delete
+  ( -- * Resource
+    ComputePacketMirroringsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsDelete (..),
+    newComputePacketMirroringsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.delete@ method which the
+-- 'ComputePacketMirroringsDelete' request conforms to.
+type ComputePacketMirroringsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.Capture "packetMirroring" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified PacketMirroring resource.
+--
+-- /See:/ 'newComputePacketMirroringsDelete' smart constructor.
+data ComputePacketMirroringsDelete = ComputePacketMirroringsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the PacketMirroring resource to delete.
+    packetMirroring :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsDelete' with the minimum fields required to make a request.
+newComputePacketMirroringsDelete ::
+  -- |  Name of the PacketMirroring resource to delete. See 'packetMirroring'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePacketMirroringsDelete
+newComputePacketMirroringsDelete packetMirroring project region =
+  ComputePacketMirroringsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      packetMirroring = packetMirroring,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePacketMirroringsDelete where
+  type Rs ComputePacketMirroringsDelete = Operation
+  type
+    Scopes ComputePacketMirroringsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePacketMirroringsDelete {..} =
+    go
+      project
+      region
+      packetMirroring
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputePacketMirroringsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/Get.hs b/gen/Gogol/Compute/PacketMirrorings/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified PacketMirroring resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.get@.
+module Gogol.Compute.PacketMirrorings.Get
+  ( -- * Resource
+    ComputePacketMirroringsGetResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsGet (..),
+    newComputePacketMirroringsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.get@ method which the
+-- 'ComputePacketMirroringsGet' request conforms to.
+type ComputePacketMirroringsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.Capture "packetMirroring" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PacketMirroring
+
+-- | Returns the specified PacketMirroring resource.
+--
+-- /See:/ 'newComputePacketMirroringsGet' smart constructor.
+data ComputePacketMirroringsGet = ComputePacketMirroringsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the PacketMirroring resource to return.
+    packetMirroring :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsGet' with the minimum fields required to make a request.
+newComputePacketMirroringsGet ::
+  -- |  Name of the PacketMirroring resource to return. See 'packetMirroring'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePacketMirroringsGet
+newComputePacketMirroringsGet packetMirroring project region =
+  ComputePacketMirroringsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      packetMirroring = packetMirroring,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePacketMirroringsGet where
+  type Rs ComputePacketMirroringsGet = PacketMirroring
+  type
+    Scopes ComputePacketMirroringsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePacketMirroringsGet {..} =
+    go
+      project
+      region
+      packetMirroring
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputePacketMirroringsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/Insert.hs b/gen/Gogol/Compute/PacketMirrorings/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a PacketMirroring resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.insert@.
+module Gogol.Compute.PacketMirrorings.Insert
+  ( -- * Resource
+    ComputePacketMirroringsInsertResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsInsert (..),
+    newComputePacketMirroringsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.insert@ method which the
+-- 'ComputePacketMirroringsInsert' request conforms to.
+type ComputePacketMirroringsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PacketMirroring
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a PacketMirroring resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputePacketMirroringsInsert' smart constructor.
+data ComputePacketMirroringsInsert = ComputePacketMirroringsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PacketMirroring,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsInsert' with the minimum fields required to make a request.
+newComputePacketMirroringsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  PacketMirroring ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePacketMirroringsInsert
+newComputePacketMirroringsInsert payload project region =
+  ComputePacketMirroringsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePacketMirroringsInsert where
+  type Rs ComputePacketMirroringsInsert = Operation
+  type
+    Scopes ComputePacketMirroringsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePacketMirroringsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputePacketMirroringsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/List.hs b/gen/Gogol/Compute/PacketMirrorings/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of PacketMirroring resources available to the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.list@.
+module Gogol.Compute.PacketMirrorings.List
+  ( -- * Resource
+    ComputePacketMirroringsListResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsList (..),
+    newComputePacketMirroringsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.list@ method which the
+-- 'ComputePacketMirroringsList' request conforms to.
+type ComputePacketMirroringsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PacketMirroringList
+
+-- | Retrieves a list of PacketMirroring resources available to the specified project and region.
+--
+-- /See:/ 'newComputePacketMirroringsList' smart constructor.
+data ComputePacketMirroringsList = ComputePacketMirroringsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsList' with the minimum fields required to make a request.
+newComputePacketMirroringsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePacketMirroringsList
+newComputePacketMirroringsList project region =
+  ComputePacketMirroringsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePacketMirroringsList where
+  type Rs ComputePacketMirroringsList = PacketMirroringList
+  type
+    Scopes ComputePacketMirroringsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePacketMirroringsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputePacketMirroringsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/Patch.hs b/gen/Gogol/Compute/PacketMirrorings/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/Patch.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.patch@.
+module Gogol.Compute.PacketMirrorings.Patch
+  ( -- * Resource
+    ComputePacketMirroringsPatchResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsPatch (..),
+    newComputePacketMirroringsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.patch@ method which the
+-- 'ComputePacketMirroringsPatch' request conforms to.
+type ComputePacketMirroringsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.Capture "packetMirroring" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PacketMirroring
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified PacketMirroring resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputePacketMirroringsPatch' smart constructor.
+data ComputePacketMirroringsPatch = ComputePacketMirroringsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the PacketMirroring resource to patch.
+    packetMirroring :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: PacketMirroring,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsPatch' with the minimum fields required to make a request.
+newComputePacketMirroringsPatch ::
+  -- |  Name of the PacketMirroring resource to patch. See 'packetMirroring'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  PacketMirroring ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePacketMirroringsPatch
+newComputePacketMirroringsPatch
+  packetMirroring
+  payload
+  project
+  region =
+    ComputePacketMirroringsPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        packetMirroring = packetMirroring,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePacketMirroringsPatch where
+  type Rs ComputePacketMirroringsPatch = Operation
+  type
+    Scopes ComputePacketMirroringsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePacketMirroringsPatch {..} =
+    go
+      project
+      region
+      packetMirroring
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputePacketMirroringsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/PacketMirrorings/TestIamPermissions.hs b/gen/Gogol/Compute/PacketMirrorings/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PacketMirrorings/TestIamPermissions.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PacketMirrorings.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.packetMirrorings.testIamPermissions@.
+module Gogol.Compute.PacketMirrorings.TestIamPermissions
+  ( -- * Resource
+    ComputePacketMirroringsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputePacketMirroringsTestIamPermissions (..),
+    newComputePacketMirroringsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.packetMirrorings.testIamPermissions@ method which the
+-- 'ComputePacketMirroringsTestIamPermissions' request conforms to.
+type ComputePacketMirroringsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "packetMirrorings"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputePacketMirroringsTestIamPermissions' smart constructor.
+data ComputePacketMirroringsTestIamPermissions = ComputePacketMirroringsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePacketMirroringsTestIamPermissions' with the minimum fields required to make a request.
+newComputePacketMirroringsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputePacketMirroringsTestIamPermissions
+newComputePacketMirroringsTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputePacketMirroringsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputePacketMirroringsTestIamPermissions
+  where
+  type
+    Rs ComputePacketMirroringsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputePacketMirroringsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePacketMirroringsTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePacketMirroringsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/DisableXpnHost.hs b/gen/Gogol/Compute/Projects/DisableXpnHost.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/DisableXpnHost.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.DisableXpnHost
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disable this project as a shared VPC host project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.disableXpnHost@.
+module Gogol.Compute.Projects.DisableXpnHost
+  ( -- * Resource
+    ComputeProjectsDisableXpnHostResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsDisableXpnHost (..),
+    newComputeProjectsDisableXpnHost,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.disableXpnHost@ method which the
+-- 'ComputeProjectsDisableXpnHost' request conforms to.
+type ComputeProjectsDisableXpnHostResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "disableXpnHost"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Disable this project as a shared VPC host project.
+--
+-- /See:/ 'newComputeProjectsDisableXpnHost' smart constructor.
+data ComputeProjectsDisableXpnHost = ComputeProjectsDisableXpnHost
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsDisableXpnHost' with the minimum fields required to make a request.
+newComputeProjectsDisableXpnHost ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsDisableXpnHost
+newComputeProjectsDisableXpnHost project =
+  ComputeProjectsDisableXpnHost
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsDisableXpnHost where
+  type Rs ComputeProjectsDisableXpnHost = Operation
+  type
+    Scopes ComputeProjectsDisableXpnHost =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsDisableXpnHost {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsDisableXpnHostResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/DisableXpnResource.hs b/gen/Gogol/Compute/Projects/DisableXpnResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/DisableXpnResource.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.DisableXpnResource
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Disable a service resource (also known as service project) associated with this host project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.disableXpnResource@.
+module Gogol.Compute.Projects.DisableXpnResource
+  ( -- * Resource
+    ComputeProjectsDisableXpnResourceResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsDisableXpnResource (..),
+    newComputeProjectsDisableXpnResource,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.disableXpnResource@ method which the
+-- 'ComputeProjectsDisableXpnResource' request conforms to.
+type ComputeProjectsDisableXpnResourceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "disableXpnResource"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ProjectsDisableXpnResourceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Disable a service resource (also known as service project) associated with this host project.
+--
+-- /See:/ 'newComputeProjectsDisableXpnResource' smart constructor.
+data ComputeProjectsDisableXpnResource = ComputeProjectsDisableXpnResource
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ProjectsDisableXpnResourceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsDisableXpnResource' with the minimum fields required to make a request.
+newComputeProjectsDisableXpnResource ::
+  -- |  Multipart request metadata. See 'payload'.
+  ProjectsDisableXpnResourceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsDisableXpnResource
+newComputeProjectsDisableXpnResource payload project =
+  ComputeProjectsDisableXpnResource
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsDisableXpnResource where
+  type Rs ComputeProjectsDisableXpnResource = Operation
+  type
+    Scopes ComputeProjectsDisableXpnResource =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsDisableXpnResource {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeProjectsDisableXpnResourceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/EnableXpnHost.hs b/gen/Gogol/Compute/Projects/EnableXpnHost.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/EnableXpnHost.hs
@@ -0,0 +1,117 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.EnableXpnHost
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enable this project as a shared VPC host project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.enableXpnHost@.
+module Gogol.Compute.Projects.EnableXpnHost
+  ( -- * Resource
+    ComputeProjectsEnableXpnHostResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsEnableXpnHost (..),
+    newComputeProjectsEnableXpnHost,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.enableXpnHost@ method which the
+-- 'ComputeProjectsEnableXpnHost' request conforms to.
+type ComputeProjectsEnableXpnHostResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "enableXpnHost"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Enable this project as a shared VPC host project.
+--
+-- /See:/ 'newComputeProjectsEnableXpnHost' smart constructor.
+data ComputeProjectsEnableXpnHost = ComputeProjectsEnableXpnHost
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsEnableXpnHost' with the minimum fields required to make a request.
+newComputeProjectsEnableXpnHost ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsEnableXpnHost
+newComputeProjectsEnableXpnHost project =
+  ComputeProjectsEnableXpnHost
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsEnableXpnHost where
+  type Rs ComputeProjectsEnableXpnHost = Operation
+  type
+    Scopes ComputeProjectsEnableXpnHost =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsEnableXpnHost {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsEnableXpnHostResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/EnableXpnResource.hs b/gen/Gogol/Compute/Projects/EnableXpnResource.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/EnableXpnResource.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.EnableXpnResource
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.enableXpnResource@.
+module Gogol.Compute.Projects.EnableXpnResource
+  ( -- * Resource
+    ComputeProjectsEnableXpnResourceResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsEnableXpnResource (..),
+    newComputeProjectsEnableXpnResource,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.enableXpnResource@ method which the
+-- 'ComputeProjectsEnableXpnResource' request conforms to.
+type ComputeProjectsEnableXpnResourceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "enableXpnResource"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ProjectsEnableXpnResourceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Enable service resource (a.k.a service project) for a host project, so that subnets in the host project can be used by instances in the service project.
+--
+-- /See:/ 'newComputeProjectsEnableXpnResource' smart constructor.
+data ComputeProjectsEnableXpnResource = ComputeProjectsEnableXpnResource
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ProjectsEnableXpnResourceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsEnableXpnResource' with the minimum fields required to make a request.
+newComputeProjectsEnableXpnResource ::
+  -- |  Multipart request metadata. See 'payload'.
+  ProjectsEnableXpnResourceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsEnableXpnResource
+newComputeProjectsEnableXpnResource payload project =
+  ComputeProjectsEnableXpnResource
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsEnableXpnResource where
+  type Rs ComputeProjectsEnableXpnResource = Operation
+  type
+    Scopes ComputeProjectsEnableXpnResource =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsEnableXpnResource {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsEnableXpnResourceResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/Get.hs b/gen/Gogol/Compute/Projects/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/Get.hs
@@ -0,0 +1,111 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Project resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.get@.
+module Gogol.Compute.Projects.Get
+  ( -- * Resource
+    ComputeProjectsGetResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsGet (..),
+    newComputeProjectsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.get@ method which the
+-- 'ComputeProjectsGet' request conforms to.
+type ComputeProjectsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Project
+
+-- | Returns the specified Project resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request.
+--
+-- /See:/ 'newComputeProjectsGet' smart constructor.
+data ComputeProjectsGet = ComputeProjectsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsGet' with the minimum fields required to make a request.
+newComputeProjectsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsGet
+newComputeProjectsGet project =
+  ComputeProjectsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsGet where
+  type Rs ComputeProjectsGet = Project
+  type
+    Scopes ComputeProjectsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeProjectsGet {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/GetXpnHost.hs b/gen/Gogol/Compute/Projects/GetXpnHost.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/GetXpnHost.hs
@@ -0,0 +1,112 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.GetXpnHost
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the shared VPC host project that this project links to. May be empty if no link exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.getXpnHost@.
+module Gogol.Compute.Projects.GetXpnHost
+  ( -- * Resource
+    ComputeProjectsGetXpnHostResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsGetXpnHost (..),
+    newComputeProjectsGetXpnHost,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.getXpnHost@ method which the
+-- 'ComputeProjectsGetXpnHost' request conforms to.
+type ComputeProjectsGetXpnHostResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "getXpnHost"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Project
+
+-- | Gets the shared VPC host project that this project links to. May be empty if no link exists.
+--
+-- /See:/ 'newComputeProjectsGetXpnHost' smart constructor.
+data ComputeProjectsGetXpnHost = ComputeProjectsGetXpnHost
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsGetXpnHost' with the minimum fields required to make a request.
+newComputeProjectsGetXpnHost ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsGetXpnHost
+newComputeProjectsGetXpnHost project =
+  ComputeProjectsGetXpnHost
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsGetXpnHost where
+  type Rs ComputeProjectsGetXpnHost = Project
+  type
+    Scopes ComputeProjectsGetXpnHost =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsGetXpnHost {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsGetXpnHostResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/GetXpnResources.hs b/gen/Gogol/Compute/Projects/GetXpnResources.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/GetXpnResources.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.GetXpnResources
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets service resources (a.k.a service project) associated with this host project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.getXpnResources@.
+module Gogol.Compute.Projects.GetXpnResources
+  ( -- * Resource
+    ComputeProjectsGetXpnResourcesResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsGetXpnResources (..),
+    newComputeProjectsGetXpnResources,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.getXpnResources@ method which the
+-- 'ComputeProjectsGetXpnResources' request conforms to.
+type ComputeProjectsGetXpnResourcesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "getXpnResources"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ProjectsGetXpnResources
+
+-- | Gets service resources (a.k.a service project) associated with this host project.
+--
+-- /See:/ 'newComputeProjectsGetXpnResources' smart constructor.
+data ComputeProjectsGetXpnResources = ComputeProjectsGetXpnResources
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsGetXpnResources' with the minimum fields required to make a request.
+newComputeProjectsGetXpnResources ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsGetXpnResources
+newComputeProjectsGetXpnResources project =
+  ComputeProjectsGetXpnResources
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsGetXpnResources where
+  type Rs ComputeProjectsGetXpnResources = ProjectsGetXpnResources
+  type
+    Scopes ComputeProjectsGetXpnResources =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsGetXpnResources {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsGetXpnResourcesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/ListXpnHosts.hs b/gen/Gogol/Compute/Projects/ListXpnHosts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/ListXpnHosts.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.ListXpnHosts
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all shared VPC host projects visible to the user in an organization.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.listXpnHosts@.
+module Gogol.Compute.Projects.ListXpnHosts
+  ( -- * Resource
+    ComputeProjectsListXpnHostsResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsListXpnHosts (..),
+    newComputeProjectsListXpnHosts,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.listXpnHosts@ method which the
+-- 'ComputeProjectsListXpnHosts' request conforms to.
+type ComputeProjectsListXpnHostsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "listXpnHosts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ProjectsListXpnHostsRequest
+    Core.:> Core.Post '[Core.JSON] XpnHostList
+
+-- | Lists all shared VPC host projects visible to the user in an organization.
+--
+-- /See:/ 'newComputeProjectsListXpnHosts' smart constructor.
+data ComputeProjectsListXpnHosts = ComputeProjectsListXpnHosts
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ProjectsListXpnHostsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsListXpnHosts' with the minimum fields required to make a request.
+newComputeProjectsListXpnHosts ::
+  -- |  Multipart request metadata. See 'payload'.
+  ProjectsListXpnHostsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsListXpnHosts
+newComputeProjectsListXpnHosts payload project =
+  ComputeProjectsListXpnHosts
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      payload = payload,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsListXpnHosts where
+  type Rs ComputeProjectsListXpnHosts = XpnHostList
+  type
+    Scopes ComputeProjectsListXpnHosts =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsListXpnHosts {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsListXpnHostsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/MoveDisk.hs b/gen/Gogol/Compute/Projects/MoveDisk.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/MoveDisk.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.MoveDisk
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves a persistent disk from one zone to another.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.moveDisk@.
+module Gogol.Compute.Projects.MoveDisk
+  ( -- * Resource
+    ComputeProjectsMoveDiskResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsMoveDisk (..),
+    newComputeProjectsMoveDisk,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.moveDisk@ method which the
+-- 'ComputeProjectsMoveDisk' request conforms to.
+type ComputeProjectsMoveDiskResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "moveDisk"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DiskMoveRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Moves a persistent disk from one zone to another.
+--
+-- /See:/ 'newComputeProjectsMoveDisk' smart constructor.
+data ComputeProjectsMoveDisk = ComputeProjectsMoveDisk
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: DiskMoveRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsMoveDisk' with the minimum fields required to make a request.
+newComputeProjectsMoveDisk ::
+  -- |  Multipart request metadata. See 'payload'.
+  DiskMoveRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsMoveDisk
+newComputeProjectsMoveDisk payload project =
+  ComputeProjectsMoveDisk
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsMoveDisk where
+  type Rs ComputeProjectsMoveDisk = Operation
+  type
+    Scopes ComputeProjectsMoveDisk =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsMoveDisk {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsMoveDiskResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/MoveInstance.hs b/gen/Gogol/Compute/Projects/MoveInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/MoveInstance.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.MoveInstance
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Moves an instance and its attached persistent disks from one zone to another. /Note/: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the </compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior known issue>. [Deprecated] This method is deprecated. See </compute/docs/instances/moving-instance-across-zones moving instance across zones> instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.moveInstance@.
+module Gogol.Compute.Projects.MoveInstance
+  ( -- * Resource
+    ComputeProjectsMoveInstanceResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsMoveInstance (..),
+    newComputeProjectsMoveInstance,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.moveInstance@ method which the
+-- 'ComputeProjectsMoveInstance' request conforms to.
+type ComputeProjectsMoveInstanceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "moveInstance"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceMoveRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Moves an instance and its attached persistent disks from one zone to another. /Note/: Moving VMs or disks by using this method might cause unexpected behavior. For more information, see the </compute/docs/troubleshooting/known-issues#moving_vms_or_disks_using_the_moveinstance_api_or_the_causes_unexpected_behavior known issue>. [Deprecated] This method is deprecated. See </compute/docs/instances/moving-instance-across-zones moving instance across zones> instead.
+--
+-- /See:/ 'newComputeProjectsMoveInstance' smart constructor.
+data ComputeProjectsMoveInstance = ComputeProjectsMoveInstance
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceMoveRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsMoveInstance' with the minimum fields required to make a request.
+newComputeProjectsMoveInstance ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceMoveRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsMoveInstance
+newComputeProjectsMoveInstance payload project =
+  ComputeProjectsMoveInstance
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsMoveInstance where
+  type Rs ComputeProjectsMoveInstance = Operation
+  type
+    Scopes ComputeProjectsMoveInstance =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsMoveInstance {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsMoveInstanceResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/SetCloudArmorTier.hs b/gen/Gogol/Compute/Projects/SetCloudArmorTier.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/SetCloudArmorTier.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.SetCloudArmorTier
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.setCloudArmorTier@.
+module Gogol.Compute.Projects.SetCloudArmorTier
+  ( -- * Resource
+    ComputeProjectsSetCloudArmorTierResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsSetCloudArmorTier (..),
+    newComputeProjectsSetCloudArmorTier,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.setCloudArmorTier@ method which the
+-- 'ComputeProjectsSetCloudArmorTier' request conforms to.
+type ComputeProjectsSetCloudArmorTierResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "setCloudArmorTier"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ProjectsSetCloudArmorTierRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information.
+--
+-- /See:/ 'newComputeProjectsSetCloudArmorTier' smart constructor.
+data ComputeProjectsSetCloudArmorTier = ComputeProjectsSetCloudArmorTier
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ProjectsSetCloudArmorTierRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsSetCloudArmorTier' with the minimum fields required to make a request.
+newComputeProjectsSetCloudArmorTier ::
+  -- |  Multipart request metadata. See 'payload'.
+  ProjectsSetCloudArmorTierRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsSetCloudArmorTier
+newComputeProjectsSetCloudArmorTier payload project =
+  ComputeProjectsSetCloudArmorTier
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsSetCloudArmorTier where
+  type Rs ComputeProjectsSetCloudArmorTier = Operation
+  type
+    Scopes ComputeProjectsSetCloudArmorTier =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsSetCloudArmorTier {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeProjectsSetCloudArmorTierResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/SetCommonInstanceMetadata.hs b/gen/Gogol/Compute/Projects/SetCommonInstanceMetadata.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/SetCommonInstanceMetadata.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.SetCommonInstanceMetadata
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets metadata common to all instances within the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.setCommonInstanceMetadata@.
+module Gogol.Compute.Projects.SetCommonInstanceMetadata
+  ( -- * Resource
+    ComputeProjectsSetCommonInstanceMetadataResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsSetCommonInstanceMetadata (..),
+    newComputeProjectsSetCommonInstanceMetadata,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.setCommonInstanceMetadata@ method which the
+-- 'ComputeProjectsSetCommonInstanceMetadata' request conforms to.
+type ComputeProjectsSetCommonInstanceMetadataResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "setCommonInstanceMetadata"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Metadata
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets metadata common to all instances within the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeProjectsSetCommonInstanceMetadata' smart constructor.
+data ComputeProjectsSetCommonInstanceMetadata = ComputeProjectsSetCommonInstanceMetadata
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Metadata,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsSetCommonInstanceMetadata' with the minimum fields required to make a request.
+newComputeProjectsSetCommonInstanceMetadata ::
+  -- |  Multipart request metadata. See 'payload'.
+  Metadata ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsSetCommonInstanceMetadata
+newComputeProjectsSetCommonInstanceMetadata payload project =
+  ComputeProjectsSetCommonInstanceMetadata
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeProjectsSetCommonInstanceMetadata
+  where
+  type Rs ComputeProjectsSetCommonInstanceMetadata = Operation
+  type
+    Scopes ComputeProjectsSetCommonInstanceMetadata =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsSetCommonInstanceMetadata {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeProjectsSetCommonInstanceMetadataResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/SetDefaultNetworkTier.hs b/gen/Gogol/Compute/Projects/SetDefaultNetworkTier.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/SetDefaultNetworkTier.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.SetDefaultNetworkTier
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the default network tier of the project. The default network tier is used when an address\/forwardingRule\/instance is created without specifying the network tier field.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.setDefaultNetworkTier@.
+module Gogol.Compute.Projects.SetDefaultNetworkTier
+  ( -- * Resource
+    ComputeProjectsSetDefaultNetworkTierResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsSetDefaultNetworkTier (..),
+    newComputeProjectsSetDefaultNetworkTier,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.setDefaultNetworkTier@ method which the
+-- 'ComputeProjectsSetDefaultNetworkTier' request conforms to.
+type ComputeProjectsSetDefaultNetworkTierResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "setDefaultNetworkTier"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ProjectsSetDefaultNetworkTierRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the default network tier of the project. The default network tier is used when an address\/forwardingRule\/instance is created without specifying the network tier field.
+--
+-- /See:/ 'newComputeProjectsSetDefaultNetworkTier' smart constructor.
+data ComputeProjectsSetDefaultNetworkTier = ComputeProjectsSetDefaultNetworkTier
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ProjectsSetDefaultNetworkTierRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsSetDefaultNetworkTier' with the minimum fields required to make a request.
+newComputeProjectsSetDefaultNetworkTier ::
+  -- |  Multipart request metadata. See 'payload'.
+  ProjectsSetDefaultNetworkTierRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsSetDefaultNetworkTier
+newComputeProjectsSetDefaultNetworkTier payload project =
+  ComputeProjectsSetDefaultNetworkTier
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsSetDefaultNetworkTier where
+  type Rs ComputeProjectsSetDefaultNetworkTier = Operation
+  type
+    Scopes ComputeProjectsSetDefaultNetworkTier =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeProjectsSetDefaultNetworkTier {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeProjectsSetDefaultNetworkTierResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Projects/SetUsageExportBucket.hs b/gen/Gogol/Compute/Projects/SetUsageExportBucket.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Projects/SetUsageExportBucket.hs
@@ -0,0 +1,131 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Projects.SetUsageExportBucket
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.projects.setUsageExportBucket@.
+module Gogol.Compute.Projects.SetUsageExportBucket
+  ( -- * Resource
+    ComputeProjectsSetUsageExportBucketResource,
+
+    -- ** Constructing a Request
+    ComputeProjectsSetUsageExportBucket (..),
+    newComputeProjectsSetUsageExportBucket,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.projects.setUsageExportBucket@ method which the
+-- 'ComputeProjectsSetUsageExportBucket' request conforms to.
+type ComputeProjectsSetUsageExportBucketResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "setUsageExportBucket"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UsageExportLocation
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Enables the usage export feature and sets the usage export bucket where reports are stored. If you provide an empty request body using this method, the usage export feature will be disabled.
+--
+-- /See:/ 'newComputeProjectsSetUsageExportBucket' smart constructor.
+data ComputeProjectsSetUsageExportBucket = ComputeProjectsSetUsageExportBucket
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UsageExportLocation,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeProjectsSetUsageExportBucket' with the minimum fields required to make a request.
+newComputeProjectsSetUsageExportBucket ::
+  -- |  Multipart request metadata. See 'payload'.
+  UsageExportLocation ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeProjectsSetUsageExportBucket
+newComputeProjectsSetUsageExportBucket payload project =
+  ComputeProjectsSetUsageExportBucket
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeProjectsSetUsageExportBucket where
+  type Rs ComputeProjectsSetUsageExportBucket = Operation
+  type
+    Scopes ComputeProjectsSetUsageExportBucket =
+      '[ CloudPlatform'FullControl,
+         Compute'FullControl,
+         Devstorage'FullControl,
+         Devstorage'ReadOnly,
+         Devstorage'ReadWrite
+       ]
+  requestClient ComputeProjectsSetUsageExportBucket {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeProjectsSetUsageExportBucketResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Announce.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Announce.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Announce.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Announce
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Announces the specified PublicAdvertisedPrefix
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.announce@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Announce
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesAnnounceResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesAnnounce (..),
+    newComputePublicAdvertisedPrefixesAnnounce,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.announce@ method which the
+-- 'ComputePublicAdvertisedPrefixesAnnounce' request conforms to.
+type ComputePublicAdvertisedPrefixesAnnounceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.Capture "publicAdvertisedPrefix" Core.Text
+    Core.:> "announce"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Announces the specified PublicAdvertisedPrefix
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesAnnounce' smart constructor.
+data ComputePublicAdvertisedPrefixesAnnounce = ComputePublicAdvertisedPrefixesAnnounce
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the public advertised prefix. It should comply with RFC1035.
+    publicAdvertisedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesAnnounce' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesAnnounce ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the public advertised prefix. It should comply with RFC1035. See 'publicAdvertisedPrefix'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesAnnounce
+newComputePublicAdvertisedPrefixesAnnounce
+  project
+  publicAdvertisedPrefix =
+    ComputePublicAdvertisedPrefixesAnnounce
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicAdvertisedPrefix = publicAdvertisedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesAnnounce where
+  type Rs ComputePublicAdvertisedPrefixesAnnounce = Operation
+  type
+    Scopes ComputePublicAdvertisedPrefixesAnnounce =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicAdvertisedPrefixesAnnounce {..} =
+    go
+      project
+      publicAdvertisedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesAnnounceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Delete.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Delete.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified PublicAdvertisedPrefix
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.delete@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Delete
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesDelete (..),
+    newComputePublicAdvertisedPrefixesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.delete@ method which the
+-- 'ComputePublicAdvertisedPrefixesDelete' request conforms to.
+type ComputePublicAdvertisedPrefixesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.Capture "publicAdvertisedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified PublicAdvertisedPrefix
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesDelete' smart constructor.
+data ComputePublicAdvertisedPrefixesDelete = ComputePublicAdvertisedPrefixesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicAdvertisedPrefix resource to delete.
+    publicAdvertisedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesDelete' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicAdvertisedPrefix resource to delete. See 'publicAdvertisedPrefix'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesDelete
+newComputePublicAdvertisedPrefixesDelete
+  project
+  publicAdvertisedPrefix =
+    ComputePublicAdvertisedPrefixesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicAdvertisedPrefix = publicAdvertisedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesDelete where
+  type Rs ComputePublicAdvertisedPrefixesDelete = Operation
+  type
+    Scopes ComputePublicAdvertisedPrefixesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicAdvertisedPrefixesDelete {..} =
+    go
+      project
+      publicAdvertisedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Get.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Get.hs
@@ -0,0 +1,124 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified PublicAdvertisedPrefix resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.get@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Get
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesGetResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesGet (..),
+    newComputePublicAdvertisedPrefixesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.get@ method which the
+-- 'ComputePublicAdvertisedPrefixesGet' request conforms to.
+type ComputePublicAdvertisedPrefixesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.Capture "publicAdvertisedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicAdvertisedPrefix
+
+-- | Returns the specified PublicAdvertisedPrefix resource.
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesGet' smart constructor.
+data ComputePublicAdvertisedPrefixesGet = ComputePublicAdvertisedPrefixesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicAdvertisedPrefix resource to return.
+    publicAdvertisedPrefix :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesGet' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicAdvertisedPrefix resource to return. See 'publicAdvertisedPrefix'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesGet
+newComputePublicAdvertisedPrefixesGet
+  project
+  publicAdvertisedPrefix =
+    ComputePublicAdvertisedPrefixesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicAdvertisedPrefix = publicAdvertisedPrefix,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesGet where
+  type Rs ComputePublicAdvertisedPrefixesGet = PublicAdvertisedPrefix
+  type
+    Scopes ComputePublicAdvertisedPrefixesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePublicAdvertisedPrefixesGet {..} =
+    go
+      project
+      publicAdvertisedPrefix
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Insert.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Insert.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.insert@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Insert
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesInsertResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesInsert (..),
+    newComputePublicAdvertisedPrefixesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.insert@ method which the
+-- 'ComputePublicAdvertisedPrefixesInsert' request conforms to.
+type ComputePublicAdvertisedPrefixesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicAdvertisedPrefix
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesInsert' smart constructor.
+data ComputePublicAdvertisedPrefixesInsert = ComputePublicAdvertisedPrefixesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicAdvertisedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesInsert' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicAdvertisedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesInsert
+newComputePublicAdvertisedPrefixesInsert payload project =
+  ComputePublicAdvertisedPrefixesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesInsert where
+  type Rs ComputePublicAdvertisedPrefixesInsert = Operation
+  type
+    Scopes ComputePublicAdvertisedPrefixesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicAdvertisedPrefixesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/List.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/List.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the PublicAdvertisedPrefixes for a project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.list@.
+module Gogol.Compute.PublicAdvertisedPrefixes.List
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesListResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesList (..),
+    newComputePublicAdvertisedPrefixesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.list@ method which the
+-- 'ComputePublicAdvertisedPrefixesList' request conforms to.
+type ComputePublicAdvertisedPrefixesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicAdvertisedPrefixList
+
+-- | Lists the PublicAdvertisedPrefixes for a project.
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesList' smart constructor.
+data ComputePublicAdvertisedPrefixesList = ComputePublicAdvertisedPrefixesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesList' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesList
+newComputePublicAdvertisedPrefixesList project =
+  ComputePublicAdvertisedPrefixesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesList where
+  type
+    Rs ComputePublicAdvertisedPrefixesList =
+      PublicAdvertisedPrefixList
+  type
+    Scopes ComputePublicAdvertisedPrefixesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePublicAdvertisedPrefixesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Patch.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.patch@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Patch
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesPatchResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesPatch (..),
+    newComputePublicAdvertisedPrefixesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.patch@ method which the
+-- 'ComputePublicAdvertisedPrefixesPatch' request conforms to.
+type ComputePublicAdvertisedPrefixesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.Capture "publicAdvertisedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicAdvertisedPrefix
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesPatch' smart constructor.
+data ComputePublicAdvertisedPrefixesPatch = ComputePublicAdvertisedPrefixesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicAdvertisedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicAdvertisedPrefix resource to patch.
+    publicAdvertisedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesPatch' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicAdvertisedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicAdvertisedPrefix resource to patch. See 'publicAdvertisedPrefix'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesPatch
+newComputePublicAdvertisedPrefixesPatch
+  payload
+  project
+  publicAdvertisedPrefix =
+    ComputePublicAdvertisedPrefixesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        publicAdvertisedPrefix = publicAdvertisedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesPatch where
+  type Rs ComputePublicAdvertisedPrefixesPatch = Operation
+  type
+    Scopes ComputePublicAdvertisedPrefixesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicAdvertisedPrefixesPatch {..} =
+    go
+      project
+      publicAdvertisedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicAdvertisedPrefixes/Withdraw.hs b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Withdraw.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicAdvertisedPrefixes/Withdraw.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicAdvertisedPrefixes.Withdraw
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Withdraws the specified PublicAdvertisedPrefix
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicAdvertisedPrefixes.withdraw@.
+module Gogol.Compute.PublicAdvertisedPrefixes.Withdraw
+  ( -- * Resource
+    ComputePublicAdvertisedPrefixesWithdrawResource,
+
+    -- ** Constructing a Request
+    ComputePublicAdvertisedPrefixesWithdraw (..),
+    newComputePublicAdvertisedPrefixesWithdraw,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicAdvertisedPrefixes.withdraw@ method which the
+-- 'ComputePublicAdvertisedPrefixesWithdraw' request conforms to.
+type ComputePublicAdvertisedPrefixesWithdrawResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "publicAdvertisedPrefixes"
+    Core.:> Core.Capture "publicAdvertisedPrefix" Core.Text
+    Core.:> "withdraw"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Withdraws the specified PublicAdvertisedPrefix
+--
+-- /See:/ 'newComputePublicAdvertisedPrefixesWithdraw' smart constructor.
+data ComputePublicAdvertisedPrefixesWithdraw = ComputePublicAdvertisedPrefixesWithdraw
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the public advertised prefix. It should comply with RFC1035.
+    publicAdvertisedPrefix :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicAdvertisedPrefixesWithdraw' with the minimum fields required to make a request.
+newComputePublicAdvertisedPrefixesWithdraw ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the public advertised prefix. It should comply with RFC1035. See 'publicAdvertisedPrefix'.
+  Core.Text ->
+  ComputePublicAdvertisedPrefixesWithdraw
+newComputePublicAdvertisedPrefixesWithdraw
+  project
+  publicAdvertisedPrefix =
+    ComputePublicAdvertisedPrefixesWithdraw
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicAdvertisedPrefix = publicAdvertisedPrefix,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicAdvertisedPrefixesWithdraw where
+  type Rs ComputePublicAdvertisedPrefixesWithdraw = Operation
+  type
+    Scopes ComputePublicAdvertisedPrefixesWithdraw =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicAdvertisedPrefixesWithdraw {..} =
+    go
+      project
+      publicAdvertisedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicAdvertisedPrefixesWithdrawResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/AggregatedList.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/AggregatedList.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.aggregatedList@.
+module Gogol.Compute.PublicDelegatedPrefixes.AggregatedList
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesAggregatedList (..),
+    newComputePublicDelegatedPrefixesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.aggregatedList@ method which the
+-- 'ComputePublicDelegatedPrefixesAggregatedList' request conforms to.
+type ComputePublicDelegatedPrefixesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicDelegatedPrefixAggregatedList
+
+-- | Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesAggregatedList' smart constructor.
+data ComputePublicDelegatedPrefixesAggregatedList = ComputePublicDelegatedPrefixesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesAggregatedList' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesAggregatedList
+newComputePublicDelegatedPrefixesAggregatedList project =
+  ComputePublicDelegatedPrefixesAggregatedList
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputePublicDelegatedPrefixesAggregatedList
+  where
+  type
+    Rs ComputePublicDelegatedPrefixesAggregatedList =
+      PublicDelegatedPrefixAggregatedList
+  type
+    Scopes ComputePublicDelegatedPrefixesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePublicDelegatedPrefixesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Announce.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Announce.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Announce.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Announce
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Announces the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.announce@.
+module Gogol.Compute.PublicDelegatedPrefixes.Announce
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesAnnounceResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesAnnounce (..),
+    newComputePublicDelegatedPrefixesAnnounce,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.announce@ method which the
+-- 'ComputePublicDelegatedPrefixesAnnounce' request conforms to.
+type ComputePublicDelegatedPrefixesAnnounceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> "announce"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Announces the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesAnnounce' smart constructor.
+data ComputePublicDelegatedPrefixesAnnounce = ComputePublicDelegatedPrefixesAnnounce
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the public delegated prefix. It should comply with RFC1035.
+    publicDelegatedPrefix :: Core.Text,
+    -- | The name of the region where the public delegated prefix is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesAnnounce' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesAnnounce ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the public delegated prefix. It should comply with RFC1035. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  -- |  The name of the region where the public delegated prefix is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesAnnounce
+newComputePublicDelegatedPrefixesAnnounce
+  project
+  publicDelegatedPrefix
+  region =
+    ComputePublicDelegatedPrefixesAnnounce
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesAnnounce where
+  type Rs ComputePublicDelegatedPrefixesAnnounce = Operation
+  type
+    Scopes ComputePublicDelegatedPrefixesAnnounce =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicDelegatedPrefixesAnnounce {..} =
+    go
+      project
+      region
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesAnnounceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Delete.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.delete@.
+module Gogol.Compute.PublicDelegatedPrefixes.Delete
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesDelete (..),
+    newComputePublicDelegatedPrefixesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.delete@ method which the
+-- 'ComputePublicDelegatedPrefixesDelete' request conforms to.
+type ComputePublicDelegatedPrefixesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesDelete' smart constructor.
+data ComputePublicDelegatedPrefixesDelete = ComputePublicDelegatedPrefixesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to delete.
+    publicDelegatedPrefix :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesDelete' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to delete. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesDelete
+newComputePublicDelegatedPrefixesDelete
+  project
+  publicDelegatedPrefix
+  region =
+    ComputePublicDelegatedPrefixesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesDelete where
+  type Rs ComputePublicDelegatedPrefixesDelete = Operation
+  type
+    Scopes ComputePublicDelegatedPrefixesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicDelegatedPrefixesDelete {..} =
+    go
+      project
+      region
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Get.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified PublicDelegatedPrefix resource in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.get@.
+module Gogol.Compute.PublicDelegatedPrefixes.Get
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesGetResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesGet (..),
+    newComputePublicDelegatedPrefixesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.get@ method which the
+-- 'ComputePublicDelegatedPrefixesGet' request conforms to.
+type ComputePublicDelegatedPrefixesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicDelegatedPrefix
+
+-- | Returns the specified PublicDelegatedPrefix resource in the given region.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesGet' smart constructor.
+data ComputePublicDelegatedPrefixesGet = ComputePublicDelegatedPrefixesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to return.
+    publicDelegatedPrefix :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesGet' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to return. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesGet
+newComputePublicDelegatedPrefixesGet
+  project
+  publicDelegatedPrefix
+  region =
+    ComputePublicDelegatedPrefixesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesGet where
+  type Rs ComputePublicDelegatedPrefixesGet = PublicDelegatedPrefix
+  type
+    Scopes ComputePublicDelegatedPrefixesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePublicDelegatedPrefixesGet {..} =
+    go
+      project
+      region
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Insert.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.insert@.
+module Gogol.Compute.PublicDelegatedPrefixes.Insert
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesInsertResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesInsert (..),
+    newComputePublicDelegatedPrefixesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.insert@ method which the
+-- 'ComputePublicDelegatedPrefixesInsert' request conforms to.
+type ComputePublicDelegatedPrefixesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicDelegatedPrefix
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesInsert' smart constructor.
+data ComputePublicDelegatedPrefixesInsert = ComputePublicDelegatedPrefixesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicDelegatedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesInsert' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicDelegatedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesInsert
+newComputePublicDelegatedPrefixesInsert payload project region =
+  ComputePublicDelegatedPrefixesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesInsert where
+  type Rs ComputePublicDelegatedPrefixesInsert = Operation
+  type
+    Scopes ComputePublicDelegatedPrefixesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicDelegatedPrefixesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/List.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the PublicDelegatedPrefixes for a project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.list@.
+module Gogol.Compute.PublicDelegatedPrefixes.List
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesListResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesList (..),
+    newComputePublicDelegatedPrefixesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.list@ method which the
+-- 'ComputePublicDelegatedPrefixesList' request conforms to.
+type ComputePublicDelegatedPrefixesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] PublicDelegatedPrefixList
+
+-- | Lists the PublicDelegatedPrefixes for a project in the given region.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesList' smart constructor.
+data ComputePublicDelegatedPrefixesList = ComputePublicDelegatedPrefixesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesList' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesList
+newComputePublicDelegatedPrefixesList project region =
+  ComputePublicDelegatedPrefixesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesList where
+  type
+    Rs ComputePublicDelegatedPrefixesList =
+      PublicDelegatedPrefixList
+  type
+    Scopes ComputePublicDelegatedPrefixesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputePublicDelegatedPrefixesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Patch.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.patch@.
+module Gogol.Compute.PublicDelegatedPrefixes.Patch
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesPatchResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesPatch (..),
+    newComputePublicDelegatedPrefixesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.patch@ method which the
+-- 'ComputePublicDelegatedPrefixesPatch' request conforms to.
+type ComputePublicDelegatedPrefixesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] PublicDelegatedPrefix
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified PublicDelegatedPrefix resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesPatch' smart constructor.
+data ComputePublicDelegatedPrefixesPatch = ComputePublicDelegatedPrefixesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: PublicDelegatedPrefix,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the PublicDelegatedPrefix resource to patch.
+    publicDelegatedPrefix :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesPatch' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  PublicDelegatedPrefix ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the PublicDelegatedPrefix resource to patch. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesPatch
+newComputePublicDelegatedPrefixesPatch
+  payload
+  project
+  publicDelegatedPrefix
+  region =
+    ComputePublicDelegatedPrefixesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesPatch where
+  type Rs ComputePublicDelegatedPrefixesPatch = Operation
+  type
+    Scopes ComputePublicDelegatedPrefixesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicDelegatedPrefixesPatch {..} =
+    go
+      project
+      region
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/PublicDelegatedPrefixes/Withdraw.hs b/gen/Gogol/Compute/PublicDelegatedPrefixes/Withdraw.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/PublicDelegatedPrefixes/Withdraw.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.PublicDelegatedPrefixes.Withdraw
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Withdraws the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.publicDelegatedPrefixes.withdraw@.
+module Gogol.Compute.PublicDelegatedPrefixes.Withdraw
+  ( -- * Resource
+    ComputePublicDelegatedPrefixesWithdrawResource,
+
+    -- ** Constructing a Request
+    ComputePublicDelegatedPrefixesWithdraw (..),
+    newComputePublicDelegatedPrefixesWithdraw,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.publicDelegatedPrefixes.withdraw@ method which the
+-- 'ComputePublicDelegatedPrefixesWithdraw' request conforms to.
+type ComputePublicDelegatedPrefixesWithdrawResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "publicDelegatedPrefixes"
+    Core.:> Core.Capture "publicDelegatedPrefix" Core.Text
+    Core.:> "withdraw"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Withdraws the specified PublicDelegatedPrefix in the given region.
+--
+-- /See:/ 'newComputePublicDelegatedPrefixesWithdraw' smart constructor.
+data ComputePublicDelegatedPrefixesWithdraw = ComputePublicDelegatedPrefixesWithdraw
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the public delegated prefix. It should comply with RFC1035.
+    publicDelegatedPrefix :: Core.Text,
+    -- | The name of the region where the public delegated prefix is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputePublicDelegatedPrefixesWithdraw' with the minimum fields required to make a request.
+newComputePublicDelegatedPrefixesWithdraw ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the public delegated prefix. It should comply with RFC1035. See 'publicDelegatedPrefix'.
+  Core.Text ->
+  -- |  The name of the region where the public delegated prefix is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputePublicDelegatedPrefixesWithdraw
+newComputePublicDelegatedPrefixesWithdraw
+  project
+  publicDelegatedPrefix
+  region =
+    ComputePublicDelegatedPrefixesWithdraw
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        publicDelegatedPrefix = publicDelegatedPrefix,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputePublicDelegatedPrefixesWithdraw where
+  type Rs ComputePublicDelegatedPrefixesWithdraw = Operation
+  type
+    Scopes ComputePublicDelegatedPrefixesWithdraw =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputePublicDelegatedPrefixesWithdraw {..} =
+    go
+      project
+      region
+      publicDelegatedPrefix
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputePublicDelegatedPrefixesWithdrawResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/Delete.hs b/gen/Gogol/Compute/RegionAutoscalers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified autoscaler.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.delete@.
+module Gogol.Compute.RegionAutoscalers.Delete
+  ( -- * Resource
+    ComputeRegionAutoscalersDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersDelete (..),
+    newComputeRegionAutoscalersDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.delete@ method which the
+-- 'ComputeRegionAutoscalersDelete' request conforms to.
+type ComputeRegionAutoscalersDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.Capture "autoscaler" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified autoscaler.
+--
+-- /See:/ 'newComputeRegionAutoscalersDelete' smart constructor.
+data ComputeRegionAutoscalersDelete = ComputeRegionAutoscalersDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to delete.
+    autoscaler :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersDelete' with the minimum fields required to make a request.
+newComputeRegionAutoscalersDelete ::
+  -- |  Name of the autoscaler to delete. See 'autoscaler'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersDelete
+newComputeRegionAutoscalersDelete autoscaler project region =
+  ComputeRegionAutoscalersDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = autoscaler,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersDelete where
+  type Rs ComputeRegionAutoscalersDelete = Operation
+  type
+    Scopes ComputeRegionAutoscalersDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionAutoscalersDelete {..} =
+    go
+      project
+      region
+      autoscaler
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/Get.hs b/gen/Gogol/Compute/RegionAutoscalers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified autoscaler.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.get@.
+module Gogol.Compute.RegionAutoscalers.Get
+  ( -- * Resource
+    ComputeRegionAutoscalersGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersGet (..),
+    newComputeRegionAutoscalersGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.get@ method which the
+-- 'ComputeRegionAutoscalersGet' request conforms to.
+type ComputeRegionAutoscalersGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.Capture "autoscaler" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Autoscaler
+
+-- | Returns the specified autoscaler.
+--
+-- /See:/ 'newComputeRegionAutoscalersGet' smart constructor.
+data ComputeRegionAutoscalersGet = ComputeRegionAutoscalersGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to return.
+    autoscaler :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersGet' with the minimum fields required to make a request.
+newComputeRegionAutoscalersGet ::
+  -- |  Name of the autoscaler to return. See 'autoscaler'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersGet
+newComputeRegionAutoscalersGet autoscaler project region =
+  ComputeRegionAutoscalersGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = autoscaler,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersGet where
+  type Rs ComputeRegionAutoscalersGet = Autoscaler
+  type
+    Scopes ComputeRegionAutoscalersGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionAutoscalersGet {..} =
+    go
+      project
+      region
+      autoscaler
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/Insert.hs b/gen/Gogol/Compute/RegionAutoscalers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.insert@.
+module Gogol.Compute.RegionAutoscalers.Insert
+  ( -- * Resource
+    ComputeRegionAutoscalersInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersInsert (..),
+    newComputeRegionAutoscalersInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.insert@ method which the
+-- 'ComputeRegionAutoscalersInsert' request conforms to.
+type ComputeRegionAutoscalersInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionAutoscalersInsert' smart constructor.
+data ComputeRegionAutoscalersInsert = ComputeRegionAutoscalersInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersInsert' with the minimum fields required to make a request.
+newComputeRegionAutoscalersInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersInsert
+newComputeRegionAutoscalersInsert payload project region =
+  ComputeRegionAutoscalersInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersInsert where
+  type Rs ComputeRegionAutoscalersInsert = Operation
+  type
+    Scopes ComputeRegionAutoscalersInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionAutoscalersInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/List.hs b/gen/Gogol/Compute/RegionAutoscalers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of autoscalers contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.list@.
+module Gogol.Compute.RegionAutoscalers.List
+  ( -- * Resource
+    ComputeRegionAutoscalersListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersList (..),
+    newComputeRegionAutoscalersList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.list@ method which the
+-- 'ComputeRegionAutoscalersList' request conforms to.
+type ComputeRegionAutoscalersListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RegionAutoscalerList
+
+-- | Retrieves a list of autoscalers contained within the specified region.
+--
+-- /See:/ 'newComputeRegionAutoscalersList' smart constructor.
+data ComputeRegionAutoscalersList = ComputeRegionAutoscalersList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersList' with the minimum fields required to make a request.
+newComputeRegionAutoscalersList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersList
+newComputeRegionAutoscalersList project region =
+  ComputeRegionAutoscalersList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersList where
+  type Rs ComputeRegionAutoscalersList = RegionAutoscalerList
+  type
+    Scopes ComputeRegionAutoscalersList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionAutoscalersList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/Patch.hs b/gen/Gogol/Compute/RegionAutoscalers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.patch@.
+module Gogol.Compute.RegionAutoscalers.Patch
+  ( -- * Resource
+    ComputeRegionAutoscalersPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersPatch (..),
+    newComputeRegionAutoscalersPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.patch@ method which the
+-- 'ComputeRegionAutoscalersPatch' request conforms to.
+type ComputeRegionAutoscalersPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "autoscaler" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates an autoscaler in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionAutoscalersPatch' smart constructor.
+data ComputeRegionAutoscalersPatch = ComputeRegionAutoscalersPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to patch.
+    autoscaler :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersPatch' with the minimum fields required to make a request.
+newComputeRegionAutoscalersPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersPatch
+newComputeRegionAutoscalersPatch payload project region =
+  ComputeRegionAutoscalersPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersPatch where
+  type Rs ComputeRegionAutoscalersPatch = Operation
+  type
+    Scopes ComputeRegionAutoscalersPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionAutoscalersPatch {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      autoscaler
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionAutoscalers/Update.hs b/gen/Gogol/Compute/RegionAutoscalers/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionAutoscalers/Update.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionAutoscalers.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionAutoscalers.update@.
+module Gogol.Compute.RegionAutoscalers.Update
+  ( -- * Resource
+    ComputeRegionAutoscalersUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionAutoscalersUpdate (..),
+    newComputeRegionAutoscalersUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionAutoscalers.update@ method which the
+-- 'ComputeRegionAutoscalersUpdate' request conforms to.
+type ComputeRegionAutoscalersUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "autoscalers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "autoscaler" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Autoscaler
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates an autoscaler in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionAutoscalersUpdate' smart constructor.
+data ComputeRegionAutoscalersUpdate = ComputeRegionAutoscalersUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the autoscaler to update.
+    autoscaler :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Autoscaler,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionAutoscalersUpdate' with the minimum fields required to make a request.
+newComputeRegionAutoscalersUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Autoscaler ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionAutoscalersUpdate
+newComputeRegionAutoscalersUpdate payload project region =
+  ComputeRegionAutoscalersUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      autoscaler = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionAutoscalersUpdate where
+  type Rs ComputeRegionAutoscalersUpdate = Operation
+  type
+    Scopes ComputeRegionAutoscalersUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionAutoscalersUpdate {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      autoscaler
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionAutoscalersUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/Delete.hs b/gen/Gogol/Compute/RegionBackendServices/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/Delete.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified regional BackendService resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.delete@.
+module Gogol.Compute.RegionBackendServices.Delete
+  ( -- * Resource
+    ComputeRegionBackendServicesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesDelete (..),
+    newComputeRegionBackendServicesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.delete@ method which the
+-- 'ComputeRegionBackendServicesDelete' request conforms to.
+type ComputeRegionBackendServicesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified regional BackendService resource.
+--
+-- /See:/ 'newComputeRegionBackendServicesDelete' smart constructor.
+data ComputeRegionBackendServicesDelete = ComputeRegionBackendServicesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to delete.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesDelete' with the minimum fields required to make a request.
+newComputeRegionBackendServicesDelete ::
+  -- |  Name of the BackendService resource to delete. See 'backendService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesDelete
+newComputeRegionBackendServicesDelete backendService project region =
+  ComputeRegionBackendServicesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesDelete where
+  type Rs ComputeRegionBackendServicesDelete = Operation
+  type
+    Scopes ComputeRegionBackendServicesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesDelete {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/Get.hs b/gen/Gogol/Compute/RegionBackendServices/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified regional BackendService resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.get@.
+module Gogol.Compute.RegionBackendServices.Get
+  ( -- * Resource
+    ComputeRegionBackendServicesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesGet (..),
+    newComputeRegionBackendServicesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.get@ method which the
+-- 'ComputeRegionBackendServicesGet' request conforms to.
+type ComputeRegionBackendServicesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendService
+
+-- | Returns the specified regional BackendService resource.
+--
+-- /See:/ 'newComputeRegionBackendServicesGet' smart constructor.
+data ComputeRegionBackendServicesGet = ComputeRegionBackendServicesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to return.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesGet' with the minimum fields required to make a request.
+newComputeRegionBackendServicesGet ::
+  -- |  Name of the BackendService resource to return. See 'backendService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesGet
+newComputeRegionBackendServicesGet backendService project region =
+  ComputeRegionBackendServicesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      backendService = backendService,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesGet where
+  type Rs ComputeRegionBackendServicesGet = BackendService
+  type
+    Scopes ComputeRegionBackendServicesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesGet {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionBackendServicesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/GetHealth.hs b/gen/Gogol/Compute/RegionBackendServices/GetHealth.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/GetHealth.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.GetHealth
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the most recent health check results for this regional BackendService.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.getHealth@.
+module Gogol.Compute.RegionBackendServices.GetHealth
+  ( -- * Resource
+    ComputeRegionBackendServicesGetHealthResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesGetHealth (..),
+    newComputeRegionBackendServicesGetHealth,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.getHealth@ method which the
+-- 'ComputeRegionBackendServicesGetHealth' request conforms to.
+type ComputeRegionBackendServicesGetHealthResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "getHealth"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourceGroupReference
+    Core.:> Core.Post '[Core.JSON] BackendServiceGroupHealth
+
+-- | Gets the most recent health check results for this regional BackendService.
+--
+-- /See:/ 'newComputeRegionBackendServicesGetHealth' smart constructor.
+data ComputeRegionBackendServicesGetHealth = ComputeRegionBackendServicesGetHealth
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource for which to get health.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ResourceGroupReference,
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesGetHealth' with the minimum fields required to make a request.
+newComputeRegionBackendServicesGetHealth ::
+  -- |  Name of the BackendService resource for which to get health. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  ResourceGroupReference ->
+  -- |  See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesGetHealth
+newComputeRegionBackendServicesGetHealth
+  backendService
+  payload
+  project
+  region =
+    ComputeRegionBackendServicesGetHealth
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesGetHealth where
+  type
+    Rs ComputeRegionBackendServicesGetHealth =
+      BackendServiceGroupHealth
+  type
+    Scopes ComputeRegionBackendServicesGetHealth =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesGetHealth {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesGetHealthResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/GetIamPolicy.hs b/gen/Gogol/Compute/RegionBackendServices/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/GetIamPolicy.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.getIamPolicy@.
+module Gogol.Compute.RegionBackendServices.GetIamPolicy
+  ( -- * Resource
+    ComputeRegionBackendServicesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesGetIamPolicy (..),
+    newComputeRegionBackendServicesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.getIamPolicy@ method which the
+-- 'ComputeRegionBackendServicesGetIamPolicy' request conforms to.
+type ComputeRegionBackendServicesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeRegionBackendServicesGetIamPolicy' smart constructor.
+data ComputeRegionBackendServicesGetIamPolicy = ComputeRegionBackendServicesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesGetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionBackendServicesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionBackendServicesGetIamPolicy
+newComputeRegionBackendServicesGetIamPolicy project region resource =
+  ComputeRegionBackendServicesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionBackendServicesGetIamPolicy
+  where
+  type Rs ComputeRegionBackendServicesGetIamPolicy = Policy
+  type
+    Scopes ComputeRegionBackendServicesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/Insert.hs b/gen/Gogol/Compute/RegionBackendServices/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.insert@.
+module Gogol.Compute.RegionBackendServices.Insert
+  ( -- * Resource
+    ComputeRegionBackendServicesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesInsert (..),
+    newComputeRegionBackendServicesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.insert@ method which the
+-- 'ComputeRegionBackendServicesInsert' request conforms to.
+type ComputeRegionBackendServicesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see Backend services overview.
+--
+-- /See:/ 'newComputeRegionBackendServicesInsert' smart constructor.
+data ComputeRegionBackendServicesInsert = ComputeRegionBackendServicesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesInsert' with the minimum fields required to make a request.
+newComputeRegionBackendServicesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesInsert
+newComputeRegionBackendServicesInsert payload project region =
+  ComputeRegionBackendServicesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesInsert where
+  type Rs ComputeRegionBackendServicesInsert = Operation
+  type
+    Scopes ComputeRegionBackendServicesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/List.hs b/gen/Gogol/Compute/RegionBackendServices/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of regional BackendService resources available to the specified project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.list@.
+module Gogol.Compute.RegionBackendServices.List
+  ( -- * Resource
+    ComputeRegionBackendServicesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesList (..),
+    newComputeRegionBackendServicesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.list@ method which the
+-- 'ComputeRegionBackendServicesList' request conforms to.
+type ComputeRegionBackendServicesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendServiceList
+
+-- | Retrieves the list of regional BackendService resources available to the specified project in the given region.
+--
+-- /See:/ 'newComputeRegionBackendServicesList' smart constructor.
+data ComputeRegionBackendServicesList = ComputeRegionBackendServicesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesList' with the minimum fields required to make a request.
+newComputeRegionBackendServicesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesList
+newComputeRegionBackendServicesList project region =
+  ComputeRegionBackendServicesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesList where
+  type Rs ComputeRegionBackendServicesList = BackendServiceList
+  type
+    Scopes ComputeRegionBackendServicesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionBackendServicesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/ListUsable.hs b/gen/Gogol/Compute/RegionBackendServices/ListUsable.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/ListUsable.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.ListUsable
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of all usable backend services in the specified project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.listUsable@.
+module Gogol.Compute.RegionBackendServices.ListUsable
+  ( -- * Resource
+    ComputeRegionBackendServicesListUsableResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesListUsable (..),
+    newComputeRegionBackendServicesListUsable,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.listUsable@ method which the
+-- 'ComputeRegionBackendServicesListUsable' request conforms to.
+type ComputeRegionBackendServicesListUsableResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> "listUsable"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] BackendServiceListUsable
+
+-- | Retrieves a list of all usable backend services in the specified project in the given region.
+--
+-- /See:/ 'newComputeRegionBackendServicesListUsable' smart constructor.
+data ComputeRegionBackendServicesListUsable = ComputeRegionBackendServicesListUsable
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request. It must be a string that meets the requirements in RFC1035.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesListUsable' with the minimum fields required to make a request.
+newComputeRegionBackendServicesListUsable ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. It must be a string that meets the requirements in RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesListUsable
+newComputeRegionBackendServicesListUsable project region =
+  ComputeRegionBackendServicesListUsable
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesListUsable where
+  type
+    Rs ComputeRegionBackendServicesListUsable =
+      BackendServiceListUsable
+  type
+    Scopes ComputeRegionBackendServicesListUsable =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesListUsable {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesListUsableResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/Patch.hs b/gen/Gogol/Compute/RegionBackendServices/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.patch@.
+module Gogol.Compute.RegionBackendServices.Patch
+  ( -- * Resource
+    ComputeRegionBackendServicesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesPatch (..),
+    newComputeRegionBackendServicesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.patch@ method which the
+-- 'ComputeRegionBackendServicesPatch' request conforms to.
+type ComputeRegionBackendServicesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified regional BackendService resource with the data included in the request. For more information, see Understanding backend services This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionBackendServicesPatch' smart constructor.
+data ComputeRegionBackendServicesPatch = ComputeRegionBackendServicesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to patch.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesPatch' with the minimum fields required to make a request.
+newComputeRegionBackendServicesPatch ::
+  -- |  Name of the BackendService resource to patch. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesPatch
+newComputeRegionBackendServicesPatch
+  backendService
+  payload
+  project
+  region =
+    ComputeRegionBackendServicesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesPatch where
+  type Rs ComputeRegionBackendServicesPatch = Operation
+  type
+    Scopes ComputeRegionBackendServicesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesPatch {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/SetIamPolicy.hs b/gen/Gogol/Compute/RegionBackendServices/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/SetIamPolicy.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.setIamPolicy@.
+module Gogol.Compute.RegionBackendServices.SetIamPolicy
+  ( -- * Resource
+    ComputeRegionBackendServicesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesSetIamPolicy (..),
+    newComputeRegionBackendServicesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.setIamPolicy@ method which the
+-- 'ComputeRegionBackendServicesSetIamPolicy' request conforms to.
+type ComputeRegionBackendServicesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeRegionBackendServicesSetIamPolicy' smart constructor.
+data ComputeRegionBackendServicesSetIamPolicy = ComputeRegionBackendServicesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesSetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionBackendServicesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionBackendServicesSetIamPolicy
+newComputeRegionBackendServicesSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeRegionBackendServicesSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionBackendServicesSetIamPolicy
+  where
+  type Rs ComputeRegionBackendServicesSetIamPolicy = Policy
+  type
+    Scopes ComputeRegionBackendServicesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/SetSecurityPolicy.hs b/gen/Gogol/Compute/RegionBackendServices/SetSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/SetSecurityPolicy.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.SetSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.setSecurityPolicy@.
+module Gogol.Compute.RegionBackendServices.SetSecurityPolicy
+  ( -- * Resource
+    ComputeRegionBackendServicesSetSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesSetSecurityPolicy (..),
+    newComputeRegionBackendServicesSetSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.setSecurityPolicy@ method which the
+-- 'ComputeRegionBackendServicesSetSecurityPolicy' request conforms to.
+type ComputeRegionBackendServicesSetSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> "setSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ 'newComputeRegionBackendServicesSetSecurityPolicy' smart constructor.
+data ComputeRegionBackendServicesSetSecurityPolicy = ComputeRegionBackendServicesSetSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesSetSecurityPolicy' with the minimum fields required to make a request.
+newComputeRegionBackendServicesSetSecurityPolicy ::
+  -- |  Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesSetSecurityPolicy
+newComputeRegionBackendServicesSetSecurityPolicy
+  backendService
+  payload
+  project
+  region =
+    ComputeRegionBackendServicesSetSecurityPolicy
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionBackendServicesSetSecurityPolicy
+  where
+  type Rs ComputeRegionBackendServicesSetSecurityPolicy = Operation
+  type
+    Scopes ComputeRegionBackendServicesSetSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesSetSecurityPolicy {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesSetSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/TestIamPermissions.hs b/gen/Gogol/Compute/RegionBackendServices/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/TestIamPermissions.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.testIamPermissions@.
+module Gogol.Compute.RegionBackendServices.TestIamPermissions
+  ( -- * Resource
+    ComputeRegionBackendServicesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesTestIamPermissions (..),
+    newComputeRegionBackendServicesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.testIamPermissions@ method which the
+-- 'ComputeRegionBackendServicesTestIamPermissions' request conforms to.
+type ComputeRegionBackendServicesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeRegionBackendServicesTestIamPermissions' smart constructor.
+data ComputeRegionBackendServicesTestIamPermissions = ComputeRegionBackendServicesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesTestIamPermissions' with the minimum fields required to make a request.
+newComputeRegionBackendServicesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionBackendServicesTestIamPermissions
+newComputeRegionBackendServicesTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeRegionBackendServicesTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionBackendServicesTestIamPermissions
+  where
+  type
+    Rs ComputeRegionBackendServicesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeRegionBackendServicesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionBackendServicesTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionBackendServices/Update.hs b/gen/Gogol/Compute/RegionBackendServices/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionBackendServices/Update.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionBackendServices.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionBackendServices.update@.
+module Gogol.Compute.RegionBackendServices.Update
+  ( -- * Resource
+    ComputeRegionBackendServicesUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionBackendServicesUpdate (..),
+    newComputeRegionBackendServicesUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionBackendServices.update@ method which the
+-- 'ComputeRegionBackendServicesUpdate' request conforms to.
+type ComputeRegionBackendServicesUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "backendServices"
+    Core.:> Core.Capture "backendService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BackendService
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified regional BackendService resource with the data included in the request. For more information, see Backend services overview .
+--
+-- /See:/ 'newComputeRegionBackendServicesUpdate' smart constructor.
+data ComputeRegionBackendServicesUpdate = ComputeRegionBackendServicesUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | Name of the BackendService resource to update.
+    backendService :: Core.Text,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BackendService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionBackendServicesUpdate' with the minimum fields required to make a request.
+newComputeRegionBackendServicesUpdate ::
+  -- |  Name of the BackendService resource to update. See 'backendService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  BackendService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionBackendServicesUpdate
+newComputeRegionBackendServicesUpdate
+  backendService
+  payload
+  project
+  region =
+    ComputeRegionBackendServicesUpdate
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        backendService = backendService,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionBackendServicesUpdate where
+  type Rs ComputeRegionBackendServicesUpdate = Operation
+  type
+    Scopes ComputeRegionBackendServicesUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionBackendServicesUpdate {..} =
+    go
+      project
+      region
+      backendService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionBackendServicesUpdateResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionCommitments/AggregatedList.hs b/gen/Gogol/Compute/RegionCommitments/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionCommitments/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionCommitments.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionCommitments.aggregatedList@.
+module Gogol.Compute.RegionCommitments.AggregatedList
+  ( -- * Resource
+    ComputeRegionCommitmentsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionCommitmentsAggregatedList (..),
+    newComputeRegionCommitmentsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionCommitments.aggregatedList@ method which the
+-- 'ComputeRegionCommitmentsAggregatedList' request conforms to.
+type ComputeRegionCommitmentsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "commitments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CommitmentAggregatedList
+
+-- | Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeRegionCommitmentsAggregatedList' smart constructor.
+data ComputeRegionCommitmentsAggregatedList = ComputeRegionCommitmentsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionCommitmentsAggregatedList' with the minimum fields required to make a request.
+newComputeRegionCommitmentsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeRegionCommitmentsAggregatedList
+newComputeRegionCommitmentsAggregatedList project =
+  ComputeRegionCommitmentsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionCommitmentsAggregatedList where
+  type
+    Rs ComputeRegionCommitmentsAggregatedList =
+      CommitmentAggregatedList
+  type
+    Scopes ComputeRegionCommitmentsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionCommitmentsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionCommitmentsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionCommitments/Get.hs b/gen/Gogol/Compute/RegionCommitments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionCommitments/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionCommitments.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified commitment resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionCommitments.get@.
+module Gogol.Compute.RegionCommitments.Get
+  ( -- * Resource
+    ComputeRegionCommitmentsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionCommitmentsGet (..),
+    newComputeRegionCommitmentsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionCommitments.get@ method which the
+-- 'ComputeRegionCommitmentsGet' request conforms to.
+type ComputeRegionCommitmentsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "commitments"
+    Core.:> Core.Capture "commitment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Commitment
+
+-- | Returns the specified commitment resource.
+--
+-- /See:/ 'newComputeRegionCommitmentsGet' smart constructor.
+data ComputeRegionCommitmentsGet = ComputeRegionCommitmentsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the commitment to return.
+    commitment :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionCommitmentsGet' with the minimum fields required to make a request.
+newComputeRegionCommitmentsGet ::
+  -- |  Name of the commitment to return. See 'commitment'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionCommitmentsGet
+newComputeRegionCommitmentsGet commitment project region =
+  ComputeRegionCommitmentsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      commitment = commitment,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionCommitmentsGet where
+  type Rs ComputeRegionCommitmentsGet = Commitment
+  type
+    Scopes ComputeRegionCommitmentsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionCommitmentsGet {..} =
+    go
+      project
+      region
+      commitment
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionCommitmentsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionCommitments/Insert.hs b/gen/Gogol/Compute/RegionCommitments/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionCommitments/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionCommitments.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a commitment in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionCommitments.insert@.
+module Gogol.Compute.RegionCommitments.Insert
+  ( -- * Resource
+    ComputeRegionCommitmentsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionCommitmentsInsert (..),
+    newComputeRegionCommitmentsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionCommitments.insert@ method which the
+-- 'ComputeRegionCommitmentsInsert' request conforms to.
+type ComputeRegionCommitmentsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "commitments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Commitment
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a commitment in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionCommitmentsInsert' smart constructor.
+data ComputeRegionCommitmentsInsert = ComputeRegionCommitmentsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Commitment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionCommitmentsInsert' with the minimum fields required to make a request.
+newComputeRegionCommitmentsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Commitment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionCommitmentsInsert
+newComputeRegionCommitmentsInsert payload project region =
+  ComputeRegionCommitmentsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionCommitmentsInsert where
+  type Rs ComputeRegionCommitmentsInsert = Operation
+  type
+    Scopes ComputeRegionCommitmentsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionCommitmentsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionCommitmentsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionCommitments/List.hs b/gen/Gogol/Compute/RegionCommitments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionCommitments/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionCommitments.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of commitments contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionCommitments.list@.
+module Gogol.Compute.RegionCommitments.List
+  ( -- * Resource
+    ComputeRegionCommitmentsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionCommitmentsList (..),
+    newComputeRegionCommitmentsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionCommitments.list@ method which the
+-- 'ComputeRegionCommitmentsList' request conforms to.
+type ComputeRegionCommitmentsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "commitments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] CommitmentList
+
+-- | Retrieves a list of commitments contained within the specified region.
+--
+-- /See:/ 'newComputeRegionCommitmentsList' smart constructor.
+data ComputeRegionCommitmentsList = ComputeRegionCommitmentsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionCommitmentsList' with the minimum fields required to make a request.
+newComputeRegionCommitmentsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionCommitmentsList
+newComputeRegionCommitmentsList project region =
+  ComputeRegionCommitmentsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionCommitmentsList where
+  type Rs ComputeRegionCommitmentsList = CommitmentList
+  type
+    Scopes ComputeRegionCommitmentsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionCommitmentsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionCommitmentsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionCommitments/Update.hs b/gen/Gogol/Compute/RegionCommitments/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionCommitments/Update.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionCommitments.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be updated: auto_renew and plan.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionCommitments.update@.
+module Gogol.Compute.RegionCommitments.Update
+  ( -- * Resource
+    ComputeRegionCommitmentsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionCommitmentsUpdate (..),
+    newComputeRegionCommitmentsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionCommitments.update@ method which the
+-- 'ComputeRegionCommitmentsUpdate' request conforms to.
+type ComputeRegionCommitmentsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "commitments"
+    Core.:> Core.Capture "commitment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "paths" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Commitment
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified commitment with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be updated: auto_renew and plan.
+--
+-- /See:/ 'newComputeRegionCommitmentsUpdate' smart constructor.
+data ComputeRegionCommitmentsUpdate = ComputeRegionCommitmentsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the commitment that you want to update.
+    commitment :: Core.Text,
+    paths :: (Core.Maybe [Core.Text]),
+    -- | Multipart request metadata.
+    payload :: Commitment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionCommitmentsUpdate' with the minimum fields required to make a request.
+newComputeRegionCommitmentsUpdate ::
+  -- |  Name of the commitment that you want to update. See 'commitment'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Commitment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionCommitmentsUpdate
+newComputeRegionCommitmentsUpdate commitment payload project region =
+  ComputeRegionCommitmentsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      commitment = commitment,
+      paths = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionCommitmentsUpdate where
+  type Rs ComputeRegionCommitmentsUpdate = Operation
+  type
+    Scopes ComputeRegionCommitmentsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionCommitmentsUpdate {..} =
+    go
+      project
+      region
+      commitment
+      xgafv
+      accessToken
+      callback
+      (paths Core.^. Core._Default)
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionCommitmentsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDiskTypes/Get.hs b/gen/Gogol/Compute/RegionDiskTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDiskTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDiskTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified regional disk type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDiskTypes.get@.
+module Gogol.Compute.RegionDiskTypes.Get
+  ( -- * Resource
+    ComputeRegionDiskTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDiskTypesGet (..),
+    newComputeRegionDiskTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDiskTypes.get@ method which the
+-- 'ComputeRegionDiskTypesGet' request conforms to.
+type ComputeRegionDiskTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "diskTypes"
+    Core.:> Core.Capture "diskType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskType
+
+-- | Returns the specified regional disk type.
+--
+-- /See:/ 'newComputeRegionDiskTypesGet' smart constructor.
+data ComputeRegionDiskTypesGet = ComputeRegionDiskTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the disk type to return.
+    diskType :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDiskTypesGet' with the minimum fields required to make a request.
+newComputeRegionDiskTypesGet ::
+  -- |  Name of the disk type to return. See 'diskType'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDiskTypesGet
+newComputeRegionDiskTypesGet diskType project region =
+  ComputeRegionDiskTypesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      diskType = diskType,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDiskTypesGet where
+  type Rs ComputeRegionDiskTypesGet = DiskType
+  type
+    Scopes ComputeRegionDiskTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDiskTypesGet {..} =
+    go
+      project
+      region
+      diskType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDiskTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDiskTypes/List.hs b/gen/Gogol/Compute/RegionDiskTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDiskTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDiskTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of regional disk types available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDiskTypes.list@.
+module Gogol.Compute.RegionDiskTypes.List
+  ( -- * Resource
+    ComputeRegionDiskTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDiskTypesList (..),
+    newComputeRegionDiskTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDiskTypes.list@ method which the
+-- 'ComputeRegionDiskTypesList' request conforms to.
+type ComputeRegionDiskTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "diskTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RegionDiskTypeList
+
+-- | Retrieves a list of regional disk types available to the specified project.
+--
+-- /See:/ 'newComputeRegionDiskTypesList' smart constructor.
+data ComputeRegionDiskTypesList = ComputeRegionDiskTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDiskTypesList' with the minimum fields required to make a request.
+newComputeRegionDiskTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDiskTypesList
+newComputeRegionDiskTypesList project region =
+  ComputeRegionDiskTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDiskTypesList where
+  type Rs ComputeRegionDiskTypesList = RegionDiskTypeList
+  type
+    Scopes ComputeRegionDiskTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDiskTypesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDiskTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/AddResourcePolicies.hs b/gen/Gogol/Compute/RegionDisks/AddResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/AddResourcePolicies.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.AddResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.addResourcePolicies@.
+module Gogol.Compute.RegionDisks.AddResourcePolicies
+  ( -- * Resource
+    ComputeRegionDisksAddResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksAddResourcePolicies (..),
+    newComputeRegionDisksAddResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.addResourcePolicies@ method which the
+-- 'ComputeRegionDisksAddResourcePolicies' request conforms to.
+type ComputeRegionDisksAddResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "addResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionDisksAddResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds existing resource policies to a regional disk. You can only add one policy which will be applied to this disk for scheduling snapshot creation.
+--
+-- /See:/ 'newComputeRegionDisksAddResourcePolicies' smart constructor.
+data ComputeRegionDisksAddResourcePolicies = ComputeRegionDisksAddResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionDisksAddResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksAddResourcePolicies' with the minimum fields required to make a request.
+newComputeRegionDisksAddResourcePolicies ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionDisksAddResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksAddResourcePolicies
+newComputeRegionDisksAddResourcePolicies
+  disk
+  payload
+  project
+  region =
+    ComputeRegionDisksAddResourcePolicies
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        disk = disk,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionDisksAddResourcePolicies where
+  type Rs ComputeRegionDisksAddResourcePolicies = Operation
+  type
+    Scopes ComputeRegionDisksAddResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksAddResourcePolicies {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksAddResourcePoliciesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/BulkInsert.hs b/gen/Gogol/Compute/RegionDisks/BulkInsert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/BulkInsert.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.BulkInsert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Bulk create a set of disks.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.bulkInsert@.
+module Gogol.Compute.RegionDisks.BulkInsert
+  ( -- * Resource
+    ComputeRegionDisksBulkInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksBulkInsert (..),
+    newComputeRegionDisksBulkInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.bulkInsert@ method which the
+-- 'ComputeRegionDisksBulkInsert' request conforms to.
+type ComputeRegionDisksBulkInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> "bulkInsert"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BulkInsertDiskResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Bulk create a set of disks.
+--
+-- /See:/ 'newComputeRegionDisksBulkInsert' smart constructor.
+data ComputeRegionDisksBulkInsert = ComputeRegionDisksBulkInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BulkInsertDiskResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksBulkInsert' with the minimum fields required to make a request.
+newComputeRegionDisksBulkInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BulkInsertDiskResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksBulkInsert
+newComputeRegionDisksBulkInsert payload project region =
+  ComputeRegionDisksBulkInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksBulkInsert where
+  type Rs ComputeRegionDisksBulkInsert = Operation
+  type
+    Scopes ComputeRegionDisksBulkInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksBulkInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksBulkInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/CreateSnapshot.hs b/gen/Gogol/Compute/RegionDisks/CreateSnapshot.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/CreateSnapshot.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.CreateSnapshot
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.createSnapshot@.
+module Gogol.Compute.RegionDisks.CreateSnapshot
+  ( -- * Resource
+    ComputeRegionDisksCreateSnapshotResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksCreateSnapshot (..),
+    newComputeRegionDisksCreateSnapshot,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.createSnapshot@ method which the
+-- 'ComputeRegionDisksCreateSnapshot' request conforms to.
+type ComputeRegionDisksCreateSnapshotResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "createSnapshot"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Snapshot
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a snapshot of a specified persistent disk. For regular snapshot creation, consider using snapshots.insert instead, as that method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ 'newComputeRegionDisksCreateSnapshot' smart constructor.
+data ComputeRegionDisksCreateSnapshot = ComputeRegionDisksCreateSnapshot
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the regional persistent disk to snapshot.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: Snapshot,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksCreateSnapshot' with the minimum fields required to make a request.
+newComputeRegionDisksCreateSnapshot ::
+  -- |  Name of the regional persistent disk to snapshot. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Snapshot ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksCreateSnapshot
+newComputeRegionDisksCreateSnapshot disk payload project region =
+  ComputeRegionDisksCreateSnapshot
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksCreateSnapshot where
+  type Rs ComputeRegionDisksCreateSnapshot = Operation
+  type
+    Scopes ComputeRegionDisksCreateSnapshot =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksCreateSnapshot {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksCreateSnapshotResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/Delete.hs b/gen/Gogol/Compute/RegionDisks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.delete@.
+module Gogol.Compute.RegionDisks.Delete
+  ( -- * Resource
+    ComputeRegionDisksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksDelete (..),
+    newComputeRegionDisksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.delete@ method which the
+-- 'ComputeRegionDisksDelete' request conforms to.
+type ComputeRegionDisksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified regional persistent disk. Deleting a regional disk removes all the replicas of its data permanently and is irreversible. However, deleting a disk does not delete any snapshots previously made from the disk. You must separately delete snapshots.
+--
+-- /See:/ 'newComputeRegionDisksDelete' smart constructor.
+data ComputeRegionDisksDelete = ComputeRegionDisksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the regional persistent disk to delete.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksDelete' with the minimum fields required to make a request.
+newComputeRegionDisksDelete ::
+  -- |  Name of the regional persistent disk to delete. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksDelete
+newComputeRegionDisksDelete disk project region =
+  ComputeRegionDisksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksDelete where
+  type Rs ComputeRegionDisksDelete = Operation
+  type
+    Scopes ComputeRegionDisksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksDelete {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/Get.hs b/gen/Gogol/Compute/RegionDisks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a specified regional persistent disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.get@.
+module Gogol.Compute.RegionDisks.Get
+  ( -- * Resource
+    ComputeRegionDisksGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksGet (..),
+    newComputeRegionDisksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.get@ method which the
+-- 'ComputeRegionDisksGet' request conforms to.
+type ComputeRegionDisksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Disk
+
+-- | Returns a specified regional persistent disk.
+--
+-- /See:/ 'newComputeRegionDisksGet' smart constructor.
+data ComputeRegionDisksGet = ComputeRegionDisksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the regional persistent disk to return.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksGet' with the minimum fields required to make a request.
+newComputeRegionDisksGet ::
+  -- |  Name of the regional persistent disk to return. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksGet
+newComputeRegionDisksGet disk project region =
+  ComputeRegionDisksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksGet where
+  type Rs ComputeRegionDisksGet = Disk
+  type
+    Scopes ComputeRegionDisksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDisksGet {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/GetIamPolicy.hs b/gen/Gogol/Compute/RegionDisks/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.getIamPolicy@.
+module Gogol.Compute.RegionDisks.GetIamPolicy
+  ( -- * Resource
+    ComputeRegionDisksGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksGetIamPolicy (..),
+    newComputeRegionDisksGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.getIamPolicy@ method which the
+-- 'ComputeRegionDisksGetIamPolicy' request conforms to.
+type ComputeRegionDisksGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeRegionDisksGetIamPolicy' smart constructor.
+data ComputeRegionDisksGetIamPolicy = ComputeRegionDisksGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksGetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionDisksGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionDisksGetIamPolicy
+newComputeRegionDisksGetIamPolicy project region resource =
+  ComputeRegionDisksGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksGetIamPolicy where
+  type Rs ComputeRegionDisksGetIamPolicy = Policy
+  type
+    Scopes ComputeRegionDisksGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDisksGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/Insert.hs b/gen/Gogol/Compute/RegionDisks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/Insert.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a persistent regional disk in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.insert@.
+module Gogol.Compute.RegionDisks.Insert
+  ( -- * Resource
+    ComputeRegionDisksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksInsert (..),
+    newComputeRegionDisksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.insert@ method which the
+-- 'ComputeRegionDisksInsert' request conforms to.
+type ComputeRegionDisksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceImage" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Disk
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a persistent regional disk in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionDisksInsert' smart constructor.
+data ComputeRegionDisksInsert = ComputeRegionDisksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Disk,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Source image to restore onto a disk. This field is optional.
+    sourceImage :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksInsert' with the minimum fields required to make a request.
+newComputeRegionDisksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Disk ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksInsert
+newComputeRegionDisksInsert payload project region =
+  ComputeRegionDisksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      sourceImage = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksInsert where
+  type Rs ComputeRegionDisksInsert = Operation
+  type
+    Scopes ComputeRegionDisksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceImage
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/List.hs b/gen/Gogol/Compute/RegionDisks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of persistent disks contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.list@.
+module Gogol.Compute.RegionDisks.List
+  ( -- * Resource
+    ComputeRegionDisksListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksList (..),
+    newComputeRegionDisksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.list@ method which the
+-- 'ComputeRegionDisksList' request conforms to.
+type ComputeRegionDisksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] DiskList
+
+-- | Retrieves the list of persistent disks contained within the specified region.
+--
+-- /See:/ 'newComputeRegionDisksList' smart constructor.
+data ComputeRegionDisksList = ComputeRegionDisksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksList' with the minimum fields required to make a request.
+newComputeRegionDisksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksList
+newComputeRegionDisksList project region =
+  ComputeRegionDisksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksList where
+  type Rs ComputeRegionDisksList = DiskList
+  type
+    Scopes ComputeRegionDisksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDisksList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/RemoveResourcePolicies.hs b/gen/Gogol/Compute/RegionDisks/RemoveResourcePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/RemoveResourcePolicies.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.RemoveResourcePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes resource policies from a regional disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.removeResourcePolicies@.
+module Gogol.Compute.RegionDisks.RemoveResourcePolicies
+  ( -- * Resource
+    ComputeRegionDisksRemoveResourcePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksRemoveResourcePolicies (..),
+    newComputeRegionDisksRemoveResourcePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.removeResourcePolicies@ method which the
+-- 'ComputeRegionDisksRemoveResourcePolicies' request conforms to.
+type ComputeRegionDisksRemoveResourcePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "removeResourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionDisksRemoveResourcePoliciesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes resource policies from a regional disk.
+--
+-- /See:/ 'newComputeRegionDisksRemoveResourcePolicies' smart constructor.
+data ComputeRegionDisksRemoveResourcePolicies = ComputeRegionDisksRemoveResourcePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionDisksRemoveResourcePoliciesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksRemoveResourcePolicies' with the minimum fields required to make a request.
+newComputeRegionDisksRemoveResourcePolicies ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionDisksRemoveResourcePoliciesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksRemoveResourcePolicies
+newComputeRegionDisksRemoveResourcePolicies
+  disk
+  payload
+  project
+  region =
+    ComputeRegionDisksRemoveResourcePolicies
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        disk = disk,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionDisksRemoveResourcePolicies
+  where
+  type Rs ComputeRegionDisksRemoveResourcePolicies = Operation
+  type
+    Scopes ComputeRegionDisksRemoveResourcePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksRemoveResourcePolicies {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksRemoveResourcePoliciesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/Resize.hs b/gen/Gogol/Compute/RegionDisks/Resize.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/Resize.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.Resize
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Resizes the specified regional persistent disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.resize@.
+module Gogol.Compute.RegionDisks.Resize
+  ( -- * Resource
+    ComputeRegionDisksResizeResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksResize (..),
+    newComputeRegionDisksResize,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.resize@ method which the
+-- 'ComputeRegionDisksResize' request conforms to.
+type ComputeRegionDisksResizeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "resize"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionDisksResizeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Resizes the specified regional persistent disk.
+--
+-- /See:/ 'newComputeRegionDisksResize' smart constructor.
+data ComputeRegionDisksResize = ComputeRegionDisksResize
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the regional persistent disk.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionDisksResizeRequest,
+    -- | The project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksResize' with the minimum fields required to make a request.
+newComputeRegionDisksResize ::
+  -- |  Name of the regional persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionDisksResizeRequest ->
+  -- |  The project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksResize
+newComputeRegionDisksResize disk payload project region =
+  ComputeRegionDisksResize
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksResize where
+  type Rs ComputeRegionDisksResize = Operation
+  type
+    Scopes ComputeRegionDisksResize =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksResize {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksResizeResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/SetIamPolicy.hs b/gen/Gogol/Compute/RegionDisks/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.setIamPolicy@.
+module Gogol.Compute.RegionDisks.SetIamPolicy
+  ( -- * Resource
+    ComputeRegionDisksSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksSetIamPolicy (..),
+    newComputeRegionDisksSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.setIamPolicy@ method which the
+-- 'ComputeRegionDisksSetIamPolicy' request conforms to.
+type ComputeRegionDisksSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeRegionDisksSetIamPolicy' smart constructor.
+data ComputeRegionDisksSetIamPolicy = ComputeRegionDisksSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksSetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionDisksSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionDisksSetIamPolicy
+newComputeRegionDisksSetIamPolicy payload project region resource =
+  ComputeRegionDisksSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksSetIamPolicy where
+  type Rs ComputeRegionDisksSetIamPolicy = Policy
+  type
+    Scopes ComputeRegionDisksSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/SetLabels.hs b/gen/Gogol/Compute/RegionDisks/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on the target regional disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.setLabels@.
+module Gogol.Compute.RegionDisks.SetLabels
+  ( -- * Resource
+    ComputeRegionDisksSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksSetLabels (..),
+    newComputeRegionDisksSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.setLabels@ method which the
+-- 'ComputeRegionDisksSetLabels' request conforms to.
+type ComputeRegionDisksSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on the target regional disk.
+--
+-- /See:/ 'newComputeRegionDisksSetLabels' smart constructor.
+data ComputeRegionDisksSetLabels = ComputeRegionDisksSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksSetLabels' with the minimum fields required to make a request.
+newComputeRegionDisksSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionDisksSetLabels
+newComputeRegionDisksSetLabels payload project region resource =
+  ComputeRegionDisksSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksSetLabels where
+  type Rs ComputeRegionDisksSetLabels = Operation
+  type
+    Scopes ComputeRegionDisksSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/StartAsyncReplication.hs b/gen/Gogol/Compute/RegionDisks/StartAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/StartAsyncReplication.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.StartAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Starts asynchronous replication. Must be invoked on the primary disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.startAsyncReplication@.
+module Gogol.Compute.RegionDisks.StartAsyncReplication
+  ( -- * Resource
+    ComputeRegionDisksStartAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksStartAsyncReplication (..),
+    newComputeRegionDisksStartAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.startAsyncReplication@ method which the
+-- 'ComputeRegionDisksStartAsyncReplication' request conforms to.
+type ComputeRegionDisksStartAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "startAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionDisksStartAsyncReplicationRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Starts asynchronous replication. Must be invoked on the primary disk.
+--
+-- /See:/ 'newComputeRegionDisksStartAsyncReplication' smart constructor.
+data ComputeRegionDisksStartAsyncReplication = ComputeRegionDisksStartAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the persistent disk.
+    disk :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionDisksStartAsyncReplicationRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksStartAsyncReplication' with the minimum fields required to make a request.
+newComputeRegionDisksStartAsyncReplication ::
+  -- |  The name of the persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionDisksStartAsyncReplicationRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksStartAsyncReplication
+newComputeRegionDisksStartAsyncReplication
+  disk
+  payload
+  project
+  region =
+    ComputeRegionDisksStartAsyncReplication
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        disk = disk,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionDisksStartAsyncReplication where
+  type Rs ComputeRegionDisksStartAsyncReplication = Operation
+  type
+    Scopes ComputeRegionDisksStartAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksStartAsyncReplication {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksStartAsyncReplicationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/StopAsyncReplication.hs b/gen/Gogol/Compute/RegionDisks/StopAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/StopAsyncReplication.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.StopAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.stopAsyncReplication@.
+module Gogol.Compute.RegionDisks.StopAsyncReplication
+  ( -- * Resource
+    ComputeRegionDisksStopAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksStopAsyncReplication (..),
+    newComputeRegionDisksStopAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.stopAsyncReplication@ method which the
+-- 'ComputeRegionDisksStopAsyncReplication' request conforms to.
+type ComputeRegionDisksStopAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> "stopAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Stops asynchronous replication. Can be invoked either on the primary or on the secondary disk.
+--
+-- /See:/ 'newComputeRegionDisksStopAsyncReplication' smart constructor.
+data ComputeRegionDisksStopAsyncReplication = ComputeRegionDisksStopAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the persistent disk.
+    disk :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksStopAsyncReplication' with the minimum fields required to make a request.
+newComputeRegionDisksStopAsyncReplication ::
+  -- |  The name of the persistent disk. See 'disk'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksStopAsyncReplication
+newComputeRegionDisksStopAsyncReplication disk project region =
+  ComputeRegionDisksStopAsyncReplication
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksStopAsyncReplication where
+  type Rs ComputeRegionDisksStopAsyncReplication = Operation
+  type
+    Scopes ComputeRegionDisksStopAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksStopAsyncReplication {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksStopAsyncReplicationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/StopGroupAsyncReplication.hs b/gen/Gogol/Compute/RegionDisks/StopGroupAsyncReplication.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/StopGroupAsyncReplication.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.StopGroupAsyncReplication
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.stopGroupAsyncReplication@.
+module Gogol.Compute.RegionDisks.StopGroupAsyncReplication
+  ( -- * Resource
+    ComputeRegionDisksStopGroupAsyncReplicationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksStopGroupAsyncReplication (..),
+    newComputeRegionDisksStopGroupAsyncReplication,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.stopGroupAsyncReplication@ method which the
+-- 'ComputeRegionDisksStopGroupAsyncReplication' request conforms to.
+type ComputeRegionDisksStopGroupAsyncReplicationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> "stopGroupAsyncReplication"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] DisksStopGroupAsyncReplicationResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Stops asynchronous replication for a consistency group of disks. Can be invoked either in the primary or secondary scope.
+--
+-- /See:/ 'newComputeRegionDisksStopGroupAsyncReplication' smart constructor.
+data ComputeRegionDisksStopGroupAsyncReplication = ComputeRegionDisksStopGroupAsyncReplication
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: DisksStopGroupAsyncReplicationResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksStopGroupAsyncReplication' with the minimum fields required to make a request.
+newComputeRegionDisksStopGroupAsyncReplication ::
+  -- |  Multipart request metadata. See 'payload'.
+  DisksStopGroupAsyncReplicationResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. This must be the region of the primary or secondary disks in the consistency group. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksStopGroupAsyncReplication
+newComputeRegionDisksStopGroupAsyncReplication
+  payload
+  project
+  region =
+    ComputeRegionDisksStopGroupAsyncReplication
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionDisksStopGroupAsyncReplication
+  where
+  type Rs ComputeRegionDisksStopGroupAsyncReplication = Operation
+  type
+    Scopes ComputeRegionDisksStopGroupAsyncReplication =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksStopGroupAsyncReplication {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksStopGroupAsyncReplicationResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/TestIamPermissions.hs b/gen/Gogol/Compute/RegionDisks/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.testIamPermissions@.
+module Gogol.Compute.RegionDisks.TestIamPermissions
+  ( -- * Resource
+    ComputeRegionDisksTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksTestIamPermissions (..),
+    newComputeRegionDisksTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.testIamPermissions@ method which the
+-- 'ComputeRegionDisksTestIamPermissions' request conforms to.
+type ComputeRegionDisksTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeRegionDisksTestIamPermissions' smart constructor.
+data ComputeRegionDisksTestIamPermissions = ComputeRegionDisksTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksTestIamPermissions' with the minimum fields required to make a request.
+newComputeRegionDisksTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionDisksTestIamPermissions
+newComputeRegionDisksTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeRegionDisksTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionDisksTestIamPermissions where
+  type
+    Rs ComputeRegionDisksTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeRegionDisksTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionDisksTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionDisksTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionDisks/Update.hs b/gen/Gogol/Compute/RegionDisks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionDisks/Update.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionDisks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionDisks.update@.
+module Gogol.Compute.RegionDisks.Update
+  ( -- * Resource
+    ComputeRegionDisksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionDisksUpdate (..),
+    newComputeRegionDisksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionDisks.update@ method which the
+-- 'ComputeRegionDisksUpdate' request conforms to.
+type ComputeRegionDisksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "disks"
+    Core.:> Core.Capture "disk" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "paths" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Disk
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Update the specified disk with the data included in the request. Update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: user_license.
+--
+-- /See:/ 'newComputeRegionDisksUpdate' smart constructor.
+data ComputeRegionDisksUpdate = ComputeRegionDisksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The disk name for this request.
+    disk :: Core.Text,
+    paths :: (Core.Maybe [Core.Text]),
+    -- | Multipart request metadata.
+    payload :: Disk,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionDisksUpdate' with the minimum fields required to make a request.
+newComputeRegionDisksUpdate ::
+  -- |  The disk name for this request. See 'disk'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  Disk ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionDisksUpdate
+newComputeRegionDisksUpdate disk payload project region =
+  ComputeRegionDisksUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      disk = disk,
+      paths = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionDisksUpdate where
+  type Rs ComputeRegionDisksUpdate = Operation
+  type
+    Scopes ComputeRegionDisksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionDisksUpdate {..} =
+    go
+      project
+      region
+      disk
+      xgafv
+      accessToken
+      callback
+      (paths Core.^. Core._Default)
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionDisksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthCheckServices/Delete.hs b/gen/Gogol/Compute/RegionHealthCheckServices/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthCheckServices/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthCheckServices.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified regional HealthCheckService.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthCheckServices.delete@.
+module Gogol.Compute.RegionHealthCheckServices.Delete
+  ( -- * Resource
+    ComputeRegionHealthCheckServicesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthCheckServicesDelete (..),
+    newComputeRegionHealthCheckServicesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthCheckServices.delete@ method which the
+-- 'ComputeRegionHealthCheckServicesDelete' request conforms to.
+type ComputeRegionHealthCheckServicesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthCheckServices"
+    Core.:> Core.Capture "healthCheckService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified regional HealthCheckService.
+--
+-- /See:/ 'newComputeRegionHealthCheckServicesDelete' smart constructor.
+data ComputeRegionHealthCheckServicesDelete = ComputeRegionHealthCheckServicesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.
+    healthCheckService :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthCheckServicesDelete' with the minimum fields required to make a request.
+newComputeRegionHealthCheckServicesDelete ::
+  -- |  Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035. See 'healthCheckService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthCheckServicesDelete
+newComputeRegionHealthCheckServicesDelete
+  healthCheckService
+  project
+  region =
+    ComputeRegionHealthCheckServicesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        healthCheckService = healthCheckService,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionHealthCheckServicesDelete where
+  type Rs ComputeRegionHealthCheckServicesDelete = Operation
+  type
+    Scopes ComputeRegionHealthCheckServicesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthCheckServicesDelete {..} =
+    go
+      project
+      region
+      healthCheckService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionHealthCheckServicesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthCheckServices/Get.hs b/gen/Gogol/Compute/RegionHealthCheckServices/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthCheckServices/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthCheckServices.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified regional HealthCheckService resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthCheckServices.get@.
+module Gogol.Compute.RegionHealthCheckServices.Get
+  ( -- * Resource
+    ComputeRegionHealthCheckServicesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthCheckServicesGet (..),
+    newComputeRegionHealthCheckServicesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthCheckServices.get@ method which the
+-- 'ComputeRegionHealthCheckServicesGet' request conforms to.
+type ComputeRegionHealthCheckServicesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthCheckServices"
+    Core.:> Core.Capture "healthCheckService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheckService
+
+-- | Returns the specified regional HealthCheckService resource.
+--
+-- /See:/ 'newComputeRegionHealthCheckServicesGet' smart constructor.
+data ComputeRegionHealthCheckServicesGet = ComputeRegionHealthCheckServicesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.
+    healthCheckService :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthCheckServicesGet' with the minimum fields required to make a request.
+newComputeRegionHealthCheckServicesGet ::
+  -- |  Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035. See 'healthCheckService'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthCheckServicesGet
+newComputeRegionHealthCheckServicesGet
+  healthCheckService
+  project
+  region =
+    ComputeRegionHealthCheckServicesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        healthCheckService = healthCheckService,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionHealthCheckServicesGet where
+  type Rs ComputeRegionHealthCheckServicesGet = HealthCheckService
+  type
+    Scopes ComputeRegionHealthCheckServicesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionHealthCheckServicesGet {..} =
+    go
+      project
+      region
+      healthCheckService
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionHealthCheckServicesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthCheckServices/Insert.hs b/gen/Gogol/Compute/RegionHealthCheckServices/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthCheckServices/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthCheckServices.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthCheckServices.insert@.
+module Gogol.Compute.RegionHealthCheckServices.Insert
+  ( -- * Resource
+    ComputeRegionHealthCheckServicesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthCheckServicesInsert (..),
+    newComputeRegionHealthCheckServicesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthCheckServices.insert@ method which the
+-- 'ComputeRegionHealthCheckServicesInsert' request conforms to.
+type ComputeRegionHealthCheckServicesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthCheckServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheckService
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRegionHealthCheckServicesInsert' smart constructor.
+data ComputeRegionHealthCheckServicesInsert = ComputeRegionHealthCheckServicesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: HealthCheckService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthCheckServicesInsert' with the minimum fields required to make a request.
+newComputeRegionHealthCheckServicesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheckService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthCheckServicesInsert
+newComputeRegionHealthCheckServicesInsert payload project region =
+  ComputeRegionHealthCheckServicesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthCheckServicesInsert where
+  type Rs ComputeRegionHealthCheckServicesInsert = Operation
+  type
+    Scopes ComputeRegionHealthCheckServicesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthCheckServicesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionHealthCheckServicesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthCheckServices/List.hs b/gen/Gogol/Compute/RegionHealthCheckServices/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthCheckServices/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthCheckServices.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the HealthCheckService resources that have been configured for the specified project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthCheckServices.list@.
+module Gogol.Compute.RegionHealthCheckServices.List
+  ( -- * Resource
+    ComputeRegionHealthCheckServicesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthCheckServicesList (..),
+    newComputeRegionHealthCheckServicesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthCheckServices.list@ method which the
+-- 'ComputeRegionHealthCheckServicesList' request conforms to.
+type ComputeRegionHealthCheckServicesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthCheckServices"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheckServicesList
+
+-- | Lists all the HealthCheckService resources that have been configured for the specified project in the given region.
+--
+-- /See:/ 'newComputeRegionHealthCheckServicesList' smart constructor.
+data ComputeRegionHealthCheckServicesList = ComputeRegionHealthCheckServicesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthCheckServicesList' with the minimum fields required to make a request.
+newComputeRegionHealthCheckServicesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthCheckServicesList
+newComputeRegionHealthCheckServicesList project region =
+  ComputeRegionHealthCheckServicesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthCheckServicesList where
+  type
+    Rs ComputeRegionHealthCheckServicesList =
+      HealthCheckServicesList
+  type
+    Scopes ComputeRegionHealthCheckServicesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionHealthCheckServicesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionHealthCheckServicesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthCheckServices/Patch.hs b/gen/Gogol/Compute/RegionHealthCheckServices/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthCheckServices/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthCheckServices.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthCheckServices.patch@.
+module Gogol.Compute.RegionHealthCheckServices.Patch
+  ( -- * Resource
+    ComputeRegionHealthCheckServicesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthCheckServicesPatch (..),
+    newComputeRegionHealthCheckServicesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthCheckServices.patch@ method which the
+-- 'ComputeRegionHealthCheckServicesPatch' request conforms to.
+type ComputeRegionHealthCheckServicesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthCheckServices"
+    Core.:> Core.Capture "healthCheckService" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheckService
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified regional HealthCheckService resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionHealthCheckServicesPatch' smart constructor.
+data ComputeRegionHealthCheckServicesPatch = ComputeRegionHealthCheckServicesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.
+    healthCheckService :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HealthCheckService,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthCheckServicesPatch' with the minimum fields required to make a request.
+newComputeRegionHealthCheckServicesPatch ::
+  -- |  Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035. See 'healthCheckService'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheckService ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthCheckServicesPatch
+newComputeRegionHealthCheckServicesPatch
+  healthCheckService
+  payload
+  project
+  region =
+    ComputeRegionHealthCheckServicesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        healthCheckService = healthCheckService,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionHealthCheckServicesPatch where
+  type Rs ComputeRegionHealthCheckServicesPatch = Operation
+  type
+    Scopes ComputeRegionHealthCheckServicesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthCheckServicesPatch {..} =
+    go
+      project
+      region
+      healthCheckService
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionHealthCheckServicesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/Delete.hs b/gen/Gogol/Compute/RegionHealthChecks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified HealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.delete@.
+module Gogol.Compute.RegionHealthChecks.Delete
+  ( -- * Resource
+    ComputeRegionHealthChecksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksDelete (..),
+    newComputeRegionHealthChecksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.delete@ method which the
+-- 'ComputeRegionHealthChecksDelete' request conforms to.
+type ComputeRegionHealthChecksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified HealthCheck resource.
+--
+-- /See:/ 'newComputeRegionHealthChecksDelete' smart constructor.
+data ComputeRegionHealthChecksDelete = ComputeRegionHealthChecksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to delete.
+    healthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksDelete' with the minimum fields required to make a request.
+newComputeRegionHealthChecksDelete ::
+  -- |  Name of the HealthCheck resource to delete. See 'healthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksDelete
+newComputeRegionHealthChecksDelete healthCheck project region =
+  ComputeRegionHealthChecksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksDelete where
+  type Rs ComputeRegionHealthChecksDelete = Operation
+  type
+    Scopes ComputeRegionHealthChecksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthChecksDelete {..} =
+    go
+      project
+      region
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/Get.hs b/gen/Gogol/Compute/RegionHealthChecks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified HealthCheck resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.get@.
+module Gogol.Compute.RegionHealthChecks.Get
+  ( -- * Resource
+    ComputeRegionHealthChecksGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksGet (..),
+    newComputeRegionHealthChecksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.get@ method which the
+-- 'ComputeRegionHealthChecksGet' request conforms to.
+type ComputeRegionHealthChecksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheck
+
+-- | Returns the specified HealthCheck resource.
+--
+-- /See:/ 'newComputeRegionHealthChecksGet' smart constructor.
+data ComputeRegionHealthChecksGet = ComputeRegionHealthChecksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to return.
+    healthCheck :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksGet' with the minimum fields required to make a request.
+newComputeRegionHealthChecksGet ::
+  -- |  Name of the HealthCheck resource to return. See 'healthCheck'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksGet
+newComputeRegionHealthChecksGet healthCheck project region =
+  ComputeRegionHealthChecksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      healthCheck = healthCheck,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksGet where
+  type Rs ComputeRegionHealthChecksGet = HealthCheck
+  type
+    Scopes ComputeRegionHealthChecksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionHealthChecksGet {..} =
+    go
+      project
+      region
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/Insert.hs b/gen/Gogol/Compute/RegionHealthChecks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.insert@.
+module Gogol.Compute.RegionHealthChecks.Insert
+  ( -- * Resource
+    ComputeRegionHealthChecksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksInsert (..),
+    newComputeRegionHealthChecksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.insert@ method which the
+-- 'ComputeRegionHealthChecksInsert' request conforms to.
+type ComputeRegionHealthChecksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionHealthChecksInsert' smart constructor.
+data ComputeRegionHealthChecksInsert = ComputeRegionHealthChecksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksInsert' with the minimum fields required to make a request.
+newComputeRegionHealthChecksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksInsert
+newComputeRegionHealthChecksInsert payload project region =
+  ComputeRegionHealthChecksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksInsert where
+  type Rs ComputeRegionHealthChecksInsert = Operation
+  type
+    Scopes ComputeRegionHealthChecksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthChecksInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/List.hs b/gen/Gogol/Compute/RegionHealthChecks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of HealthCheck resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.list@.
+module Gogol.Compute.RegionHealthChecks.List
+  ( -- * Resource
+    ComputeRegionHealthChecksListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksList (..),
+    newComputeRegionHealthChecksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.list@ method which the
+-- 'ComputeRegionHealthChecksList' request conforms to.
+type ComputeRegionHealthChecksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] HealthCheckList
+
+-- | Retrieves the list of HealthCheck resources available to the specified project.
+--
+-- /See:/ 'newComputeRegionHealthChecksList' smart constructor.
+data ComputeRegionHealthChecksList = ComputeRegionHealthChecksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksList' with the minimum fields required to make a request.
+newComputeRegionHealthChecksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksList
+newComputeRegionHealthChecksList project region =
+  ComputeRegionHealthChecksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksList where
+  type Rs ComputeRegionHealthChecksList = HealthCheckList
+  type
+    Scopes ComputeRegionHealthChecksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionHealthChecksList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/Patch.hs b/gen/Gogol/Compute/RegionHealthChecks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/Patch.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.patch@.
+module Gogol.Compute.RegionHealthChecks.Patch
+  ( -- * Resource
+    ComputeRegionHealthChecksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksPatch (..),
+    newComputeRegionHealthChecksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.patch@ method which the
+-- 'ComputeRegionHealthChecksPatch' request conforms to.
+type ComputeRegionHealthChecksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a HealthCheck resource in the specified project using the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionHealthChecksPatch' smart constructor.
+data ComputeRegionHealthChecksPatch = ComputeRegionHealthChecksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to patch.
+    healthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksPatch' with the minimum fields required to make a request.
+newComputeRegionHealthChecksPatch ::
+  -- |  Name of the HealthCheck resource to patch. See 'healthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksPatch
+newComputeRegionHealthChecksPatch
+  healthCheck
+  payload
+  project
+  region =
+    ComputeRegionHealthChecksPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        healthCheck = healthCheck,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksPatch where
+  type Rs ComputeRegionHealthChecksPatch = Operation
+  type
+    Scopes ComputeRegionHealthChecksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthChecksPatch {..} =
+    go
+      project
+      region
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionHealthChecks/Update.hs b/gen/Gogol/Compute/RegionHealthChecks/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionHealthChecks/Update.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionHealthChecks.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionHealthChecks.update@.
+module Gogol.Compute.RegionHealthChecks.Update
+  ( -- * Resource
+    ComputeRegionHealthChecksUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionHealthChecksUpdate (..),
+    newComputeRegionHealthChecksUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionHealthChecks.update@ method which the
+-- 'ComputeRegionHealthChecksUpdate' request conforms to.
+type ComputeRegionHealthChecksUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "healthChecks"
+    Core.:> Core.Capture "healthCheck" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] HealthCheck
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates a HealthCheck resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionHealthChecksUpdate' smart constructor.
+data ComputeRegionHealthChecksUpdate = ComputeRegionHealthChecksUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the HealthCheck resource to update.
+    healthCheck :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: HealthCheck,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionHealthChecksUpdate' with the minimum fields required to make a request.
+newComputeRegionHealthChecksUpdate ::
+  -- |  Name of the HealthCheck resource to update. See 'healthCheck'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  HealthCheck ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionHealthChecksUpdate
+newComputeRegionHealthChecksUpdate
+  healthCheck
+  payload
+  project
+  region =
+    ComputeRegionHealthChecksUpdate
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        healthCheck = healthCheck,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionHealthChecksUpdate where
+  type Rs ComputeRegionHealthChecksUpdate = Operation
+  type
+    Scopes ComputeRegionHealthChecksUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionHealthChecksUpdate {..} =
+    go
+      project
+      region
+      healthCheck
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionHealthChecksUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/AbandonInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/AbandonInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/AbandonInstances.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.AbandonInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.abandonInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.AbandonInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersAbandonInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersAbandonInstances (..),
+    newComputeRegionInstanceGroupManagersAbandonInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.abandonInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersAbandonInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersAbandonInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "abandonInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersAbandonInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances to be immediately removed from the managed instance group. Abandoning an instance does not delete the instance, but it does remove the instance from any target pools that are applied by the managed instance group. This method reduces the targetSize of the managed instance group by the number of instances that you abandon. This operation is marked as DONE when the action is scheduled even if the instances have not yet been removed from the group. You must separately verify the status of the abandoning action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersAbandonInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersAbandonInstances = ComputeRegionInstanceGroupManagersAbandonInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersAbandonInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersAbandonInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersAbandonInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersAbandonInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersAbandonInstances
+newComputeRegionInstanceGroupManagersAbandonInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersAbandonInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersAbandonInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersAbandonInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersAbandonInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersAbandonInstances {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersAbandonInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/ApplyUpdatesToInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/ApplyUpdatesToInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/ApplyUpdatesToInstances.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.ApplyUpdatesToInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Apply updates to selected instances the managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.applyUpdatesToInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.ApplyUpdatesToInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstances (..),
+    newComputeRegionInstanceGroupManagersApplyUpdatesToInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.applyUpdatesToInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersApplyUpdatesToInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersApplyUpdatesToInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "applyUpdatesToInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersApplyUpdatesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Apply updates to selected instances the managed instance group.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersApplyUpdatesToInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersApplyUpdatesToInstances = ComputeRegionInstanceGroupManagersApplyUpdatesToInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group, should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersApplyUpdatesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request, should conform to RFC1035.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersApplyUpdatesToInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersApplyUpdatesToInstances ::
+  -- |  The name of the managed instance group, should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersApplyUpdatesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request, should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersApplyUpdatesToInstances
+newComputeRegionInstanceGroupManagersApplyUpdatesToInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersApplyUpdatesToInstances =
+      Operation
+  type
+    Scopes
+      ComputeRegionInstanceGroupManagersApplyUpdatesToInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersApplyUpdatesToInstances {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersApplyUpdatesToInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/CreateInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/CreateInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/CreateInstances.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.CreateInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.createInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.CreateInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersCreateInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersCreateInstances (..),
+    newComputeRegionInstanceGroupManagersCreateInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.createInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersCreateInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersCreateInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "createInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersCreateInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates instances with per-instance configurations in this regional managed instance group. Instances are created using the current instance template. The create instances operation is marked DONE if the createInstances request is successful. The underlying actions take additional time. You must separately verify the status of the creating or actions with the listmanagedinstances method.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersCreateInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersCreateInstances = ComputeRegionInstanceGroupManagersCreateInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersCreateInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the managed instance group is located. It should conform to RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersCreateInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersCreateInstances ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersCreateInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the managed instance group is located. It should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersCreateInstances
+newComputeRegionInstanceGroupManagersCreateInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersCreateInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersCreateInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersCreateInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersCreateInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersCreateInstances {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionInstanceGroupManagersCreateInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/Delete.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/Delete.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified managed instance group and all of the instances in that group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.delete@.
+module Gogol.Compute.RegionInstanceGroupManagers.Delete
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersDelete (..),
+    newComputeRegionInstanceGroupManagersDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.delete@ method which the
+-- 'ComputeRegionInstanceGroupManagersDelete' request conforms to.
+type ComputeRegionInstanceGroupManagersDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified managed instance group and all of the instances in that group.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersDelete' smart constructor.
+data ComputeRegionInstanceGroupManagersDelete = ComputeRegionInstanceGroupManagersDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group to delete.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersDelete' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersDelete ::
+  -- |  Name of the managed instance group to delete. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersDelete
+newComputeRegionInstanceGroupManagersDelete
+  instanceGroupManager
+  project
+  region =
+    ComputeRegionInstanceGroupManagersDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersDelete
+  where
+  type Rs ComputeRegionInstanceGroupManagersDelete = Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersDelete {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/DeleteInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/DeleteInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/DeleteInstances.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.DeleteInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.deleteInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.DeleteInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersDeleteInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersDeleteInstances (..),
+    newComputeRegionInstanceGroupManagersDeleteInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.deleteInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersDeleteInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersDeleteInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "deleteInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersDeleteInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be immediately deleted. The instances are also removed from any target pools of which they were a member. This method reduces the targetSize of the managed instance group by the number of instances that you delete. The deleteInstances operation is marked DONE if the deleteInstances request is successful. The underlying actions take additional time. You must separately verify the status of the deleting action with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersDeleteInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersDeleteInstances = ComputeRegionInstanceGroupManagersDeleteInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersDeleteInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersDeleteInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersDeleteInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersDeleteInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersDeleteInstances
+newComputeRegionInstanceGroupManagersDeleteInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersDeleteInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersDeleteInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersDeleteInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersDeleteInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersDeleteInstances {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionInstanceGroupManagersDeleteInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/DeletePerInstanceConfigs.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/DeletePerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/DeletePerInstanceConfigs.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.DeletePerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes selected per-instance configurations for the managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.deletePerInstanceConfigs@.
+module Gogol.Compute.RegionInstanceGroupManagers.DeletePerInstanceConfigs
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersDeletePerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.deletePerInstanceConfigs@ method which the
+-- 'ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs' request conforms to.
+type ComputeRegionInstanceGroupManagersDeletePerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "deletePerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagerDeleteInstanceConfigReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes selected per-instance configurations for the managed instance group.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersDeletePerInstanceConfigs' smart constructor.
+data ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs = ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagerDeleteInstanceConfigReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request, should conform to RFC1035.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersDeletePerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagerDeleteInstanceConfigReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request, should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs
+newComputeRegionInstanceGroupManagersDeletePerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs =
+      Operation
+  type
+    Scopes
+      ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersDeletePerInstanceConfigs {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersDeletePerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/Get.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/Get.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns all of the details about the specified managed instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.get@.
+module Gogol.Compute.RegionInstanceGroupManagers.Get
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersGet (..),
+    newComputeRegionInstanceGroupManagersGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.get@ method which the
+-- 'ComputeRegionInstanceGroupManagersGet' request conforms to.
+type ComputeRegionInstanceGroupManagersGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroupManager
+
+-- | Returns all of the details about the specified managed instance group.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersGet' smart constructor.
+data ComputeRegionInstanceGroupManagersGet = ComputeRegionInstanceGroupManagersGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group to return.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersGet' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersGet ::
+  -- |  Name of the managed instance group to return. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersGet
+newComputeRegionInstanceGroupManagersGet
+  instanceGroupManager
+  project
+  region =
+    ComputeRegionInstanceGroupManagersGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstanceGroupManagersGet where
+  type
+    Rs ComputeRegionInstanceGroupManagersGet =
+      InstanceGroupManager
+  type
+    Scopes ComputeRegionInstanceGroupManagersGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupManagersGet {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/Insert.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/Insert.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A regional managed instance group can contain up to 2000 instances.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.insert@.
+module Gogol.Compute.RegionInstanceGroupManagers.Insert
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersInsert (..),
+    newComputeRegionInstanceGroupManagersInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.insert@ method which the
+-- 'ComputeRegionInstanceGroupManagersInsert' request conforms to.
+type ComputeRegionInstanceGroupManagersInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupManager
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a managed instance group using the information that you specify in the request. After the group is created, instances in the group are created using the specified instance template. This operation is marked as DONE when the group is created even if the instances in the group have not yet been created. You must separately verify the status of the individual instances with the listmanagedinstances method. A regional managed instance group can contain up to 2000 instances.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersInsert' smart constructor.
+data ComputeRegionInstanceGroupManagersInsert = ComputeRegionInstanceGroupManagersInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManager,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersInsert' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManager ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersInsert
+newComputeRegionInstanceGroupManagersInsert payload project region =
+  ComputeRegionInstanceGroupManagersInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersInsert
+  where
+  type Rs ComputeRegionInstanceGroupManagersInsert = Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/List.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of managed instance groups that are contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.list@.
+module Gogol.Compute.RegionInstanceGroupManagers.List
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersList (..),
+    newComputeRegionInstanceGroupManagersList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.list@ method which the
+-- 'ComputeRegionInstanceGroupManagersList' request conforms to.
+type ComputeRegionInstanceGroupManagersListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RegionInstanceGroupManagerList
+
+-- | Retrieves the list of managed instance groups that are contained within the specified region.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersList' smart constructor.
+data ComputeRegionInstanceGroupManagersList = ComputeRegionInstanceGroupManagersList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersList' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersList
+newComputeRegionInstanceGroupManagersList project region =
+  ComputeRegionInstanceGroupManagersList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstanceGroupManagersList where
+  type
+    Rs ComputeRegionInstanceGroupManagersList =
+      RegionInstanceGroupManagerList
+  type
+    Scopes ComputeRegionInstanceGroupManagersList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupManagersList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/ListErrors.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListErrors.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListErrors.hs
@@ -0,0 +1,168 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.ListErrors
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.listErrors@.
+module Gogol.Compute.RegionInstanceGroupManagers.ListErrors
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersListErrorsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersListErrors (..),
+    newComputeRegionInstanceGroupManagersListErrors,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.listErrors@ method which the
+-- 'ComputeRegionInstanceGroupManagersListErrors' request conforms to.
+type ComputeRegionInstanceGroupManagersListErrorsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listErrors"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              RegionInstanceGroupManagersListErrorsResponse
+
+-- | Lists all errors thrown by actions on instances for a given regional managed instance group. The filter and orderBy query parameters are not supported.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersListErrors' smart constructor.
+data ComputeRegionInstanceGroupManagersListErrors = ComputeRegionInstanceGroupManagersListErrors
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:<?:%5B-a-z0-9%5D%7B0,61%7D%5Ba-z0-9%5D a-z>?)|1-9{0,19}.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request. This should conform to RFC1035.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersListErrors' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersListErrors ::
+  -- |  The name of the managed instance group. It must be a string that meets the requirements in RFC1035, or an unsigned long integer: must match regexp pattern: (?:<?:%5B-a-z0-9%5D%7B0,61%7D%5Ba-z0-9%5D a-z>?)|1-9{0,19}. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. This should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersListErrors
+newComputeRegionInstanceGroupManagersListErrors
+  instanceGroupManager
+  project
+  region =
+    ComputeRegionInstanceGroupManagersListErrors
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        region = region,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersListErrors
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersListErrors =
+      RegionInstanceGroupManagersListErrorsResponse
+  type
+    Scopes ComputeRegionInstanceGroupManagersListErrors =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupManagersListErrors {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersListErrorsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.ListManagedInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The @pageToken@ query parameter is supported only if the group\'s @listManagedInstancesResults@ field is set to @PAGINATED@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.listManagedInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.ListManagedInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersListManagedInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersListManagedInstances (..),
+    newComputeRegionInstanceGroupManagersListManagedInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.listManagedInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersListManagedInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersListManagedInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listManagedInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              RegionInstanceGroupManagersListInstancesResponse
+
+-- | Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The @pageToken@ query parameter is supported only if the group\'s @listManagedInstancesResults@ field is set to @PAGINATED@.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersListManagedInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersListManagedInstances = ComputeRegionInstanceGroupManagersListManagedInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersListManagedInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersListManagedInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersListManagedInstances
+newComputeRegionInstanceGroupManagersListManagedInstances
+  instanceGroupManager
+  project
+  region =
+    ComputeRegionInstanceGroupManagersListManagedInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        region = region,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersListManagedInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersListManagedInstances =
+      RegionInstanceGroupManagersListInstancesResponse
+  type
+    Scopes ComputeRegionInstanceGroupManagersListManagedInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionInstanceGroupManagersListManagedInstances {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersListManagedInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/ListPerInstanceConfigs.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListPerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/ListPerInstanceConfigs.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.ListPerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.listPerInstanceConfigs@.
+module Gogol.Compute.RegionInstanceGroupManagers.ListPerInstanceConfigs
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersListPerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.listPerInstanceConfigs@ method which the
+-- 'ComputeRegionInstanceGroupManagersListPerInstanceConfigs' request conforms to.
+type ComputeRegionInstanceGroupManagersListPerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "listPerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              RegionInstanceGroupManagersListInstanceConfigsResp
+
+-- | Lists all of the per-instance configurations defined for the managed instance group. The orderBy query parameter is not supported.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersListPerInstanceConfigs' smart constructor.
+data ComputeRegionInstanceGroupManagersListPerInstanceConfigs = ComputeRegionInstanceGroupManagersListPerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request, should conform to RFC1035.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersListPerInstanceConfigs' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersListPerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request, should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersListPerInstanceConfigs
+newComputeRegionInstanceGroupManagersListPerInstanceConfigs
+  instanceGroupManager
+  project
+  region =
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        region = region,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigs
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersListPerInstanceConfigs =
+      RegionInstanceGroupManagersListInstanceConfigsResp
+  type
+    Scopes
+      ComputeRegionInstanceGroupManagersListPerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionInstanceGroupManagersListPerInstanceConfigs {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersListPerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/Patch.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it\'s possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.patch@.
+module Gogol.Compute.RegionInstanceGroupManagers.Patch
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersPatch (..),
+    newComputeRegionInstanceGroupManagersPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.patch@ method which the
+-- 'ComputeRegionInstanceGroupManagersPatch' request conforms to.
+type ComputeRegionInstanceGroupManagersPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceGroupManager
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is patched even if the instances in the group are still in the process of being patched. You must separately verify the status of the individual instances with the listmanagedinstances method. This method supports PATCH semantics and uses the JSON merge patch format and processing rules. If you update your group to specify a new template or instance configuration, it\'s possible that your intended specification for each VM in the group is different from the current state of that VM. To learn how to apply an updated configuration to the VMs in a MIG, see Updating instances in a MIG.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersPatch' smart constructor.
+data ComputeRegionInstanceGroupManagersPatch = ComputeRegionInstanceGroupManagersPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance group manager.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: InstanceGroupManager,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersPatch' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersPatch ::
+  -- |  The name of the instance group manager. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceGroupManager ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersPatch
+newComputeRegionInstanceGroupManagersPatch
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstanceGroupManagersPatch where
+  type Rs ComputeRegionInstanceGroupManagersPatch = Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersPatch {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/PatchPerInstanceConfigs.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/PatchPerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/PatchPerInstanceConfigs.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.PatchPerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.patchPerInstanceConfigs@.
+module Gogol.Compute.RegionInstanceGroupManagers.PatchPerInstanceConfigs
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersPatchPerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.patchPerInstanceConfigs@ method which the
+-- 'ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs' request conforms to.
+type ComputeRegionInstanceGroupManagersPatchPerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "patchPerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagerPatchInstanceConfigReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts or patches per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersPatchPerInstanceConfigs' smart constructor.
+data ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs = ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagerPatchInstanceConfigReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request, should conform to RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersPatchPerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagerPatchInstanceConfigReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request, should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs
+newComputeRegionInstanceGroupManagersPatchPerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs =
+      Operation
+  type
+    Scopes
+      ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersPatchPerInstanceConfigs {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersPatchPerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/RecreateInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/RecreateInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/RecreateInstances.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.RecreateInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group\'s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.recreateInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.RecreateInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersRecreateInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersRecreateInstances (..),
+    newComputeRegionInstanceGroupManagersRecreateInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.recreateInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersRecreateInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersRecreateInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "recreateInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersRecreateRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified VM instances in the managed instance group to be immediately recreated. Each instance is recreated using the group\'s current configuration. This operation is marked as DONE when the flag is set even if the instances have not yet been recreated. You must separately verify the status of each instance by checking its currentAction field; for more information, see Checking the status of managed instances. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersRecreateInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersRecreateInstances = ComputeRegionInstanceGroupManagersRecreateInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersRecreateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersRecreateInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersRecreateInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersRecreateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersRecreateInstances
+newComputeRegionInstanceGroupManagersRecreateInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersRecreateInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersRecreateInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersRecreateInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersRecreateInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersRecreateInstances {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersRecreateInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/Resize.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/Resize.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/Resize.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.Resize
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances. The resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.resize@.
+module Gogol.Compute.RegionInstanceGroupManagers.Resize
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersResizeResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersResize (..),
+    newComputeRegionInstanceGroupManagersResize,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.resize@ method which the
+-- 'ComputeRegionInstanceGroupManagersResize' request conforms to.
+type ComputeRegionInstanceGroupManagersResizeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resize"
+    Core.:> Core.QueryParam "size" Core.Int32
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the intended size of the managed instance group. If you increase the size, the group creates new instances using the current instance template. If you decrease the size, the group deletes one or more instances. The resize operation is marked DONE if the resize request is successful. The underlying actions take additional time. You must separately verify the status of the creating or deleting actions with the listmanagedinstances method. If the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersResize' smart constructor.
+data ComputeRegionInstanceGroupManagersResize = ComputeRegionInstanceGroupManagersResize
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Number of instances that should exist in this instance group manager.
+    size :: Core.Int32,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersResize' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersResize ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Number of instances that should exist in this instance group manager. See 'size'.
+  Core.Int32 ->
+  ComputeRegionInstanceGroupManagersResize
+newComputeRegionInstanceGroupManagersResize
+  instanceGroupManager
+  project
+  region
+  size =
+    ComputeRegionInstanceGroupManagersResize
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        size = size,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersResize
+  where
+  type Rs ComputeRegionInstanceGroupManagersResize = Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersResize =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersResize {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      (Core.Just size)
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersResizeResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/ResumeInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/ResumeInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/ResumeInstances.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.ResumeInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.resumeInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.ResumeInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersResumeInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersResumeInstances (..),
+    newComputeRegionInstanceGroupManagersResumeInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.resumeInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersResumeInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersResumeInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "resumeInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersResumeInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be resumed. This method increases the targetSize and decreases the targetSuspendedSize of the managed instance group by the number of instances that you resume. The resumeInstances operation is marked DONE if the resumeInstances request is successful. The underlying actions take additional time. You must separately verify the status of the RESUMING action with the listmanagedinstances method. In this request, you can only specify instances that are suspended. For example, if an instance was previously suspended using the suspendInstances method, it can be resumed using the resumeInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are resumed. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersResumeInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersResumeInstances = ComputeRegionInstanceGroupManagersResumeInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersResumeInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersResumeInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersResumeInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersResumeInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersResumeInstances
+newComputeRegionInstanceGroupManagersResumeInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersResumeInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersResumeInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersResumeInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersResumeInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersResumeInstances {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionInstanceGroupManagersResumeInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs
@@ -0,0 +1,157 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.setInstanceTemplate@.
+module Gogol.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersSetInstanceTemplateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersSetInstanceTemplate (..),
+    newComputeRegionInstanceGroupManagersSetInstanceTemplate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.setInstanceTemplate@ method which the
+-- 'ComputeRegionInstanceGroupManagersSetInstanceTemplate' request conforms to.
+type ComputeRegionInstanceGroupManagersSetInstanceTemplateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "setInstanceTemplate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersSetTemplateRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersSetInstanceTemplate' smart constructor.
+data ComputeRegionInstanceGroupManagersSetInstanceTemplate = ComputeRegionInstanceGroupManagersSetInstanceTemplate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersSetTemplateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersSetInstanceTemplate' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersSetInstanceTemplate ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersSetTemplateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersSetInstanceTemplate
+newComputeRegionInstanceGroupManagersSetInstanceTemplate
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersSetInstanceTemplate
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersSetInstanceTemplate
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersSetInstanceTemplate =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersSetInstanceTemplate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersSetInstanceTemplate {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersSetInstanceTemplateResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/SetTargetPools.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/SetTargetPools.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/SetTargetPools.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.SetTargetPools
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.setTargetPools@.
+module Gogol.Compute.RegionInstanceGroupManagers.SetTargetPools
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersSetTargetPoolsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersSetTargetPools (..),
+    newComputeRegionInstanceGroupManagersSetTargetPools,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.setTargetPools@ method which the
+-- 'ComputeRegionInstanceGroupManagersSetTargetPools' request conforms to.
+type ComputeRegionInstanceGroupManagersSetTargetPoolsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "setTargetPools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersSetTargetPoolsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersSetTargetPools' smart constructor.
+data ComputeRegionInstanceGroupManagersSetTargetPools = ComputeRegionInstanceGroupManagersSetTargetPools
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersSetTargetPoolsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersSetTargetPools' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersSetTargetPools ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersSetTargetPoolsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersSetTargetPools
+newComputeRegionInstanceGroupManagersSetTargetPools
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersSetTargetPools
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersSetTargetPools
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersSetTargetPools =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersSetTargetPools =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersSetTargetPools {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionInstanceGroupManagersSetTargetPoolsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/StartInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/StartInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/StartInstances.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.StartInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.startInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.StartInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersStartInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersStartInstances (..),
+    newComputeRegionInstanceGroupManagersStartInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.startInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersStartInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersStartInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "startInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersStartInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be started. This method increases the targetSize and decreases the targetStoppedSize of the managed instance group by the number of instances that you start. The startInstances operation is marked DONE if the startInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STARTING action with the listmanagedinstances method. In this request, you can only specify instances that are stopped. For example, if an instance was previously stopped using the stopInstances method, it can be started using the startInstances method. If a health check is attached to the managed instance group, the specified instances will be verified as healthy after they are started. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersStartInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersStartInstances = ComputeRegionInstanceGroupManagersStartInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersStartInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersStartInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersStartInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersStartInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersStartInstances
+newComputeRegionInstanceGroupManagersStartInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersStartInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersStartInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersStartInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersStartInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersStartInstances {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionInstanceGroupManagersStartInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/StopInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/StopInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/StopInstances.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.StopInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection
+-- draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.stopInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.StopInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersStopInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersStopInstances (..),
+    newComputeRegionInstanceGroupManagersStopInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.stopInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersStopInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersStopInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "stopInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersStopInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be immediately stopped. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetStoppedSize of the managed instance group by the number of instances that you stop. The stopInstances operation is marked DONE if the stopInstances request is successful. The underlying actions take additional time. You must separately verify the status of the STOPPING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays stopping the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has enabled connection
+-- draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is stopped. Stopped instances can be started using the startInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersStopInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersStopInstances = ComputeRegionInstanceGroupManagersStopInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersStopInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersStopInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersStopInstances ::
+  -- |  The name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersStopInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersStopInstances
+newComputeRegionInstanceGroupManagersStopInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersStopInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersStopInstances
+  where
+  type Rs ComputeRegionInstanceGroupManagersStopInstances = Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersStopInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupManagersStopInstances {..} =
+    go
+      project
+      region
+      instanceGroupManager
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupManagersStopInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/SuspendInstances.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/SuspendInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/SuspendInstances.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.SuspendInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has
+-- enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.suspendInstances@.
+module Gogol.Compute.RegionInstanceGroupManagers.SuspendInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersSuspendInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersSuspendInstances (..),
+    newComputeRegionInstanceGroupManagersSuspendInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.suspendInstances@ method which the
+-- 'ComputeRegionInstanceGroupManagersSuspendInstances' request conforms to.
+type ComputeRegionInstanceGroupManagersSuspendInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "suspendInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagersSuspendInstancesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Flags the specified instances in the managed instance group to be immediately suspended. You can only specify instances that are running in this request. This method reduces the targetSize and increases the targetSuspendedSize of the managed instance group by the number of instances that you suspend. The suspendInstances operation is marked DONE if the suspendInstances request is successful. The underlying actions take additional time. You must separately verify the status of the SUSPENDING action with the listmanagedinstances method. If the standbyPolicy.initialDelaySec field is set, the group delays suspension of the instances until initialDelaySec have passed from instance.creationTimestamp (that is, when the instance was created). This delay gives your application time to set itself up and initialize on the instance. If more than initialDelaySec seconds have passed since instance.creationTimestamp when this method is called, there will be zero delay. If the group is part of a backend service that has
+-- enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is suspended. Suspended instances can be resumed using the resumeInstances method. You can specify a maximum of 1000 instances with this method per request.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersSuspendInstances' smart constructor.
+data ComputeRegionInstanceGroupManagersSuspendInstances = ComputeRegionInstanceGroupManagersSuspendInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the managed instance group.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagersSuspendInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersSuspendInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersSuspendInstances ::
+  -- |  Name of the managed instance group. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagersSuspendInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersSuspendInstances
+newComputeRegionInstanceGroupManagersSuspendInstances
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersSuspendInstances
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager = instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersSuspendInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersSuspendInstances =
+      Operation
+  type
+    Scopes ComputeRegionInstanceGroupManagersSuspendInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersSuspendInstances {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersSuspendInstancesResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroupManagers/UpdatePerInstanceConfigs.hs b/gen/Gogol/Compute/RegionInstanceGroupManagers/UpdatePerInstanceConfigs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroupManagers/UpdatePerInstanceConfigs.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroupManagers.UpdatePerInstanceConfigs
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.updatePerInstanceConfigs@.
+module Gogol.Compute.RegionInstanceGroupManagers.UpdatePerInstanceConfigs
+  ( -- * Resource
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs (..),
+    newComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroupManagers.updatePerInstanceConfigs@ method which the
+-- 'ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs' request conforms to.
+type ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroupManagers"
+    Core.:> Core.Capture "instanceGroupManager" Core.Text
+    Core.:> "updatePerInstanceConfigs"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupManagerUpdateInstanceConfigReq
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts or updates per-instance configurations for the managed instance group. perInstanceConfig.name serves as a key used to distinguish whether to perform insert or patch.
+--
+-- /See:/ 'newComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs' smart constructor.
+data ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs = ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the managed instance group. It should conform to RFC1035.
+    instanceGroupManager :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupManagerUpdateInstanceConfigReq,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request, should conform to RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs ::
+  -- |  The name of the managed instance group. It should conform to RFC1035. See 'instanceGroupManager'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupManagerUpdateInstanceConfigReq ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request, should conform to RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs
+newComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs
+  instanceGroupManager
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroupManager =
+          instanceGroupManager,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs
+  where
+  type
+    Rs ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs =
+      Operation
+  type
+    Scopes
+      ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigs {..} =
+      go
+        project
+        region
+        instanceGroupManager
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionInstanceGroupManagersUpdatePerInstanceConfigsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroups/Get.hs b/gen/Gogol/Compute/RegionInstanceGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroups/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified instance group resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroups.get@.
+module Gogol.Compute.RegionInstanceGroups.Get
+  ( -- * Resource
+    ComputeRegionInstanceGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupsGet (..),
+    newComputeRegionInstanceGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroups.get@ method which the
+-- 'ComputeRegionInstanceGroupsGet' request conforms to.
+type ComputeRegionInstanceGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceGroup
+
+-- | Returns the specified instance group resource.
+--
+-- /See:/ 'newComputeRegionInstanceGroupsGet' smart constructor.
+data ComputeRegionInstanceGroupsGet = ComputeRegionInstanceGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the instance group resource to return.
+    instanceGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupsGet' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupsGet ::
+  -- |  Name of the instance group resource to return. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupsGet
+newComputeRegionInstanceGroupsGet instanceGroup project region =
+  ComputeRegionInstanceGroupsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instanceGroup = instanceGroup,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstanceGroupsGet where
+  type Rs ComputeRegionInstanceGroupsGet = InstanceGroup
+  type
+    Scopes ComputeRegionInstanceGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupsGet {..} =
+    go
+      project
+      region
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionInstanceGroupsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroups/List.hs b/gen/Gogol/Compute/RegionInstanceGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroups/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of instance group resources contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroups.list@.
+module Gogol.Compute.RegionInstanceGroups.List
+  ( -- * Resource
+    ComputeRegionInstanceGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupsList (..),
+    newComputeRegionInstanceGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroups.list@ method which the
+-- 'ComputeRegionInstanceGroupsList' request conforms to.
+type ComputeRegionInstanceGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RegionInstanceGroupList
+
+-- | Retrieves the list of instance group resources contained within the specified region.
+--
+-- /See:/ 'newComputeRegionInstanceGroupsList' smart constructor.
+data ComputeRegionInstanceGroupsList = ComputeRegionInstanceGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupsList' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupsList
+newComputeRegionInstanceGroupsList project region =
+  ComputeRegionInstanceGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstanceGroupsList where
+  type Rs ComputeRegionInstanceGroupsList = RegionInstanceGroupList
+  type
+    Scopes ComputeRegionInstanceGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionInstanceGroupsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroups/ListInstances.hs b/gen/Gogol/Compute/RegionInstanceGroups/ListInstances.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroups/ListInstances.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroups.ListInstances
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroups.listInstances@.
+module Gogol.Compute.RegionInstanceGroups.ListInstances
+  ( -- * Resource
+    ComputeRegionInstanceGroupsListInstancesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupsListInstances (..),
+    newComputeRegionInstanceGroupsListInstances,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroups.listInstances@ method which the
+-- 'ComputeRegionInstanceGroupsListInstances' request conforms to.
+type ComputeRegionInstanceGroupsListInstancesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "listInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupsListInstancesRequest
+    Core.:> Core.Post
+              '[Core.JSON]
+              RegionInstanceGroupsListInstances
+
+-- | Lists the instances in the specified instance group and displays information about the named ports. Depending on the specified options, this method can list all instances or only the instances that are running. The orderBy query parameter is not supported.
+--
+-- /See:/ 'newComputeRegionInstanceGroupsListInstances' smart constructor.
+data ComputeRegionInstanceGroupsListInstances = ComputeRegionInstanceGroupsListInstances
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Name of the regional instance group for which we want to list the instances.
+    instanceGroup :: Core.Text,
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupsListInstancesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupsListInstances' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupsListInstances ::
+  -- |  Name of the regional instance group for which we want to list the instances. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupsListInstancesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupsListInstances
+newComputeRegionInstanceGroupsListInstances
+  instanceGroup
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupsListInstances
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        instanceGroup = instanceGroup,
+        maxResults = 500,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupsListInstances
+  where
+  type
+    Rs ComputeRegionInstanceGroupsListInstances =
+      RegionInstanceGroupsListInstances
+  type
+    Scopes ComputeRegionInstanceGroupsListInstances =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceGroupsListInstances {..} =
+    go
+      project
+      region
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupsListInstancesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceGroups/SetNamedPorts.hs b/gen/Gogol/Compute/RegionInstanceGroups/SetNamedPorts.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceGroups/SetNamedPorts.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceGroups.SetNamedPorts
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the named ports for the specified regional instance group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceGroups.setNamedPorts@.
+module Gogol.Compute.RegionInstanceGroups.SetNamedPorts
+  ( -- * Resource
+    ComputeRegionInstanceGroupsSetNamedPortsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceGroupsSetNamedPorts (..),
+    newComputeRegionInstanceGroupsSetNamedPorts,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceGroups.setNamedPorts@ method which the
+-- 'ComputeRegionInstanceGroupsSetNamedPorts' request conforms to.
+type ComputeRegionInstanceGroupsSetNamedPortsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceGroups"
+    Core.:> Core.Capture "instanceGroup" Core.Text
+    Core.:> "setNamedPorts"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionInstanceGroupsSetNamedPortsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the named ports for the specified regional instance group.
+--
+-- /See:/ 'newComputeRegionInstanceGroupsSetNamedPorts' smart constructor.
+data ComputeRegionInstanceGroupsSetNamedPorts = ComputeRegionInstanceGroupsSetNamedPorts
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the regional instance group where the named ports are updated.
+    instanceGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionInstanceGroupsSetNamedPortsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceGroupsSetNamedPorts' with the minimum fields required to make a request.
+newComputeRegionInstanceGroupsSetNamedPorts ::
+  -- |  The name of the regional instance group where the named ports are updated. See 'instanceGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionInstanceGroupsSetNamedPortsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceGroupsSetNamedPorts
+newComputeRegionInstanceGroupsSetNamedPorts
+  instanceGroup
+  payload
+  project
+  region =
+    ComputeRegionInstanceGroupsSetNamedPorts
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceGroup = instanceGroup,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstanceGroupsSetNamedPorts
+  where
+  type Rs ComputeRegionInstanceGroupsSetNamedPorts = Operation
+  type
+    Scopes ComputeRegionInstanceGroupsSetNamedPorts =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceGroupsSetNamedPorts {..} =
+    go
+      project
+      region
+      instanceGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceGroupsSetNamedPortsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceTemplates/Delete.hs b/gen/Gogol/Compute/RegionInstanceTemplates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceTemplates/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceTemplates.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceTemplates.delete@.
+module Gogol.Compute.RegionInstanceTemplates.Delete
+  ( -- * Resource
+    ComputeRegionInstanceTemplatesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceTemplatesDelete (..),
+    newComputeRegionInstanceTemplatesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceTemplates.delete@ method which the
+-- 'ComputeRegionInstanceTemplatesDelete' request conforms to.
+type ComputeRegionInstanceTemplatesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "instanceTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified instance template. Deleting an instance template is permanent and cannot be undone.
+--
+-- /See:/ 'newComputeRegionInstanceTemplatesDelete' smart constructor.
+data ComputeRegionInstanceTemplatesDelete = ComputeRegionInstanceTemplatesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance template to delete.
+    instanceTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceTemplatesDelete' with the minimum fields required to make a request.
+newComputeRegionInstanceTemplatesDelete ::
+  -- |  The name of the instance template to delete. See 'instanceTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceTemplatesDelete
+newComputeRegionInstanceTemplatesDelete
+  instanceTemplate
+  project
+  region =
+    ComputeRegionInstanceTemplatesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceTemplate = instanceTemplate,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstanceTemplatesDelete where
+  type Rs ComputeRegionInstanceTemplatesDelete = Operation
+  type
+    Scopes ComputeRegionInstanceTemplatesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceTemplatesDelete {..} =
+    go
+      project
+      region
+      instanceTemplate
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceTemplatesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceTemplates/Get.hs b/gen/Gogol/Compute/RegionInstanceTemplates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceTemplates/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceTemplates.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified instance template.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceTemplates.get@.
+module Gogol.Compute.RegionInstanceTemplates.Get
+  ( -- * Resource
+    ComputeRegionInstanceTemplatesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceTemplatesGet (..),
+    newComputeRegionInstanceTemplatesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceTemplates.get@ method which the
+-- 'ComputeRegionInstanceTemplatesGet' request conforms to.
+type ComputeRegionInstanceTemplatesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceTemplates"
+    Core.:> Core.Capture "instanceTemplate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceTemplate
+
+-- | Returns the specified instance template.
+--
+-- /See:/ 'newComputeRegionInstanceTemplatesGet' smart constructor.
+data ComputeRegionInstanceTemplatesGet = ComputeRegionInstanceTemplatesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the instance template.
+    instanceTemplate :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceTemplatesGet' with the minimum fields required to make a request.
+newComputeRegionInstanceTemplatesGet ::
+  -- |  The name of the instance template. See 'instanceTemplate'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceTemplatesGet
+newComputeRegionInstanceTemplatesGet
+  instanceTemplate
+  project
+  region =
+    ComputeRegionInstanceTemplatesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instanceTemplate = instanceTemplate,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstanceTemplatesGet where
+  type Rs ComputeRegionInstanceTemplatesGet = InstanceTemplate
+  type
+    Scopes ComputeRegionInstanceTemplatesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceTemplatesGet {..} =
+    go
+      project
+      region
+      instanceTemplate
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceTemplatesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceTemplates/Insert.hs b/gen/Gogol/Compute/RegionInstanceTemplates/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceTemplates/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceTemplates.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceTemplates.insert@.
+module Gogol.Compute.RegionInstanceTemplates.Insert
+  ( -- * Resource
+    ComputeRegionInstanceTemplatesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceTemplatesInsert (..),
+    newComputeRegionInstanceTemplatesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceTemplates.insert@ method which the
+-- 'ComputeRegionInstanceTemplatesInsert' request conforms to.
+type ComputeRegionInstanceTemplatesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceTemplate
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instance template in the specified project and region using the global instance template whose URL is included in the request.
+--
+-- /See:/ 'newComputeRegionInstanceTemplatesInsert' smart constructor.
+data ComputeRegionInstanceTemplatesInsert = ComputeRegionInstanceTemplatesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceTemplate,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceTemplatesInsert' with the minimum fields required to make a request.
+newComputeRegionInstanceTemplatesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceTemplate ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceTemplatesInsert
+newComputeRegionInstanceTemplatesInsert payload project region =
+  ComputeRegionInstanceTemplatesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstanceTemplatesInsert where
+  type Rs ComputeRegionInstanceTemplatesInsert = Operation
+  type
+    Scopes ComputeRegionInstanceTemplatesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstanceTemplatesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceTemplatesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstanceTemplates/List.hs b/gen/Gogol/Compute/RegionInstanceTemplates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstanceTemplates/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstanceTemplates.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of instance templates that are contained within the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstanceTemplates.list@.
+module Gogol.Compute.RegionInstanceTemplates.List
+  ( -- * Resource
+    ComputeRegionInstanceTemplatesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstanceTemplatesList (..),
+    newComputeRegionInstanceTemplatesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstanceTemplates.list@ method which the
+-- 'ComputeRegionInstanceTemplatesList' request conforms to.
+type ComputeRegionInstanceTemplatesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instanceTemplates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstanceTemplateList
+
+-- | Retrieves a list of instance templates that are contained within the specified project and region.
+--
+-- /See:/ 'newComputeRegionInstanceTemplatesList' smart constructor.
+data ComputeRegionInstanceTemplatesList = ComputeRegionInstanceTemplatesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the regions for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstanceTemplatesList' with the minimum fields required to make a request.
+newComputeRegionInstanceTemplatesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the regions for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstanceTemplatesList
+newComputeRegionInstanceTemplatesList project region =
+  ComputeRegionInstanceTemplatesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstanceTemplatesList where
+  type Rs ComputeRegionInstanceTemplatesList = InstanceTemplateList
+  type
+    Scopes ComputeRegionInstanceTemplatesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstanceTemplatesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstanceTemplatesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstances/BulkInsert.hs b/gen/Gogol/Compute/RegionInstances/BulkInsert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstances/BulkInsert.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstances.BulkInsert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates multiple instances in a given region. Count specifies the number of instances to create.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstances.bulkInsert@.
+module Gogol.Compute.RegionInstances.BulkInsert
+  ( -- * Resource
+    ComputeRegionInstancesBulkInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstancesBulkInsert (..),
+    newComputeRegionInstancesBulkInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstances.bulkInsert@ method which the
+-- 'ComputeRegionInstancesBulkInsert' request conforms to.
+type ComputeRegionInstancesBulkInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instances"
+    Core.:> "bulkInsert"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] BulkInsertInstanceResource
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates multiple instances in a given region. Count specifies the number of instances to create.
+--
+-- /See:/ 'newComputeRegionInstancesBulkInsert' smart constructor.
+data ComputeRegionInstancesBulkInsert = ComputeRegionInstancesBulkInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: BulkInsertInstanceResource,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstancesBulkInsert' with the minimum fields required to make a request.
+newComputeRegionInstancesBulkInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  BulkInsertInstanceResource ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstancesBulkInsert
+newComputeRegionInstancesBulkInsert payload project region =
+  ComputeRegionInstancesBulkInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstancesBulkInsert where
+  type Rs ComputeRegionInstancesBulkInsert = Operation
+  type
+    Scopes ComputeRegionInstancesBulkInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstancesBulkInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionInstancesBulkInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/Delete.hs b/gen/Gogol/Compute/RegionInstantSnapshots/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.delete@.
+module Gogol.Compute.RegionInstantSnapshots.Delete
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsDelete (..),
+    newComputeRegionInstantSnapshotsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.delete@ method which the
+-- 'ComputeRegionInstantSnapshotsDelete' request conforms to.
+type ComputeRegionInstantSnapshotsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "instantSnapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsDelete' smart constructor.
+data ComputeRegionInstantSnapshotsDelete = ComputeRegionInstantSnapshotsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the InstantSnapshot resource to delete.
+    instantSnapshot :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsDelete' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsDelete ::
+  -- |  Name of the InstantSnapshot resource to delete. See 'instantSnapshot'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsDelete
+newComputeRegionInstantSnapshotsDelete
+  instantSnapshot
+  project
+  region =
+    ComputeRegionInstantSnapshotsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        instantSnapshot = instantSnapshot,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstantSnapshotsDelete where
+  type Rs ComputeRegionInstantSnapshotsDelete = Operation
+  type
+    Scopes ComputeRegionInstantSnapshotsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstantSnapshotsDelete {..} =
+    go
+      project
+      region
+      instantSnapshot
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/Get.hs b/gen/Gogol/Compute/RegionInstantSnapshots/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified InstantSnapshot resource in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.get@.
+module Gogol.Compute.RegionInstantSnapshots.Get
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsGet (..),
+    newComputeRegionInstantSnapshotsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.get@ method which the
+-- 'ComputeRegionInstantSnapshotsGet' request conforms to.
+type ComputeRegionInstantSnapshotsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "instantSnapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstantSnapshot
+
+-- | Returns the specified InstantSnapshot resource in the specified region.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsGet' smart constructor.
+data ComputeRegionInstantSnapshotsGet = ComputeRegionInstantSnapshotsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the InstantSnapshot resource to return.
+    instantSnapshot :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsGet' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsGet ::
+  -- |  Name of the InstantSnapshot resource to return. See 'instantSnapshot'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsGet
+newComputeRegionInstantSnapshotsGet instantSnapshot project region =
+  ComputeRegionInstantSnapshotsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      instantSnapshot = instantSnapshot,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstantSnapshotsGet where
+  type Rs ComputeRegionInstantSnapshotsGet = InstantSnapshot
+  type
+    Scopes ComputeRegionInstantSnapshotsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstantSnapshotsGet {..} =
+    go
+      project
+      region
+      instantSnapshot
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionInstantSnapshotsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/GetIamPolicy.hs b/gen/Gogol/Compute/RegionInstantSnapshots/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/GetIamPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.getIamPolicy@.
+module Gogol.Compute.RegionInstantSnapshots.GetIamPolicy
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsGetIamPolicy (..),
+    newComputeRegionInstantSnapshotsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.getIamPolicy@ method which the
+-- 'ComputeRegionInstantSnapshotsGetIamPolicy' request conforms to.
+type ComputeRegionInstantSnapshotsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsGetIamPolicy' smart constructor.
+data ComputeRegionInstantSnapshotsGetIamPolicy = ComputeRegionInstantSnapshotsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsGetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsGetIamPolicy
+newComputeRegionInstantSnapshotsGetIamPolicy
+  project
+  region
+  resource =
+    ComputeRegionInstantSnapshotsGetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        optionsRequestedPolicyVersion = Core.Nothing,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstantSnapshotsGetIamPolicy
+  where
+  type Rs ComputeRegionInstantSnapshotsGetIamPolicy = Policy
+  type
+    Scopes ComputeRegionInstantSnapshotsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstantSnapshotsGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/Insert.hs b/gen/Gogol/Compute/RegionInstantSnapshots/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an instant snapshot in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.insert@.
+module Gogol.Compute.RegionInstantSnapshots.Insert
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsInsert (..),
+    newComputeRegionInstantSnapshotsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.insert@ method which the
+-- 'ComputeRegionInstantSnapshotsInsert' request conforms to.
+type ComputeRegionInstantSnapshotsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstantSnapshot
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates an instant snapshot in the specified region.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsInsert' smart constructor.
+data ComputeRegionInstantSnapshotsInsert = ComputeRegionInstantSnapshotsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstantSnapshot,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsInsert' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstantSnapshot ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsInsert
+newComputeRegionInstantSnapshotsInsert payload project region =
+  ComputeRegionInstantSnapshotsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstantSnapshotsInsert where
+  type Rs ComputeRegionInstantSnapshotsInsert = Operation
+  type
+    Scopes ComputeRegionInstantSnapshotsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstantSnapshotsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/List.hs b/gen/Gogol/Compute/RegionInstantSnapshots/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of InstantSnapshot resources contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.list@.
+module Gogol.Compute.RegionInstantSnapshots.List
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsList (..),
+    newComputeRegionInstantSnapshotsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.list@ method which the
+-- 'ComputeRegionInstantSnapshotsList' request conforms to.
+type ComputeRegionInstantSnapshotsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] InstantSnapshotList
+
+-- | Retrieves the list of InstantSnapshot resources contained within the specified region.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsList' smart constructor.
+data ComputeRegionInstantSnapshotsList = ComputeRegionInstantSnapshotsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsList' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsList
+newComputeRegionInstantSnapshotsList project region =
+  ComputeRegionInstantSnapshotsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionInstantSnapshotsList where
+  type Rs ComputeRegionInstantSnapshotsList = InstantSnapshotList
+  type
+    Scopes ComputeRegionInstantSnapshotsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstantSnapshotsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/SetIamPolicy.hs b/gen/Gogol/Compute/RegionInstantSnapshots/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/SetIamPolicy.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.setIamPolicy@.
+module Gogol.Compute.RegionInstantSnapshots.SetIamPolicy
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsSetIamPolicy (..),
+    newComputeRegionInstantSnapshotsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.setIamPolicy@ method which the
+-- 'ComputeRegionInstantSnapshotsSetIamPolicy' request conforms to.
+type ComputeRegionInstantSnapshotsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsSetIamPolicy' smart constructor.
+data ComputeRegionInstantSnapshotsSetIamPolicy = ComputeRegionInstantSnapshotsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsSetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsSetIamPolicy
+newComputeRegionInstantSnapshotsSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeRegionInstantSnapshotsSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstantSnapshotsSetIamPolicy
+  where
+  type Rs ComputeRegionInstantSnapshotsSetIamPolicy = Policy
+  type
+    Scopes ComputeRegionInstantSnapshotsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstantSnapshotsSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/SetLabels.hs b/gen/Gogol/Compute/RegionInstantSnapshots/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/SetLabels.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.setLabels@.
+module Gogol.Compute.RegionInstantSnapshots.SetLabels
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsSetLabels (..),
+    newComputeRegionInstantSnapshotsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.setLabels@ method which the
+-- 'ComputeRegionInstantSnapshotsSetLabels' request conforms to.
+type ComputeRegionInstantSnapshotsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsSetLabels' smart constructor.
+data ComputeRegionInstantSnapshotsSetLabels = ComputeRegionInstantSnapshotsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsSetLabels' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsSetLabels
+newComputeRegionInstantSnapshotsSetLabels
+  payload
+  project
+  region
+  resource =
+    ComputeRegionInstantSnapshotsSetLabels
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionInstantSnapshotsSetLabels where
+  type Rs ComputeRegionInstantSnapshotsSetLabels = Operation
+  type
+    Scopes ComputeRegionInstantSnapshotsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionInstantSnapshotsSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionInstantSnapshots/TestIamPermissions.hs b/gen/Gogol/Compute/RegionInstantSnapshots/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionInstantSnapshots/TestIamPermissions.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionInstantSnapshots.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionInstantSnapshots.testIamPermissions@.
+module Gogol.Compute.RegionInstantSnapshots.TestIamPermissions
+  ( -- * Resource
+    ComputeRegionInstantSnapshotsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionInstantSnapshotsTestIamPermissions (..),
+    newComputeRegionInstantSnapshotsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionInstantSnapshots.testIamPermissions@ method which the
+-- 'ComputeRegionInstantSnapshotsTestIamPermissions' request conforms to.
+type ComputeRegionInstantSnapshotsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "instantSnapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeRegionInstantSnapshotsTestIamPermissions' smart constructor.
+data ComputeRegionInstantSnapshotsTestIamPermissions = ComputeRegionInstantSnapshotsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionInstantSnapshotsTestIamPermissions' with the minimum fields required to make a request.
+newComputeRegionInstantSnapshotsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionInstantSnapshotsTestIamPermissions
+newComputeRegionInstantSnapshotsTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeRegionInstantSnapshotsTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionInstantSnapshotsTestIamPermissions
+  where
+  type
+    Rs ComputeRegionInstantSnapshotsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeRegionInstantSnapshotsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionInstantSnapshotsTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionInstantSnapshotsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/AttachNetworkEndpoints.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/AttachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/AttachNetworkEndpoints.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.AttachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Attach a list of network endpoints to the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.attachNetworkEndpoints@.
+module Gogol.Compute.RegionNetworkEndpointGroups.AttachNetworkEndpoints
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.attachNetworkEndpoints@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints' request conforms to.
+type ComputeRegionNetworkEndpointGroupsAttachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "attachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionNetworkEndpointGroupsAttachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Attach a list of network endpoints to the specified network endpoint group.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints' smart constructor.
+data ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints = ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionNetworkEndpointGroupsAttachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where you want to create the network endpoint group. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints ::
+  -- |  The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionNetworkEndpointGroupsAttachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where you want to create the network endpoint group. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints
+newComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project
+  region =
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints
+  where
+  type
+    Rs ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints =
+      Operation
+  type
+    Scopes
+      ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionNetworkEndpointGroupsAttachNetworkEndpoints {..} =
+      go
+        project
+        region
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkEndpointGroupsAttachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/Delete.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Delete.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.delete@.
+module Gogol.Compute.RegionNetworkEndpointGroups.Delete
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsDelete (..),
+    newComputeRegionNetworkEndpointGroupsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.delete@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsDelete' request conforms to.
+type ComputeRegionNetworkEndpointGroupsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified network endpoint group. Note that the NEG cannot be deleted if it is configured as a backend of a backend service.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsDelete' smart constructor.
+data ComputeRegionNetworkEndpointGroupsDelete = ComputeRegionNetworkEndpointGroupsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group to delete. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the network endpoint group is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsDelete' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsDelete ::
+  -- |  The name of the network endpoint group to delete. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the network endpoint group is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsDelete
+newComputeRegionNetworkEndpointGroupsDelete
+  networkEndpointGroup
+  project
+  region =
+    ComputeRegionNetworkEndpointGroupsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkEndpointGroupsDelete
+  where
+  type Rs ComputeRegionNetworkEndpointGroupsDelete = Operation
+  type
+    Scopes ComputeRegionNetworkEndpointGroupsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkEndpointGroupsDelete {..} =
+    go
+      project
+      region
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkEndpointGroupsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/DetachNetworkEndpoints.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/DetachNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/DetachNetworkEndpoints.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.DetachNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Detach the network endpoint from the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.detachNetworkEndpoints@.
+module Gogol.Compute.RegionNetworkEndpointGroups.DetachNetworkEndpoints
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.detachNetworkEndpoints@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints' request conforms to.
+type ComputeRegionNetworkEndpointGroupsDetachNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "detachNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionNetworkEndpointGroupsDetachEndpointsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Detach the network endpoint from the specified network endpoint group.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints' smart constructor.
+data ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints = ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: RegionNetworkEndpointGroupsDetachEndpointsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the network endpoint group is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000). end_interface: MixerMutationRequestBuilder
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints ::
+  -- |  The name of the network endpoint group you are detaching network endpoints from. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  RegionNetworkEndpointGroupsDetachEndpointsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the network endpoint group is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints
+newComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints
+  networkEndpointGroup
+  payload
+  project
+  region =
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints
+  where
+  type
+    Rs ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints =
+      Operation
+  type
+    Scopes
+      ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionNetworkEndpointGroupsDetachNetworkEndpoints {..} =
+      go
+        project
+        region
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkEndpointGroupsDetachNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/Get.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Get.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.get@.
+module Gogol.Compute.RegionNetworkEndpointGroups.Get
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsGet (..),
+    newComputeRegionNetworkEndpointGroupsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.get@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsGet' request conforms to.
+type ComputeRegionNetworkEndpointGroupsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroup
+
+-- | Returns the specified network endpoint group.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsGet' smart constructor.
+data ComputeRegionNetworkEndpointGroupsGet = ComputeRegionNetworkEndpointGroupsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The name of the network endpoint group. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the network endpoint group is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsGet' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsGet ::
+  -- |  The name of the network endpoint group. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the network endpoint group is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsGet
+newComputeRegionNetworkEndpointGroupsGet
+  networkEndpointGroup
+  project
+  region =
+    ComputeRegionNetworkEndpointGroupsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        networkEndpointGroup = networkEndpointGroup,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionNetworkEndpointGroupsGet where
+  type
+    Rs ComputeRegionNetworkEndpointGroupsGet =
+      NetworkEndpointGroup
+  type
+    Scopes ComputeRegionNetworkEndpointGroupsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkEndpointGroupsGet {..} =
+    go
+      project
+      region
+      networkEndpointGroup
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkEndpointGroupsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/Insert.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/Insert.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.insert@.
+module Gogol.Compute.RegionNetworkEndpointGroups.Insert
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsInsert (..),
+    newComputeRegionNetworkEndpointGroupsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.insert@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsInsert' request conforms to.
+type ComputeRegionNetworkEndpointGroupsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NetworkEndpointGroup
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a network endpoint group in the specified project using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsInsert' smart constructor.
+data ComputeRegionNetworkEndpointGroupsInsert = ComputeRegionNetworkEndpointGroupsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NetworkEndpointGroup,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where you want to create the network endpoint group. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsInsert' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NetworkEndpointGroup ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where you want to create the network endpoint group. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsInsert
+newComputeRegionNetworkEndpointGroupsInsert payload project region =
+  ComputeRegionNetworkEndpointGroupsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkEndpointGroupsInsert
+  where
+  type Rs ComputeRegionNetworkEndpointGroupsInsert = Operation
+  type
+    Scopes ComputeRegionNetworkEndpointGroupsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkEndpointGroupsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkEndpointGroupsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/List.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of regional network endpoint groups available to the specified project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.list@.
+module Gogol.Compute.RegionNetworkEndpointGroups.List
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsList (..),
+    newComputeRegionNetworkEndpointGroupsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.list@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsList' request conforms to.
+type ComputeRegionNetworkEndpointGroupsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NetworkEndpointGroupList
+
+-- | Retrieves the list of regional network endpoint groups available to the specified project in the given region.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsList' smart constructor.
+data ComputeRegionNetworkEndpointGroupsList = ComputeRegionNetworkEndpointGroupsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the network endpoint group is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsList' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the network endpoint group is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsList
+newComputeRegionNetworkEndpointGroupsList project region =
+  ComputeRegionNetworkEndpointGroupsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionNetworkEndpointGroupsList where
+  type
+    Rs ComputeRegionNetworkEndpointGroupsList =
+      NetworkEndpointGroupList
+  type
+    Scopes ComputeRegionNetworkEndpointGroupsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkEndpointGroupsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkEndpointGroupsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkEndpointGroups/ListNetworkEndpoints.hs b/gen/Gogol/Compute/RegionNetworkEndpointGroups/ListNetworkEndpoints.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkEndpointGroups/ListNetworkEndpoints.hs
@@ -0,0 +1,171 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkEndpointGroups.ListNetworkEndpoints
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkEndpointGroups.listNetworkEndpoints@.
+module Gogol.Compute.RegionNetworkEndpointGroups.ListNetworkEndpoints
+  ( -- * Resource
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpointsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpoints (..),
+    newComputeRegionNetworkEndpointGroupsListNetworkEndpoints,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkEndpointGroups.listNetworkEndpoints@ method which the
+-- 'ComputeRegionNetworkEndpointGroupsListNetworkEndpoints' request conforms to.
+type ComputeRegionNetworkEndpointGroupsListNetworkEndpointsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "networkEndpointGroups"
+    Core.:> Core.Capture "networkEndpointGroup" Core.Text
+    Core.:> "listNetworkEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post
+              '[Core.JSON]
+              NetworkEndpointGroupsListNetworkEndpoints
+
+-- | Lists the network endpoints in the specified network endpoint group.
+--
+-- /See:/ 'newComputeRegionNetworkEndpointGroupsListNetworkEndpoints' smart constructor.
+data ComputeRegionNetworkEndpointGroupsListNetworkEndpoints = ComputeRegionNetworkEndpointGroupsListNetworkEndpoints
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035.
+    networkEndpointGroup :: Core.Text,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region where the network endpoint group is located. It should comply with RFC1035.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkEndpointGroupsListNetworkEndpoints' with the minimum fields required to make a request.
+newComputeRegionNetworkEndpointGroupsListNetworkEndpoints ::
+  -- |  The name of the network endpoint group from which you want to generate a list of included network endpoints. It should comply with RFC1035. See 'networkEndpointGroup'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region where the network endpoint group is located. It should comply with RFC1035. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkEndpointGroupsListNetworkEndpoints
+newComputeRegionNetworkEndpointGroupsListNetworkEndpoints
+  networkEndpointGroup
+  project
+  region =
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpoints
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        filter = Core.Nothing,
+        maxResults = 500,
+        networkEndpointGroup =
+          networkEndpointGroup,
+        orderBy = Core.Nothing,
+        pageToken = Core.Nothing,
+        project = project,
+        region = region,
+        returnPartialSuccess = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpoints
+  where
+  type
+    Rs ComputeRegionNetworkEndpointGroupsListNetworkEndpoints =
+      NetworkEndpointGroupsListNetworkEndpoints
+  type
+    Scopes ComputeRegionNetworkEndpointGroupsListNetworkEndpoints =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionNetworkEndpointGroupsListNetworkEndpoints {..} =
+      go
+        project
+        region
+        networkEndpointGroup
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkEndpointGroupsListNetworkEndpointsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddAssociation.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddAssociation.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.AddAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts an association for the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.addAssociation@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.AddAssociation
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesAddAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesAddAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesAddAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.addAssociation@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesAddAssociation' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesAddAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "replaceExistingAssociation" Core.Bool
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyAssociation
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts an association for the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesAddAssociation' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesAddAssociation = ComputeRegionNetworkFirewallPoliciesAddAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyAssociation,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Indicates whether or not to replace it if an association already exists. This is false by default, in which case an error will be returned if an association already exists.
+    replaceExistingAssociation :: (Core.Maybe Core.Bool),
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesAddAssociation' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesAddAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyAssociation ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesAddAssociation
+newComputeRegionNetworkFirewallPoliciesAddAssociation
+  firewallPolicy
+  payload
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesAddAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        project = project,
+        region = region,
+        replaceExistingAssociation = Core.Nothing,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesAddAssociation
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesAddAssociation =
+      Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesAddAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionNetworkFirewallPoliciesAddAssociation {..} =
+      go
+        project
+        region
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        replaceExistingAssociation
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkFirewallPoliciesAddAssociationResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddRule.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/AddRule.hs
@@ -0,0 +1,159 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.AddRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a rule into a network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.addRule@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.AddRule
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesAddRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesAddRule (..),
+    newComputeRegionNetworkFirewallPoliciesAddRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.addRule@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesAddRule' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesAddRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "addRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "maxPriority" Core.Int32
+    Core.:> Core.QueryParam "minPriority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a rule into a network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesAddRule' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesAddRule = ComputeRegionNetworkFirewallPoliciesAddRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    maxPriority :: (Core.Maybe Core.Int32),
+    -- | When rule.priority is not specified, auto choose a unused priority between minPriority and maxPriority>. This field is exclusive with rule.priority.
+    minPriority :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesAddRule' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesAddRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesAddRule
+newComputeRegionNetworkFirewallPoliciesAddRule
+  firewallPolicy
+  payload
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesAddRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        maxPriority = Core.Nothing,
+        minPriority = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesAddRule
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesAddRule = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesAddRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesAddRule {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      maxPriority
+      minPriority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesAddRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/CloneRules.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/CloneRules.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/CloneRules.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.CloneRules
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Copies rules to the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.cloneRules@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.CloneRules
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesCloneRulesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesCloneRules (..),
+    newComputeRegionNetworkFirewallPoliciesCloneRules,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.cloneRules@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesCloneRules' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesCloneRulesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "cloneRules"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "sourceFirewallPolicy" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Copies rules to the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesCloneRules' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesCloneRules = ComputeRegionNetworkFirewallPoliciesCloneRules
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The firewall policy from which to copy rules.
+    sourceFirewallPolicy :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesCloneRules' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesCloneRules ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesCloneRules
+newComputeRegionNetworkFirewallPoliciesCloneRules
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesCloneRules
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        sourceFirewallPolicy = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesCloneRules
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesCloneRules = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesCloneRules =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesCloneRules {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      sourceFirewallPolicy
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesCloneRulesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Delete.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Delete.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.delete@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.Delete
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesDelete (..),
+    newComputeRegionNetworkFirewallPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.delete@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesDelete' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesDelete' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesDelete = ComputeRegionNetworkFirewallPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to delete.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesDelete' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesDelete ::
+  -- |  Name of the firewall policy to delete. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesDelete
+newComputeRegionNetworkFirewallPoliciesDelete
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesDelete
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesDelete = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesDelete {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Get.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.get@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.Get
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesGet (..),
+    newComputeRegionNetworkFirewallPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.get@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesGet' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicy
+
+-- | Returns the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesGet' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesGet = ComputeRegionNetworkFirewallPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to get.
+    firewallPolicy :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesGet' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesGet ::
+  -- |  Name of the firewall policy to get. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesGet
+newComputeRegionNetworkFirewallPoliciesGet
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionNetworkFirewallPoliciesGet where
+  type Rs ComputeRegionNetworkFirewallPoliciesGet = FirewallPolicy
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkFirewallPoliciesGet {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetAssociation.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetAssociation.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.GetAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets an association with the specified name.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.getAssociation@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.GetAssociation
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesGetAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesGetAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesGetAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.getAssociation@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesGetAssociation' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesGetAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyAssociation
+
+-- | Gets an association with the specified name.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesGetAssociation' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesGetAssociation = ComputeRegionNetworkFirewallPoliciesGetAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried association belongs.
+    firewallPolicy :: Core.Text,
+    -- | The name of the association to get from the firewall policy.
+    name :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesGetAssociation' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesGetAssociation ::
+  -- |  Name of the firewall policy to which the queried association belongs. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesGetAssociation
+newComputeRegionNetworkFirewallPoliciesGetAssociation
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesGetAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        name = Core.Nothing,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesGetAssociation
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesGetAssociation =
+      FirewallPolicyAssociation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesGetAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionNetworkFirewallPoliciesGetAssociation {..} =
+      go
+        project
+        region
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        name
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkFirewallPoliciesGetAssociationResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetEffectiveFirewalls.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetEffectiveFirewalls.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetEffectiveFirewalls.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.GetEffectiveFirewalls
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the effective firewalls on a given network.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.getEffectiveFirewalls@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.GetEffectiveFirewalls
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewallsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls (..),
+    newComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.getEffectiveFirewalls@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewallsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> "getEffectiveFirewalls"
+    Core.:> Core.QueryParam "network" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
+
+-- | Returns the effective firewalls on a given network.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls = ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Network reference
+    network :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls ::
+  -- |  Network reference See 'network'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls
+newComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls
+  network
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        network = network,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls =
+      RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
+  type
+    Scopes
+      ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewalls {..} =
+      go
+        project
+        region
+        (Core.Just network)
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkFirewallPoliciesGetEffectiveFirewallsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetIamPolicy.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetIamPolicy.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.getIamPolicy@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.GetIamPolicy
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicy (..),
+    newComputeRegionNetworkFirewallPoliciesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.getIamPolicy@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesGetIamPolicy' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesGetIamPolicy' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesGetIamPolicy = ComputeRegionNetworkFirewallPoliciesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesGetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesGetIamPolicy
+newComputeRegionNetworkFirewallPoliciesGetIamPolicy
+  project
+  region
+  resource =
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicy
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        optionsRequestedPolicyVersion = Core.Nothing,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesGetIamPolicy
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesGetIamPolicy = Policy
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkFirewallPoliciesGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionNetworkFirewallPoliciesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetRule.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/GetRule.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.GetRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.getRule@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.GetRule
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesGetRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesGetRule (..),
+    newComputeRegionNetworkFirewallPoliciesGetRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.getRule@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesGetRule' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesGetRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "getRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyRule
+
+-- | Gets a rule of the specified priority.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesGetRule' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesGetRule = ComputeRegionNetworkFirewallPoliciesGetRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to which the queried rule belongs.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to get from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesGetRule' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesGetRule ::
+  -- |  Name of the firewall policy to which the queried rule belongs. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesGetRule
+newComputeRegionNetworkFirewallPoliciesGetRule
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesGetRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesGetRule
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesGetRule =
+      FirewallPolicyRule
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesGetRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkFirewallPoliciesGetRule {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesGetRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Insert.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Insert.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new network firewall policy in the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.insert@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.Insert
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesInsert (..),
+    newComputeRegionNetworkFirewallPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.insert@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesInsert' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new network firewall policy in the specified project and region.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesInsert' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesInsert = ComputeRegionNetworkFirewallPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesInsert' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesInsert
+newComputeRegionNetworkFirewallPoliciesInsert
+  payload
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesInsert
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesInsert
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesInsert = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/List.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/List.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the network firewall policies that have been configured for the specified project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.list@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.List
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesList (..),
+    newComputeRegionNetworkFirewallPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.list@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesList' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] FirewallPolicyList
+
+-- | Lists all the network firewall policies that have been configured for the specified project in the given region.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesList' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesList = ComputeRegionNetworkFirewallPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesList' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesList
+newComputeRegionNetworkFirewallPoliciesList project region =
+  ComputeRegionNetworkFirewallPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesList
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesList =
+      FirewallPolicyList
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNetworkFirewallPoliciesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Patch.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/Patch.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.patch@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.Patch
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesPatch (..),
+    newComputeRegionNetworkFirewallPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.patch@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesPatch' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesPatch' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesPatch = ComputeRegionNetworkFirewallPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesPatch' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesPatch ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesPatch
+newComputeRegionNetworkFirewallPoliciesPatch
+  firewallPolicy
+  payload
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesPatch
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesPatch = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesPatch {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/PatchRule.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/PatchRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/PatchRule.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.PatchRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.patchRule@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.PatchRule
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesPatchRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesPatchRule (..),
+    newComputeRegionNetworkFirewallPoliciesPatchRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.patchRule@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesPatchRule' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesPatchRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "patchRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] FirewallPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a rule of the specified priority.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesPatchRule' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesPatchRule = ComputeRegionNetworkFirewallPoliciesPatchRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Multipart request metadata.
+    payload :: FirewallPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesPatchRule' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesPatchRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Multipart request metadata. See 'payload'.
+  FirewallPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesPatchRule
+newComputeRegionNetworkFirewallPoliciesPatchRule
+  firewallPolicy
+  payload
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesPatchRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        payload = payload,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesPatchRule
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesPatchRule = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesPatchRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesPatchRule {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesPatchRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveAssociation.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveAssociation.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveAssociation.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.RemoveAssociation
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes an association for the specified network firewall policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.removeAssociation@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.RemoveAssociation
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociationResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociation (..),
+    newComputeRegionNetworkFirewallPoliciesRemoveAssociation,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.removeAssociation@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesRemoveAssociation' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesRemoveAssociationResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeAssociation"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "name" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes an association for the specified network firewall policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesRemoveAssociation' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesRemoveAssociation = ComputeRegionNetworkFirewallPoliciesRemoveAssociation
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | Name for the association that will be removed.
+    name :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesRemoveAssociation' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesRemoveAssociation ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesRemoveAssociation
+newComputeRegionNetworkFirewallPoliciesRemoveAssociation
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociation
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        name = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociation
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesRemoveAssociation =
+      Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesRemoveAssociation =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient
+    ComputeRegionNetworkFirewallPoliciesRemoveAssociation {..} =
+      go
+        project
+        region
+        firewallPolicy
+        xgafv
+        accessToken
+        callback
+        name
+        requestId
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkFirewallPoliciesRemoveAssociationResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveRule.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/RemoveRule.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.RemoveRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a rule of the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.removeRule@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.RemoveRule
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesRemoveRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesRemoveRule (..),
+    newComputeRegionNetworkFirewallPoliciesRemoveRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.removeRule@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesRemoveRule' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesRemoveRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "firewallPolicy" Core.Text
+    Core.:> "removeRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a rule of the specified priority.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesRemoveRule' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesRemoveRule = ComputeRegionNetworkFirewallPoliciesRemoveRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the firewall policy to update.
+    firewallPolicy :: Core.Text,
+    -- | The priority of the rule to remove from the firewall policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesRemoveRule' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesRemoveRule ::
+  -- |  Name of the firewall policy to update. See 'firewallPolicy'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesRemoveRule
+newComputeRegionNetworkFirewallPoliciesRemoveRule
+  firewallPolicy
+  project
+  region =
+    ComputeRegionNetworkFirewallPoliciesRemoveRule
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        firewallPolicy = firewallPolicy,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesRemoveRule
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesRemoveRule = Operation
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesRemoveRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesRemoveRule {..} =
+    go
+      project
+      region
+      firewallPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNetworkFirewallPoliciesRemoveRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/SetIamPolicy.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/SetIamPolicy.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.setIamPolicy@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.SetIamPolicy
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicy (..),
+    newComputeRegionNetworkFirewallPoliciesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.setIamPolicy@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesSetIamPolicy' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesSetIamPolicy' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesSetIamPolicy = ComputeRegionNetworkFirewallPoliciesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesSetIamPolicy' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesSetIamPolicy
+newComputeRegionNetworkFirewallPoliciesSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicy
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesSetIamPolicy
+  where
+  type Rs ComputeRegionNetworkFirewallPoliciesSetIamPolicy = Policy
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNetworkFirewallPoliciesSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionNetworkFirewallPoliciesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNetworkFirewallPolicies/TestIamPermissions.hs b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNetworkFirewallPolicies/TestIamPermissions.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNetworkFirewallPolicies.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNetworkFirewallPolicies.testIamPermissions@.
+module Gogol.Compute.RegionNetworkFirewallPolicies.TestIamPermissions
+  ( -- * Resource
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissions (..),
+    newComputeRegionNetworkFirewallPoliciesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNetworkFirewallPolicies.testIamPermissions@ method which the
+-- 'ComputeRegionNetworkFirewallPoliciesTestIamPermissions' request conforms to.
+type ComputeRegionNetworkFirewallPoliciesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "firewallPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeRegionNetworkFirewallPoliciesTestIamPermissions' smart constructor.
+data ComputeRegionNetworkFirewallPoliciesTestIamPermissions = ComputeRegionNetworkFirewallPoliciesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNetworkFirewallPoliciesTestIamPermissions' with the minimum fields required to make a request.
+newComputeRegionNetworkFirewallPoliciesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionNetworkFirewallPoliciesTestIamPermissions
+newComputeRegionNetworkFirewallPoliciesTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissions
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissions
+  where
+  type
+    Rs ComputeRegionNetworkFirewallPoliciesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeRegionNetworkFirewallPoliciesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeRegionNetworkFirewallPoliciesTestIamPermissions {..} =
+      go
+        project
+        region
+        resource
+        xgafv
+        accessToken
+        callback
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        payload
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeRegionNetworkFirewallPoliciesTestIamPermissionsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/RegionNotificationEndpoints/Delete.hs b/gen/Gogol/Compute/RegionNotificationEndpoints/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNotificationEndpoints/Delete.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNotificationEndpoints.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified NotificationEndpoint in the given region
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNotificationEndpoints.delete@.
+module Gogol.Compute.RegionNotificationEndpoints.Delete
+  ( -- * Resource
+    ComputeRegionNotificationEndpointsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNotificationEndpointsDelete (..),
+    newComputeRegionNotificationEndpointsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNotificationEndpoints.delete@ method which the
+-- 'ComputeRegionNotificationEndpointsDelete' request conforms to.
+type ComputeRegionNotificationEndpointsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "notificationEndpoints"
+    Core.:> Core.Capture "notificationEndpoint" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified NotificationEndpoint in the given region
+--
+-- /See:/ 'newComputeRegionNotificationEndpointsDelete' smart constructor.
+data ComputeRegionNotificationEndpointsDelete = ComputeRegionNotificationEndpointsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NotificationEndpoint resource to delete.
+    notificationEndpoint :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNotificationEndpointsDelete' with the minimum fields required to make a request.
+newComputeRegionNotificationEndpointsDelete ::
+  -- |  Name of the NotificationEndpoint resource to delete. See 'notificationEndpoint'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNotificationEndpointsDelete
+newComputeRegionNotificationEndpointsDelete
+  notificationEndpoint
+  project
+  region =
+    ComputeRegionNotificationEndpointsDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        notificationEndpoint = notificationEndpoint,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNotificationEndpointsDelete
+  where
+  type Rs ComputeRegionNotificationEndpointsDelete = Operation
+  type
+    Scopes ComputeRegionNotificationEndpointsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNotificationEndpointsDelete {..} =
+    go
+      project
+      region
+      notificationEndpoint
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNotificationEndpointsDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNotificationEndpoints/Get.hs b/gen/Gogol/Compute/RegionNotificationEndpoints/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNotificationEndpoints/Get.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNotificationEndpoints.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified NotificationEndpoint resource in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNotificationEndpoints.get@.
+module Gogol.Compute.RegionNotificationEndpoints.Get
+  ( -- * Resource
+    ComputeRegionNotificationEndpointsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNotificationEndpointsGet (..),
+    newComputeRegionNotificationEndpointsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNotificationEndpoints.get@ method which the
+-- 'ComputeRegionNotificationEndpointsGet' request conforms to.
+type ComputeRegionNotificationEndpointsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "notificationEndpoints"
+    Core.:> Core.Capture "notificationEndpoint" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NotificationEndpoint
+
+-- | Returns the specified NotificationEndpoint resource in the given region.
+--
+-- /See:/ 'newComputeRegionNotificationEndpointsGet' smart constructor.
+data ComputeRegionNotificationEndpointsGet = ComputeRegionNotificationEndpointsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the NotificationEndpoint resource to return.
+    notificationEndpoint :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNotificationEndpointsGet' with the minimum fields required to make a request.
+newComputeRegionNotificationEndpointsGet ::
+  -- |  Name of the NotificationEndpoint resource to return. See 'notificationEndpoint'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNotificationEndpointsGet
+newComputeRegionNotificationEndpointsGet
+  notificationEndpoint
+  project
+  region =
+    ComputeRegionNotificationEndpointsGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        notificationEndpoint = notificationEndpoint,
+        project = project,
+        region = region,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionNotificationEndpointsGet where
+  type
+    Rs ComputeRegionNotificationEndpointsGet =
+      NotificationEndpoint
+  type
+    Scopes ComputeRegionNotificationEndpointsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNotificationEndpointsGet {..} =
+    go
+      project
+      region
+      notificationEndpoint
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNotificationEndpointsGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNotificationEndpoints/Insert.hs b/gen/Gogol/Compute/RegionNotificationEndpoints/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNotificationEndpoints/Insert.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNotificationEndpoints.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNotificationEndpoints.insert@.
+module Gogol.Compute.RegionNotificationEndpoints.Insert
+  ( -- * Resource
+    ComputeRegionNotificationEndpointsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNotificationEndpointsInsert (..),
+    newComputeRegionNotificationEndpointsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNotificationEndpoints.insert@ method which the
+-- 'ComputeRegionNotificationEndpointsInsert' request conforms to.
+type ComputeRegionNotificationEndpointsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "notificationEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] NotificationEndpoint
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeRegionNotificationEndpointsInsert' smart constructor.
+data ComputeRegionNotificationEndpointsInsert = ComputeRegionNotificationEndpointsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: NotificationEndpoint,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNotificationEndpointsInsert' with the minimum fields required to make a request.
+newComputeRegionNotificationEndpointsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  NotificationEndpoint ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNotificationEndpointsInsert
+newComputeRegionNotificationEndpointsInsert payload project region =
+  ComputeRegionNotificationEndpointsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionNotificationEndpointsInsert
+  where
+  type Rs ComputeRegionNotificationEndpointsInsert = Operation
+  type
+    Scopes ComputeRegionNotificationEndpointsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionNotificationEndpointsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNotificationEndpointsInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionNotificationEndpoints/List.hs b/gen/Gogol/Compute/RegionNotificationEndpoints/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionNotificationEndpoints/List.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionNotificationEndpoints.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the NotificationEndpoints for a project in the given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionNotificationEndpoints.list@.
+module Gogol.Compute.RegionNotificationEndpoints.List
+  ( -- * Resource
+    ComputeRegionNotificationEndpointsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionNotificationEndpointsList (..),
+    newComputeRegionNotificationEndpointsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionNotificationEndpoints.list@ method which the
+-- 'ComputeRegionNotificationEndpointsList' request conforms to.
+type ComputeRegionNotificationEndpointsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "notificationEndpoints"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NotificationEndpointList
+
+-- | Lists the NotificationEndpoints for a project in the given region.
+--
+-- /See:/ 'newComputeRegionNotificationEndpointsList' smart constructor.
+data ComputeRegionNotificationEndpointsList = ComputeRegionNotificationEndpointsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionNotificationEndpointsList' with the minimum fields required to make a request.
+newComputeRegionNotificationEndpointsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionNotificationEndpointsList
+newComputeRegionNotificationEndpointsList project region =
+  ComputeRegionNotificationEndpointsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionNotificationEndpointsList where
+  type
+    Rs ComputeRegionNotificationEndpointsList =
+      NotificationEndpointList
+  type
+    Scopes ComputeRegionNotificationEndpointsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionNotificationEndpointsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionNotificationEndpointsListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionOperations/Delete.hs b/gen/Gogol/Compute/RegionOperations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionOperations/Delete.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionOperations.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified region-specific Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionOperations.delete@.
+module Gogol.Compute.RegionOperations.Delete
+  ( -- * Resource
+    ComputeRegionOperationsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionOperationsDelete (..),
+    newComputeRegionOperationsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionOperations.delete@ method which the
+-- 'ComputeRegionOperationsDelete' request conforms to.
+type ComputeRegionOperationsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes the specified region-specific Operations resource.
+--
+-- /See:/ 'newComputeRegionOperationsDelete' smart constructor.
+data ComputeRegionOperationsDelete = ComputeRegionOperationsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to delete, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionOperationsDelete' with the minimum fields required to make a request.
+newComputeRegionOperationsDelete ::
+  -- |  Name of the Operations resource to delete, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionOperationsDelete
+newComputeRegionOperationsDelete operation project region =
+  ComputeRegionOperationsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionOperationsDelete where
+  type Rs ComputeRegionOperationsDelete = ()
+  type
+    Scopes ComputeRegionOperationsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionOperationsDelete {..} =
+    go
+      project
+      region
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionOperationsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionOperations/Get.hs b/gen/Gogol/Compute/RegionOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionOperations/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionOperations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the specified region-specific Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionOperations.get@.
+module Gogol.Compute.RegionOperations.Get
+  ( -- * Resource
+    ComputeRegionOperationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionOperationsGet (..),
+    newComputeRegionOperationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionOperations.get@ method which the
+-- 'ComputeRegionOperationsGet' request conforms to.
+type ComputeRegionOperationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Operation
+
+-- | Retrieves the specified region-specific Operations resource.
+--
+-- /See:/ 'newComputeRegionOperationsGet' smart constructor.
+data ComputeRegionOperationsGet = ComputeRegionOperationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionOperationsGet' with the minimum fields required to make a request.
+newComputeRegionOperationsGet ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionOperationsGet
+newComputeRegionOperationsGet operation project region =
+  ComputeRegionOperationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionOperationsGet where
+  type Rs ComputeRegionOperationsGet = Operation
+  type
+    Scopes ComputeRegionOperationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionOperationsGet {..} =
+    go
+      project
+      region
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionOperationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionOperations/List.hs b/gen/Gogol/Compute/RegionOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionOperations/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionOperations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of Operation resources contained within the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionOperations.list@.
+module Gogol.Compute.RegionOperations.List
+  ( -- * Resource
+    ComputeRegionOperationsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionOperationsList (..),
+    newComputeRegionOperationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionOperations.list@ method which the
+-- 'ComputeRegionOperationsList' request conforms to.
+type ComputeRegionOperationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "operations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] OperationList
+
+-- | Retrieves a list of Operation resources contained within the specified region.
+--
+-- /See:/ 'newComputeRegionOperationsList' smart constructor.
+data ComputeRegionOperationsList = ComputeRegionOperationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionOperationsList' with the minimum fields required to make a request.
+newComputeRegionOperationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionOperationsList
+newComputeRegionOperationsList project region =
+  ComputeRegionOperationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionOperationsList where
+  type Rs ComputeRegionOperationsList = OperationList
+  type
+    Scopes ComputeRegionOperationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionOperationsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionOperationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionOperations/Wait.hs b/gen/Gogol/Compute/RegionOperations/Wait.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionOperations/Wait.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionOperations.Wait
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the @GET@ method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionOperations.wait@.
+module Gogol.Compute.RegionOperations.Wait
+  ( -- * Resource
+    ComputeRegionOperationsWaitResource,
+
+    -- ** Constructing a Request
+    ComputeRegionOperationsWait (..),
+    newComputeRegionOperationsWait,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionOperations.wait@ method which the
+-- 'ComputeRegionOperationsWait' request conforms to.
+type ComputeRegionOperationsWaitResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> "wait"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method differs from the @GET@ method in that it waits for no more than the default deadline (2 minutes) and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ 'newComputeRegionOperationsWait' smart constructor.
+data ComputeRegionOperationsWait = ComputeRegionOperationsWait
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionOperationsWait' with the minimum fields required to make a request.
+newComputeRegionOperationsWait ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionOperationsWait
+newComputeRegionOperationsWait operation project region =
+  ComputeRegionOperationsWait
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionOperationsWait where
+  type Rs ComputeRegionOperationsWait = Operation
+  type
+    Scopes ComputeRegionOperationsWait =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionOperationsWait {..} =
+    go
+      project
+      region
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionOperationsWaitResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/AddRule.hs b/gen/Gogol/Compute/RegionSecurityPolicies/AddRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/AddRule.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.AddRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a rule into a security policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.addRule@.
+module Gogol.Compute.RegionSecurityPolicies.AddRule
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesAddRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesAddRule (..),
+    newComputeRegionSecurityPoliciesAddRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.addRule@ method which the
+-- 'ComputeRegionSecurityPoliciesAddRule' request conforms to.
+type ComputeRegionSecurityPoliciesAddRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "addRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a rule into a security policy.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesAddRule' smart constructor.
+data ComputeRegionSecurityPoliciesAddRule = ComputeRegionSecurityPoliciesAddRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesAddRule' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesAddRule ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesAddRule
+newComputeRegionSecurityPoliciesAddRule
+  payload
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesAddRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        securityPolicy = securityPolicy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        validateOnly = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesAddRule where
+  type Rs ComputeRegionSecurityPoliciesAddRule = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesAddRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesAddRule {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesAddRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/Delete.hs b/gen/Gogol/Compute/RegionSecurityPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.delete@.
+module Gogol.Compute.RegionSecurityPolicies.Delete
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesDelete (..),
+    newComputeRegionSecurityPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.delete@ method which the
+-- 'ComputeRegionSecurityPoliciesDelete' request conforms to.
+type ComputeRegionSecurityPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified policy.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesDelete' smart constructor.
+data ComputeRegionSecurityPoliciesDelete = ComputeRegionSecurityPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the security policy to delete.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesDelete' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to delete. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesDelete
+newComputeRegionSecurityPoliciesDelete
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        securityPolicy = securityPolicy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesDelete where
+  type Rs ComputeRegionSecurityPoliciesDelete = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesDelete {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/Get.hs b/gen/Gogol/Compute/RegionSecurityPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all of the ordered rules present in a single specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.get@.
+module Gogol.Compute.RegionSecurityPolicies.Get
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesGet (..),
+    newComputeRegionSecurityPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.get@ method which the
+-- 'ComputeRegionSecurityPoliciesGet' request conforms to.
+type ComputeRegionSecurityPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicy
+
+-- | List all of the ordered rules present in a single specified policy.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesGet' smart constructor.
+data ComputeRegionSecurityPoliciesGet = ComputeRegionSecurityPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the security policy to get.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesGet' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to get. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesGet
+newComputeRegionSecurityPoliciesGet project region securityPolicy =
+  ComputeRegionSecurityPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesGet where
+  type Rs ComputeRegionSecurityPoliciesGet = SecurityPolicy
+  type
+    Scopes ComputeRegionSecurityPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSecurityPoliciesGet {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSecurityPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/GetRule.hs b/gen/Gogol/Compute/RegionSecurityPolicies/GetRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/GetRule.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.GetRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a rule at the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.getRule@.
+module Gogol.Compute.RegionSecurityPolicies.GetRule
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesGetRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesGetRule (..),
+    newComputeRegionSecurityPoliciesGetRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.getRule@ method which the
+-- 'ComputeRegionSecurityPoliciesGetRule' request conforms to.
+type ComputeRegionSecurityPoliciesGetRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "getRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicyRule
+
+-- | Gets a rule at the specified priority.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesGetRule' smart constructor.
+data ComputeRegionSecurityPoliciesGetRule = ComputeRegionSecurityPoliciesGetRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The priority of the rule to get from the security policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the security policy to which the queried rule belongs.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesGetRule' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesGetRule ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to which the queried rule belongs. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesGetRule
+newComputeRegionSecurityPoliciesGetRule
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesGetRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        securityPolicy = securityPolicy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesGetRule where
+  type Rs ComputeRegionSecurityPoliciesGetRule = SecurityPolicyRule
+  type
+    Scopes ComputeRegionSecurityPoliciesGetRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSecurityPoliciesGetRule {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesGetRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/Insert.hs b/gen/Gogol/Compute/RegionSecurityPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/Insert.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.insert@.
+module Gogol.Compute.RegionSecurityPolicies.Insert
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesInsert (..),
+    newComputeRegionSecurityPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.insert@ method which the
+-- 'ComputeRegionSecurityPoliciesInsert' request conforms to.
+type ComputeRegionSecurityPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesInsert' smart constructor.
+data ComputeRegionSecurityPoliciesInsert = ComputeRegionSecurityPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesInsert' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesInsert
+newComputeRegionSecurityPoliciesInsert payload project region =
+  ComputeRegionSecurityPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesInsert where
+  type Rs ComputeRegionSecurityPoliciesInsert = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/List.hs b/gen/Gogol/Compute/RegionSecurityPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all the policies that have been configured for the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.list@.
+module Gogol.Compute.RegionSecurityPolicies.List
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesList (..),
+    newComputeRegionSecurityPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.list@ method which the
+-- 'ComputeRegionSecurityPoliciesList' request conforms to.
+type ComputeRegionSecurityPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicyList
+
+-- | List all the policies that have been configured for the specified project and region.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesList' smart constructor.
+data ComputeRegionSecurityPoliciesList = ComputeRegionSecurityPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesList' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesList
+newComputeRegionSecurityPoliciesList project region =
+  ComputeRegionSecurityPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesList where
+  type Rs ComputeRegionSecurityPoliciesList = SecurityPolicyList
+  type
+    Scopes ComputeRegionSecurityPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSecurityPoliciesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/Patch.hs b/gen/Gogol/Compute/RegionSecurityPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/Patch.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.patch@.
+module Gogol.Compute.RegionSecurityPolicies.Patch
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesPatch (..),
+    newComputeRegionSecurityPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.patch@ method which the
+-- 'ComputeRegionSecurityPoliciesPatch' request conforms to.
+type ComputeRegionSecurityPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesPatch' smart constructor.
+data ComputeRegionSecurityPoliciesPatch = ComputeRegionSecurityPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Indicates fields to be cleared as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesPatch' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesPatch
+newComputeRegionSecurityPoliciesPatch
+  payload
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        securityPolicy = securityPolicy,
+        updateMask = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesPatch where
+  type Rs ComputeRegionSecurityPoliciesPatch = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesPatch {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/PatchRule.hs b/gen/Gogol/Compute/RegionSecurityPolicies/PatchRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/PatchRule.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.PatchRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.patchRule@.
+module Gogol.Compute.RegionSecurityPolicies.PatchRule
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesPatchRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesPatchRule (..),
+    newComputeRegionSecurityPoliciesPatchRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.patchRule@ method which the
+-- 'ComputeRegionSecurityPoliciesPatchRule' request conforms to.
+type ComputeRegionSecurityPoliciesPatchRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "patchRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesPatchRule' smart constructor.
+data ComputeRegionSecurityPoliciesPatchRule = ComputeRegionSecurityPoliciesPatchRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Indicates fields to be cleared as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesPatchRule' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesPatchRule ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesPatchRule
+newComputeRegionSecurityPoliciesPatchRule
+  payload
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesPatchRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        securityPolicy = securityPolicy,
+        updateMask = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        validateOnly = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesPatchRule where
+  type Rs ComputeRegionSecurityPoliciesPatchRule = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesPatchRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesPatchRule {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      updateMask
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesPatchRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/RemoveRule.hs b/gen/Gogol/Compute/RegionSecurityPolicies/RemoveRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/RemoveRule.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.RemoveRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a rule at the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.removeRule@.
+module Gogol.Compute.RegionSecurityPolicies.RemoveRule
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesRemoveRuleResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesRemoveRule (..),
+    newComputeRegionSecurityPoliciesRemoveRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.removeRule@ method which the
+-- 'ComputeRegionSecurityPoliciesRemoveRule' request conforms to.
+type ComputeRegionSecurityPoliciesRemoveRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "removeRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a rule at the specified priority.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesRemoveRule' smart constructor.
+data ComputeRegionSecurityPoliciesRemoveRule = ComputeRegionSecurityPoliciesRemoveRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The priority of the rule to remove from the security policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesRemoveRule' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesRemoveRule ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesRemoveRule
+newComputeRegionSecurityPoliciesRemoveRule
+  project
+  region
+  securityPolicy =
+    ComputeRegionSecurityPoliciesRemoveRule
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        priority = Core.Nothing,
+        project = project,
+        region = region,
+        securityPolicy = securityPolicy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesRemoveRule where
+  type Rs ComputeRegionSecurityPoliciesRemoveRule = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesRemoveRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesRemoveRule {..} =
+    go
+      project
+      region
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesRemoveRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSecurityPolicies/SetLabels.hs b/gen/Gogol/Compute/RegionSecurityPolicies/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSecurityPolicies/SetLabels.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSecurityPolicies.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSecurityPolicies.setLabels@.
+module Gogol.Compute.RegionSecurityPolicies.SetLabels
+  ( -- * Resource
+    ComputeRegionSecurityPoliciesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSecurityPoliciesSetLabels (..),
+    newComputeRegionSecurityPoliciesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSecurityPolicies.setLabels@ method which the
+-- 'ComputeRegionSecurityPoliciesSetLabels' request conforms to.
+type ComputeRegionSecurityPoliciesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeRegionSecurityPoliciesSetLabels' smart constructor.
+data ComputeRegionSecurityPoliciesSetLabels = ComputeRegionSecurityPoliciesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSecurityPoliciesSetLabels' with the minimum fields required to make a request.
+newComputeRegionSecurityPoliciesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeRegionSecurityPoliciesSetLabels
+newComputeRegionSecurityPoliciesSetLabels
+  payload
+  project
+  region
+  resource =
+    ComputeRegionSecurityPoliciesSetLabels
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionSecurityPoliciesSetLabels where
+  type Rs ComputeRegionSecurityPoliciesSetLabels = Operation
+  type
+    Scopes ComputeRegionSecurityPoliciesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSecurityPoliciesSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSecurityPoliciesSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslCertificates/Delete.hs b/gen/Gogol/Compute/RegionSslCertificates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslCertificates/Delete.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslCertificates.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified SslCertificate resource in the region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslCertificates.delete@.
+module Gogol.Compute.RegionSslCertificates.Delete
+  ( -- * Resource
+    ComputeRegionSslCertificatesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslCertificatesDelete (..),
+    newComputeRegionSslCertificatesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslCertificates.delete@ method which the
+-- 'ComputeRegionSslCertificatesDelete' request conforms to.
+type ComputeRegionSslCertificatesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslCertificates"
+    Core.:> Core.Capture "sslCertificate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified SslCertificate resource in the region.
+--
+-- /See:/ 'newComputeRegionSslCertificatesDelete' smart constructor.
+data ComputeRegionSslCertificatesDelete = ComputeRegionSslCertificatesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SslCertificate resource to delete.
+    sslCertificate :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslCertificatesDelete' with the minimum fields required to make a request.
+newComputeRegionSslCertificatesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the SslCertificate resource to delete. See 'sslCertificate'.
+  Core.Text ->
+  ComputeRegionSslCertificatesDelete
+newComputeRegionSslCertificatesDelete project region sslCertificate =
+  ComputeRegionSslCertificatesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      sslCertificate = sslCertificate,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslCertificatesDelete where
+  type Rs ComputeRegionSslCertificatesDelete = Operation
+  type
+    Scopes ComputeRegionSslCertificatesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSslCertificatesDelete {..} =
+    go
+      project
+      region
+      sslCertificate
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSslCertificatesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslCertificates/Get.hs b/gen/Gogol/Compute/RegionSslCertificates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslCertificates/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslCertificates.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslCertificates.get@.
+module Gogol.Compute.RegionSslCertificates.Get
+  ( -- * Resource
+    ComputeRegionSslCertificatesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslCertificatesGet (..),
+    newComputeRegionSslCertificatesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslCertificates.get@ method which the
+-- 'ComputeRegionSslCertificatesGet' request conforms to.
+type ComputeRegionSslCertificatesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslCertificates"
+    Core.:> Core.Capture "sslCertificate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslCertificate
+
+-- | Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.
+--
+-- /See:/ 'newComputeRegionSslCertificatesGet' smart constructor.
+data ComputeRegionSslCertificatesGet = ComputeRegionSslCertificatesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the SslCertificate resource to return.
+    sslCertificate :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslCertificatesGet' with the minimum fields required to make a request.
+newComputeRegionSslCertificatesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the SslCertificate resource to return. See 'sslCertificate'.
+  Core.Text ->
+  ComputeRegionSslCertificatesGet
+newComputeRegionSslCertificatesGet project region sslCertificate =
+  ComputeRegionSslCertificatesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      sslCertificate = sslCertificate,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslCertificatesGet where
+  type Rs ComputeRegionSslCertificatesGet = SslCertificate
+  type
+    Scopes ComputeRegionSslCertificatesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSslCertificatesGet {..} =
+    go
+      project
+      region
+      sslCertificate
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslCertificatesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslCertificates/Insert.hs b/gen/Gogol/Compute/RegionSslCertificates/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslCertificates/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslCertificates.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a SslCertificate resource in the specified project and region using the data included in the request
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslCertificates.insert@.
+module Gogol.Compute.RegionSslCertificates.Insert
+  ( -- * Resource
+    ComputeRegionSslCertificatesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslCertificatesInsert (..),
+    newComputeRegionSslCertificatesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslCertificates.insert@ method which the
+-- 'ComputeRegionSslCertificatesInsert' request conforms to.
+type ComputeRegionSslCertificatesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslCertificate
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a SslCertificate resource in the specified project and region using the data included in the request
+--
+-- /See:/ 'newComputeRegionSslCertificatesInsert' smart constructor.
+data ComputeRegionSslCertificatesInsert = ComputeRegionSslCertificatesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslCertificate,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslCertificatesInsert' with the minimum fields required to make a request.
+newComputeRegionSslCertificatesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslCertificate ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSslCertificatesInsert
+newComputeRegionSslCertificatesInsert payload project region =
+  ComputeRegionSslCertificatesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslCertificatesInsert where
+  type Rs ComputeRegionSslCertificatesInsert = Operation
+  type
+    Scopes ComputeRegionSslCertificatesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSslCertificatesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSslCertificatesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslCertificates/List.hs b/gen/Gogol/Compute/RegionSslCertificates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslCertificates/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslCertificates.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of SslCertificate resources available to the specified project in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslCertificates.list@.
+module Gogol.Compute.RegionSslCertificates.List
+  ( -- * Resource
+    ComputeRegionSslCertificatesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslCertificatesList (..),
+    newComputeRegionSslCertificatesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslCertificates.list@ method which the
+-- 'ComputeRegionSslCertificatesList' request conforms to.
+type ComputeRegionSslCertificatesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslCertificateList
+
+-- | Retrieves the list of SslCertificate resources available to the specified project in the specified region.
+--
+-- /See:/ 'newComputeRegionSslCertificatesList' smart constructor.
+data ComputeRegionSslCertificatesList = ComputeRegionSslCertificatesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslCertificatesList' with the minimum fields required to make a request.
+newComputeRegionSslCertificatesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSslCertificatesList
+newComputeRegionSslCertificatesList project region =
+  ComputeRegionSslCertificatesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslCertificatesList where
+  type Rs ComputeRegionSslCertificatesList = SslCertificateList
+  type
+    Scopes ComputeRegionSslCertificatesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSslCertificatesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslCertificatesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/Delete.hs b/gen/Gogol/Compute/RegionSslPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.delete@.
+module Gogol.Compute.RegionSslPolicies.Delete
+  ( -- * Resource
+    ComputeRegionSslPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesDelete (..),
+    newComputeRegionSslPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.delete@ method which the
+-- 'ComputeRegionSslPoliciesDelete' request conforms to.
+type ComputeRegionSslPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.
+--
+-- /See:/ 'newComputeRegionSslPoliciesDelete' smart constructor.
+data ComputeRegionSslPoliciesDelete = ComputeRegionSslPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesDelete' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeRegionSslPoliciesDelete
+newComputeRegionSslPoliciesDelete project region sslPolicy =
+  ComputeRegionSslPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslPoliciesDelete where
+  type Rs ComputeRegionSslPoliciesDelete = Operation
+  type
+    Scopes ComputeRegionSslPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSslPoliciesDelete {..} =
+    go
+      project
+      region
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslPoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/Get.hs b/gen/Gogol/Compute/RegionSslPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all of the ordered rules present in a single specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.get@.
+module Gogol.Compute.RegionSslPolicies.Get
+  ( -- * Resource
+    ComputeRegionSslPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesGet (..),
+    newComputeRegionSslPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.get@ method which the
+-- 'ComputeRegionSslPoliciesGet' request conforms to.
+type ComputeRegionSslPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslPolicy
+
+-- | Lists all of the ordered rules present in a single specified policy.
+--
+-- /See:/ 'newComputeRegionSslPoliciesGet' smart constructor.
+data ComputeRegionSslPoliciesGet = ComputeRegionSslPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesGet' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeRegionSslPoliciesGet
+newComputeRegionSslPoliciesGet project region sslPolicy =
+  ComputeRegionSslPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslPoliciesGet where
+  type Rs ComputeRegionSslPoliciesGet = SslPolicy
+  type
+    Scopes ComputeRegionSslPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSslPoliciesGet {..} =
+    go
+      project
+      region
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/Insert.hs b/gen/Gogol/Compute/RegionSslPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new policy in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.insert@.
+module Gogol.Compute.RegionSslPolicies.Insert
+  ( -- * Resource
+    ComputeRegionSslPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesInsert (..),
+    newComputeRegionSslPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.insert@ method which the
+-- 'ComputeRegionSslPoliciesInsert' request conforms to.
+type ComputeRegionSslPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new policy in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRegionSslPoliciesInsert' smart constructor.
+data ComputeRegionSslPoliciesInsert = ComputeRegionSslPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesInsert' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSslPoliciesInsert
+newComputeRegionSslPoliciesInsert payload project region =
+  ComputeRegionSslPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslPoliciesInsert where
+  type Rs ComputeRegionSslPoliciesInsert = Operation
+  type
+    Scopes ComputeRegionSslPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSslPoliciesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslPoliciesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/List.hs b/gen/Gogol/Compute/RegionSslPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the SSL policies that have been configured for the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.list@.
+module Gogol.Compute.RegionSslPolicies.List
+  ( -- * Resource
+    ComputeRegionSslPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesList (..),
+    newComputeRegionSslPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.list@ method which the
+-- 'ComputeRegionSslPoliciesList' request conforms to.
+type ComputeRegionSslPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslPoliciesList
+
+-- | Lists all the SSL policies that have been configured for the specified project and region.
+--
+-- /See:/ 'newComputeRegionSslPoliciesList' smart constructor.
+data ComputeRegionSslPoliciesList = ComputeRegionSslPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesList' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSslPoliciesList
+newComputeRegionSslPoliciesList project region =
+  ComputeRegionSslPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslPoliciesList where
+  type Rs ComputeRegionSslPoliciesList = SslPoliciesList
+  type
+    Scopes ComputeRegionSslPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSslPoliciesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslPoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/ListAvailableFeatures.hs b/gen/Gogol/Compute/RegionSslPolicies/ListAvailableFeatures.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/ListAvailableFeatures.hs
@@ -0,0 +1,158 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.ListAvailableFeatures
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all features that can be specified in the SSL policy when using custom profile.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.listAvailableFeatures@.
+module Gogol.Compute.RegionSslPolicies.ListAvailableFeatures
+  ( -- * Resource
+    ComputeRegionSslPoliciesListAvailableFeaturesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesListAvailableFeatures (..),
+    newComputeRegionSslPoliciesListAvailableFeatures,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.listAvailableFeatures@ method which the
+-- 'ComputeRegionSslPoliciesListAvailableFeatures' request conforms to.
+type ComputeRegionSslPoliciesListAvailableFeaturesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> "listAvailableFeatures"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              SslPoliciesListAvailableFeaturesResponse
+
+-- | Lists all features that can be specified in the SSL policy when using custom profile.
+--
+-- /See:/ 'newComputeRegionSslPoliciesListAvailableFeatures' smart constructor.
+data ComputeRegionSslPoliciesListAvailableFeatures = ComputeRegionSslPoliciesListAvailableFeatures
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesListAvailableFeatures' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesListAvailableFeatures ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionSslPoliciesListAvailableFeatures
+newComputeRegionSslPoliciesListAvailableFeatures project region =
+  ComputeRegionSslPoliciesListAvailableFeatures
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionSslPoliciesListAvailableFeatures
+  where
+  type
+    Rs ComputeRegionSslPoliciesListAvailableFeatures =
+      SslPoliciesListAvailableFeaturesResponse
+  type
+    Scopes ComputeRegionSslPoliciesListAvailableFeatures =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionSslPoliciesListAvailableFeatures {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionSslPoliciesListAvailableFeaturesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionSslPolicies/Patch.hs b/gen/Gogol/Compute/RegionSslPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionSslPolicies/Patch.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionSslPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified SSL policy with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionSslPolicies.patch@.
+module Gogol.Compute.RegionSslPolicies.Patch
+  ( -- * Resource
+    ComputeRegionSslPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionSslPoliciesPatch (..),
+    newComputeRegionSslPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionSslPolicies.patch@ method which the
+-- 'ComputeRegionSslPoliciesPatch' request conforms to.
+type ComputeRegionSslPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified SSL policy with the data included in the request.
+--
+-- /See:/ 'newComputeRegionSslPoliciesPatch' smart constructor.
+data ComputeRegionSslPoliciesPatch = ComputeRegionSslPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionSslPoliciesPatch' with the minimum fields required to make a request.
+newComputeRegionSslPoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeRegionSslPoliciesPatch
+newComputeRegionSslPoliciesPatch payload project region sslPolicy =
+  ComputeRegionSslPoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionSslPoliciesPatch where
+  type Rs ComputeRegionSslPoliciesPatch = Operation
+  type
+    Scopes ComputeRegionSslPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionSslPoliciesPatch {..} =
+    go
+      project
+      region
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionSslPoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpProxies/Delete.hs b/gen/Gogol/Compute/RegionTargetHttpProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpProxies/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetHttpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpProxies.delete@.
+module Gogol.Compute.RegionTargetHttpProxies.Delete
+  ( -- * Resource
+    ComputeRegionTargetHttpProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpProxiesDelete (..),
+    newComputeRegionTargetHttpProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpProxies.delete@ method which the
+-- 'ComputeRegionTargetHttpProxiesDelete' request conforms to.
+type ComputeRegionTargetHttpProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetHttpProxy resource.
+--
+-- /See:/ 'newComputeRegionTargetHttpProxiesDelete' smart constructor.
+data ComputeRegionTargetHttpProxiesDelete = ComputeRegionTargetHttpProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpProxy resource to delete.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpProxiesDelete' with the minimum fields required to make a request.
+newComputeRegionTargetHttpProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy resource to delete. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpProxiesDelete
+newComputeRegionTargetHttpProxiesDelete
+  project
+  region
+  targetHttpProxy =
+    ComputeRegionTargetHttpProxiesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpProxy = targetHttpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpProxiesDelete where
+  type Rs ComputeRegionTargetHttpProxiesDelete = Operation
+  type
+    Scopes ComputeRegionTargetHttpProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpProxiesDelete {..} =
+    go
+      project
+      region
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpProxiesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpProxies/Get.hs b/gen/Gogol/Compute/RegionTargetHttpProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpProxies/Get.hs
@@ -0,0 +1,129 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetHttpProxy resource in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpProxies.get@.
+module Gogol.Compute.RegionTargetHttpProxies.Get
+  ( -- * Resource
+    ComputeRegionTargetHttpProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpProxiesGet (..),
+    newComputeRegionTargetHttpProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpProxies.get@ method which the
+-- 'ComputeRegionTargetHttpProxiesGet' request conforms to.
+type ComputeRegionTargetHttpProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpProxy
+
+-- | Returns the specified TargetHttpProxy resource in the specified region.
+--
+-- /See:/ 'newComputeRegionTargetHttpProxiesGet' smart constructor.
+data ComputeRegionTargetHttpProxiesGet = ComputeRegionTargetHttpProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the TargetHttpProxy resource to return.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpProxiesGet' with the minimum fields required to make a request.
+newComputeRegionTargetHttpProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy resource to return. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpProxiesGet
+newComputeRegionTargetHttpProxiesGet project region targetHttpProxy =
+  ComputeRegionTargetHttpProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      targetHttpProxy = targetHttpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpProxiesGet where
+  type Rs ComputeRegionTargetHttpProxiesGet = TargetHttpProxy
+  type
+    Scopes ComputeRegionTargetHttpProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetHttpProxiesGet {..} =
+    go
+      project
+      region
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpProxiesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpProxies/Insert.hs b/gen/Gogol/Compute/RegionTargetHttpProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpProxies/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpProxies.insert@.
+module Gogol.Compute.RegionTargetHttpProxies.Insert
+  ( -- * Resource
+    ComputeRegionTargetHttpProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpProxiesInsert (..),
+    newComputeRegionTargetHttpProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpProxies.insert@ method which the
+-- 'ComputeRegionTargetHttpProxiesInsert' request conforms to.
+type ComputeRegionTargetHttpProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRegionTargetHttpProxiesInsert' smart constructor.
+data ComputeRegionTargetHttpProxiesInsert = ComputeRegionTargetHttpProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpProxiesInsert' with the minimum fields required to make a request.
+newComputeRegionTargetHttpProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetHttpProxiesInsert
+newComputeRegionTargetHttpProxiesInsert payload project region =
+  ComputeRegionTargetHttpProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpProxiesInsert where
+  type Rs ComputeRegionTargetHttpProxiesInsert = Operation
+  type
+    Scopes ComputeRegionTargetHttpProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpProxiesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpProxiesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpProxies/List.hs b/gen/Gogol/Compute/RegionTargetHttpProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpProxies/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpProxies.list@.
+module Gogol.Compute.RegionTargetHttpProxies.List
+  ( -- * Resource
+    ComputeRegionTargetHttpProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpProxiesList (..),
+    newComputeRegionTargetHttpProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpProxies.list@ method which the
+-- 'ComputeRegionTargetHttpProxiesList' request conforms to.
+type ComputeRegionTargetHttpProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpProxyList
+
+-- | Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.
+--
+-- /See:/ 'newComputeRegionTargetHttpProxiesList' smart constructor.
+data ComputeRegionTargetHttpProxiesList = ComputeRegionTargetHttpProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpProxiesList' with the minimum fields required to make a request.
+newComputeRegionTargetHttpProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetHttpProxiesList
+newComputeRegionTargetHttpProxiesList project region =
+  ComputeRegionTargetHttpProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpProxiesList where
+  type Rs ComputeRegionTargetHttpProxiesList = TargetHttpProxyList
+  type
+    Scopes ComputeRegionTargetHttpProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetHttpProxiesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpProxiesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpProxies/SetUrlMap.hs b/gen/Gogol/Compute/RegionTargetHttpProxies/SetUrlMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpProxies/SetUrlMap.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpProxies.SetUrlMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the URL map for TargetHttpProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpProxies.setUrlMap@.
+module Gogol.Compute.RegionTargetHttpProxies.SetUrlMap
+  ( -- * Resource
+    ComputeRegionTargetHttpProxiesSetUrlMapResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpProxiesSetUrlMap (..),
+    newComputeRegionTargetHttpProxiesSetUrlMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpProxies.setUrlMap@ method which the
+-- 'ComputeRegionTargetHttpProxiesSetUrlMap' request conforms to.
+type ComputeRegionTargetHttpProxiesSetUrlMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> "setUrlMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMapReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the URL map for TargetHttpProxy.
+--
+-- /See:/ 'newComputeRegionTargetHttpProxiesSetUrlMap' smart constructor.
+data ComputeRegionTargetHttpProxiesSetUrlMap = ComputeRegionTargetHttpProxiesSetUrlMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMapReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpProxy to set a URL map for.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpProxiesSetUrlMap' with the minimum fields required to make a request.
+newComputeRegionTargetHttpProxiesSetUrlMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMapReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy to set a URL map for. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpProxiesSetUrlMap
+newComputeRegionTargetHttpProxiesSetUrlMap
+  payload
+  project
+  region
+  targetHttpProxy =
+    ComputeRegionTargetHttpProxiesSetUrlMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpProxy = targetHttpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpProxiesSetUrlMap where
+  type Rs ComputeRegionTargetHttpProxiesSetUrlMap = Operation
+  type
+    Scopes ComputeRegionTargetHttpProxiesSetUrlMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpProxiesSetUrlMap {..} =
+    go
+      project
+      region
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpProxiesSetUrlMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/Delete.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetHttpsProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.delete@.
+module Gogol.Compute.RegionTargetHttpsProxies.Delete
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesDelete (..),
+    newComputeRegionTargetHttpsProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.delete@ method which the
+-- 'ComputeRegionTargetHttpsProxiesDelete' request conforms to.
+type ComputeRegionTargetHttpsProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetHttpsProxy resource.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesDelete' smart constructor.
+data ComputeRegionTargetHttpsProxiesDelete = ComputeRegionTargetHttpsProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to delete.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesDelete' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to delete. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesDelete
+newComputeRegionTargetHttpsProxiesDelete
+  project
+  region
+  targetHttpsProxy =
+    ComputeRegionTargetHttpsProxiesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpsProxiesDelete where
+  type Rs ComputeRegionTargetHttpsProxiesDelete = Operation
+  type
+    Scopes ComputeRegionTargetHttpsProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpsProxiesDelete {..} =
+    go
+      project
+      region
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/Get.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/Get.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetHttpsProxy resource in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.get@.
+module Gogol.Compute.RegionTargetHttpsProxies.Get
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesGet (..),
+    newComputeRegionTargetHttpsProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.get@ method which the
+-- 'ComputeRegionTargetHttpsProxiesGet' request conforms to.
+type ComputeRegionTargetHttpsProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpsProxy
+
+-- | Returns the specified TargetHttpsProxy resource in the specified region.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesGet' smart constructor.
+data ComputeRegionTargetHttpsProxiesGet = ComputeRegionTargetHttpsProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the TargetHttpsProxy resource to return.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesGet' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to return. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesGet
+newComputeRegionTargetHttpsProxiesGet
+  project
+  region
+  targetHttpsProxy =
+    ComputeRegionTargetHttpsProxiesGet
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        region = region,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpsProxiesGet where
+  type Rs ComputeRegionTargetHttpsProxiesGet = TargetHttpsProxy
+  type
+    Scopes ComputeRegionTargetHttpsProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetHttpsProxiesGet {..} =
+    go
+      project
+      region
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesGetResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/Insert.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.insert@.
+module Gogol.Compute.RegionTargetHttpsProxies.Insert
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesInsert (..),
+    newComputeRegionTargetHttpsProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.insert@ method which the
+-- 'ComputeRegionTargetHttpsProxiesInsert' request conforms to.
+type ComputeRegionTargetHttpsProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpsProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesInsert' smart constructor.
+data ComputeRegionTargetHttpsProxiesInsert = ComputeRegionTargetHttpsProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesInsert' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesInsert
+newComputeRegionTargetHttpsProxiesInsert payload project region =
+  ComputeRegionTargetHttpsProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpsProxiesInsert where
+  type Rs ComputeRegionTargetHttpsProxiesInsert = Operation
+  type
+    Scopes ComputeRegionTargetHttpsProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpsProxiesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/List.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.list@.
+module Gogol.Compute.RegionTargetHttpsProxies.List
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesList (..),
+    newComputeRegionTargetHttpsProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.list@ method which the
+-- 'ComputeRegionTargetHttpsProxiesList' request conforms to.
+type ComputeRegionTargetHttpsProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpsProxyList
+
+-- | Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesList' smart constructor.
+data ComputeRegionTargetHttpsProxiesList = ComputeRegionTargetHttpsProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesList' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesList
+newComputeRegionTargetHttpsProxiesList project region =
+  ComputeRegionTargetHttpsProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpsProxiesList where
+  type Rs ComputeRegionTargetHttpsProxiesList = TargetHttpsProxyList
+  type
+    Scopes ComputeRegionTargetHttpsProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetHttpsProxiesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/Patch.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/Patch.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.patch@.
+module Gogol.Compute.RegionTargetHttpsProxies.Patch
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesPatch (..),
+    newComputeRegionTargetHttpsProxiesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.patch@ method which the
+-- 'ComputeRegionTargetHttpsProxiesPatch' request conforms to.
+type ComputeRegionTargetHttpsProxiesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpsProxy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified regional TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesPatch' smart constructor.
+data ComputeRegionTargetHttpsProxiesPatch = ComputeRegionTargetHttpsProxiesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to patch.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesPatch' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to patch. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesPatch
+newComputeRegionTargetHttpsProxiesPatch
+  payload
+  project
+  region
+  targetHttpsProxy =
+    ComputeRegionTargetHttpsProxiesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetHttpsProxiesPatch where
+  type Rs ComputeRegionTargetHttpsProxiesPatch = Operation
+  type
+    Scopes ComputeRegionTargetHttpsProxiesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpsProxiesPatch {..} =
+    go
+      project
+      region
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesPatchResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/SetSslCertificates.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/SetSslCertificates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/SetSslCertificates.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.SetSslCertificates
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces SslCertificates for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.setSslCertificates@.
+module Gogol.Compute.RegionTargetHttpsProxies.SetSslCertificates
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesSetSslCertificatesResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesSetSslCertificates (..),
+    newComputeRegionTargetHttpsProxiesSetSslCertificates,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.setSslCertificates@ method which the
+-- 'ComputeRegionTargetHttpsProxiesSetSslCertificates' request conforms to.
+type ComputeRegionTargetHttpsProxiesSetSslCertificatesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setSslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              RegionTargetHttpsProxiesSetSslCertificatesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Replaces SslCertificates for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesSetSslCertificates' smart constructor.
+data ComputeRegionTargetHttpsProxiesSetSslCertificates = ComputeRegionTargetHttpsProxiesSetSslCertificates
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionTargetHttpsProxiesSetSslCertificatesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to set an SslCertificates resource for.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesSetSslCertificates' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesSetSslCertificates ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionTargetHttpsProxiesSetSslCertificatesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to set an SslCertificates resource for. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesSetSslCertificates
+newComputeRegionTargetHttpsProxiesSetSslCertificates
+  payload
+  project
+  region
+  targetHttpsProxy =
+    ComputeRegionTargetHttpsProxiesSetSslCertificates
+      { xgafv =
+          Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionTargetHttpsProxiesSetSslCertificates
+  where
+  type
+    Rs ComputeRegionTargetHttpsProxiesSetSslCertificates =
+      Operation
+  type
+    Scopes ComputeRegionTargetHttpsProxiesSetSslCertificates =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpsProxiesSetSslCertificates {..} =
+    go
+      project
+      region
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy
+                ComputeRegionTargetHttpsProxiesSetSslCertificatesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetHttpsProxies/SetUrlMap.hs b/gen/Gogol/Compute/RegionTargetHttpsProxies/SetUrlMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetHttpsProxies/SetUrlMap.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetHttpsProxies.SetUrlMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the URL map for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetHttpsProxies.setUrlMap@.
+module Gogol.Compute.RegionTargetHttpsProxies.SetUrlMap
+  ( -- * Resource
+    ComputeRegionTargetHttpsProxiesSetUrlMapResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetHttpsProxiesSetUrlMap (..),
+    newComputeRegionTargetHttpsProxiesSetUrlMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetHttpsProxies.setUrlMap@ method which the
+-- 'ComputeRegionTargetHttpsProxiesSetUrlMap' request conforms to.
+type ComputeRegionTargetHttpsProxiesSetUrlMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setUrlMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMapReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the URL map for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeRegionTargetHttpsProxiesSetUrlMap' smart constructor.
+data ComputeRegionTargetHttpsProxiesSetUrlMap = ComputeRegionTargetHttpsProxiesSetUrlMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMapReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy to set a URL map for.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetHttpsProxiesSetUrlMap' with the minimum fields required to make a request.
+newComputeRegionTargetHttpsProxiesSetUrlMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMapReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy to set a URL map for. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeRegionTargetHttpsProxiesSetUrlMap
+newComputeRegionTargetHttpsProxiesSetUrlMap
+  payload
+  project
+  region
+  targetHttpsProxy =
+    ComputeRegionTargetHttpsProxiesSetUrlMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeRegionTargetHttpsProxiesSetUrlMap
+  where
+  type Rs ComputeRegionTargetHttpsProxiesSetUrlMap = Operation
+  type
+    Scopes ComputeRegionTargetHttpsProxiesSetUrlMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetHttpsProxiesSetUrlMap {..} =
+    go
+      project
+      region
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetHttpsProxiesSetUrlMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetTcpProxies/Delete.hs b/gen/Gogol/Compute/RegionTargetTcpProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetTcpProxies/Delete.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetTcpProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetTcpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetTcpProxies.delete@.
+module Gogol.Compute.RegionTargetTcpProxies.Delete
+  ( -- * Resource
+    ComputeRegionTargetTcpProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetTcpProxiesDelete (..),
+    newComputeRegionTargetTcpProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetTcpProxies.delete@ method which the
+-- 'ComputeRegionTargetTcpProxiesDelete' request conforms to.
+type ComputeRegionTargetTcpProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetTcpProxy resource.
+--
+-- /See:/ 'newComputeRegionTargetTcpProxiesDelete' smart constructor.
+data ComputeRegionTargetTcpProxiesDelete = ComputeRegionTargetTcpProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetTcpProxy resource to delete.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetTcpProxiesDelete' with the minimum fields required to make a request.
+newComputeRegionTargetTcpProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource to delete. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeRegionTargetTcpProxiesDelete
+newComputeRegionTargetTcpProxiesDelete
+  project
+  region
+  targetTcpProxy =
+    ComputeRegionTargetTcpProxiesDelete
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetTcpProxy = targetTcpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeRegionTargetTcpProxiesDelete where
+  type Rs ComputeRegionTargetTcpProxiesDelete = Operation
+  type
+    Scopes ComputeRegionTargetTcpProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetTcpProxiesDelete {..} =
+    go
+      project
+      region
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetTcpProxiesDeleteResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetTcpProxies/Get.hs b/gen/Gogol/Compute/RegionTargetTcpProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetTcpProxies/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetTcpProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetTcpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetTcpProxies.get@.
+module Gogol.Compute.RegionTargetTcpProxies.Get
+  ( -- * Resource
+    ComputeRegionTargetTcpProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetTcpProxiesGet (..),
+    newComputeRegionTargetTcpProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetTcpProxies.get@ method which the
+-- 'ComputeRegionTargetTcpProxiesGet' request conforms to.
+type ComputeRegionTargetTcpProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetTcpProxy
+
+-- | Returns the specified TargetTcpProxy resource.
+--
+-- /See:/ 'newComputeRegionTargetTcpProxiesGet' smart constructor.
+data ComputeRegionTargetTcpProxiesGet = ComputeRegionTargetTcpProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the TargetTcpProxy resource to return.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetTcpProxiesGet' with the minimum fields required to make a request.
+newComputeRegionTargetTcpProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource to return. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeRegionTargetTcpProxiesGet
+newComputeRegionTargetTcpProxiesGet project region targetTcpProxy =
+  ComputeRegionTargetTcpProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      targetTcpProxy = targetTcpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetTcpProxiesGet where
+  type Rs ComputeRegionTargetTcpProxiesGet = TargetTcpProxy
+  type
+    Scopes ComputeRegionTargetTcpProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetTcpProxiesGet {..} =
+    go
+      project
+      region
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionTargetTcpProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetTcpProxies/Insert.hs b/gen/Gogol/Compute/RegionTargetTcpProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetTcpProxies/Insert.hs
@@ -0,0 +1,134 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetTcpProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetTcpProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetTcpProxies.insert@.
+module Gogol.Compute.RegionTargetTcpProxies.Insert
+  ( -- * Resource
+    ComputeRegionTargetTcpProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetTcpProxiesInsert (..),
+    newComputeRegionTargetTcpProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetTcpProxies.insert@ method which the
+-- 'ComputeRegionTargetTcpProxiesInsert' request conforms to.
+type ComputeRegionTargetTcpProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetTcpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetTcpProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetTcpProxy resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRegionTargetTcpProxiesInsert' smart constructor.
+data ComputeRegionTargetTcpProxiesInsert = ComputeRegionTargetTcpProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetTcpProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetTcpProxiesInsert' with the minimum fields required to make a request.
+newComputeRegionTargetTcpProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetTcpProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetTcpProxiesInsert
+newComputeRegionTargetTcpProxiesInsert payload project region =
+  ComputeRegionTargetTcpProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetTcpProxiesInsert where
+  type Rs ComputeRegionTargetTcpProxiesInsert = Operation
+  type
+    Scopes ComputeRegionTargetTcpProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionTargetTcpProxiesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetTcpProxiesInsertResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionTargetTcpProxies/List.hs b/gen/Gogol/Compute/RegionTargetTcpProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionTargetTcpProxies/List.hs
@@ -0,0 +1,149 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionTargetTcpProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionTargetTcpProxies.list@.
+module Gogol.Compute.RegionTargetTcpProxies.List
+  ( -- * Resource
+    ComputeRegionTargetTcpProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionTargetTcpProxiesList (..),
+    newComputeRegionTargetTcpProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionTargetTcpProxies.list@ method which the
+-- 'ComputeRegionTargetTcpProxiesList' request conforms to.
+type ComputeRegionTargetTcpProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetTcpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetTcpProxyList
+
+-- | Retrieves a list of TargetTcpProxy resources available to the specified project in a given region.
+--
+-- /See:/ 'newComputeRegionTargetTcpProxiesList' smart constructor.
+data ComputeRegionTargetTcpProxiesList = ComputeRegionTargetTcpProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionTargetTcpProxiesList' with the minimum fields required to make a request.
+newComputeRegionTargetTcpProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionTargetTcpProxiesList
+newComputeRegionTargetTcpProxiesList project region =
+  ComputeRegionTargetTcpProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionTargetTcpProxiesList where
+  type Rs ComputeRegionTargetTcpProxiesList = TargetTcpProxyList
+  type
+    Scopes ComputeRegionTargetTcpProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionTargetTcpProxiesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeRegionTargetTcpProxiesListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Delete.hs b/gen/Gogol/Compute/RegionUrlMaps/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified UrlMap resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.delete@.
+module Gogol.Compute.RegionUrlMaps.Delete
+  ( -- * Resource
+    ComputeRegionUrlMapsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsDelete (..),
+    newComputeRegionUrlMapsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.delete@ method which the
+-- 'ComputeRegionUrlMapsDelete' request conforms to.
+type ComputeRegionUrlMapsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified UrlMap resource.
+--
+-- /See:/ 'newComputeRegionUrlMapsDelete' smart constructor.
+data ComputeRegionUrlMapsDelete = ComputeRegionUrlMapsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to delete.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsDelete' with the minimum fields required to make a request.
+newComputeRegionUrlMapsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to delete. See 'urlMap'.
+  Core.Text ->
+  ComputeRegionUrlMapsDelete
+newComputeRegionUrlMapsDelete project region urlMap =
+  ComputeRegionUrlMapsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsDelete where
+  type Rs ComputeRegionUrlMapsDelete = Operation
+  type
+    Scopes ComputeRegionUrlMapsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionUrlMapsDelete {..} =
+    go
+      project
+      region
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Get.hs b/gen/Gogol/Compute/RegionUrlMaps/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified UrlMap resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.get@.
+module Gogol.Compute.RegionUrlMaps.Get
+  ( -- * Resource
+    ComputeRegionUrlMapsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsGet (..),
+    newComputeRegionUrlMapsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.get@ method which the
+-- 'ComputeRegionUrlMapsGet' request conforms to.
+type ComputeRegionUrlMapsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UrlMap
+
+-- | Returns the specified UrlMap resource.
+--
+-- /See:/ 'newComputeRegionUrlMapsGet' smart constructor.
+data ComputeRegionUrlMapsGet = ComputeRegionUrlMapsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to return.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsGet' with the minimum fields required to make a request.
+newComputeRegionUrlMapsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to return. See 'urlMap'.
+  Core.Text ->
+  ComputeRegionUrlMapsGet
+newComputeRegionUrlMapsGet project region urlMap =
+  ComputeRegionUrlMapsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsGet where
+  type Rs ComputeRegionUrlMapsGet = UrlMap
+  type
+    Scopes ComputeRegionUrlMapsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionUrlMapsGet {..} =
+    go
+      project
+      region
+      urlMap
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Insert.hs b/gen/Gogol/Compute/RegionUrlMaps/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a UrlMap resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.insert@.
+module Gogol.Compute.RegionUrlMaps.Insert
+  ( -- * Resource
+    ComputeRegionUrlMapsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsInsert (..),
+    newComputeRegionUrlMapsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.insert@ method which the
+-- 'ComputeRegionUrlMapsInsert' request conforms to.
+type ComputeRegionUrlMapsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a UrlMap resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRegionUrlMapsInsert' smart constructor.
+data ComputeRegionUrlMapsInsert = ComputeRegionUrlMapsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsInsert' with the minimum fields required to make a request.
+newComputeRegionUrlMapsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionUrlMapsInsert
+newComputeRegionUrlMapsInsert payload project region =
+  ComputeRegionUrlMapsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsInsert where
+  type Rs ComputeRegionUrlMapsInsert = Operation
+  type
+    Scopes ComputeRegionUrlMapsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionUrlMapsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/List.hs b/gen/Gogol/Compute/RegionUrlMaps/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of UrlMap resources available to the specified project in the specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.list@.
+module Gogol.Compute.RegionUrlMaps.List
+  ( -- * Resource
+    ComputeRegionUrlMapsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsList (..),
+    newComputeRegionUrlMapsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.list@ method which the
+-- 'ComputeRegionUrlMapsList' request conforms to.
+type ComputeRegionUrlMapsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UrlMapList
+
+-- | Retrieves the list of UrlMap resources available to the specified project in the specified region.
+--
+-- /See:/ 'newComputeRegionUrlMapsList' smart constructor.
+data ComputeRegionUrlMapsList = ComputeRegionUrlMapsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsList' with the minimum fields required to make a request.
+newComputeRegionUrlMapsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeRegionUrlMapsList
+newComputeRegionUrlMapsList project region =
+  ComputeRegionUrlMapsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsList where
+  type Rs ComputeRegionUrlMapsList = UrlMapList
+  type
+    Scopes ComputeRegionUrlMapsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionUrlMapsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Patch.hs b/gen/Gogol/Compute/RegionUrlMaps/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Patch.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.patch@.
+module Gogol.Compute.RegionUrlMaps.Patch
+  ( -- * Resource
+    ComputeRegionUrlMapsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsPatch (..),
+    newComputeRegionUrlMapsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.patch@ method which the
+-- 'ComputeRegionUrlMapsPatch' request conforms to.
+type ComputeRegionUrlMapsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRegionUrlMapsPatch' smart constructor.
+data ComputeRegionUrlMapsPatch = ComputeRegionUrlMapsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to patch.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsPatch' with the minimum fields required to make a request.
+newComputeRegionUrlMapsPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to patch. See 'urlMap'.
+  Core.Text ->
+  ComputeRegionUrlMapsPatch
+newComputeRegionUrlMapsPatch payload project region urlMap =
+  ComputeRegionUrlMapsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsPatch where
+  type Rs ComputeRegionUrlMapsPatch = Operation
+  type
+    Scopes ComputeRegionUrlMapsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionUrlMapsPatch {..} =
+    go
+      project
+      region
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Update.hs b/gen/Gogol/Compute/RegionUrlMaps/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Update.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified UrlMap resource with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.update@.
+module Gogol.Compute.RegionUrlMaps.Update
+  ( -- * Resource
+    ComputeRegionUrlMapsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsUpdate (..),
+    newComputeRegionUrlMapsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.update@ method which the
+-- 'ComputeRegionUrlMapsUpdate' request conforms to.
+type ComputeRegionUrlMapsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified UrlMap resource with the data included in the request.
+--
+-- /See:/ 'newComputeRegionUrlMapsUpdate' smart constructor.
+data ComputeRegionUrlMapsUpdate = ComputeRegionUrlMapsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to update.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsUpdate' with the minimum fields required to make a request.
+newComputeRegionUrlMapsUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to update. See 'urlMap'.
+  Core.Text ->
+  ComputeRegionUrlMapsUpdate
+newComputeRegionUrlMapsUpdate payload project region urlMap =
+  ComputeRegionUrlMapsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsUpdate where
+  type Rs ComputeRegionUrlMapsUpdate = Operation
+  type
+    Scopes ComputeRegionUrlMapsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionUrlMapsUpdate {..} =
+    go
+      project
+      region
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionUrlMaps/Validate.hs b/gen/Gogol/Compute/RegionUrlMaps/Validate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionUrlMaps/Validate.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionUrlMaps.Validate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionUrlMaps.validate@.
+module Gogol.Compute.RegionUrlMaps.Validate
+  ( -- * Resource
+    ComputeRegionUrlMapsValidateResource,
+
+    -- ** Constructing a Request
+    ComputeRegionUrlMapsValidate (..),
+    newComputeRegionUrlMapsValidate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionUrlMaps.validate@ method which the
+-- 'ComputeRegionUrlMapsValidate' request conforms to.
+type ComputeRegionUrlMapsValidateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> "validate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionUrlMapsValidateRequest
+    Core.:> Core.Post '[Core.JSON] UrlMapsValidateResponse
+
+-- | Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.
+--
+-- /See:/ 'newComputeRegionUrlMapsValidate' smart constructor.
+data ComputeRegionUrlMapsValidate = ComputeRegionUrlMapsValidate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionUrlMapsValidateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to be validated as.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionUrlMapsValidate' with the minimum fields required to make a request.
+newComputeRegionUrlMapsValidate ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionUrlMapsValidateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to be validated as. See 'urlMap'.
+  Core.Text ->
+  ComputeRegionUrlMapsValidate
+newComputeRegionUrlMapsValidate payload project region urlMap =
+  ComputeRegionUrlMapsValidate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeRegionUrlMapsValidate where
+  type Rs ComputeRegionUrlMapsValidate = UrlMapsValidateResponse
+  type
+    Scopes ComputeRegionUrlMapsValidate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRegionUrlMapsValidate {..} =
+    go
+      project
+      region
+      urlMap
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionUrlMapsValidateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/RegionZones/List.hs b/gen/Gogol/Compute/RegionZones/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/RegionZones/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.RegionZones.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of Zone resources under the specific region available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regionZones.list@.
+module Gogol.Compute.RegionZones.List
+  ( -- * Resource
+    ComputeRegionZonesListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionZonesList (..),
+    newComputeRegionZonesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regionZones.list@ method which the
+-- 'ComputeRegionZonesList' request conforms to.
+type ComputeRegionZonesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "zones"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ZoneList
+
+-- | Retrieves the list of Zone resources under the specific region available to the specified project.
+--
+-- /See:/ 'newComputeRegionZonesList' smart constructor.
+data ComputeRegionZonesList = ComputeRegionZonesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionZonesList' with the minimum fields required to make a request.
+newComputeRegionZonesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Region for this request. See 'region'.
+  Core.Text ->
+  ComputeRegionZonesList
+newComputeRegionZonesList project region =
+  ComputeRegionZonesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionZonesList where
+  type Rs ComputeRegionZonesList = ZoneList
+  type
+    Scopes ComputeRegionZonesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionZonesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionZonesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Regions/Get.hs b/gen/Gogol/Compute/Regions/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Regions/Get.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Regions.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request. This method fails if the quota information is unavailable for the region and if the organization policy constraint compute.requireBasicQuotaInResponse is enforced. This constraint, when enforced, disables the fail-open behaviour when quota information (the @items.quotas@ field) is unavailable for the region. It is recommended to use the default setting for the constraint unless your application requires the fail-closed behaviour for this method.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regions.get@.
+module Gogol.Compute.Regions.Get
+  ( -- * Resource
+    ComputeRegionsGetResource,
+
+    -- ** Constructing a Request
+    ComputeRegionsGet (..),
+    newComputeRegionsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regions.get@ method which the
+-- 'ComputeRegionsGet' request conforms to.
+type ComputeRegionsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Region
+
+-- | Returns the specified Region resource. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request. This method fails if the quota information is unavailable for the region and if the organization policy constraint compute.requireBasicQuotaInResponse is enforced. This constraint, when enforced, disables the fail-open behaviour when quota information (the @items.quotas@ field) is unavailable for the region. It is recommended to use the default setting for the constraint unless your application requires the fail-closed behaviour for this method.
+--
+-- /See:/ 'newComputeRegionsGet' smart constructor.
+data ComputeRegionsGet = ComputeRegionsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region resource to return.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionsGet' with the minimum fields required to make a request.
+newComputeRegionsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region resource to return. See 'region'.
+  Core.Text ->
+  ComputeRegionsGet
+newComputeRegionsGet project region =
+  ComputeRegionsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionsGet where
+  type Rs ComputeRegionsGet = Region
+  type
+    Scopes ComputeRegionsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionsGet {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Regions/List.hs b/gen/Gogol/Compute/Regions/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Regions/List.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Regions.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of region resources available to the specified project. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @items.quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request. This method fails if the quota information is unavailable for the region and if the organization policy constraint compute.requireBasicQuotaInResponse is enforced. This constraint, when enforced, disables the fail-open behaviour when quota information (the @items.quotas@ field) is unavailable for the region. It is recommended to use the default setting for the constraint unless your application requires the fail-closed behaviour for this method.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.regions.list@.
+module Gogol.Compute.Regions.List
+  ( -- * Resource
+    ComputeRegionsListResource,
+
+    -- ** Constructing a Request
+    ComputeRegionsList (..),
+    newComputeRegionsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.regions.list@ method which the
+-- 'ComputeRegionsList' request conforms to.
+type ComputeRegionsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RegionList
+
+-- | Retrieves the list of region resources available to the specified project. To decrease latency for this method, you can optionally omit any unneeded information from the response by using a field mask. This practice is especially recommended for unused quota information (the @items.quotas@ field). To exclude one or more fields, set your request\'s @fields@ query parameter to only include the fields you need. For example, to only include the @id@ and @selfLink@ fields, add the query parameter @?fields=id,selfLink@ to your request. This method fails if the quota information is unavailable for the region and if the organization policy constraint compute.requireBasicQuotaInResponse is enforced. This constraint, when enforced, disables the fail-open behaviour when quota information (the @items.quotas@ field) is unavailable for the region. It is recommended to use the default setting for the constraint unless your application requires the fail-closed behaviour for this method.
+--
+-- /See:/ 'newComputeRegionsList' smart constructor.
+data ComputeRegionsList = ComputeRegionsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRegionsList' with the minimum fields required to make a request.
+newComputeRegionsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeRegionsList
+newComputeRegionsList project =
+  ComputeRegionsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRegionsList where
+  type Rs ComputeRegionsList = RegionList
+  type
+    Scopes ComputeRegionsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRegionsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRegionsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/AggregatedList.hs b/gen/Gogol/Compute/Reservations/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.aggregatedList@.
+module Gogol.Compute.Reservations.AggregatedList
+  ( -- * Resource
+    ComputeReservationsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsAggregatedList (..),
+    newComputeReservationsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.aggregatedList@ method which the
+-- 'ComputeReservationsAggregatedList' request conforms to.
+type ComputeReservationsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "reservations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ReservationAggregatedList
+
+-- | Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeReservationsAggregatedList' smart constructor.
+data ComputeReservationsAggregatedList = ComputeReservationsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsAggregatedList' with the minimum fields required to make a request.
+newComputeReservationsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeReservationsAggregatedList
+newComputeReservationsAggregatedList project =
+  ComputeReservationsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeReservationsAggregatedList where
+  type
+    Rs ComputeReservationsAggregatedList =
+      ReservationAggregatedList
+  type
+    Scopes ComputeReservationsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeReservationsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeReservationsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/Delete.hs b/gen/Gogol/Compute/Reservations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified reservation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.delete@.
+module Gogol.Compute.Reservations.Delete
+  ( -- * Resource
+    ComputeReservationsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsDelete (..),
+    newComputeReservationsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.delete@ method which the
+-- 'ComputeReservationsDelete' request conforms to.
+type ComputeReservationsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "reservation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified reservation.
+--
+-- /See:/ 'newComputeReservationsDelete' smart constructor.
+data ComputeReservationsDelete = ComputeReservationsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the reservation to delete.
+    reservation :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsDelete' with the minimum fields required to make a request.
+newComputeReservationsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the reservation to delete. See 'reservation'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsDelete
+newComputeReservationsDelete project reservation zone =
+  ComputeReservationsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      reservation = reservation,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsDelete where
+  type Rs ComputeReservationsDelete = Operation
+  type
+    Scopes ComputeReservationsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeReservationsDelete {..} =
+    go
+      project
+      zone
+      reservation
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/Get.hs b/gen/Gogol/Compute/Reservations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves information about the specified reservation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.get@.
+module Gogol.Compute.Reservations.Get
+  ( -- * Resource
+    ComputeReservationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsGet (..),
+    newComputeReservationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.get@ method which the
+-- 'ComputeReservationsGet' request conforms to.
+type ComputeReservationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "reservation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Reservation
+
+-- | Retrieves information about the specified reservation.
+--
+-- /See:/ 'newComputeReservationsGet' smart constructor.
+data ComputeReservationsGet = ComputeReservationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the reservation to retrieve.
+    reservation :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsGet' with the minimum fields required to make a request.
+newComputeReservationsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the reservation to retrieve. See 'reservation'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsGet
+newComputeReservationsGet project reservation zone =
+  ComputeReservationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      reservation = reservation,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsGet where
+  type Rs ComputeReservationsGet = Reservation
+  type
+    Scopes ComputeReservationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeReservationsGet {..} =
+    go
+      project
+      zone
+      reservation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/GetIamPolicy.hs b/gen/Gogol/Compute/Reservations/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.getIamPolicy@.
+module Gogol.Compute.Reservations.GetIamPolicy
+  ( -- * Resource
+    ComputeReservationsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsGetIamPolicy (..),
+    newComputeReservationsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.getIamPolicy@ method which the
+-- 'ComputeReservationsGetIamPolicy' request conforms to.
+type ComputeReservationsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeReservationsGetIamPolicy' smart constructor.
+data ComputeReservationsGetIamPolicy = ComputeReservationsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsGetIamPolicy' with the minimum fields required to make a request.
+newComputeReservationsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsGetIamPolicy
+newComputeReservationsGetIamPolicy project resource zone =
+  ComputeReservationsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsGetIamPolicy where
+  type Rs ComputeReservationsGetIamPolicy = Policy
+  type
+    Scopes ComputeReservationsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeReservationsGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/Insert.hs b/gen/Gogol/Compute/Reservations/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new reservation. For more information, read Reserving zonal resources.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.insert@.
+module Gogol.Compute.Reservations.Insert
+  ( -- * Resource
+    ComputeReservationsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsInsert (..),
+    newComputeReservationsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.insert@ method which the
+-- 'ComputeReservationsInsert' request conforms to.
+type ComputeReservationsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Reservation
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new reservation. For more information, read Reserving zonal resources.
+--
+-- /See:/ 'newComputeReservationsInsert' smart constructor.
+data ComputeReservationsInsert = ComputeReservationsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Reservation,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsInsert' with the minimum fields required to make a request.
+newComputeReservationsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Reservation ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsInsert
+newComputeReservationsInsert payload project zone =
+  ComputeReservationsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsInsert where
+  type Rs ComputeReservationsInsert = Operation
+  type
+    Scopes ComputeReservationsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeReservationsInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/List.hs b/gen/Gogol/Compute/Reservations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- A list of all the reservations that have been configured for the specified project in specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.list@.
+module Gogol.Compute.Reservations.List
+  ( -- * Resource
+    ComputeReservationsListResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsList (..),
+    newComputeReservationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.list@ method which the
+-- 'ComputeReservationsList' request conforms to.
+type ComputeReservationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ReservationList
+
+-- | A list of all the reservations that have been configured for the specified project in specified zone.
+--
+-- /See:/ 'newComputeReservationsList' smart constructor.
+data ComputeReservationsList = ComputeReservationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsList' with the minimum fields required to make a request.
+newComputeReservationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsList
+newComputeReservationsList project zone =
+  ComputeReservationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsList where
+  type Rs ComputeReservationsList = ReservationList
+  type
+    Scopes ComputeReservationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeReservationsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/Resize.hs b/gen/Gogol/Compute/Reservations/Resize.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/Resize.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.Resize
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.resize@.
+module Gogol.Compute.Reservations.Resize
+  ( -- * Resource
+    ComputeReservationsResizeResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsResize (..),
+    newComputeReservationsResize,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.resize@ method which the
+-- 'ComputeReservationsResize' request conforms to.
+type ComputeReservationsResizeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "reservation" Core.Text
+    Core.:> "resize"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ReservationsResizeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.
+--
+-- /See:/ 'newComputeReservationsResize' smart constructor.
+data ComputeReservationsResize = ComputeReservationsResize
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ReservationsResizeRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the reservation to update.
+    reservation :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsResize' with the minimum fields required to make a request.
+newComputeReservationsResize ::
+  -- |  Multipart request metadata. See 'payload'.
+  ReservationsResizeRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the reservation to update. See 'reservation'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsResize
+newComputeReservationsResize payload project reservation zone =
+  ComputeReservationsResize
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      reservation = reservation,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsResize where
+  type Rs ComputeReservationsResize = Operation
+  type
+    Scopes ComputeReservationsResize =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeReservationsResize {..} =
+    go
+      project
+      zone
+      reservation
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsResizeResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/SetIamPolicy.hs b/gen/Gogol/Compute/Reservations/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.setIamPolicy@.
+module Gogol.Compute.Reservations.SetIamPolicy
+  ( -- * Resource
+    ComputeReservationsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsSetIamPolicy (..),
+    newComputeReservationsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.setIamPolicy@ method which the
+-- 'ComputeReservationsSetIamPolicy' request conforms to.
+type ComputeReservationsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeReservationsSetIamPolicy' smart constructor.
+data ComputeReservationsSetIamPolicy = ComputeReservationsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsSetIamPolicy' with the minimum fields required to make a request.
+newComputeReservationsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsSetIamPolicy
+newComputeReservationsSetIamPolicy payload project resource zone =
+  ComputeReservationsSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsSetIamPolicy where
+  type Rs ComputeReservationsSetIamPolicy = Policy
+  type
+    Scopes ComputeReservationsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeReservationsSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/TestIamPermissions.hs b/gen/Gogol/Compute/Reservations/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.testIamPermissions@.
+module Gogol.Compute.Reservations.TestIamPermissions
+  ( -- * Resource
+    ComputeReservationsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsTestIamPermissions (..),
+    newComputeReservationsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.testIamPermissions@ method which the
+-- 'ComputeReservationsTestIamPermissions' request conforms to.
+type ComputeReservationsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeReservationsTestIamPermissions' smart constructor.
+data ComputeReservationsTestIamPermissions = ComputeReservationsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsTestIamPermissions' with the minimum fields required to make a request.
+newComputeReservationsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsTestIamPermissions
+newComputeReservationsTestIamPermissions
+  payload
+  project
+  resource
+  zone =
+    ComputeReservationsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeReservationsTestIamPermissions where
+  type
+    Rs ComputeReservationsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeReservationsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeReservationsTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeReservationsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Reservations/Update.hs b/gen/Gogol/Compute/Reservations/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Reservations/Update.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Reservations.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Update share settings of the reservation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.reservations.update@.
+module Gogol.Compute.Reservations.Update
+  ( -- * Resource
+    ComputeReservationsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeReservationsUpdate (..),
+    newComputeReservationsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.reservations.update@ method which the
+-- 'ComputeReservationsUpdate' request conforms to.
+type ComputeReservationsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "reservations"
+    Core.:> Core.Capture "reservation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParams "paths" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Reservation
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Update share settings of the reservation.
+--
+-- /See:/ 'newComputeReservationsUpdate' smart constructor.
+data ComputeReservationsUpdate = ComputeReservationsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    paths :: (Core.Maybe [Core.Text]),
+    -- | Multipart request metadata.
+    payload :: Reservation,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the reservation to update.
+    reservation :: Core.Text,
+    -- | Update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeReservationsUpdate' with the minimum fields required to make a request.
+newComputeReservationsUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Reservation ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the reservation to update. See 'reservation'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeReservationsUpdate
+newComputeReservationsUpdate payload project reservation zone =
+  ComputeReservationsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      paths = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      reservation = reservation,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeReservationsUpdate where
+  type Rs ComputeReservationsUpdate = Operation
+  type
+    Scopes ComputeReservationsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeReservationsUpdate {..} =
+    go
+      project
+      zone
+      reservation
+      xgafv
+      accessToken
+      callback
+      (paths Core.^. Core._Default)
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeReservationsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/AggregatedList.hs b/gen/Gogol/Compute/ResourcePolicies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.aggregatedList@.
+module Gogol.Compute.ResourcePolicies.AggregatedList
+  ( -- * Resource
+    ComputeResourcePoliciesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesAggregatedList (..),
+    newComputeResourcePoliciesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.aggregatedList@ method which the
+-- 'ComputeResourcePoliciesAggregatedList' request conforms to.
+type ComputeResourcePoliciesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "resourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ResourcePolicyAggregatedList
+
+-- | Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeResourcePoliciesAggregatedList' smart constructor.
+data ComputeResourcePoliciesAggregatedList = ComputeResourcePoliciesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesAggregatedList' with the minimum fields required to make a request.
+newComputeResourcePoliciesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeResourcePoliciesAggregatedList
+newComputeResourcePoliciesAggregatedList project =
+  ComputeResourcePoliciesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesAggregatedList where
+  type
+    Rs ComputeResourcePoliciesAggregatedList =
+      ResourcePolicyAggregatedList
+  type
+    Scopes ComputeResourcePoliciesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeResourcePoliciesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeResourcePoliciesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/Delete.hs b/gen/Gogol/Compute/ResourcePolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified resource policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.delete@.
+module Gogol.Compute.ResourcePolicies.Delete
+  ( -- * Resource
+    ComputeResourcePoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesDelete (..),
+    newComputeResourcePoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.delete@ method which the
+-- 'ComputeResourcePoliciesDelete' request conforms to.
+type ComputeResourcePoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resourcePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified resource policy.
+--
+-- /See:/ 'newComputeResourcePoliciesDelete' smart constructor.
+data ComputeResourcePoliciesDelete = ComputeResourcePoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the resource policy to delete.
+    resourcePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesDelete' with the minimum fields required to make a request.
+newComputeResourcePoliciesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the resource policy to delete. See 'resourcePolicy'.
+  Core.Text ->
+  ComputeResourcePoliciesDelete
+newComputeResourcePoliciesDelete project region resourcePolicy =
+  ComputeResourcePoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resourcePolicy = resourcePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesDelete where
+  type Rs ComputeResourcePoliciesDelete = Operation
+  type
+    Scopes ComputeResourcePoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeResourcePoliciesDelete {..} =
+    go
+      project
+      region
+      resourcePolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeResourcePoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/Get.hs b/gen/Gogol/Compute/ResourcePolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves all information of the specified resource policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.get@.
+module Gogol.Compute.ResourcePolicies.Get
+  ( -- * Resource
+    ComputeResourcePoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesGet (..),
+    newComputeResourcePoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.get@ method which the
+-- 'ComputeResourcePoliciesGet' request conforms to.
+type ComputeResourcePoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resourcePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ResourcePolicy
+
+-- | Retrieves all information of the specified resource policy.
+--
+-- /See:/ 'newComputeResourcePoliciesGet' smart constructor.
+data ComputeResourcePoliciesGet = ComputeResourcePoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the resource policy to retrieve.
+    resourcePolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesGet' with the minimum fields required to make a request.
+newComputeResourcePoliciesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the resource policy to retrieve. See 'resourcePolicy'.
+  Core.Text ->
+  ComputeResourcePoliciesGet
+newComputeResourcePoliciesGet project region resourcePolicy =
+  ComputeResourcePoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      resourcePolicy = resourcePolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesGet where
+  type Rs ComputeResourcePoliciesGet = ResourcePolicy
+  type
+    Scopes ComputeResourcePoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeResourcePoliciesGet {..} =
+    go
+      project
+      region
+      resourcePolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeResourcePoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/GetIamPolicy.hs b/gen/Gogol/Compute/ResourcePolicies/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/GetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.getIamPolicy@.
+module Gogol.Compute.ResourcePolicies.GetIamPolicy
+  ( -- * Resource
+    ComputeResourcePoliciesGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesGetIamPolicy (..),
+    newComputeResourcePoliciesGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.getIamPolicy@ method which the
+-- 'ComputeResourcePoliciesGetIamPolicy' request conforms to.
+type ComputeResourcePoliciesGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeResourcePoliciesGetIamPolicy' smart constructor.
+data ComputeResourcePoliciesGetIamPolicy = ComputeResourcePoliciesGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesGetIamPolicy' with the minimum fields required to make a request.
+newComputeResourcePoliciesGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeResourcePoliciesGetIamPolicy
+newComputeResourcePoliciesGetIamPolicy project region resource =
+  ComputeResourcePoliciesGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesGetIamPolicy where
+  type Rs ComputeResourcePoliciesGetIamPolicy = Policy
+  type
+    Scopes ComputeResourcePoliciesGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeResourcePoliciesGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeResourcePoliciesGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/Insert.hs b/gen/Gogol/Compute/ResourcePolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new resource policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.insert@.
+module Gogol.Compute.ResourcePolicies.Insert
+  ( -- * Resource
+    ComputeResourcePoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesInsert (..),
+    newComputeResourcePoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.insert@ method which the
+-- 'ComputeResourcePoliciesInsert' request conforms to.
+type ComputeResourcePoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourcePolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new resource policy.
+--
+-- /See:/ 'newComputeResourcePoliciesInsert' smart constructor.
+data ComputeResourcePoliciesInsert = ComputeResourcePoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ResourcePolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesInsert' with the minimum fields required to make a request.
+newComputeResourcePoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResourcePolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeResourcePoliciesInsert
+newComputeResourcePoliciesInsert payload project region =
+  ComputeResourcePoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesInsert where
+  type Rs ComputeResourcePoliciesInsert = Operation
+  type
+    Scopes ComputeResourcePoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeResourcePoliciesInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeResourcePoliciesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/List.hs b/gen/Gogol/Compute/ResourcePolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- A list all the resource policies that have been configured for the specified project in specified region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.list@.
+module Gogol.Compute.ResourcePolicies.List
+  ( -- * Resource
+    ComputeResourcePoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesList (..),
+    newComputeResourcePoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.list@ method which the
+-- 'ComputeResourcePoliciesList' request conforms to.
+type ComputeResourcePoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ResourcePolicyList
+
+-- | A list all the resource policies that have been configured for the specified project in specified region.
+--
+-- /See:/ 'newComputeResourcePoliciesList' smart constructor.
+data ComputeResourcePoliciesList = ComputeResourcePoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesList' with the minimum fields required to make a request.
+newComputeResourcePoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeResourcePoliciesList
+newComputeResourcePoliciesList project region =
+  ComputeResourcePoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeResourcePoliciesList where
+  type Rs ComputeResourcePoliciesList = ResourcePolicyList
+  type
+    Scopes ComputeResourcePoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeResourcePoliciesList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeResourcePoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/Patch.hs b/gen/Gogol/Compute/ResourcePolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/Patch.hs
@@ -0,0 +1,148 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Modify the specified resource policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.patch@.
+module Gogol.Compute.ResourcePolicies.Patch
+  ( -- * Resource
+    ComputeResourcePoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesPatch (..),
+    newComputeResourcePoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.patch@ method which the
+-- 'ComputeResourcePoliciesPatch' request conforms to.
+type ComputeResourcePoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resourcePolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ResourcePolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Modify the specified resource policy.
+--
+-- /See:/ 'newComputeResourcePoliciesPatch' smart constructor.
+data ComputeResourcePoliciesPatch = ComputeResourcePoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ResourcePolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Id of the resource policy to patch.
+    resourcePolicy :: Core.Text,
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesPatch' with the minimum fields required to make a request.
+newComputeResourcePoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  ResourcePolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Id of the resource policy to patch. See 'resourcePolicy'.
+  Core.Text ->
+  ComputeResourcePoliciesPatch
+newComputeResourcePoliciesPatch
+  payload
+  project
+  region
+  resourcePolicy =
+    ComputeResourcePoliciesPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        resourcePolicy = resourcePolicy,
+        updateMask = Core.Nothing,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeResourcePoliciesPatch where
+  type Rs ComputeResourcePoliciesPatch = Operation
+  type
+    Scopes ComputeResourcePoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeResourcePoliciesPatch {..} =
+    go
+      project
+      region
+      resourcePolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeResourcePoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/SetIamPolicy.hs b/gen/Gogol/Compute/ResourcePolicies/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/SetIamPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.setIamPolicy@.
+module Gogol.Compute.ResourcePolicies.SetIamPolicy
+  ( -- * Resource
+    ComputeResourcePoliciesSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesSetIamPolicy (..),
+    newComputeResourcePoliciesSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.setIamPolicy@ method which the
+-- 'ComputeResourcePoliciesSetIamPolicy' request conforms to.
+type ComputeResourcePoliciesSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeResourcePoliciesSetIamPolicy' smart constructor.
+data ComputeResourcePoliciesSetIamPolicy = ComputeResourcePoliciesSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesSetIamPolicy' with the minimum fields required to make a request.
+newComputeResourcePoliciesSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeResourcePoliciesSetIamPolicy
+newComputeResourcePoliciesSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeResourcePoliciesSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeResourcePoliciesSetIamPolicy where
+  type Rs ComputeResourcePoliciesSetIamPolicy = Policy
+  type
+    Scopes ComputeResourcePoliciesSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeResourcePoliciesSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeResourcePoliciesSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ResourcePolicies/TestIamPermissions.hs b/gen/Gogol/Compute/ResourcePolicies/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ResourcePolicies/TestIamPermissions.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ResourcePolicies.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.resourcePolicies.testIamPermissions@.
+module Gogol.Compute.ResourcePolicies.TestIamPermissions
+  ( -- * Resource
+    ComputeResourcePoliciesTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeResourcePoliciesTestIamPermissions (..),
+    newComputeResourcePoliciesTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.resourcePolicies.testIamPermissions@ method which the
+-- 'ComputeResourcePoliciesTestIamPermissions' request conforms to.
+type ComputeResourcePoliciesTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "resourcePolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeResourcePoliciesTestIamPermissions' smart constructor.
+data ComputeResourcePoliciesTestIamPermissions = ComputeResourcePoliciesTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeResourcePoliciesTestIamPermissions' with the minimum fields required to make a request.
+newComputeResourcePoliciesTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeResourcePoliciesTestIamPermissions
+newComputeResourcePoliciesTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeResourcePoliciesTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeResourcePoliciesTestIamPermissions
+  where
+  type
+    Rs ComputeResourcePoliciesTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeResourcePoliciesTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeResourcePoliciesTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeResourcePoliciesTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/AggregatedList.hs b/gen/Gogol/Compute/Routers/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.aggregatedList@.
+module Gogol.Compute.Routers.AggregatedList
+  ( -- * Resource
+    ComputeRoutersAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersAggregatedList (..),
+    newComputeRoutersAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.aggregatedList@ method which the
+-- 'ComputeRoutersAggregatedList' request conforms to.
+type ComputeRoutersAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "routers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RouterAggregatedList
+
+-- | Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeRoutersAggregatedList' smart constructor.
+data ComputeRoutersAggregatedList = ComputeRoutersAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersAggregatedList' with the minimum fields required to make a request.
+newComputeRoutersAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeRoutersAggregatedList
+newComputeRoutersAggregatedList project =
+  ComputeRoutersAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersAggregatedList where
+  type Rs ComputeRoutersAggregatedList = RouterAggregatedList
+  type
+    Scopes ComputeRoutersAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Delete.hs b/gen/Gogol/Compute/Routers/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Router resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.delete@.
+module Gogol.Compute.Routers.Delete
+  ( -- * Resource
+    ComputeRoutersDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersDelete (..),
+    newComputeRoutersDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.delete@ method which the
+-- 'ComputeRoutersDelete' request conforms to.
+type ComputeRoutersDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified Router resource.
+--
+-- /See:/ 'newComputeRoutersDelete' smart constructor.
+data ComputeRoutersDelete = ComputeRoutersDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource to delete.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersDelete' with the minimum fields required to make a request.
+newComputeRoutersDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to delete. See 'router'.
+  Core.Text ->
+  ComputeRoutersDelete
+newComputeRoutersDelete project region router =
+  ComputeRoutersDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersDelete where
+  type Rs ComputeRoutersDelete = Operation
+  type
+    Scopes ComputeRoutersDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersDelete {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/DeleteRoutePolicy.hs b/gen/Gogol/Compute/Routers/DeleteRoutePolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/DeleteRoutePolicy.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.DeleteRoutePolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes Route Policy
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.deleteRoutePolicy@.
+module Gogol.Compute.Routers.DeleteRoutePolicy
+  ( -- * Resource
+    ComputeRoutersDeleteRoutePolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersDeleteRoutePolicy (..),
+    newComputeRoutersDeleteRoutePolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.deleteRoutePolicy@ method which the
+-- 'ComputeRoutersDeleteRoutePolicy' request conforms to.
+type ComputeRoutersDeleteRoutePolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "deleteRoutePolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "policy" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes Route Policy
+--
+-- /See:/ 'newComputeRoutersDeleteRoutePolicy' smart constructor.
+data ComputeRoutersDeleteRoutePolicy = ComputeRoutersDeleteRoutePolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The Policy name for this request. Name must conform to RFC1035
+    policy :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource where Route Policy is defined.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersDeleteRoutePolicy' with the minimum fields required to make a request.
+newComputeRoutersDeleteRoutePolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource where Route Policy is defined. See 'router'.
+  Core.Text ->
+  ComputeRoutersDeleteRoutePolicy
+newComputeRoutersDeleteRoutePolicy project region router =
+  ComputeRoutersDeleteRoutePolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      policy = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersDeleteRoutePolicy where
+  type Rs ComputeRoutersDeleteRoutePolicy = Operation
+  type
+    Scopes ComputeRoutersDeleteRoutePolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersDeleteRoutePolicy {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      policy
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersDeleteRoutePolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Get.hs b/gen/Gogol/Compute/Routers/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Router resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.get@.
+module Gogol.Compute.Routers.Get
+  ( -- * Resource
+    ComputeRoutersGetResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersGet (..),
+    newComputeRoutersGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.get@ method which the
+-- 'ComputeRoutersGet' request conforms to.
+type ComputeRoutersGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Router
+
+-- | Returns the specified Router resource.
+--
+-- /See:/ 'newComputeRoutersGet' smart constructor.
+data ComputeRoutersGet = ComputeRoutersGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the Router resource to return.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersGet' with the minimum fields required to make a request.
+newComputeRoutersGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to return. See 'router'.
+  Core.Text ->
+  ComputeRoutersGet
+newComputeRoutersGet project region router =
+  ComputeRoutersGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersGet where
+  type Rs ComputeRoutersGet = Router
+  type
+    Scopes ComputeRoutersGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersGet {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/GetNatIpInfo.hs b/gen/Gogol/Compute/Routers/GetNatIpInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/GetNatIpInfo.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.GetNatIpInfo
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves runtime NAT IP information.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.getNatIpInfo@.
+module Gogol.Compute.Routers.GetNatIpInfo
+  ( -- * Resource
+    ComputeRoutersGetNatIpInfoResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersGetNatIpInfo (..),
+    newComputeRoutersGetNatIpInfo,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.getNatIpInfo@ method which the
+-- 'ComputeRoutersGetNatIpInfo' request conforms to.
+type ComputeRoutersGetNatIpInfoResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "getNatIpInfo"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "natName" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] NatIpInfoResponse
+
+-- | Retrieves runtime NAT IP information.
+--
+-- /See:/ 'newComputeRoutersGetNatIpInfo' smart constructor.
+data ComputeRoutersGetNatIpInfo = ComputeRoutersGetNatIpInfo
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the nat service to filter the NAT IP information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.
+    natName :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the Router resource to query for Nat IP information. The name should conform to RFC1035.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersGetNatIpInfo' with the minimum fields required to make a request.
+newComputeRoutersGetNatIpInfo ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to query for Nat IP information. The name should conform to RFC1035. See 'router'.
+  Core.Text ->
+  ComputeRoutersGetNatIpInfo
+newComputeRoutersGetNatIpInfo project region router =
+  ComputeRoutersGetNatIpInfo
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      natName = Core.Nothing,
+      project = project,
+      region = region,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersGetNatIpInfo where
+  type Rs ComputeRoutersGetNatIpInfo = NatIpInfoResponse
+  type
+    Scopes ComputeRoutersGetNatIpInfo =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersGetNatIpInfo {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      natName
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersGetNatIpInfoResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/GetNatMappingInfo.hs b/gen/Gogol/Compute/Routers/GetNatMappingInfo.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/GetNatMappingInfo.hs
@@ -0,0 +1,160 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.GetNatMappingInfo
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves runtime Nat mapping information of VM endpoints.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.getNatMappingInfo@.
+module Gogol.Compute.Routers.GetNatMappingInfo
+  ( -- * Resource
+    ComputeRoutersGetNatMappingInfoResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersGetNatMappingInfo (..),
+    newComputeRoutersGetNatMappingInfo,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.getNatMappingInfo@ method which the
+-- 'ComputeRoutersGetNatMappingInfo' request conforms to.
+type ComputeRoutersGetNatMappingInfoResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "getNatMappingInfo"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "natName" Core.Text
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VmEndpointNatMappingsList
+
+-- | Retrieves runtime Nat mapping information of VM endpoints.
+--
+-- /See:/ 'newComputeRoutersGetNatMappingInfo' smart constructor.
+data ComputeRoutersGetNatMappingInfo = ComputeRoutersGetNatMappingInfo
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.
+    natName :: (Core.Maybe Core.Text),
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Name of the Router resource to query for Nat Mapping information of VM endpoints.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersGetNatMappingInfo' with the minimum fields required to make a request.
+newComputeRoutersGetNatMappingInfo ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to query for Nat Mapping information of VM endpoints. See 'router'.
+  Core.Text ->
+  ComputeRoutersGetNatMappingInfo
+newComputeRoutersGetNatMappingInfo project region router =
+  ComputeRoutersGetNatMappingInfo
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      natName = Core.Nothing,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersGetNatMappingInfo where
+  type Rs ComputeRoutersGetNatMappingInfo = VmEndpointNatMappingsList
+  type
+    Scopes ComputeRoutersGetNatMappingInfo =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersGetNatMappingInfo {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      natName
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersGetNatMappingInfoResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/GetRoutePolicy.hs b/gen/Gogol/Compute/Routers/GetRoutePolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/GetRoutePolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.GetRoutePolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns specified Route Policy
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.getRoutePolicy@.
+module Gogol.Compute.Routers.GetRoutePolicy
+  ( -- * Resource
+    ComputeRoutersGetRoutePolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersGetRoutePolicy (..),
+    newComputeRoutersGetRoutePolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.getRoutePolicy@ method which the
+-- 'ComputeRoutersGetRoutePolicy' request conforms to.
+type ComputeRoutersGetRoutePolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "getRoutePolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "policy" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RoutersGetRoutePolicyResponse
+
+-- | Returns specified Route Policy
+--
+-- /See:/ 'newComputeRoutersGetRoutePolicy' smart constructor.
+data ComputeRoutersGetRoutePolicy = ComputeRoutersGetRoutePolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The Policy name for this request. Name must conform to RFC1035
+    policy :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the Router resource to query for the route policy. The name should conform to RFC1035.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersGetRoutePolicy' with the minimum fields required to make a request.
+newComputeRoutersGetRoutePolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to query for the route policy. The name should conform to RFC1035. See 'router'.
+  Core.Text ->
+  ComputeRoutersGetRoutePolicy
+newComputeRoutersGetRoutePolicy project region router =
+  ComputeRoutersGetRoutePolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      policy = Core.Nothing,
+      project = project,
+      region = region,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersGetRoutePolicy where
+  type
+    Rs ComputeRoutersGetRoutePolicy =
+      RoutersGetRoutePolicyResponse
+  type
+    Scopes ComputeRoutersGetRoutePolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersGetRoutePolicy {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      policy
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersGetRoutePolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/GetRouterStatus.hs b/gen/Gogol/Compute/Routers/GetRouterStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/GetRouterStatus.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.GetRouterStatus
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves runtime information of the specified router.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.getRouterStatus@.
+module Gogol.Compute.Routers.GetRouterStatus
+  ( -- * Resource
+    ComputeRoutersGetRouterStatusResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersGetRouterStatus (..),
+    newComputeRoutersGetRouterStatus,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.getRouterStatus@ method which the
+-- 'ComputeRoutersGetRouterStatus' request conforms to.
+type ComputeRoutersGetRouterStatusResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "getRouterStatus"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RouterStatusResponse
+
+-- | Retrieves runtime information of the specified router.
+--
+-- /See:/ 'newComputeRoutersGetRouterStatus' smart constructor.
+data ComputeRoutersGetRouterStatus = ComputeRoutersGetRouterStatus
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the Router resource to query.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersGetRouterStatus' with the minimum fields required to make a request.
+newComputeRoutersGetRouterStatus ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to query. See 'router'.
+  Core.Text ->
+  ComputeRoutersGetRouterStatus
+newComputeRoutersGetRouterStatus project region router =
+  ComputeRoutersGetRouterStatus
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersGetRouterStatus where
+  type Rs ComputeRoutersGetRouterStatus = RouterStatusResponse
+  type
+    Scopes ComputeRoutersGetRouterStatus =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersGetRouterStatus {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersGetRouterStatusResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Insert.hs b/gen/Gogol/Compute/Routers/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a Router resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.insert@.
+module Gogol.Compute.Routers.Insert
+  ( -- * Resource
+    ComputeRoutersInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersInsert (..),
+    newComputeRoutersInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.insert@ method which the
+-- 'ComputeRoutersInsert' request conforms to.
+type ComputeRoutersInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Router
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a Router resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeRoutersInsert' smart constructor.
+data ComputeRoutersInsert = ComputeRoutersInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Router,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersInsert' with the minimum fields required to make a request.
+newComputeRoutersInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Router ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRoutersInsert
+newComputeRoutersInsert payload project region =
+  ComputeRoutersInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersInsert where
+  type Rs ComputeRoutersInsert = Operation
+  type
+    Scopes ComputeRoutersInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/List.hs b/gen/Gogol/Compute/Routers/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of Router resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.list@.
+module Gogol.Compute.Routers.List
+  ( -- * Resource
+    ComputeRoutersListResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersList (..),
+    newComputeRoutersList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.list@ method which the
+-- 'ComputeRoutersList' request conforms to.
+type ComputeRoutersListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RouterList
+
+-- | Retrieves a list of Router resources available to the specified project.
+--
+-- /See:/ 'newComputeRoutersList' smart constructor.
+data ComputeRoutersList = ComputeRoutersList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersList' with the minimum fields required to make a request.
+newComputeRoutersList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeRoutersList
+newComputeRoutersList project region =
+  ComputeRoutersList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersList where
+  type Rs ComputeRoutersList = RouterList
+  type
+    Scopes ComputeRoutersList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/ListBgpRoutes.hs b/gen/Gogol/Compute/Routers/ListBgpRoutes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/ListBgpRoutes.hs
@@ -0,0 +1,183 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.ListBgpRoutes
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of router bgp routes available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.listBgpRoutes@.
+module Gogol.Compute.Routers.ListBgpRoutes
+  ( -- * Resource
+    ComputeRoutersListBgpRoutesResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersListBgpRoutes (..),
+    newComputeRoutersListBgpRoutes,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.listBgpRoutes@ method which the
+-- 'ComputeRoutersListBgpRoutes' request conforms to.
+type ComputeRoutersListBgpRoutesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "listBgpRoutes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "addressFamily" RoutersListBgpRoutesAddressFamily
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "destinationPrefix" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "peer" Core.Text
+    Core.:> Core.QueryParam "policyApplied" Core.Bool
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam
+              "routeType"
+              RoutersListBgpRoutesRouteType
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RoutersListBgpRoutes
+
+-- | Retrieves a list of router bgp routes available to the specified project.
+--
+-- /See:/ 'newComputeRoutersListBgpRoutes' smart constructor.
+data ComputeRoutersListBgpRoutes = ComputeRoutersListBgpRoutes
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | (Required) limit results to this address family (either IPv4 or IPv6)
+    addressFamily :: RoutersListBgpRoutesAddressFamily,
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Limit results to destinations that are subnets of this CIDR range
+    destinationPrefix :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | (Required) limit results to the BGP peer with the given name. Name should conform to RFC1035.
+    peer :: (Core.Maybe Core.Text),
+    -- | When true, the method returns post-policy routes. Otherwise, it returns pre-policy routes.
+    policyApplied :: Core.Bool,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | (Required) limit results to this type of route (either LEARNED or ADVERTISED)
+    routeType :: RoutersListBgpRoutesRouteType,
+    -- | Name or id of the resource for this request. Name should conform to RFC1035.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersListBgpRoutes' with the minimum fields required to make a request.
+newComputeRoutersListBgpRoutes ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. Name should conform to RFC1035. See 'router'.
+  Core.Text ->
+  ComputeRoutersListBgpRoutes
+newComputeRoutersListBgpRoutes project region router =
+  ComputeRoutersListBgpRoutes
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      addressFamily =
+        RoutersListBgpRoutesAddressFamily_UNSPECIFIEDIPVERSION,
+      callback = Core.Nothing,
+      destinationPrefix = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      peer = Core.Nothing,
+      policyApplied = Core.True,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      routeType = RoutersListBgpRoutesRouteType_UNSPECIFIEDROUTETYPE,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersListBgpRoutes where
+  type Rs ComputeRoutersListBgpRoutes = RoutersListBgpRoutes
+  type
+    Scopes ComputeRoutersListBgpRoutes =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersListBgpRoutes {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      (Core.Just addressFamily)
+      callback
+      destinationPrefix
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      peer
+      (Core.Just policyApplied)
+      returnPartialSuccess
+      (Core.Just routeType)
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersListBgpRoutesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/ListRoutePolicies.hs b/gen/Gogol/Compute/Routers/ListRoutePolicies.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/ListRoutePolicies.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.ListRoutePolicies
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of router route policy subresources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.listRoutePolicies@.
+module Gogol.Compute.Routers.ListRoutePolicies
+  ( -- * Resource
+    ComputeRoutersListRoutePoliciesResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersListRoutePolicies (..),
+    newComputeRoutersListRoutePolicies,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.listRoutePolicies@ method which the
+-- 'ComputeRoutersListRoutePolicies' request conforms to.
+type ComputeRoutersListRoutePoliciesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "listRoutePolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RoutersListRoutePolicies
+
+-- | Retrieves a list of router route policy subresources available to the specified project.
+--
+-- /See:/ 'newComputeRoutersListRoutePolicies' smart constructor.
+data ComputeRoutersListRoutePolicies = ComputeRoutersListRoutePolicies
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Name or id of the resource for this request. Name should conform to RFC1035.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersListRoutePolicies' with the minimum fields required to make a request.
+newComputeRoutersListRoutePolicies ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. Name should conform to RFC1035. See 'router'.
+  Core.Text ->
+  ComputeRoutersListRoutePolicies
+newComputeRoutersListRoutePolicies project region router =
+  ComputeRoutersListRoutePolicies
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersListRoutePolicies where
+  type Rs ComputeRoutersListRoutePolicies = RoutersListRoutePolicies
+  type
+    Scopes ComputeRoutersListRoutePolicies =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersListRoutePolicies {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersListRoutePoliciesResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Patch.hs b/gen/Gogol/Compute/Routers/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Patch.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.patch@.
+module Gogol.Compute.Routers.Patch
+  ( -- * Resource
+    ComputeRoutersPatchResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersPatch (..),
+    newComputeRoutersPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.patch@ method which the
+-- 'ComputeRoutersPatch' request conforms to.
+type ComputeRoutersPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Router
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified Router resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeRoutersPatch' smart constructor.
+data ComputeRoutersPatch = ComputeRoutersPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Router,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource to patch.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersPatch' with the minimum fields required to make a request.
+newComputeRoutersPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Router ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to patch. See 'router'.
+  Core.Text ->
+  ComputeRoutersPatch
+newComputeRoutersPatch payload project region router =
+  ComputeRoutersPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersPatch where
+  type Rs ComputeRoutersPatch = Operation
+  type
+    Scopes ComputeRoutersPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersPatch {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/PatchRoutePolicy.hs b/gen/Gogol/Compute/Routers/PatchRoutePolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/PatchRoutePolicy.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.PatchRoutePolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches Route Policy
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.patchRoutePolicy@.
+module Gogol.Compute.Routers.PatchRoutePolicy
+  ( -- * Resource
+    ComputeRoutersPatchRoutePolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersPatchRoutePolicy (..),
+    newComputeRoutersPatchRoutePolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.patchRoutePolicy@ method which the
+-- 'ComputeRoutersPatchRoutePolicy' request conforms to.
+type ComputeRoutersPatchRoutePolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "patchRoutePolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RoutePolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches Route Policy
+--
+-- /See:/ 'newComputeRoutersPatchRoutePolicy' smart constructor.
+data ComputeRoutersPatchRoutePolicy = ComputeRoutersPatchRoutePolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RoutePolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource where Route Policy is defined.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersPatchRoutePolicy' with the minimum fields required to make a request.
+newComputeRoutersPatchRoutePolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RoutePolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource where Route Policy is defined. See 'router'.
+  Core.Text ->
+  ComputeRoutersPatchRoutePolicy
+newComputeRoutersPatchRoutePolicy payload project region router =
+  ComputeRoutersPatchRoutePolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersPatchRoutePolicy where
+  type Rs ComputeRoutersPatchRoutePolicy = Operation
+  type
+    Scopes ComputeRoutersPatchRoutePolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersPatchRoutePolicy {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersPatchRoutePolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Preview.hs b/gen/Gogol/Compute/Routers/Preview.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Preview.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Preview
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.preview@.
+module Gogol.Compute.Routers.Preview
+  ( -- * Resource
+    ComputeRoutersPreviewResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersPreview (..),
+    newComputeRoutersPreview,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.preview@ method which the
+-- 'ComputeRoutersPreview' request conforms to.
+type ComputeRoutersPreviewResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "preview"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Router
+    Core.:> Core.Post '[Core.JSON] RoutersPreviewResponse
+
+-- | Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.
+--
+-- /See:/ 'newComputeRoutersPreview' smart constructor.
+data ComputeRoutersPreview = ComputeRoutersPreview
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Router,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the Router resource to query.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersPreview' with the minimum fields required to make a request.
+newComputeRoutersPreview ::
+  -- |  Multipart request metadata. See 'payload'.
+  Router ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to query. See 'router'.
+  Core.Text ->
+  ComputeRoutersPreview
+newComputeRoutersPreview payload project region router =
+  ComputeRoutersPreview
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersPreview where
+  type Rs ComputeRoutersPreview = RoutersPreviewResponse
+  type
+    Scopes ComputeRoutersPreview =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutersPreview {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersPreviewResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/Update.hs b/gen/Gogol/Compute/Routers/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/Update.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.update@.
+module Gogol.Compute.Routers.Update
+  ( -- * Resource
+    ComputeRoutersUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersUpdate (..),
+    newComputeRoutersUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.update@ method which the
+-- 'ComputeRoutersUpdate' request conforms to.
+type ComputeRoutersUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Router
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified Router resource with the data included in the request. This method conforms to PUT semantics, which requests that the state of the target resource be created or replaced with the state defined by the representation enclosed in the request message payload.
+--
+-- /See:/ 'newComputeRoutersUpdate' smart constructor.
+data ComputeRoutersUpdate = ComputeRoutersUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Router,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource to update.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersUpdate' with the minimum fields required to make a request.
+newComputeRoutersUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  Router ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource to update. See 'router'.
+  Core.Text ->
+  ComputeRoutersUpdate
+newComputeRoutersUpdate payload project region router =
+  ComputeRoutersUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersUpdate where
+  type Rs ComputeRoutersUpdate = Operation
+  type
+    Scopes ComputeRoutersUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersUpdate {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routers/UpdateRoutePolicy.hs b/gen/Gogol/Compute/Routers/UpdateRoutePolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routers/UpdateRoutePolicy.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routers.UpdateRoutePolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates or creates new Route Policy
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routers.updateRoutePolicy@.
+module Gogol.Compute.Routers.UpdateRoutePolicy
+  ( -- * Resource
+    ComputeRoutersUpdateRoutePolicyResource,
+
+    -- ** Constructing a Request
+    ComputeRoutersUpdateRoutePolicy (..),
+    newComputeRoutersUpdateRoutePolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routers.updateRoutePolicy@ method which the
+-- 'ComputeRoutersUpdateRoutePolicy' request conforms to.
+type ComputeRoutersUpdateRoutePolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "routers"
+    Core.:> Core.Capture "router" Core.Text
+    Core.:> "updateRoutePolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RoutePolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Updates or creates new Route Policy
+--
+-- /See:/ 'newComputeRoutersUpdateRoutePolicy' smart constructor.
+data ComputeRoutersUpdateRoutePolicy = ComputeRoutersUpdateRoutePolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RoutePolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Router resource where Route Policy is defined.
+    router :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutersUpdateRoutePolicy' with the minimum fields required to make a request.
+newComputeRoutersUpdateRoutePolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RoutePolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Router resource where Route Policy is defined. See 'router'.
+  Core.Text ->
+  ComputeRoutersUpdateRoutePolicy
+newComputeRoutersUpdateRoutePolicy payload project region router =
+  ComputeRoutersUpdateRoutePolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      router = router,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutersUpdateRoutePolicy where
+  type Rs ComputeRoutersUpdateRoutePolicy = Operation
+  type
+    Scopes ComputeRoutersUpdateRoutePolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutersUpdateRoutePolicy {..} =
+    go
+      project
+      region
+      router
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutersUpdateRoutePolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routes/Delete.hs b/gen/Gogol/Compute/Routes/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routes/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routes.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Route resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routes.delete@.
+module Gogol.Compute.Routes.Delete
+  ( -- * Resource
+    ComputeRoutesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeRoutesDelete (..),
+    newComputeRoutesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routes.delete@ method which the
+-- 'ComputeRoutesDelete' request conforms to.
+type ComputeRoutesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "routes"
+    Core.:> Core.Capture "route" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified Route resource.
+--
+-- /See:/ 'newComputeRoutesDelete' smart constructor.
+data ComputeRoutesDelete = ComputeRoutesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Route resource to delete.
+    route :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutesDelete' with the minimum fields required to make a request.
+newComputeRoutesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the Route resource to delete. See 'route'.
+  Core.Text ->
+  ComputeRoutesDelete
+newComputeRoutesDelete project route =
+  ComputeRoutesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      route = route,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutesDelete where
+  type Rs ComputeRoutesDelete = Operation
+  type
+    Scopes ComputeRoutesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutesDelete {..} =
+    go
+      project
+      route
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routes/Get.hs b/gen/Gogol/Compute/Routes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routes/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Route resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routes.get@.
+module Gogol.Compute.Routes.Get
+  ( -- * Resource
+    ComputeRoutesGetResource,
+
+    -- ** Constructing a Request
+    ComputeRoutesGet (..),
+    newComputeRoutesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routes.get@ method which the
+-- 'ComputeRoutesGet' request conforms to.
+type ComputeRoutesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "routes"
+    Core.:> Core.Capture "route" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Route
+
+-- | Returns the specified Route resource.
+--
+-- /See:/ 'newComputeRoutesGet' smart constructor.
+data ComputeRoutesGet = ComputeRoutesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the Route resource to return.
+    route :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutesGet' with the minimum fields required to make a request.
+newComputeRoutesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the Route resource to return. See 'route'.
+  Core.Text ->
+  ComputeRoutesGet
+newComputeRoutesGet project route =
+  ComputeRoutesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      route = route,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutesGet where
+  type Rs ComputeRoutesGet = Route
+  type
+    Scopes ComputeRoutesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutesGet {..} =
+    go
+      project
+      route
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routes/Insert.hs b/gen/Gogol/Compute/Routes/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routes/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routes.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a Route resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routes.insert@.
+module Gogol.Compute.Routes.Insert
+  ( -- * Resource
+    ComputeRoutesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeRoutesInsert (..),
+    newComputeRoutesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routes.insert@ method which the
+-- 'ComputeRoutesInsert' request conforms to.
+type ComputeRoutesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "routes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Route
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a Route resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeRoutesInsert' smart constructor.
+data ComputeRoutesInsert = ComputeRoutesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Route,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutesInsert' with the minimum fields required to make a request.
+newComputeRoutesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Route ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeRoutesInsert
+newComputeRoutesInsert payload project =
+  ComputeRoutesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutesInsert where
+  type Rs ComputeRoutesInsert = Operation
+  type
+    Scopes ComputeRoutesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeRoutesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Routes/List.hs b/gen/Gogol/Compute/Routes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Routes/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Routes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of Route resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.routes.list@.
+module Gogol.Compute.Routes.List
+  ( -- * Resource
+    ComputeRoutesListResource,
+
+    -- ** Constructing a Request
+    ComputeRoutesList (..),
+    newComputeRoutesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.routes.list@ method which the
+-- 'ComputeRoutesList' request conforms to.
+type ComputeRoutesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "routes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] RouteList
+
+-- | Retrieves the list of Route resources available to the specified project.
+--
+-- /See:/ 'newComputeRoutesList' smart constructor.
+data ComputeRoutesList = ComputeRoutesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeRoutesList' with the minimum fields required to make a request.
+newComputeRoutesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeRoutesList
+newComputeRoutesList project =
+  ComputeRoutesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeRoutesList where
+  type Rs ComputeRoutesList = RouteList
+  type
+    Scopes ComputeRoutesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeRoutesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeRoutesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/AddRule.hs b/gen/Gogol/Compute/SecurityPolicies/AddRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/AddRule.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.AddRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Inserts a rule into a security policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.addRule@.
+module Gogol.Compute.SecurityPolicies.AddRule
+  ( -- * Resource
+    ComputeSecurityPoliciesAddRuleResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesAddRule (..),
+    newComputeSecurityPoliciesAddRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.addRule@ method which the
+-- 'ComputeSecurityPoliciesAddRule' request conforms to.
+type ComputeSecurityPoliciesAddRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "addRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Inserts a rule into a security policy.
+--
+-- /See:/ 'newComputeSecurityPoliciesAddRule' smart constructor.
+data ComputeSecurityPoliciesAddRule = ComputeSecurityPoliciesAddRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesAddRule' with the minimum fields required to make a request.
+newComputeSecurityPoliciesAddRule ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesAddRule
+newComputeSecurityPoliciesAddRule payload project securityPolicy =
+  ComputeSecurityPoliciesAddRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesAddRule where
+  type Rs ComputeSecurityPoliciesAddRule = Operation
+  type
+    Scopes ComputeSecurityPoliciesAddRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesAddRule {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesAddRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/AggregatedList.hs b/gen/Gogol/Compute/SecurityPolicies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.aggregatedList@.
+module Gogol.Compute.SecurityPolicies.AggregatedList
+  ( -- * Resource
+    ComputeSecurityPoliciesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesAggregatedList (..),
+    newComputeSecurityPoliciesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.aggregatedList@ method which the
+-- 'ComputeSecurityPoliciesAggregatedList' request conforms to.
+type ComputeSecurityPoliciesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "securityPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPoliciesAggregatedList
+
+-- | Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeSecurityPoliciesAggregatedList' smart constructor.
+data ComputeSecurityPoliciesAggregatedList = ComputeSecurityPoliciesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesAggregatedList' with the minimum fields required to make a request.
+newComputeSecurityPoliciesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeSecurityPoliciesAggregatedList
+newComputeSecurityPoliciesAggregatedList project =
+  ComputeSecurityPoliciesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesAggregatedList where
+  type
+    Rs ComputeSecurityPoliciesAggregatedList =
+      SecurityPoliciesAggregatedList
+  type
+    Scopes ComputeSecurityPoliciesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSecurityPoliciesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSecurityPoliciesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/Delete.hs b/gen/Gogol/Compute/SecurityPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.delete@.
+module Gogol.Compute.SecurityPolicies.Delete
+  ( -- * Resource
+    ComputeSecurityPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesDelete (..),
+    newComputeSecurityPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.delete@ method which the
+-- 'ComputeSecurityPoliciesDelete' request conforms to.
+type ComputeSecurityPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified policy.
+--
+-- /See:/ 'newComputeSecurityPoliciesDelete' smart constructor.
+data ComputeSecurityPoliciesDelete = ComputeSecurityPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the security policy to delete.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesDelete' with the minimum fields required to make a request.
+newComputeSecurityPoliciesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to delete. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesDelete
+newComputeSecurityPoliciesDelete project securityPolicy =
+  ComputeSecurityPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesDelete where
+  type Rs ComputeSecurityPoliciesDelete = Operation
+  type
+    Scopes ComputeSecurityPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesDelete {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/Get.hs b/gen/Gogol/Compute/SecurityPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all of the ordered rules present in a single specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.get@.
+module Gogol.Compute.SecurityPolicies.Get
+  ( -- * Resource
+    ComputeSecurityPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesGet (..),
+    newComputeSecurityPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.get@ method which the
+-- 'ComputeSecurityPoliciesGet' request conforms to.
+type ComputeSecurityPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicy
+
+-- | List all of the ordered rules present in a single specified policy.
+--
+-- /See:/ 'newComputeSecurityPoliciesGet' smart constructor.
+data ComputeSecurityPoliciesGet = ComputeSecurityPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the security policy to get.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesGet' with the minimum fields required to make a request.
+newComputeSecurityPoliciesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to get. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesGet
+newComputeSecurityPoliciesGet project securityPolicy =
+  ComputeSecurityPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesGet where
+  type Rs ComputeSecurityPoliciesGet = SecurityPolicy
+  type
+    Scopes ComputeSecurityPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSecurityPoliciesGet {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/GetRule.hs b/gen/Gogol/Compute/SecurityPolicies/GetRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/GetRule.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.GetRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets a rule at the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.getRule@.
+module Gogol.Compute.SecurityPolicies.GetRule
+  ( -- * Resource
+    ComputeSecurityPoliciesGetRuleResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesGetRule (..),
+    newComputeSecurityPoliciesGetRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.getRule@ method which the
+-- 'ComputeSecurityPoliciesGetRule' request conforms to.
+type ComputeSecurityPoliciesGetRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "getRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicyRule
+
+-- | Gets a rule at the specified priority.
+--
+-- /See:/ 'newComputeSecurityPoliciesGetRule' smart constructor.
+data ComputeSecurityPoliciesGetRule = ComputeSecurityPoliciesGetRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The priority of the rule to get from the security policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the security policy to which the queried rule belongs.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesGetRule' with the minimum fields required to make a request.
+newComputeSecurityPoliciesGetRule ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to which the queried rule belongs. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesGetRule
+newComputeSecurityPoliciesGetRule project securityPolicy =
+  ComputeSecurityPoliciesGetRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      priority = Core.Nothing,
+      project = project,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesGetRule where
+  type Rs ComputeSecurityPoliciesGetRule = SecurityPolicyRule
+  type
+    Scopes ComputeSecurityPoliciesGetRule =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSecurityPoliciesGetRule {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesGetRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/Insert.hs b/gen/Gogol/Compute/SecurityPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/Insert.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.insert@.
+module Gogol.Compute.SecurityPolicies.Insert
+  ( -- * Resource
+    ComputeSecurityPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesInsert (..),
+    newComputeSecurityPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.insert@ method which the
+-- 'ComputeSecurityPoliciesInsert' request conforms to.
+type ComputeSecurityPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a new policy in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeSecurityPoliciesInsert' smart constructor.
+data ComputeSecurityPoliciesInsert = ComputeSecurityPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesInsert' with the minimum fields required to make a request.
+newComputeSecurityPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSecurityPoliciesInsert
+newComputeSecurityPoliciesInsert payload project =
+  ComputeSecurityPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesInsert where
+  type Rs ComputeSecurityPoliciesInsert = Operation
+  type
+    Scopes ComputeSecurityPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/List.hs b/gen/Gogol/Compute/SecurityPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- List all the policies that have been configured for the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.list@.
+module Gogol.Compute.SecurityPolicies.List
+  ( -- * Resource
+    ComputeSecurityPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesList (..),
+    newComputeSecurityPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.list@ method which the
+-- 'ComputeSecurityPoliciesList' request conforms to.
+type ComputeSecurityPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SecurityPolicyList
+
+-- | List all the policies that have been configured for the specified project.
+--
+-- /See:/ 'newComputeSecurityPoliciesList' smart constructor.
+data ComputeSecurityPoliciesList = ComputeSecurityPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesList' with the minimum fields required to make a request.
+newComputeSecurityPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSecurityPoliciesList
+newComputeSecurityPoliciesList project =
+  ComputeSecurityPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesList where
+  type Rs ComputeSecurityPoliciesList = SecurityPolicyList
+  type
+    Scopes ComputeSecurityPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSecurityPoliciesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/ListPreconfiguredExpressionSets.hs b/gen/Gogol/Compute/SecurityPolicies/ListPreconfiguredExpressionSets.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/ListPreconfiguredExpressionSets.hs
@@ -0,0 +1,153 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.ListPreconfiguredExpressionSets
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the current list of preconfigured Web Application Firewall (WAF) expressions.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.listPreconfiguredExpressionSets@.
+module Gogol.Compute.SecurityPolicies.ListPreconfiguredExpressionSets
+  ( -- * Resource
+    ComputeSecurityPoliciesListPreconfiguredExpressionSetsResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesListPreconfiguredExpressionSets (..),
+    newComputeSecurityPoliciesListPreconfiguredExpressionSets,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.listPreconfiguredExpressionSets@ method which the
+-- 'ComputeSecurityPoliciesListPreconfiguredExpressionSets' request conforms to.
+type ComputeSecurityPoliciesListPreconfiguredExpressionSetsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> "listPreconfiguredExpressionSets"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              SecurityPoliciesListPreconfiguredExpressionSetsResponse
+
+-- | Gets the current list of preconfigured Web Application Firewall (WAF) expressions.
+--
+-- /See:/ 'newComputeSecurityPoliciesListPreconfiguredExpressionSets' smart constructor.
+data ComputeSecurityPoliciesListPreconfiguredExpressionSets = ComputeSecurityPoliciesListPreconfiguredExpressionSets
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesListPreconfiguredExpressionSets' with the minimum fields required to make a request.
+newComputeSecurityPoliciesListPreconfiguredExpressionSets ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSecurityPoliciesListPreconfiguredExpressionSets
+newComputeSecurityPoliciesListPreconfiguredExpressionSets project =
+  ComputeSecurityPoliciesListPreconfiguredExpressionSets
+    { xgafv =
+        Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance
+  Core.GoogleRequest
+    ComputeSecurityPoliciesListPreconfiguredExpressionSets
+  where
+  type
+    Rs ComputeSecurityPoliciesListPreconfiguredExpressionSets =
+      SecurityPoliciesListPreconfiguredExpressionSetsResponse
+  type
+    Scopes ComputeSecurityPoliciesListPreconfiguredExpressionSets =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient
+    ComputeSecurityPoliciesListPreconfiguredExpressionSets {..} =
+      go
+        project
+        xgafv
+        accessToken
+        callback
+        filter
+        (Core.Just maxResults)
+        orderBy
+        pageToken
+        returnPartialSuccess
+        uploadType
+        uploadProtocol
+        (Core.Just Core.AltJSON)
+        computeService
+      where
+        go =
+          Core.buildClient
+            ( Core.Proxy ::
+                Core.Proxy
+                  ComputeSecurityPoliciesListPreconfiguredExpressionSetsResource
+            )
+            Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/Patch.hs b/gen/Gogol/Compute/SecurityPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/Patch.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.patch@.
+module Gogol.Compute.SecurityPolicies.Patch
+  ( -- * Resource
+    ComputeSecurityPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesPatch (..),
+    newComputeSecurityPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.patch@ method which the
+-- 'ComputeSecurityPoliciesPatch' request conforms to.
+type ComputeSecurityPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified policy with the data included in the request. To clear fields in the policy, leave the fields empty and specify them in the updateMask. This cannot be used to be update the rules in the policy. Please use the per rule methods like addRule, patchRule, and removeRule instead.
+--
+-- /See:/ 'newComputeSecurityPoliciesPatch' smart constructor.
+data ComputeSecurityPoliciesPatch = ComputeSecurityPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Indicates fields to be cleared as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesPatch' with the minimum fields required to make a request.
+newComputeSecurityPoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesPatch
+newComputeSecurityPoliciesPatch payload project securityPolicy =
+  ComputeSecurityPoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      securityPolicy = securityPolicy,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesPatch where
+  type Rs ComputeSecurityPoliciesPatch = Operation
+  type
+    Scopes ComputeSecurityPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesPatch {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/PatchRule.hs b/gen/Gogol/Compute/SecurityPolicies/PatchRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/PatchRule.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.PatchRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.patchRule@.
+module Gogol.Compute.SecurityPolicies.PatchRule
+  ( -- * Resource
+    ComputeSecurityPoliciesPatchRuleResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesPatchRule (..),
+    newComputeSecurityPoliciesPatchRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.patchRule@ method which the
+-- 'ComputeSecurityPoliciesPatchRule' request conforms to.
+type ComputeSecurityPoliciesPatchRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "patchRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "validateOnly" Core.Bool
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Patches a rule at the specified priority. To clear fields in the rule, leave the fields empty and specify them in the updateMask.
+--
+-- /See:/ 'newComputeSecurityPoliciesPatchRule' smart constructor.
+data ComputeSecurityPoliciesPatchRule = ComputeSecurityPoliciesPatchRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyRule,
+    -- | The priority of the rule to patch.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Indicates fields to be cleared as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | If true, the request will not be committed.
+    validateOnly :: (Core.Maybe Core.Bool)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesPatchRule' with the minimum fields required to make a request.
+newComputeSecurityPoliciesPatchRule ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesPatchRule
+newComputeSecurityPoliciesPatchRule payload project securityPolicy =
+  ComputeSecurityPoliciesPatchRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      priority = Core.Nothing,
+      project = project,
+      securityPolicy = securityPolicy,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      validateOnly = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesPatchRule where
+  type Rs ComputeSecurityPoliciesPatchRule = Operation
+  type
+    Scopes ComputeSecurityPoliciesPatchRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesPatchRule {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      updateMask
+      uploadType
+      uploadProtocol
+      validateOnly
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesPatchRuleResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/RemoveRule.hs b/gen/Gogol/Compute/SecurityPolicies/RemoveRule.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/RemoveRule.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.RemoveRule
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a rule at the specified priority.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.removeRule@.
+module Gogol.Compute.SecurityPolicies.RemoveRule
+  ( -- * Resource
+    ComputeSecurityPoliciesRemoveRuleResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesRemoveRule (..),
+    newComputeSecurityPoliciesRemoveRule,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.removeRule@ method which the
+-- 'ComputeSecurityPoliciesRemoveRule' request conforms to.
+type ComputeSecurityPoliciesRemoveRuleResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "securityPolicy" Core.Text
+    Core.:> "removeRule"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "priority" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Deletes a rule at the specified priority.
+--
+-- /See:/ 'newComputeSecurityPoliciesRemoveRule' smart constructor.
+data ComputeSecurityPoliciesRemoveRule = ComputeSecurityPoliciesRemoveRule
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The priority of the rule to remove from the security policy.
+    priority :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the security policy to update.
+    securityPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesRemoveRule' with the minimum fields required to make a request.
+newComputeSecurityPoliciesRemoveRule ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the security policy to update. See 'securityPolicy'.
+  Core.Text ->
+  ComputeSecurityPoliciesRemoveRule
+newComputeSecurityPoliciesRemoveRule project securityPolicy =
+  ComputeSecurityPoliciesRemoveRule
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      priority = Core.Nothing,
+      project = project,
+      securityPolicy = securityPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesRemoveRule where
+  type Rs ComputeSecurityPoliciesRemoveRule = Operation
+  type
+    Scopes ComputeSecurityPoliciesRemoveRule =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesRemoveRule {..} =
+    go
+      project
+      securityPolicy
+      xgafv
+      accessToken
+      callback
+      priority
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSecurityPoliciesRemoveRuleResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SecurityPolicies/SetLabels.hs b/gen/Gogol/Compute/SecurityPolicies/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SecurityPolicies/SetLabels.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SecurityPolicies.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.securityPolicies.setLabels@.
+module Gogol.Compute.SecurityPolicies.SetLabels
+  ( -- * Resource
+    ComputeSecurityPoliciesSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeSecurityPoliciesSetLabels (..),
+    newComputeSecurityPoliciesSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.securityPolicies.setLabels@ method which the
+-- 'ComputeSecurityPoliciesSetLabels' request conforms to.
+type ComputeSecurityPoliciesSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "securityPolicies"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeSecurityPoliciesSetLabels' smart constructor.
+data ComputeSecurityPoliciesSetLabels = ComputeSecurityPoliciesSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSecurityPoliciesSetLabels' with the minimum fields required to make a request.
+newComputeSecurityPoliciesSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSecurityPoliciesSetLabels
+newComputeSecurityPoliciesSetLabels payload project resource =
+  ComputeSecurityPoliciesSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSecurityPoliciesSetLabels where
+  type Rs ComputeSecurityPoliciesSetLabels = Operation
+  type
+    Scopes ComputeSecurityPoliciesSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSecurityPoliciesSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSecurityPoliciesSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/AggregatedList.hs b/gen/Gogol/Compute/ServiceAttachments/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.aggregatedList@.
+module Gogol.Compute.ServiceAttachments.AggregatedList
+  ( -- * Resource
+    ComputeServiceAttachmentsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsAggregatedList (..),
+    newComputeServiceAttachmentsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.aggregatedList@ method which the
+-- 'ComputeServiceAttachmentsAggregatedList' request conforms to.
+type ComputeServiceAttachmentsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "serviceAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ServiceAttachmentAggregatedList
+
+-- | Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeServiceAttachmentsAggregatedList' smart constructor.
+data ComputeServiceAttachmentsAggregatedList = ComputeServiceAttachmentsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsAggregatedList' with the minimum fields required to make a request.
+newComputeServiceAttachmentsAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeServiceAttachmentsAggregatedList
+newComputeServiceAttachmentsAggregatedList project =
+  ComputeServiceAttachmentsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsAggregatedList where
+  type
+    Rs ComputeServiceAttachmentsAggregatedList =
+      ServiceAttachmentAggregatedList
+  type
+    Scopes ComputeServiceAttachmentsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeServiceAttachmentsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeServiceAttachmentsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/Delete.hs b/gen/Gogol/Compute/ServiceAttachments/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified ServiceAttachment in the given scope
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.delete@.
+module Gogol.Compute.ServiceAttachments.Delete
+  ( -- * Resource
+    ComputeServiceAttachmentsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsDelete (..),
+    newComputeServiceAttachmentsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.delete@ method which the
+-- 'ComputeServiceAttachmentsDelete' request conforms to.
+type ComputeServiceAttachmentsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "serviceAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified ServiceAttachment in the given scope
+--
+-- /See:/ 'newComputeServiceAttachmentsDelete' smart constructor.
+data ComputeServiceAttachmentsDelete = ComputeServiceAttachmentsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the ServiceAttachment resource to delete.
+    serviceAttachment :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsDelete' with the minimum fields required to make a request.
+newComputeServiceAttachmentsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the ServiceAttachment resource to delete. See 'serviceAttachment'.
+  Core.Text ->
+  ComputeServiceAttachmentsDelete
+newComputeServiceAttachmentsDelete project region serviceAttachment =
+  ComputeServiceAttachmentsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      serviceAttachment = serviceAttachment,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsDelete where
+  type Rs ComputeServiceAttachmentsDelete = Operation
+  type
+    Scopes ComputeServiceAttachmentsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeServiceAttachmentsDelete {..} =
+    go
+      project
+      region
+      serviceAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeServiceAttachmentsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/Get.hs b/gen/Gogol/Compute/ServiceAttachments/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified ServiceAttachment resource in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.get@.
+module Gogol.Compute.ServiceAttachments.Get
+  ( -- * Resource
+    ComputeServiceAttachmentsGetResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsGet (..),
+    newComputeServiceAttachmentsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.get@ method which the
+-- 'ComputeServiceAttachmentsGet' request conforms to.
+type ComputeServiceAttachmentsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "serviceAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ServiceAttachment
+
+-- | Returns the specified ServiceAttachment resource in the given scope.
+--
+-- /See:/ 'newComputeServiceAttachmentsGet' smart constructor.
+data ComputeServiceAttachmentsGet = ComputeServiceAttachmentsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Name of the ServiceAttachment resource to return.
+    serviceAttachment :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsGet' with the minimum fields required to make a request.
+newComputeServiceAttachmentsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the ServiceAttachment resource to return. See 'serviceAttachment'.
+  Core.Text ->
+  ComputeServiceAttachmentsGet
+newComputeServiceAttachmentsGet project region serviceAttachment =
+  ComputeServiceAttachmentsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      serviceAttachment = serviceAttachment,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsGet where
+  type Rs ComputeServiceAttachmentsGet = ServiceAttachment
+  type
+    Scopes ComputeServiceAttachmentsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeServiceAttachmentsGet {..} =
+    go
+      project
+      region
+      serviceAttachment
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeServiceAttachmentsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/GetIamPolicy.hs b/gen/Gogol/Compute/ServiceAttachments/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/GetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.getIamPolicy@.
+module Gogol.Compute.ServiceAttachments.GetIamPolicy
+  ( -- * Resource
+    ComputeServiceAttachmentsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsGetIamPolicy (..),
+    newComputeServiceAttachmentsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.getIamPolicy@ method which the
+-- 'ComputeServiceAttachmentsGetIamPolicy' request conforms to.
+type ComputeServiceAttachmentsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeServiceAttachmentsGetIamPolicy' smart constructor.
+data ComputeServiceAttachmentsGetIamPolicy = ComputeServiceAttachmentsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsGetIamPolicy' with the minimum fields required to make a request.
+newComputeServiceAttachmentsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeServiceAttachmentsGetIamPolicy
+newComputeServiceAttachmentsGetIamPolicy project region resource =
+  ComputeServiceAttachmentsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsGetIamPolicy where
+  type Rs ComputeServiceAttachmentsGetIamPolicy = Policy
+  type
+    Scopes ComputeServiceAttachmentsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeServiceAttachmentsGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeServiceAttachmentsGetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/Insert.hs b/gen/Gogol/Compute/ServiceAttachments/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.insert@.
+module Gogol.Compute.ServiceAttachments.Insert
+  ( -- * Resource
+    ComputeServiceAttachmentsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsInsert (..),
+    newComputeServiceAttachmentsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.insert@ method which the
+-- 'ComputeServiceAttachmentsInsert' request conforms to.
+type ComputeServiceAttachmentsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ServiceAttachment
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a ServiceAttachment in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeServiceAttachmentsInsert' smart constructor.
+data ComputeServiceAttachmentsInsert = ComputeServiceAttachmentsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ServiceAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsInsert' with the minimum fields required to make a request.
+newComputeServiceAttachmentsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  ServiceAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeServiceAttachmentsInsert
+newComputeServiceAttachmentsInsert payload project region =
+  ComputeServiceAttachmentsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsInsert where
+  type Rs ComputeServiceAttachmentsInsert = Operation
+  type
+    Scopes ComputeServiceAttachmentsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeServiceAttachmentsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeServiceAttachmentsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/List.hs b/gen/Gogol/Compute/ServiceAttachments/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the ServiceAttachments for a project in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.list@.
+module Gogol.Compute.ServiceAttachments.List
+  ( -- * Resource
+    ComputeServiceAttachmentsListResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsList (..),
+    newComputeServiceAttachmentsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.list@ method which the
+-- 'ComputeServiceAttachmentsList' request conforms to.
+type ComputeServiceAttachmentsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ServiceAttachmentList
+
+-- | Lists the ServiceAttachments for a project in the given scope.
+--
+-- /See:/ 'newComputeServiceAttachmentsList' smart constructor.
+data ComputeServiceAttachmentsList = ComputeServiceAttachmentsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region of this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsList' with the minimum fields required to make a request.
+newComputeServiceAttachmentsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region of this request. See 'region'.
+  Core.Text ->
+  ComputeServiceAttachmentsList
+newComputeServiceAttachmentsList project region =
+  ComputeServiceAttachmentsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsList where
+  type Rs ComputeServiceAttachmentsList = ServiceAttachmentList
+  type
+    Scopes ComputeServiceAttachmentsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeServiceAttachmentsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeServiceAttachmentsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/Patch.hs b/gen/Gogol/Compute/ServiceAttachments/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/Patch.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.patch@.
+module Gogol.Compute.ServiceAttachments.Patch
+  ( -- * Resource
+    ComputeServiceAttachmentsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsPatch (..),
+    newComputeServiceAttachmentsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.patch@ method which the
+-- 'ComputeServiceAttachmentsPatch' request conforms to.
+type ComputeServiceAttachmentsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "serviceAttachment" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ServiceAttachment
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified ServiceAttachment resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeServiceAttachmentsPatch' smart constructor.
+data ComputeServiceAttachmentsPatch = ComputeServiceAttachmentsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ServiceAttachment,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region scoping this request and should conform to RFC1035.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number.
+    serviceAttachment :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsPatch' with the minimum fields required to make a request.
+newComputeServiceAttachmentsPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  ServiceAttachment ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region scoping this request and should conform to RFC1035. See 'region'.
+  Core.Text ->
+  -- |  The resource id of the ServiceAttachment to patch. It should conform to RFC1035 resource name or be a string form on an unsigned long number. See 'serviceAttachment'.
+  Core.Text ->
+  ComputeServiceAttachmentsPatch
+newComputeServiceAttachmentsPatch
+  payload
+  project
+  region
+  serviceAttachment =
+    ComputeServiceAttachmentsPatch
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        serviceAttachment = serviceAttachment,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsPatch where
+  type Rs ComputeServiceAttachmentsPatch = Operation
+  type
+    Scopes ComputeServiceAttachmentsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeServiceAttachmentsPatch {..} =
+    go
+      project
+      region
+      serviceAttachment
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeServiceAttachmentsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/SetIamPolicy.hs b/gen/Gogol/Compute/ServiceAttachments/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/SetIamPolicy.hs
@@ -0,0 +1,141 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.setIamPolicy@.
+module Gogol.Compute.ServiceAttachments.SetIamPolicy
+  ( -- * Resource
+    ComputeServiceAttachmentsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsSetIamPolicy (..),
+    newComputeServiceAttachmentsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.setIamPolicy@ method which the
+-- 'ComputeServiceAttachmentsSetIamPolicy' request conforms to.
+type ComputeServiceAttachmentsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeServiceAttachmentsSetIamPolicy' smart constructor.
+data ComputeServiceAttachmentsSetIamPolicy = ComputeServiceAttachmentsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsSetIamPolicy' with the minimum fields required to make a request.
+newComputeServiceAttachmentsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeServiceAttachmentsSetIamPolicy
+newComputeServiceAttachmentsSetIamPolicy
+  payload
+  project
+  region
+  resource =
+    ComputeServiceAttachmentsSetIamPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeServiceAttachmentsSetIamPolicy where
+  type Rs ComputeServiceAttachmentsSetIamPolicy = Policy
+  type
+    Scopes ComputeServiceAttachmentsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeServiceAttachmentsSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeServiceAttachmentsSetIamPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/ServiceAttachments/TestIamPermissions.hs b/gen/Gogol/Compute/ServiceAttachments/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ServiceAttachments/TestIamPermissions.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ServiceAttachments.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.serviceAttachments.testIamPermissions@.
+module Gogol.Compute.ServiceAttachments.TestIamPermissions
+  ( -- * Resource
+    ComputeServiceAttachmentsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeServiceAttachmentsTestIamPermissions (..),
+    newComputeServiceAttachmentsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.serviceAttachments.testIamPermissions@ method which the
+-- 'ComputeServiceAttachmentsTestIamPermissions' request conforms to.
+type ComputeServiceAttachmentsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "serviceAttachments"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeServiceAttachmentsTestIamPermissions' smart constructor.
+data ComputeServiceAttachmentsTestIamPermissions = ComputeServiceAttachmentsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeServiceAttachmentsTestIamPermissions' with the minimum fields required to make a request.
+newComputeServiceAttachmentsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeServiceAttachmentsTestIamPermissions
+newComputeServiceAttachmentsTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeServiceAttachmentsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeServiceAttachmentsTestIamPermissions
+  where
+  type
+    Rs ComputeServiceAttachmentsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeServiceAttachmentsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeServiceAttachmentsTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeServiceAttachmentsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SnapshotSettings/Get.hs b/gen/Gogol/Compute/SnapshotSettings/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SnapshotSettings/Get.hs
@@ -0,0 +1,113 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SnapshotSettings.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Get snapshot settings.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshotSettings.get@.
+module Gogol.Compute.SnapshotSettings.Get
+  ( -- * Resource
+    ComputeSnapshotSettingsGetResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotSettingsGet (..),
+    newComputeSnapshotSettingsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshotSettings.get@ method which the
+-- 'ComputeSnapshotSettingsGet' request conforms to.
+type ComputeSnapshotSettingsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshotSettings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SnapshotSettings
+
+-- | Get snapshot settings.
+--
+-- /See:/ 'newComputeSnapshotSettingsGet' smart constructor.
+data ComputeSnapshotSettingsGet = ComputeSnapshotSettingsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotSettingsGet' with the minimum fields required to make a request.
+newComputeSnapshotSettingsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSnapshotSettingsGet
+newComputeSnapshotSettingsGet project =
+  ComputeSnapshotSettingsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotSettingsGet where
+  type Rs ComputeSnapshotSettingsGet = SnapshotSettings
+  type
+    Scopes ComputeSnapshotSettingsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSnapshotSettingsGet {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotSettingsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SnapshotSettings/Patch.hs b/gen/Gogol/Compute/SnapshotSettings/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SnapshotSettings/Patch.hs
@@ -0,0 +1,130 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SnapshotSettings.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patch snapshot settings.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshotSettings.patch@.
+module Gogol.Compute.SnapshotSettings.Patch
+  ( -- * Resource
+    ComputeSnapshotSettingsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotSettingsPatch (..),
+    newComputeSnapshotSettingsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshotSettings.patch@ method which the
+-- 'ComputeSnapshotSettingsPatch' request conforms to.
+type ComputeSnapshotSettingsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshotSettings"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SnapshotSettings
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patch snapshot settings.
+--
+-- /See:/ 'newComputeSnapshotSettingsPatch' smart constructor.
+data ComputeSnapshotSettingsPatch = ComputeSnapshotSettingsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SnapshotSettings,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotSettingsPatch' with the minimum fields required to make a request.
+newComputeSnapshotSettingsPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  SnapshotSettings ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSnapshotSettingsPatch
+newComputeSnapshotSettingsPatch payload project =
+  ComputeSnapshotSettingsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotSettingsPatch where
+  type Rs ComputeSnapshotSettingsPatch = Operation
+  type
+    Scopes ComputeSnapshotSettingsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSnapshotSettingsPatch {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotSettingsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/Delete.hs b/gen/Gogol/Compute/Snapshots/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.delete@.
+module Gogol.Compute.Snapshots.Delete
+  ( -- * Resource
+    ComputeSnapshotsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsDelete (..),
+    newComputeSnapshotsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.delete@ method which the
+-- 'ComputeSnapshotsDelete' request conforms to.
+type ComputeSnapshotsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "snapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified Snapshot resource. Keep in mind that deleting a single snapshot might not necessarily delete all the data on that snapshot. If any data on the snapshot that is marked for deletion is needed for subsequent snapshots, the data will be moved to the next corresponding snapshot. For more information, see Deleting snapshots.
+--
+-- /See:/ 'newComputeSnapshotsDelete' smart constructor.
+data ComputeSnapshotsDelete = ComputeSnapshotsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Snapshot resource to delete.
+    snapshot :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsDelete' with the minimum fields required to make a request.
+newComputeSnapshotsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the Snapshot resource to delete. See 'snapshot'.
+  Core.Text ->
+  ComputeSnapshotsDelete
+newComputeSnapshotsDelete project snapshot =
+  ComputeSnapshotsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      snapshot = snapshot,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsDelete where
+  type Rs ComputeSnapshotsDelete = Operation
+  type
+    Scopes ComputeSnapshotsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSnapshotsDelete {..} =
+    go
+      project
+      snapshot
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/Get.hs b/gen/Gogol/Compute/Snapshots/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Snapshot resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.get@.
+module Gogol.Compute.Snapshots.Get
+  ( -- * Resource
+    ComputeSnapshotsGetResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsGet (..),
+    newComputeSnapshotsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.get@ method which the
+-- 'ComputeSnapshotsGet' request conforms to.
+type ComputeSnapshotsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "snapshot" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Snapshot
+
+-- | Returns the specified Snapshot resource.
+--
+-- /See:/ 'newComputeSnapshotsGet' smart constructor.
+data ComputeSnapshotsGet = ComputeSnapshotsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the Snapshot resource to return.
+    snapshot :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsGet' with the minimum fields required to make a request.
+newComputeSnapshotsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the Snapshot resource to return. See 'snapshot'.
+  Core.Text ->
+  ComputeSnapshotsGet
+newComputeSnapshotsGet project snapshot =
+  ComputeSnapshotsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      snapshot = snapshot,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsGet where
+  type Rs ComputeSnapshotsGet = Snapshot
+  type
+    Scopes ComputeSnapshotsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSnapshotsGet {..} =
+    go
+      project
+      snapshot
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/GetIamPolicy.hs b/gen/Gogol/Compute/Snapshots/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/GetIamPolicy.hs
@@ -0,0 +1,126 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.getIamPolicy@.
+module Gogol.Compute.Snapshots.GetIamPolicy
+  ( -- * Resource
+    ComputeSnapshotsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsGetIamPolicy (..),
+    newComputeSnapshotsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.getIamPolicy@ method which the
+-- 'ComputeSnapshotsGetIamPolicy' request conforms to.
+type ComputeSnapshotsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeSnapshotsGetIamPolicy' smart constructor.
+data ComputeSnapshotsGetIamPolicy = ComputeSnapshotsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsGetIamPolicy' with the minimum fields required to make a request.
+newComputeSnapshotsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSnapshotsGetIamPolicy
+newComputeSnapshotsGetIamPolicy project resource =
+  ComputeSnapshotsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsGetIamPolicy where
+  type Rs ComputeSnapshotsGetIamPolicy = Policy
+  type
+    Scopes ComputeSnapshotsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSnapshotsGetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/Insert.hs b/gen/Gogol/Compute/Snapshots/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a snapshot in the specified project using the data included in the request. For regular snapshot creation, consider using this method instead of disks.createSnapshot, as this method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.insert@.
+module Gogol.Compute.Snapshots.Insert
+  ( -- * Resource
+    ComputeSnapshotsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsInsert (..),
+    newComputeSnapshotsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.insert@ method which the
+-- 'ComputeSnapshotsInsert' request conforms to.
+type ComputeSnapshotsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Snapshot
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a snapshot in the specified project using the data included in the request. For regular snapshot creation, consider using this method instead of disks.createSnapshot, as this method supports more features, such as creating snapshots in a project different from the source disk project.
+--
+-- /See:/ 'newComputeSnapshotsInsert' smart constructor.
+data ComputeSnapshotsInsert = ComputeSnapshotsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Snapshot,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsInsert' with the minimum fields required to make a request.
+newComputeSnapshotsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Snapshot ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSnapshotsInsert
+newComputeSnapshotsInsert payload project =
+  ComputeSnapshotsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsInsert where
+  type Rs ComputeSnapshotsInsert = Operation
+  type
+    Scopes ComputeSnapshotsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSnapshotsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/List.hs b/gen/Gogol/Compute/Snapshots/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of Snapshot resources contained within the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.list@.
+module Gogol.Compute.Snapshots.List
+  ( -- * Resource
+    ComputeSnapshotsListResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsList (..),
+    newComputeSnapshotsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.list@ method which the
+-- 'ComputeSnapshotsList' request conforms to.
+type ComputeSnapshotsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SnapshotList
+
+-- | Retrieves the list of Snapshot resources contained within the specified project.
+--
+-- /See:/ 'newComputeSnapshotsList' smart constructor.
+data ComputeSnapshotsList = ComputeSnapshotsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsList' with the minimum fields required to make a request.
+newComputeSnapshotsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSnapshotsList
+newComputeSnapshotsList project =
+  ComputeSnapshotsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsList where
+  type Rs ComputeSnapshotsList = SnapshotList
+  type
+    Scopes ComputeSnapshotsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSnapshotsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/SetIamPolicy.hs b/gen/Gogol/Compute/Snapshots/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/SetIamPolicy.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.setIamPolicy@.
+module Gogol.Compute.Snapshots.SetIamPolicy
+  ( -- * Resource
+    ComputeSnapshotsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsSetIamPolicy (..),
+    newComputeSnapshotsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.setIamPolicy@ method which the
+-- 'ComputeSnapshotsSetIamPolicy' request conforms to.
+type ComputeSnapshotsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeSnapshotsSetIamPolicy' smart constructor.
+data ComputeSnapshotsSetIamPolicy = ComputeSnapshotsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsSetIamPolicy' with the minimum fields required to make a request.
+newComputeSnapshotsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSnapshotsSetIamPolicy
+newComputeSnapshotsSetIamPolicy payload project resource =
+  ComputeSnapshotsSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsSetIamPolicy where
+  type Rs ComputeSnapshotsSetIamPolicy = Policy
+  type
+    Scopes ComputeSnapshotsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSnapshotsSetIamPolicy {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/SetLabels.hs b/gen/Gogol/Compute/Snapshots/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/SetLabels.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.setLabels@.
+module Gogol.Compute.Snapshots.SetLabels
+  ( -- * Resource
+    ComputeSnapshotsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsSetLabels (..),
+    newComputeSnapshotsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.setLabels@ method which the
+-- 'ComputeSnapshotsSetLabels' request conforms to.
+type ComputeSnapshotsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] GlobalSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeSnapshotsSetLabels' smart constructor.
+data ComputeSnapshotsSetLabels = ComputeSnapshotsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: GlobalSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsSetLabels' with the minimum fields required to make a request.
+newComputeSnapshotsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  GlobalSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSnapshotsSetLabels
+newComputeSnapshotsSetLabels payload project resource =
+  ComputeSnapshotsSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsSetLabels where
+  type Rs ComputeSnapshotsSetLabels = Operation
+  type
+    Scopes ComputeSnapshotsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSnapshotsSetLabels {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSnapshotsSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Snapshots/TestIamPermissions.hs b/gen/Gogol/Compute/Snapshots/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Snapshots/TestIamPermissions.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Snapshots.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.snapshots.testIamPermissions@.
+module Gogol.Compute.Snapshots.TestIamPermissions
+  ( -- * Resource
+    ComputeSnapshotsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeSnapshotsTestIamPermissions (..),
+    newComputeSnapshotsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.snapshots.testIamPermissions@ method which the
+-- 'ComputeSnapshotsTestIamPermissions' request conforms to.
+type ComputeSnapshotsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "snapshots"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeSnapshotsTestIamPermissions' smart constructor.
+data ComputeSnapshotsTestIamPermissions = ComputeSnapshotsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSnapshotsTestIamPermissions' with the minimum fields required to make a request.
+newComputeSnapshotsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSnapshotsTestIamPermissions
+newComputeSnapshotsTestIamPermissions payload project resource =
+  ComputeSnapshotsTestIamPermissions
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSnapshotsTestIamPermissions where
+  type
+    Rs ComputeSnapshotsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeSnapshotsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSnapshotsTestIamPermissions {..} =
+    go
+      project
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSnapshotsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslCertificates/AggregatedList.hs b/gen/Gogol/Compute/SslCertificates/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslCertificates/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslCertificates.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslCertificates.aggregatedList@.
+module Gogol.Compute.SslCertificates.AggregatedList
+  ( -- * Resource
+    ComputeSslCertificatesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeSslCertificatesAggregatedList (..),
+    newComputeSslCertificatesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslCertificates.aggregatedList@ method which the
+-- 'ComputeSslCertificatesAggregatedList' request conforms to.
+type ComputeSslCertificatesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "sslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslCertificateAggregatedList
+
+-- | Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeSslCertificatesAggregatedList' smart constructor.
+data ComputeSslCertificatesAggregatedList = ComputeSslCertificatesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslCertificatesAggregatedList' with the minimum fields required to make a request.
+newComputeSslCertificatesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeSslCertificatesAggregatedList
+newComputeSslCertificatesAggregatedList project =
+  ComputeSslCertificatesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslCertificatesAggregatedList where
+  type
+    Rs ComputeSslCertificatesAggregatedList =
+      SslCertificateAggregatedList
+  type
+    Scopes ComputeSslCertificatesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslCertificatesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSslCertificatesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslCertificates/Delete.hs b/gen/Gogol/Compute/SslCertificates/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslCertificates/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslCertificates.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified SslCertificate resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslCertificates.delete@.
+module Gogol.Compute.SslCertificates.Delete
+  ( -- * Resource
+    ComputeSslCertificatesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeSslCertificatesDelete (..),
+    newComputeSslCertificatesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslCertificates.delete@ method which the
+-- 'ComputeSslCertificatesDelete' request conforms to.
+type ComputeSslCertificatesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslCertificates"
+    Core.:> Core.Capture "sslCertificate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified SslCertificate resource.
+--
+-- /See:/ 'newComputeSslCertificatesDelete' smart constructor.
+data ComputeSslCertificatesDelete = ComputeSslCertificatesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SslCertificate resource to delete.
+    sslCertificate :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslCertificatesDelete' with the minimum fields required to make a request.
+newComputeSslCertificatesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the SslCertificate resource to delete. See 'sslCertificate'.
+  Core.Text ->
+  ComputeSslCertificatesDelete
+newComputeSslCertificatesDelete project sslCertificate =
+  ComputeSslCertificatesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      sslCertificate = sslCertificate,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslCertificatesDelete where
+  type Rs ComputeSslCertificatesDelete = Operation
+  type
+    Scopes ComputeSslCertificatesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSslCertificatesDelete {..} =
+    go
+      project
+      sslCertificate
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslCertificatesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslCertificates/Get.hs b/gen/Gogol/Compute/SslCertificates/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslCertificates/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslCertificates.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified SslCertificate resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslCertificates.get@.
+module Gogol.Compute.SslCertificates.Get
+  ( -- * Resource
+    ComputeSslCertificatesGetResource,
+
+    -- ** Constructing a Request
+    ComputeSslCertificatesGet (..),
+    newComputeSslCertificatesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslCertificates.get@ method which the
+-- 'ComputeSslCertificatesGet' request conforms to.
+type ComputeSslCertificatesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslCertificates"
+    Core.:> Core.Capture "sslCertificate" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslCertificate
+
+-- | Returns the specified SslCertificate resource.
+--
+-- /See:/ 'newComputeSslCertificatesGet' smart constructor.
+data ComputeSslCertificatesGet = ComputeSslCertificatesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the SslCertificate resource to return.
+    sslCertificate :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslCertificatesGet' with the minimum fields required to make a request.
+newComputeSslCertificatesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the SslCertificate resource to return. See 'sslCertificate'.
+  Core.Text ->
+  ComputeSslCertificatesGet
+newComputeSslCertificatesGet project sslCertificate =
+  ComputeSslCertificatesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      sslCertificate = sslCertificate,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslCertificatesGet where
+  type Rs ComputeSslCertificatesGet = SslCertificate
+  type
+    Scopes ComputeSslCertificatesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslCertificatesGet {..} =
+    go
+      project
+      sslCertificate
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslCertificatesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslCertificates/Insert.hs b/gen/Gogol/Compute/SslCertificates/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslCertificates/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslCertificates.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a SslCertificate resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslCertificates.insert@.
+module Gogol.Compute.SslCertificates.Insert
+  ( -- * Resource
+    ComputeSslCertificatesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeSslCertificatesInsert (..),
+    newComputeSslCertificatesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslCertificates.insert@ method which the
+-- 'ComputeSslCertificatesInsert' request conforms to.
+type ComputeSslCertificatesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslCertificate
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a SslCertificate resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeSslCertificatesInsert' smart constructor.
+data ComputeSslCertificatesInsert = ComputeSslCertificatesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslCertificate,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslCertificatesInsert' with the minimum fields required to make a request.
+newComputeSslCertificatesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslCertificate ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSslCertificatesInsert
+newComputeSslCertificatesInsert payload project =
+  ComputeSslCertificatesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslCertificatesInsert where
+  type Rs ComputeSslCertificatesInsert = Operation
+  type
+    Scopes ComputeSslCertificatesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSslCertificatesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslCertificatesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslCertificates/List.hs b/gen/Gogol/Compute/SslCertificates/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslCertificates/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslCertificates.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of SslCertificate resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslCertificates.list@.
+module Gogol.Compute.SslCertificates.List
+  ( -- * Resource
+    ComputeSslCertificatesListResource,
+
+    -- ** Constructing a Request
+    ComputeSslCertificatesList (..),
+    newComputeSslCertificatesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslCertificates.list@ method which the
+-- 'ComputeSslCertificatesList' request conforms to.
+type ComputeSslCertificatesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslCertificateList
+
+-- | Retrieves the list of SslCertificate resources available to the specified project.
+--
+-- /See:/ 'newComputeSslCertificatesList' smart constructor.
+data ComputeSslCertificatesList = ComputeSslCertificatesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslCertificatesList' with the minimum fields required to make a request.
+newComputeSslCertificatesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSslCertificatesList
+newComputeSslCertificatesList project =
+  ComputeSslCertificatesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslCertificatesList where
+  type Rs ComputeSslCertificatesList = SslCertificateList
+  type
+    Scopes ComputeSslCertificatesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslCertificatesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslCertificatesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/AggregatedList.hs b/gen/Gogol/Compute/SslPolicies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/AggregatedList.hs
@@ -0,0 +1,152 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.aggregatedList@.
+module Gogol.Compute.SslPolicies.AggregatedList
+  ( -- * Resource
+    ComputeSslPoliciesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesAggregatedList (..),
+    newComputeSslPoliciesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.aggregatedList@ method which the
+-- 'ComputeSslPoliciesAggregatedList' request conforms to.
+type ComputeSslPoliciesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "sslPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslPoliciesAggregatedList
+
+-- | Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeSslPoliciesAggregatedList' smart constructor.
+data ComputeSslPoliciesAggregatedList = ComputeSslPoliciesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesAggregatedList' with the minimum fields required to make a request.
+newComputeSslPoliciesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeSslPoliciesAggregatedList
+newComputeSslPoliciesAggregatedList project =
+  ComputeSslPoliciesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesAggregatedList where
+  type
+    Rs ComputeSslPoliciesAggregatedList =
+      SslPoliciesAggregatedList
+  type
+    Scopes ComputeSslPoliciesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslPoliciesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/Delete.hs b/gen/Gogol/Compute/SslPolicies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.delete@.
+module Gogol.Compute.SslPolicies.Delete
+  ( -- * Resource
+    ComputeSslPoliciesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesDelete (..),
+    newComputeSslPoliciesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.delete@ method which the
+-- 'ComputeSslPoliciesDelete' request conforms to.
+type ComputeSslPoliciesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified SSL policy. The SSL policy resource can be deleted only if it is not in use by any TargetHttpsProxy or TargetSslProxy resources.
+--
+-- /See:/ 'newComputeSslPoliciesDelete' smart constructor.
+data ComputeSslPoliciesDelete = ComputeSslPoliciesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesDelete' with the minimum fields required to make a request.
+newComputeSslPoliciesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeSslPoliciesDelete
+newComputeSslPoliciesDelete project sslPolicy =
+  ComputeSslPoliciesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesDelete where
+  type Rs ComputeSslPoliciesDelete = Operation
+  type
+    Scopes ComputeSslPoliciesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSslPoliciesDelete {..} =
+    go
+      project
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/Get.hs b/gen/Gogol/Compute/SslPolicies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all of the ordered rules present in a single specified policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.get@.
+module Gogol.Compute.SslPolicies.Get
+  ( -- * Resource
+    ComputeSslPoliciesGetResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesGet (..),
+    newComputeSslPoliciesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.get@ method which the
+-- 'ComputeSslPoliciesGet' request conforms to.
+type ComputeSslPoliciesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslPolicy
+
+-- | Lists all of the ordered rules present in a single specified policy.
+--
+-- /See:/ 'newComputeSslPoliciesGet' smart constructor.
+data ComputeSslPoliciesGet = ComputeSslPoliciesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesGet' with the minimum fields required to make a request.
+newComputeSslPoliciesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeSslPoliciesGet
+newComputeSslPoliciesGet project sslPolicy =
+  ComputeSslPoliciesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesGet where
+  type Rs ComputeSslPoliciesGet = SslPolicy
+  type
+    Scopes ComputeSslPoliciesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslPoliciesGet {..} =
+    go
+      project
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/Insert.hs b/gen/Gogol/Compute/SslPolicies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified SSL policy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.insert@.
+module Gogol.Compute.SslPolicies.Insert
+  ( -- * Resource
+    ComputeSslPoliciesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesInsert (..),
+    newComputeSslPoliciesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.insert@ method which the
+-- 'ComputeSslPoliciesInsert' request conforms to.
+type ComputeSslPoliciesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Returns the specified SSL policy resource.
+--
+-- /See:/ 'newComputeSslPoliciesInsert' smart constructor.
+data ComputeSslPoliciesInsert = ComputeSslPoliciesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesInsert' with the minimum fields required to make a request.
+newComputeSslPoliciesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSslPoliciesInsert
+newComputeSslPoliciesInsert payload project =
+  ComputeSslPoliciesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesInsert where
+  type Rs ComputeSslPoliciesInsert = Operation
+  type
+    Scopes ComputeSslPoliciesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSslPoliciesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/List.hs b/gen/Gogol/Compute/SslPolicies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all the SSL policies that have been configured for the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.list@.
+module Gogol.Compute.SslPolicies.List
+  ( -- * Resource
+    ComputeSslPoliciesListResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesList (..),
+    newComputeSslPoliciesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.list@ method which the
+-- 'ComputeSslPoliciesList' request conforms to.
+type ComputeSslPoliciesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SslPoliciesList
+
+-- | Lists all the SSL policies that have been configured for the specified project.
+--
+-- /See:/ 'newComputeSslPoliciesList' smart constructor.
+data ComputeSslPoliciesList = ComputeSslPoliciesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesList' with the minimum fields required to make a request.
+newComputeSslPoliciesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSslPoliciesList
+newComputeSslPoliciesList project =
+  ComputeSslPoliciesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesList where
+  type Rs ComputeSslPoliciesList = SslPoliciesList
+  type
+    Scopes ComputeSslPoliciesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslPoliciesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/ListAvailableFeatures.hs b/gen/Gogol/Compute/SslPolicies/ListAvailableFeatures.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/ListAvailableFeatures.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.ListAvailableFeatures
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists all features that can be specified in the SSL policy when using custom profile.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.listAvailableFeatures@.
+module Gogol.Compute.SslPolicies.ListAvailableFeatures
+  ( -- * Resource
+    ComputeSslPoliciesListAvailableFeaturesResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesListAvailableFeatures (..),
+    newComputeSslPoliciesListAvailableFeatures,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.listAvailableFeatures@ method which the
+-- 'ComputeSslPoliciesListAvailableFeatures' request conforms to.
+type ComputeSslPoliciesListAvailableFeaturesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> "listAvailableFeatures"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get
+              '[Core.JSON]
+              SslPoliciesListAvailableFeaturesResponse
+
+-- | Lists all features that can be specified in the SSL policy when using custom profile.
+--
+-- /See:/ 'newComputeSslPoliciesListAvailableFeatures' smart constructor.
+data ComputeSslPoliciesListAvailableFeatures = ComputeSslPoliciesListAvailableFeatures
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesListAvailableFeatures' with the minimum fields required to make a request.
+newComputeSslPoliciesListAvailableFeatures ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSslPoliciesListAvailableFeatures
+newComputeSslPoliciesListAvailableFeatures project =
+  ComputeSslPoliciesListAvailableFeatures
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesListAvailableFeatures where
+  type
+    Rs ComputeSslPoliciesListAvailableFeatures =
+      SslPoliciesListAvailableFeaturesResponse
+  type
+    Scopes ComputeSslPoliciesListAvailableFeatures =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSslPoliciesListAvailableFeatures {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSslPoliciesListAvailableFeaturesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/SslPolicies/Patch.hs b/gen/Gogol/Compute/SslPolicies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/SslPolicies/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.SslPolicies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified SSL policy with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.sslPolicies.patch@.
+module Gogol.Compute.SslPolicies.Patch
+  ( -- * Resource
+    ComputeSslPoliciesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeSslPoliciesPatch (..),
+    newComputeSslPoliciesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.sslPolicies.patch@ method which the
+-- 'ComputeSslPoliciesPatch' request conforms to.
+type ComputeSslPoliciesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "sslPolicies"
+    Core.:> Core.Capture "sslPolicy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified SSL policy with the data included in the request.
+--
+-- /See:/ 'newComputeSslPoliciesPatch' smart constructor.
+data ComputeSslPoliciesPatch = ComputeSslPoliciesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.
+    sslPolicy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSslPoliciesPatch' with the minimum fields required to make a request.
+newComputeSslPoliciesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035. See 'sslPolicy'.
+  Core.Text ->
+  ComputeSslPoliciesPatch
+newComputeSslPoliciesPatch payload project sslPolicy =
+  ComputeSslPoliciesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      sslPolicy = sslPolicy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSslPoliciesPatch where
+  type Rs ComputeSslPoliciesPatch = Operation
+  type
+    Scopes ComputeSslPoliciesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSslPoliciesPatch {..} =
+    go
+      project
+      sslPolicy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSslPoliciesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePoolTypes/AggregatedList.hs b/gen/Gogol/Compute/StoragePoolTypes/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePoolTypes/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePoolTypes.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePoolTypes.aggregatedList@.
+module Gogol.Compute.StoragePoolTypes.AggregatedList
+  ( -- * Resource
+    ComputeStoragePoolTypesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolTypesAggregatedList (..),
+    newComputeStoragePoolTypesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePoolTypes.aggregatedList@ method which the
+-- 'ComputeStoragePoolTypesAggregatedList' request conforms to.
+type ComputeStoragePoolTypesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "storagePoolTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolTypeAggregatedList
+
+-- | Retrieves an aggregated list of storage pool types. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeStoragePoolTypesAggregatedList' smart constructor.
+data ComputeStoragePoolTypesAggregatedList = ComputeStoragePoolTypesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolTypesAggregatedList' with the minimum fields required to make a request.
+newComputeStoragePoolTypesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeStoragePoolTypesAggregatedList
+newComputeStoragePoolTypesAggregatedList project =
+  ComputeStoragePoolTypesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolTypesAggregatedList where
+  type
+    Rs ComputeStoragePoolTypesAggregatedList =
+      StoragePoolTypeAggregatedList
+  type
+    Scopes ComputeStoragePoolTypesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolTypesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeStoragePoolTypesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePoolTypes/Get.hs b/gen/Gogol/Compute/StoragePoolTypes/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePoolTypes/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePoolTypes.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified storage pool type.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePoolTypes.get@.
+module Gogol.Compute.StoragePoolTypes.Get
+  ( -- * Resource
+    ComputeStoragePoolTypesGetResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolTypesGet (..),
+    newComputeStoragePoolTypesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePoolTypes.get@ method which the
+-- 'ComputeStoragePoolTypesGet' request conforms to.
+type ComputeStoragePoolTypesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePoolTypes"
+    Core.:> Core.Capture "storagePoolType" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolType
+
+-- | Returns the specified storage pool type.
+--
+-- /See:/ 'newComputeStoragePoolTypesGet' smart constructor.
+data ComputeStoragePoolTypesGet = ComputeStoragePoolTypesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the storage pool type to return.
+    storagePoolType :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolTypesGet' with the minimum fields required to make a request.
+newComputeStoragePoolTypesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the storage pool type to return. See 'storagePoolType'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolTypesGet
+newComputeStoragePoolTypesGet project storagePoolType zone =
+  ComputeStoragePoolTypesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      storagePoolType = storagePoolType,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolTypesGet where
+  type Rs ComputeStoragePoolTypesGet = StoragePoolType
+  type
+    Scopes ComputeStoragePoolTypesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolTypesGet {..} =
+    go
+      project
+      zone
+      storagePoolType
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolTypesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePoolTypes/List.hs b/gen/Gogol/Compute/StoragePoolTypes/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePoolTypes/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePoolTypes.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of storage pool types available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePoolTypes.list@.
+module Gogol.Compute.StoragePoolTypes.List
+  ( -- * Resource
+    ComputeStoragePoolTypesListResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolTypesList (..),
+    newComputeStoragePoolTypesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePoolTypes.list@ method which the
+-- 'ComputeStoragePoolTypesList' request conforms to.
+type ComputeStoragePoolTypesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePoolTypes"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolTypeList
+
+-- | Retrieves a list of storage pool types available to the specified project.
+--
+-- /See:/ 'newComputeStoragePoolTypesList' smart constructor.
+data ComputeStoragePoolTypesList = ComputeStoragePoolTypesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolTypesList' with the minimum fields required to make a request.
+newComputeStoragePoolTypesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolTypesList
+newComputeStoragePoolTypesList project zone =
+  ComputeStoragePoolTypesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolTypesList where
+  type Rs ComputeStoragePoolTypesList = StoragePoolTypeList
+  type
+    Scopes ComputeStoragePoolTypesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolTypesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolTypesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/AggregatedList.hs b/gen/Gogol/Compute/StoragePools/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.aggregatedList@.
+module Gogol.Compute.StoragePools.AggregatedList
+  ( -- * Resource
+    ComputeStoragePoolsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsAggregatedList (..),
+    newComputeStoragePoolsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.aggregatedList@ method which the
+-- 'ComputeStoragePoolsAggregatedList' request conforms to.
+type ComputeStoragePoolsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "storagePools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolAggregatedList
+
+-- | Retrieves an aggregated list of storage pools. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeStoragePoolsAggregatedList' smart constructor.
+data ComputeStoragePoolsAggregatedList = ComputeStoragePoolsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsAggregatedList' with the minimum fields required to make a request.
+newComputeStoragePoolsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeStoragePoolsAggregatedList
+newComputeStoragePoolsAggregatedList project =
+  ComputeStoragePoolsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsAggregatedList where
+  type
+    Rs ComputeStoragePoolsAggregatedList =
+      StoragePoolAggregatedList
+  type
+    Scopes ComputeStoragePoolsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeStoragePoolsAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/Delete.hs b/gen/Gogol/Compute/StoragePools/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.delete@.
+module Gogol.Compute.StoragePools.Delete
+  ( -- * Resource
+    ComputeStoragePoolsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsDelete (..),
+    newComputeStoragePoolsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.delete@ method which the
+-- 'ComputeStoragePoolsDelete' request conforms to.
+type ComputeStoragePoolsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "storagePool" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified storage pool. Deleting a storagePool removes its data permanently and is irreversible. However, deleting a storagePool does not delete any snapshots previously made from the storagePool. You must separately delete snapshots.
+--
+-- /See:/ 'newComputeStoragePoolsDelete' smart constructor.
+data ComputeStoragePoolsDelete = ComputeStoragePoolsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the storage pool to delete.
+    storagePool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsDelete' with the minimum fields required to make a request.
+newComputeStoragePoolsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the storage pool to delete. See 'storagePool'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsDelete
+newComputeStoragePoolsDelete project storagePool zone =
+  ComputeStoragePoolsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      storagePool = storagePool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsDelete where
+  type Rs ComputeStoragePoolsDelete = Operation
+  type
+    Scopes ComputeStoragePoolsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeStoragePoolsDelete {..} =
+    go
+      project
+      zone
+      storagePool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/Get.hs b/gen/Gogol/Compute/StoragePools/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a specified storage pool. Gets a list of available storage pools by making a list() request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.get@.
+module Gogol.Compute.StoragePools.Get
+  ( -- * Resource
+    ComputeStoragePoolsGetResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsGet (..),
+    newComputeStoragePoolsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.get@ method which the
+-- 'ComputeStoragePoolsGet' request conforms to.
+type ComputeStoragePoolsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "storagePool" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePool
+
+-- | Returns a specified storage pool. Gets a list of available storage pools by making a list() request.
+--
+-- /See:/ 'newComputeStoragePoolsGet' smart constructor.
+data ComputeStoragePoolsGet = ComputeStoragePoolsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the storage pool to return.
+    storagePool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsGet' with the minimum fields required to make a request.
+newComputeStoragePoolsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the storage pool to return. See 'storagePool'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsGet
+newComputeStoragePoolsGet project storagePool zone =
+  ComputeStoragePoolsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      storagePool = storagePool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsGet where
+  type Rs ComputeStoragePoolsGet = StoragePool
+  type
+    Scopes ComputeStoragePoolsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsGet {..} =
+    go
+      project
+      zone
+      storagePool
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/GetIamPolicy.hs b/gen/Gogol/Compute/StoragePools/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.getIamPolicy@.
+module Gogol.Compute.StoragePools.GetIamPolicy
+  ( -- * Resource
+    ComputeStoragePoolsGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsGetIamPolicy (..),
+    newComputeStoragePoolsGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.getIamPolicy@ method which the
+-- 'ComputeStoragePoolsGetIamPolicy' request conforms to.
+type ComputeStoragePoolsGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeStoragePoolsGetIamPolicy' smart constructor.
+data ComputeStoragePoolsGetIamPolicy = ComputeStoragePoolsGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsGetIamPolicy' with the minimum fields required to make a request.
+newComputeStoragePoolsGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsGetIamPolicy
+newComputeStoragePoolsGetIamPolicy project resource zone =
+  ComputeStoragePoolsGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsGetIamPolicy where
+  type Rs ComputeStoragePoolsGetIamPolicy = Policy
+  type
+    Scopes ComputeStoragePoolsGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsGetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/Insert.hs b/gen/Gogol/Compute/StoragePools/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a storage pool in the specified project using the data in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.insert@.
+module Gogol.Compute.StoragePools.Insert
+  ( -- * Resource
+    ComputeStoragePoolsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsInsert (..),
+    newComputeStoragePoolsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.insert@ method which the
+-- 'ComputeStoragePoolsInsert' request conforms to.
+type ComputeStoragePoolsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] StoragePool
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a storage pool in the specified project using the data in the request.
+--
+-- /See:/ 'newComputeStoragePoolsInsert' smart constructor.
+data ComputeStoragePoolsInsert = ComputeStoragePoolsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: StoragePool,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsInsert' with the minimum fields required to make a request.
+newComputeStoragePoolsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  StoragePool ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsInsert
+newComputeStoragePoolsInsert payload project zone =
+  ComputeStoragePoolsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsInsert where
+  type Rs ComputeStoragePoolsInsert = Operation
+  type
+    Scopes ComputeStoragePoolsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeStoragePoolsInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/List.hs b/gen/Gogol/Compute/StoragePools/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of storage pools contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.list@.
+module Gogol.Compute.StoragePools.List
+  ( -- * Resource
+    ComputeStoragePoolsListResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsList (..),
+    newComputeStoragePoolsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.list@ method which the
+-- 'ComputeStoragePoolsList' request conforms to.
+type ComputeStoragePoolsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolList
+
+-- | Retrieves a list of storage pools contained within the specified zone.
+--
+-- /See:/ 'newComputeStoragePoolsList' smart constructor.
+data ComputeStoragePoolsList = ComputeStoragePoolsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsList' with the minimum fields required to make a request.
+newComputeStoragePoolsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsList
+newComputeStoragePoolsList project zone =
+  ComputeStoragePoolsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsList where
+  type Rs ComputeStoragePoolsList = StoragePoolList
+  type
+    Scopes ComputeStoragePoolsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/ListDisks.hs b/gen/Gogol/Compute/StoragePools/ListDisks.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/ListDisks.hs
@@ -0,0 +1,155 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.ListDisks
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the disks in a specified storage pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.listDisks@.
+module Gogol.Compute.StoragePools.ListDisks
+  ( -- * Resource
+    ComputeStoragePoolsListDisksResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsListDisks (..),
+    newComputeStoragePoolsListDisks,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.listDisks@ method which the
+-- 'ComputeStoragePoolsListDisks' request conforms to.
+type ComputeStoragePoolsListDisksResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "storagePool" Core.Text
+    Core.:> "listDisks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] StoragePoolListDisks
+
+-- | Lists the disks in a specified storage pool.
+--
+-- /See:/ 'newComputeStoragePoolsListDisks' smart constructor.
+data ComputeStoragePoolsListDisks = ComputeStoragePoolsListDisks
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Name of the storage pool to list disks of.
+    storagePool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsListDisks' with the minimum fields required to make a request.
+newComputeStoragePoolsListDisks ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the storage pool to list disks of. See 'storagePool'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsListDisks
+newComputeStoragePoolsListDisks project storagePool zone =
+  ComputeStoragePoolsListDisks
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      storagePool = storagePool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsListDisks where
+  type Rs ComputeStoragePoolsListDisks = StoragePoolListDisks
+  type
+    Scopes ComputeStoragePoolsListDisks =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsListDisks {..} =
+    go
+      project
+      zone
+      storagePool
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsListDisksResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/SetIamPolicy.hs b/gen/Gogol/Compute/StoragePools/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.setIamPolicy@.
+module Gogol.Compute.StoragePools.SetIamPolicy
+  ( -- * Resource
+    ComputeStoragePoolsSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsSetIamPolicy (..),
+    newComputeStoragePoolsSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.setIamPolicy@ method which the
+-- 'ComputeStoragePoolsSetIamPolicy' request conforms to.
+type ComputeStoragePoolsSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] ZoneSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeStoragePoolsSetIamPolicy' smart constructor.
+data ComputeStoragePoolsSetIamPolicy = ComputeStoragePoolsSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: ZoneSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsSetIamPolicy' with the minimum fields required to make a request.
+newComputeStoragePoolsSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  ZoneSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsSetIamPolicy
+newComputeStoragePoolsSetIamPolicy payload project resource zone =
+  ComputeStoragePoolsSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsSetIamPolicy where
+  type Rs ComputeStoragePoolsSetIamPolicy = Policy
+  type
+    Scopes ComputeStoragePoolsSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeStoragePoolsSetIamPolicy {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/TestIamPermissions.hs b/gen/Gogol/Compute/StoragePools/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.testIamPermissions@.
+module Gogol.Compute.StoragePools.TestIamPermissions
+  ( -- * Resource
+    ComputeStoragePoolsTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsTestIamPermissions (..),
+    newComputeStoragePoolsTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.testIamPermissions@ method which the
+-- 'ComputeStoragePoolsTestIamPermissions' request conforms to.
+type ComputeStoragePoolsTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeStoragePoolsTestIamPermissions' smart constructor.
+data ComputeStoragePoolsTestIamPermissions = ComputeStoragePoolsTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsTestIamPermissions' with the minimum fields required to make a request.
+newComputeStoragePoolsTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsTestIamPermissions
+newComputeStoragePoolsTestIamPermissions
+  payload
+  project
+  resource
+  zone =
+    ComputeStoragePoolsTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeStoragePoolsTestIamPermissions where
+  type
+    Rs ComputeStoragePoolsTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeStoragePoolsTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeStoragePoolsTestIamPermissions {..} =
+    go
+      project
+      zone
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeStoragePoolsTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/StoragePools/Update.hs b/gen/Gogol/Compute/StoragePools/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/StoragePools/Update.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.StoragePools.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: pool/provisioned/capacity/gb, pool/provisioned/iops and pool/provisioned_throughput.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.storagePools.update@.
+module Gogol.Compute.StoragePools.Update
+  ( -- * Resource
+    ComputeStoragePoolsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeStoragePoolsUpdate (..),
+    newComputeStoragePoolsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.storagePools.update@ method which the
+-- 'ComputeStoragePoolsUpdate' request conforms to.
+type ComputeStoragePoolsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "storagePools"
+    Core.:> Core.Capture "storagePool" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "updateMask" Core.FieldMask
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] StoragePool
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Updates the specified storagePool with the data included in the request. The update is performed only on selected fields included as part of update-mask. Only the following fields can be modified: pool/provisioned/capacity/gb, pool/provisioned/iops and pool/provisioned_throughput.
+--
+-- /See:/ 'newComputeStoragePoolsUpdate' smart constructor.
+data ComputeStoragePoolsUpdate = ComputeStoragePoolsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: StoragePool,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | The storagePool name for this request.
+    storagePool :: Core.Text,
+    -- | update_mask indicates fields to be updated as part of this request.
+    updateMask :: (Core.Maybe Core.FieldMask),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | The name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeStoragePoolsUpdate' with the minimum fields required to make a request.
+newComputeStoragePoolsUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  StoragePool ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The storagePool name for this request. See 'storagePool'.
+  Core.Text ->
+  -- |  The name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeStoragePoolsUpdate
+newComputeStoragePoolsUpdate payload project storagePool zone =
+  ComputeStoragePoolsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      storagePool = storagePool,
+      updateMask = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeStoragePoolsUpdate where
+  type Rs ComputeStoragePoolsUpdate = Operation
+  type
+    Scopes ComputeStoragePoolsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeStoragePoolsUpdate {..} =
+    go
+      project
+      zone
+      storagePool
+      xgafv
+      accessToken
+      callback
+      requestId
+      updateMask
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeStoragePoolsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/AggregatedList.hs b/gen/Gogol/Compute/Subnetworks/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.aggregatedList@.
+module Gogol.Compute.Subnetworks.AggregatedList
+  ( -- * Resource
+    ComputeSubnetworksAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksAggregatedList (..),
+    newComputeSubnetworksAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.aggregatedList@ method which the
+-- 'ComputeSubnetworksAggregatedList' request conforms to.
+type ComputeSubnetworksAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "subnetworks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SubnetworkAggregatedList
+
+-- | Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeSubnetworksAggregatedList' smart constructor.
+data ComputeSubnetworksAggregatedList = ComputeSubnetworksAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksAggregatedList' with the minimum fields required to make a request.
+newComputeSubnetworksAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSubnetworksAggregatedList
+newComputeSubnetworksAggregatedList project =
+  ComputeSubnetworksAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksAggregatedList where
+  type Rs ComputeSubnetworksAggregatedList = SubnetworkAggregatedList
+  type
+    Scopes ComputeSubnetworksAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/Delete.hs b/gen/Gogol/Compute/Subnetworks/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified subnetwork.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.delete@.
+module Gogol.Compute.Subnetworks.Delete
+  ( -- * Resource
+    ComputeSubnetworksDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksDelete (..),
+    newComputeSubnetworksDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.delete@ method which the
+-- 'ComputeSubnetworksDelete' request conforms to.
+type ComputeSubnetworksDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "subnetwork" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified subnetwork.
+--
+-- /See:/ 'newComputeSubnetworksDelete' smart constructor.
+data ComputeSubnetworksDelete = ComputeSubnetworksDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Subnetwork resource to delete.
+    subnetwork :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksDelete' with the minimum fields required to make a request.
+newComputeSubnetworksDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Subnetwork resource to delete. See 'subnetwork'.
+  Core.Text ->
+  ComputeSubnetworksDelete
+newComputeSubnetworksDelete project region subnetwork =
+  ComputeSubnetworksDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      subnetwork = subnetwork,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksDelete where
+  type Rs ComputeSubnetworksDelete = Operation
+  type
+    Scopes ComputeSubnetworksDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksDelete {..} =
+    go
+      project
+      region
+      subnetwork
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/ExpandIpCidrRange.hs b/gen/Gogol/Compute/Subnetworks/ExpandIpCidrRange.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/ExpandIpCidrRange.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.ExpandIpCidrRange
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Expands the IP CIDR range of the subnetwork to a specified value.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.expandIpCidrRange@.
+module Gogol.Compute.Subnetworks.ExpandIpCidrRange
+  ( -- * Resource
+    ComputeSubnetworksExpandIpCidrRangeResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksExpandIpCidrRange (..),
+    newComputeSubnetworksExpandIpCidrRange,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.expandIpCidrRange@ method which the
+-- 'ComputeSubnetworksExpandIpCidrRange' request conforms to.
+type ComputeSubnetworksExpandIpCidrRangeResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "subnetwork" Core.Text
+    Core.:> "expandIpCidrRange"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SubnetworksExpandIpCidrRangeRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Expands the IP CIDR range of the subnetwork to a specified value.
+--
+-- /See:/ 'newComputeSubnetworksExpandIpCidrRange' smart constructor.
+data ComputeSubnetworksExpandIpCidrRange = ComputeSubnetworksExpandIpCidrRange
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SubnetworksExpandIpCidrRangeRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Subnetwork resource to update.
+    subnetwork :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksExpandIpCidrRange' with the minimum fields required to make a request.
+newComputeSubnetworksExpandIpCidrRange ::
+  -- |  Multipart request metadata. See 'payload'.
+  SubnetworksExpandIpCidrRangeRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Subnetwork resource to update. See 'subnetwork'.
+  Core.Text ->
+  ComputeSubnetworksExpandIpCidrRange
+newComputeSubnetworksExpandIpCidrRange
+  payload
+  project
+  region
+  subnetwork =
+    ComputeSubnetworksExpandIpCidrRange
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        subnetwork = subnetwork,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeSubnetworksExpandIpCidrRange where
+  type Rs ComputeSubnetworksExpandIpCidrRange = Operation
+  type
+    Scopes ComputeSubnetworksExpandIpCidrRange =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksExpandIpCidrRange {..} =
+    go
+      project
+      region
+      subnetwork
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSubnetworksExpandIpCidrRangeResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/Get.hs b/gen/Gogol/Compute/Subnetworks/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified subnetwork.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.get@.
+module Gogol.Compute.Subnetworks.Get
+  ( -- * Resource
+    ComputeSubnetworksGetResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksGet (..),
+    newComputeSubnetworksGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.get@ method which the
+-- 'ComputeSubnetworksGet' request conforms to.
+type ComputeSubnetworksGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "subnetwork" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Subnetwork
+
+-- | Returns the specified subnetwork.
+--
+-- /See:/ 'newComputeSubnetworksGet' smart constructor.
+data ComputeSubnetworksGet = ComputeSubnetworksGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the Subnetwork resource to return.
+    subnetwork :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksGet' with the minimum fields required to make a request.
+newComputeSubnetworksGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Subnetwork resource to return. See 'subnetwork'.
+  Core.Text ->
+  ComputeSubnetworksGet
+newComputeSubnetworksGet project region subnetwork =
+  ComputeSubnetworksGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      subnetwork = subnetwork,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksGet where
+  type Rs ComputeSubnetworksGet = Subnetwork
+  type
+    Scopes ComputeSubnetworksGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksGet {..} =
+    go
+      project
+      region
+      subnetwork
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/GetIamPolicy.hs b/gen/Gogol/Compute/Subnetworks/GetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/GetIamPolicy.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.GetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.getIamPolicy@.
+module Gogol.Compute.Subnetworks.GetIamPolicy
+  ( -- * Resource
+    ComputeSubnetworksGetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksGetIamPolicy (..),
+    newComputeSubnetworksGetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.getIamPolicy@ method which the
+-- 'ComputeSubnetworksGetIamPolicy' request conforms to.
+type ComputeSubnetworksGetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "getIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "optionsRequestedPolicyVersion" Core.Int32
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Policy
+
+-- | Gets the access control policy for a resource. May be empty if no such policy or resource exists.
+--
+-- /See:/ 'newComputeSubnetworksGetIamPolicy' smart constructor.
+data ComputeSubnetworksGetIamPolicy = ComputeSubnetworksGetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Requested IAM Policy version.
+    optionsRequestedPolicyVersion :: (Core.Maybe Core.Int32),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksGetIamPolicy' with the minimum fields required to make a request.
+newComputeSubnetworksGetIamPolicy ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSubnetworksGetIamPolicy
+newComputeSubnetworksGetIamPolicy project region resource =
+  ComputeSubnetworksGetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      optionsRequestedPolicyVersion = Core.Nothing,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksGetIamPolicy where
+  type Rs ComputeSubnetworksGetIamPolicy = Policy
+  type
+    Scopes ComputeSubnetworksGetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksGetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      optionsRequestedPolicyVersion
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksGetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/Insert.hs b/gen/Gogol/Compute/Subnetworks/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a subnetwork in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.insert@.
+module Gogol.Compute.Subnetworks.Insert
+  ( -- * Resource
+    ComputeSubnetworksInsertResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksInsert (..),
+    newComputeSubnetworksInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.insert@ method which the
+-- 'ComputeSubnetworksInsert' request conforms to.
+type ComputeSubnetworksInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Subnetwork
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a subnetwork in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeSubnetworksInsert' smart constructor.
+data ComputeSubnetworksInsert = ComputeSubnetworksInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: Subnetwork,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksInsert' with the minimum fields required to make a request.
+newComputeSubnetworksInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  Subnetwork ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeSubnetworksInsert
+newComputeSubnetworksInsert payload project region =
+  ComputeSubnetworksInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksInsert where
+  type Rs ComputeSubnetworksInsert = Operation
+  type
+    Scopes ComputeSubnetworksInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/List.hs b/gen/Gogol/Compute/Subnetworks/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of subnetworks available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.list@.
+module Gogol.Compute.Subnetworks.List
+  ( -- * Resource
+    ComputeSubnetworksListResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksList (..),
+    newComputeSubnetworksList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.list@ method which the
+-- 'ComputeSubnetworksList' request conforms to.
+type ComputeSubnetworksListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] SubnetworkList
+
+-- | Retrieves a list of subnetworks available to the specified project.
+--
+-- /See:/ 'newComputeSubnetworksList' smart constructor.
+data ComputeSubnetworksList = ComputeSubnetworksList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksList' with the minimum fields required to make a request.
+newComputeSubnetworksList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeSubnetworksList
+newComputeSubnetworksList project region =
+  ComputeSubnetworksList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksList where
+  type Rs ComputeSubnetworksList = SubnetworkList
+  type
+    Scopes ComputeSubnetworksList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/ListUsable.hs b/gen/Gogol/Compute/Subnetworks/ListUsable.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/ListUsable.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.ListUsable
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of all usable subnetworks in the project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.listUsable@.
+module Gogol.Compute.Subnetworks.ListUsable
+  ( -- * Resource
+    ComputeSubnetworksListUsableResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksListUsable (..),
+    newComputeSubnetworksListUsable,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.listUsable@ method which the
+-- 'ComputeSubnetworksListUsable' request conforms to.
+type ComputeSubnetworksListUsableResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "subnetworks"
+    Core.:> "listUsable"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UsableSubnetworksAggregatedList
+
+-- | Retrieves an aggregated list of all usable subnetworks in the project.
+--
+-- /See:/ 'newComputeSubnetworksListUsable' smart constructor.
+data ComputeSubnetworksListUsable = ComputeSubnetworksListUsable
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksListUsable' with the minimum fields required to make a request.
+newComputeSubnetworksListUsable ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeSubnetworksListUsable
+newComputeSubnetworksListUsable project =
+  ComputeSubnetworksListUsable
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksListUsable where
+  type
+    Rs ComputeSubnetworksListUsable =
+      UsableSubnetworksAggregatedList
+  type
+    Scopes ComputeSubnetworksListUsable =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksListUsable {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksListUsableResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/Patch.hs b/gen/Gogol/Compute/Subnetworks/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/Patch.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.patch@.
+module Gogol.Compute.Subnetworks.Patch
+  ( -- * Resource
+    ComputeSubnetworksPatchResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksPatch (..),
+    newComputeSubnetworksPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.patch@ method which the
+-- 'ComputeSubnetworksPatch' request conforms to.
+type ComputeSubnetworksPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "subnetwork" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "drainTimeoutSeconds" Core.Int32
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] Subnetwork
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified subnetwork with the data included in the request. Only certain fields can be updated with a patch request as indicated in the field descriptions. You must specify the current fingerprint of the subnetwork resource being patched.
+--
+-- /See:/ 'newComputeSubnetworksPatch' smart constructor.
+data ComputeSubnetworksPatch = ComputeSubnetworksPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | The drain timeout specifies the upper bound in seconds on the amount of time allowed to drain connections from the current ACTIVE subnetwork to the current BACKUP subnetwork. The drain timeout is only applicable when the following conditions are true: - the subnetwork being patched has purpose = INTERNAL/HTTPS/LOAD_BALANCER - the subnetwork being patched has role = BACKUP - the patch request is setting the role to ACTIVE. Note that after this patch operation the roles of the ACTIVE and BACKUP subnetworks will be swapped.
+    drainTimeoutSeconds :: (Core.Maybe Core.Int32),
+    -- | Multipart request metadata.
+    payload :: Subnetwork,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Subnetwork resource to patch.
+    subnetwork :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksPatch' with the minimum fields required to make a request.
+newComputeSubnetworksPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  Subnetwork ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Subnetwork resource to patch. See 'subnetwork'.
+  Core.Text ->
+  ComputeSubnetworksPatch
+newComputeSubnetworksPatch payload project region subnetwork =
+  ComputeSubnetworksPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      drainTimeoutSeconds = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      subnetwork = subnetwork,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksPatch where
+  type Rs ComputeSubnetworksPatch = Operation
+  type
+    Scopes ComputeSubnetworksPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksPatch {..} =
+    go
+      project
+      region
+      subnetwork
+      xgafv
+      accessToken
+      callback
+      drainTimeoutSeconds
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/SetIamPolicy.hs b/gen/Gogol/Compute/Subnetworks/SetIamPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/SetIamPolicy.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.SetIamPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.setIamPolicy@.
+module Gogol.Compute.Subnetworks.SetIamPolicy
+  ( -- * Resource
+    ComputeSubnetworksSetIamPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksSetIamPolicy (..),
+    newComputeSubnetworksSetIamPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.setIamPolicy@ method which the
+-- 'ComputeSubnetworksSetIamPolicy' request conforms to.
+type ComputeSubnetworksSetIamPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setIamPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetPolicyRequest
+    Core.:> Core.Post '[Core.JSON] Policy
+
+-- | Sets the access control policy on the specified resource. Replaces any existing policy.
+--
+-- /See:/ 'newComputeSubnetworksSetIamPolicy' smart constructor.
+data ComputeSubnetworksSetIamPolicy = ComputeSubnetworksSetIamPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetPolicyRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksSetIamPolicy' with the minimum fields required to make a request.
+newComputeSubnetworksSetIamPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetPolicyRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSubnetworksSetIamPolicy
+newComputeSubnetworksSetIamPolicy payload project region resource =
+  ComputeSubnetworksSetIamPolicy
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeSubnetworksSetIamPolicy where
+  type Rs ComputeSubnetworksSetIamPolicy = Policy
+  type
+    Scopes ComputeSubnetworksSetIamPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksSetIamPolicy {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeSubnetworksSetIamPolicyResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/SetPrivateIpGoogleAccess.hs b/gen/Gogol/Compute/Subnetworks/SetPrivateIpGoogleAccess.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/SetPrivateIpGoogleAccess.hs
@@ -0,0 +1,151 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.SetPrivateIpGoogleAccess
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.setPrivateIpGoogleAccess@.
+module Gogol.Compute.Subnetworks.SetPrivateIpGoogleAccess
+  ( -- * Resource
+    ComputeSubnetworksSetPrivateIpGoogleAccessResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksSetPrivateIpGoogleAccess (..),
+    newComputeSubnetworksSetPrivateIpGoogleAccess,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.setPrivateIpGoogleAccess@ method which the
+-- 'ComputeSubnetworksSetPrivateIpGoogleAccess' request conforms to.
+type ComputeSubnetworksSetPrivateIpGoogleAccessResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "subnetwork" Core.Text
+    Core.:> "setPrivateIpGoogleAccess"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              SubnetworksSetPrivateIpGoogleAccessRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.
+--
+-- /See:/ 'newComputeSubnetworksSetPrivateIpGoogleAccess' smart constructor.
+data ComputeSubnetworksSetPrivateIpGoogleAccess = ComputeSubnetworksSetPrivateIpGoogleAccess
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SubnetworksSetPrivateIpGoogleAccessRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the Subnetwork resource.
+    subnetwork :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksSetPrivateIpGoogleAccess' with the minimum fields required to make a request.
+newComputeSubnetworksSetPrivateIpGoogleAccess ::
+  -- |  Multipart request metadata. See 'payload'.
+  SubnetworksSetPrivateIpGoogleAccessRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the Subnetwork resource. See 'subnetwork'.
+  Core.Text ->
+  ComputeSubnetworksSetPrivateIpGoogleAccess
+newComputeSubnetworksSetPrivateIpGoogleAccess
+  payload
+  project
+  region
+  subnetwork =
+    ComputeSubnetworksSetPrivateIpGoogleAccess
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        subnetwork = subnetwork,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeSubnetworksSetPrivateIpGoogleAccess
+  where
+  type Rs ComputeSubnetworksSetPrivateIpGoogleAccess = Operation
+  type
+    Scopes ComputeSubnetworksSetPrivateIpGoogleAccess =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeSubnetworksSetPrivateIpGoogleAccess {..} =
+    go
+      project
+      region
+      subnetwork
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSubnetworksSetPrivateIpGoogleAccessResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Subnetworks/TestIamPermissions.hs b/gen/Gogol/Compute/Subnetworks/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Subnetworks/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Subnetworks.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.subnetworks.testIamPermissions@.
+module Gogol.Compute.Subnetworks.TestIamPermissions
+  ( -- * Resource
+    ComputeSubnetworksTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeSubnetworksTestIamPermissions (..),
+    newComputeSubnetworksTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.subnetworks.testIamPermissions@ method which the
+-- 'ComputeSubnetworksTestIamPermissions' request conforms to.
+type ComputeSubnetworksTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "subnetworks"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeSubnetworksTestIamPermissions' smart constructor.
+data ComputeSubnetworksTestIamPermissions = ComputeSubnetworksTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeSubnetworksTestIamPermissions' with the minimum fields required to make a request.
+newComputeSubnetworksTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeSubnetworksTestIamPermissions
+newComputeSubnetworksTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeSubnetworksTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeSubnetworksTestIamPermissions where
+  type
+    Rs ComputeSubnetworksTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeSubnetworksTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeSubnetworksTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeSubnetworksTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetGrpcProxies/Delete.hs b/gen/Gogol/Compute/TargetGrpcProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetGrpcProxies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetGrpcProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetGrpcProxy in the given scope
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetGrpcProxies.delete@.
+module Gogol.Compute.TargetGrpcProxies.Delete
+  ( -- * Resource
+    ComputeTargetGrpcProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetGrpcProxiesDelete (..),
+    newComputeTargetGrpcProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetGrpcProxies.delete@ method which the
+-- 'ComputeTargetGrpcProxiesDelete' request conforms to.
+type ComputeTargetGrpcProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetGrpcProxies"
+    Core.:> Core.Capture "targetGrpcProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetGrpcProxy in the given scope
+--
+-- /See:/ 'newComputeTargetGrpcProxiesDelete' smart constructor.
+data ComputeTargetGrpcProxiesDelete = ComputeTargetGrpcProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetGrpcProxy resource to delete.
+    targetGrpcProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetGrpcProxiesDelete' with the minimum fields required to make a request.
+newComputeTargetGrpcProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetGrpcProxy resource to delete. See 'targetGrpcProxy'.
+  Core.Text ->
+  ComputeTargetGrpcProxiesDelete
+newComputeTargetGrpcProxiesDelete project targetGrpcProxy =
+  ComputeTargetGrpcProxiesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetGrpcProxy = targetGrpcProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetGrpcProxiesDelete where
+  type Rs ComputeTargetGrpcProxiesDelete = Operation
+  type
+    Scopes ComputeTargetGrpcProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetGrpcProxiesDelete {..} =
+    go
+      project
+      targetGrpcProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetGrpcProxiesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetGrpcProxies/Get.hs b/gen/Gogol/Compute/TargetGrpcProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetGrpcProxies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetGrpcProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetGrpcProxy resource in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetGrpcProxies.get@.
+module Gogol.Compute.TargetGrpcProxies.Get
+  ( -- * Resource
+    ComputeTargetGrpcProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetGrpcProxiesGet (..),
+    newComputeTargetGrpcProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetGrpcProxies.get@ method which the
+-- 'ComputeTargetGrpcProxiesGet' request conforms to.
+type ComputeTargetGrpcProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetGrpcProxies"
+    Core.:> Core.Capture "targetGrpcProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetGrpcProxy
+
+-- | Returns the specified TargetGrpcProxy resource in the given scope.
+--
+-- /See:/ 'newComputeTargetGrpcProxiesGet' smart constructor.
+data ComputeTargetGrpcProxiesGet = ComputeTargetGrpcProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetGrpcProxy resource to return.
+    targetGrpcProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetGrpcProxiesGet' with the minimum fields required to make a request.
+newComputeTargetGrpcProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetGrpcProxy resource to return. See 'targetGrpcProxy'.
+  Core.Text ->
+  ComputeTargetGrpcProxiesGet
+newComputeTargetGrpcProxiesGet project targetGrpcProxy =
+  ComputeTargetGrpcProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetGrpcProxy = targetGrpcProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetGrpcProxiesGet where
+  type Rs ComputeTargetGrpcProxiesGet = TargetGrpcProxy
+  type
+    Scopes ComputeTargetGrpcProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetGrpcProxiesGet {..} =
+    go
+      project
+      targetGrpcProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetGrpcProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetGrpcProxies/Insert.hs b/gen/Gogol/Compute/TargetGrpcProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetGrpcProxies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetGrpcProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetGrpcProxies.insert@.
+module Gogol.Compute.TargetGrpcProxies.Insert
+  ( -- * Resource
+    ComputeTargetGrpcProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetGrpcProxiesInsert (..),
+    newComputeTargetGrpcProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetGrpcProxies.insert@ method which the
+-- 'ComputeTargetGrpcProxiesInsert' request conforms to.
+type ComputeTargetGrpcProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetGrpcProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetGrpcProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.
+--
+-- /See:/ 'newComputeTargetGrpcProxiesInsert' smart constructor.
+data ComputeTargetGrpcProxiesInsert = ComputeTargetGrpcProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetGrpcProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetGrpcProxiesInsert' with the minimum fields required to make a request.
+newComputeTargetGrpcProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetGrpcProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetGrpcProxiesInsert
+newComputeTargetGrpcProxiesInsert payload project =
+  ComputeTargetGrpcProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetGrpcProxiesInsert where
+  type Rs ComputeTargetGrpcProxiesInsert = Operation
+  type
+    Scopes ComputeTargetGrpcProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetGrpcProxiesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetGrpcProxiesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetGrpcProxies/List.hs b/gen/Gogol/Compute/TargetGrpcProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetGrpcProxies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetGrpcProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists the TargetGrpcProxies for a project in the given scope.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetGrpcProxies.list@.
+module Gogol.Compute.TargetGrpcProxies.List
+  ( -- * Resource
+    ComputeTargetGrpcProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetGrpcProxiesList (..),
+    newComputeTargetGrpcProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetGrpcProxies.list@ method which the
+-- 'ComputeTargetGrpcProxiesList' request conforms to.
+type ComputeTargetGrpcProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetGrpcProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetGrpcProxyList
+
+-- | Lists the TargetGrpcProxies for a project in the given scope.
+--
+-- /See:/ 'newComputeTargetGrpcProxiesList' smart constructor.
+data ComputeTargetGrpcProxiesList = ComputeTargetGrpcProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetGrpcProxiesList' with the minimum fields required to make a request.
+newComputeTargetGrpcProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetGrpcProxiesList
+newComputeTargetGrpcProxiesList project =
+  ComputeTargetGrpcProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetGrpcProxiesList where
+  type Rs ComputeTargetGrpcProxiesList = TargetGrpcProxyList
+  type
+    Scopes ComputeTargetGrpcProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetGrpcProxiesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetGrpcProxiesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetGrpcProxies/Patch.hs b/gen/Gogol/Compute/TargetGrpcProxies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetGrpcProxies/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetGrpcProxies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetGrpcProxies.patch@.
+module Gogol.Compute.TargetGrpcProxies.Patch
+  ( -- * Resource
+    ComputeTargetGrpcProxiesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeTargetGrpcProxiesPatch (..),
+    newComputeTargetGrpcProxiesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetGrpcProxies.patch@ method which the
+-- 'ComputeTargetGrpcProxiesPatch' request conforms to.
+type ComputeTargetGrpcProxiesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetGrpcProxies"
+    Core.:> Core.Capture "targetGrpcProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetGrpcProxy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified TargetGrpcProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeTargetGrpcProxiesPatch' smart constructor.
+data ComputeTargetGrpcProxiesPatch = ComputeTargetGrpcProxiesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetGrpcProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetGrpcProxy resource to patch.
+    targetGrpcProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetGrpcProxiesPatch' with the minimum fields required to make a request.
+newComputeTargetGrpcProxiesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetGrpcProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetGrpcProxy resource to patch. See 'targetGrpcProxy'.
+  Core.Text ->
+  ComputeTargetGrpcProxiesPatch
+newComputeTargetGrpcProxiesPatch payload project targetGrpcProxy =
+  ComputeTargetGrpcProxiesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      targetGrpcProxy = targetGrpcProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetGrpcProxiesPatch where
+  type Rs ComputeTargetGrpcProxiesPatch = Operation
+  type
+    Scopes ComputeTargetGrpcProxiesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetGrpcProxiesPatch {..} =
+    go
+      project
+      targetGrpcProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetGrpcProxiesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/AggregatedList.hs b/gen/Gogol/Compute/TargetHttpProxies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.aggregatedList@.
+module Gogol.Compute.TargetHttpProxies.AggregatedList
+  ( -- * Resource
+    ComputeTargetHttpProxiesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesAggregatedList (..),
+    newComputeTargetHttpProxiesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.aggregatedList@ method which the
+-- 'ComputeTargetHttpProxiesAggregatedList' request conforms to.
+type ComputeTargetHttpProxiesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpProxyAggregatedList
+
+-- | Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetHttpProxiesAggregatedList' smart constructor.
+data ComputeTargetHttpProxiesAggregatedList = ComputeTargetHttpProxiesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesAggregatedList' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpProxiesAggregatedList
+newComputeTargetHttpProxiesAggregatedList project =
+  ComputeTargetHttpProxiesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesAggregatedList where
+  type
+    Rs ComputeTargetHttpProxiesAggregatedList =
+      TargetHttpProxyAggregatedList
+  type
+    Scopes ComputeTargetHttpProxiesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpProxiesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpProxiesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/Delete.hs b/gen/Gogol/Compute/TargetHttpProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetHttpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.delete@.
+module Gogol.Compute.TargetHttpProxies.Delete
+  ( -- * Resource
+    ComputeTargetHttpProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesDelete (..),
+    newComputeTargetHttpProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.delete@ method which the
+-- 'ComputeTargetHttpProxiesDelete' request conforms to.
+type ComputeTargetHttpProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetHttpProxy resource.
+--
+-- /See:/ 'newComputeTargetHttpProxiesDelete' smart constructor.
+data ComputeTargetHttpProxiesDelete = ComputeTargetHttpProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpProxy resource to delete.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesDelete' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy resource to delete. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeTargetHttpProxiesDelete
+newComputeTargetHttpProxiesDelete project targetHttpProxy =
+  ComputeTargetHttpProxiesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetHttpProxy = targetHttpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesDelete where
+  type Rs ComputeTargetHttpProxiesDelete = Operation
+  type
+    Scopes ComputeTargetHttpProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpProxiesDelete {..} =
+    go
+      project
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpProxiesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/Get.hs b/gen/Gogol/Compute/TargetHttpProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetHttpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.get@.
+module Gogol.Compute.TargetHttpProxies.Get
+  ( -- * Resource
+    ComputeTargetHttpProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesGet (..),
+    newComputeTargetHttpProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.get@ method which the
+-- 'ComputeTargetHttpProxiesGet' request conforms to.
+type ComputeTargetHttpProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpProxy
+
+-- | Returns the specified TargetHttpProxy resource.
+--
+-- /See:/ 'newComputeTargetHttpProxiesGet' smart constructor.
+data ComputeTargetHttpProxiesGet = ComputeTargetHttpProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetHttpProxy resource to return.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesGet' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy resource to return. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeTargetHttpProxiesGet
+newComputeTargetHttpProxiesGet project targetHttpProxy =
+  ComputeTargetHttpProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetHttpProxy = targetHttpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesGet where
+  type Rs ComputeTargetHttpProxiesGet = TargetHttpProxy
+  type
+    Scopes ComputeTargetHttpProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpProxiesGet {..} =
+    go
+      project
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/Insert.hs b/gen/Gogol/Compute/TargetHttpProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetHttpProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.insert@.
+module Gogol.Compute.TargetHttpProxies.Insert
+  ( -- * Resource
+    ComputeTargetHttpProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesInsert (..),
+    newComputeTargetHttpProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.insert@ method which the
+-- 'ComputeTargetHttpProxiesInsert' request conforms to.
+type ComputeTargetHttpProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetHttpProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeTargetHttpProxiesInsert' smart constructor.
+data ComputeTargetHttpProxiesInsert = ComputeTargetHttpProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesInsert' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpProxiesInsert
+newComputeTargetHttpProxiesInsert payload project =
+  ComputeTargetHttpProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesInsert where
+  type Rs ComputeTargetHttpProxiesInsert = Operation
+  type
+    Scopes ComputeTargetHttpProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpProxiesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpProxiesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/List.hs b/gen/Gogol/Compute/TargetHttpProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetHttpProxy resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.list@.
+module Gogol.Compute.TargetHttpProxies.List
+  ( -- * Resource
+    ComputeTargetHttpProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesList (..),
+    newComputeTargetHttpProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.list@ method which the
+-- 'ComputeTargetHttpProxiesList' request conforms to.
+type ComputeTargetHttpProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpProxyList
+
+-- | Retrieves the list of TargetHttpProxy resources available to the specified project.
+--
+-- /See:/ 'newComputeTargetHttpProxiesList' smart constructor.
+data ComputeTargetHttpProxiesList = ComputeTargetHttpProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesList' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpProxiesList
+newComputeTargetHttpProxiesList project =
+  ComputeTargetHttpProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesList where
+  type Rs ComputeTargetHttpProxiesList = TargetHttpProxyList
+  type
+    Scopes ComputeTargetHttpProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpProxiesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpProxiesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/Patch.hs b/gen/Gogol/Compute/TargetHttpProxies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.patch@.
+module Gogol.Compute.TargetHttpProxies.Patch
+  ( -- * Resource
+    ComputeTargetHttpProxiesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesPatch (..),
+    newComputeTargetHttpProxiesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.patch@ method which the
+-- 'ComputeTargetHttpProxiesPatch' request conforms to.
+type ComputeTargetHttpProxiesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpProxy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified TargetHttpProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeTargetHttpProxiesPatch' smart constructor.
+data ComputeTargetHttpProxiesPatch = ComputeTargetHttpProxiesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpProxy resource to patch.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesPatch' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy resource to patch. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeTargetHttpProxiesPatch
+newComputeTargetHttpProxiesPatch payload project targetHttpProxy =
+  ComputeTargetHttpProxiesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      targetHttpProxy = targetHttpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesPatch where
+  type Rs ComputeTargetHttpProxiesPatch = Operation
+  type
+    Scopes ComputeTargetHttpProxiesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpProxiesPatch {..} =
+    go
+      project
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpProxiesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpProxies/SetUrlMap.hs b/gen/Gogol/Compute/TargetHttpProxies/SetUrlMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpProxies/SetUrlMap.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpProxies.SetUrlMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the URL map for TargetHttpProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpProxies.setUrlMap@.
+module Gogol.Compute.TargetHttpProxies.SetUrlMap
+  ( -- * Resource
+    ComputeTargetHttpProxiesSetUrlMapResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpProxiesSetUrlMap (..),
+    newComputeTargetHttpProxiesSetUrlMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpProxies.setUrlMap@ method which the
+-- 'ComputeTargetHttpProxiesSetUrlMap' request conforms to.
+type ComputeTargetHttpProxiesSetUrlMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "targetHttpProxies"
+    Core.:> Core.Capture "targetHttpProxy" Core.Text
+    Core.:> "setUrlMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMapReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the URL map for TargetHttpProxy.
+--
+-- /See:/ 'newComputeTargetHttpProxiesSetUrlMap' smart constructor.
+data ComputeTargetHttpProxiesSetUrlMap = ComputeTargetHttpProxiesSetUrlMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMapReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpProxy to set a URL map for.
+    targetHttpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpProxiesSetUrlMap' with the minimum fields required to make a request.
+newComputeTargetHttpProxiesSetUrlMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMapReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpProxy to set a URL map for. See 'targetHttpProxy'.
+  Core.Text ->
+  ComputeTargetHttpProxiesSetUrlMap
+newComputeTargetHttpProxiesSetUrlMap
+  payload
+  project
+  targetHttpProxy =
+    ComputeTargetHttpProxiesSetUrlMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpProxy = targetHttpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetHttpProxiesSetUrlMap where
+  type Rs ComputeTargetHttpProxiesSetUrlMap = Operation
+  type
+    Scopes ComputeTargetHttpProxiesSetUrlMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpProxiesSetUrlMap {..} =
+    go
+      project
+      targetHttpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpProxiesSetUrlMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/AggregatedList.hs b/gen/Gogol/Compute/TargetHttpsProxies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.aggregatedList@.
+module Gogol.Compute.TargetHttpsProxies.AggregatedList
+  ( -- * Resource
+    ComputeTargetHttpsProxiesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesAggregatedList (..),
+    newComputeTargetHttpsProxiesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.aggregatedList@ method which the
+-- 'ComputeTargetHttpsProxiesAggregatedList' request conforms to.
+type ComputeTargetHttpsProxiesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpsProxyAggregatedList
+
+-- | Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesAggregatedList' smart constructor.
+data ComputeTargetHttpsProxiesAggregatedList = ComputeTargetHttpsProxiesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesAggregatedList' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesAggregatedList
+newComputeTargetHttpsProxiesAggregatedList project =
+  ComputeTargetHttpsProxiesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesAggregatedList where
+  type
+    Rs ComputeTargetHttpsProxiesAggregatedList =
+      TargetHttpsProxyAggregatedList
+  type
+    Scopes ComputeTargetHttpsProxiesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpsProxiesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/Delete.hs b/gen/Gogol/Compute/TargetHttpsProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetHttpsProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.delete@.
+module Gogol.Compute.TargetHttpsProxies.Delete
+  ( -- * Resource
+    ComputeTargetHttpsProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesDelete (..),
+    newComputeTargetHttpsProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.delete@ method which the
+-- 'ComputeTargetHttpsProxiesDelete' request conforms to.
+type ComputeTargetHttpsProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetHttpsProxy resource.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesDelete' smart constructor.
+data ComputeTargetHttpsProxiesDelete = ComputeTargetHttpsProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to delete.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesDelete' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to delete. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesDelete
+newComputeTargetHttpsProxiesDelete project targetHttpsProxy =
+  ComputeTargetHttpsProxiesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetHttpsProxy = targetHttpsProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesDelete where
+  type Rs ComputeTargetHttpsProxiesDelete = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesDelete {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpsProxiesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/Get.hs b/gen/Gogol/Compute/TargetHttpsProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetHttpsProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.get@.
+module Gogol.Compute.TargetHttpsProxies.Get
+  ( -- * Resource
+    ComputeTargetHttpsProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesGet (..),
+    newComputeTargetHttpsProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.get@ method which the
+-- 'ComputeTargetHttpsProxiesGet' request conforms to.
+type ComputeTargetHttpsProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpsProxy
+
+-- | Returns the specified TargetHttpsProxy resource.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesGet' smart constructor.
+data ComputeTargetHttpsProxiesGet = ComputeTargetHttpsProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetHttpsProxy resource to return.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesGet' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to return. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesGet
+newComputeTargetHttpsProxiesGet project targetHttpsProxy =
+  ComputeTargetHttpsProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetHttpsProxy = targetHttpsProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesGet where
+  type Rs ComputeTargetHttpsProxiesGet = TargetHttpsProxy
+  type
+    Scopes ComputeTargetHttpsProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpsProxiesGet {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpsProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/Insert.hs b/gen/Gogol/Compute/TargetHttpsProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetHttpsProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.insert@.
+module Gogol.Compute.TargetHttpsProxies.Insert
+  ( -- * Resource
+    ComputeTargetHttpsProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesInsert (..),
+    newComputeTargetHttpsProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.insert@ method which the
+-- 'ComputeTargetHttpsProxiesInsert' request conforms to.
+type ComputeTargetHttpsProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpsProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetHttpsProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesInsert' smart constructor.
+data ComputeTargetHttpsProxiesInsert = ComputeTargetHttpsProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesInsert' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesInsert
+newComputeTargetHttpsProxiesInsert payload project =
+  ComputeTargetHttpsProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesInsert where
+  type Rs ComputeTargetHttpsProxiesInsert = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpsProxiesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/List.hs b/gen/Gogol/Compute/TargetHttpsProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetHttpsProxy resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.list@.
+module Gogol.Compute.TargetHttpsProxies.List
+  ( -- * Resource
+    ComputeTargetHttpsProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesList (..),
+    newComputeTargetHttpsProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.list@ method which the
+-- 'ComputeTargetHttpsProxiesList' request conforms to.
+type ComputeTargetHttpsProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetHttpsProxyList
+
+-- | Retrieves the list of TargetHttpsProxy resources available to the specified project.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesList' smart constructor.
+data ComputeTargetHttpsProxiesList = ComputeTargetHttpsProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesList' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesList
+newComputeTargetHttpsProxiesList project =
+  ComputeTargetHttpsProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesList where
+  type Rs ComputeTargetHttpsProxiesList = TargetHttpsProxyList
+  type
+    Scopes ComputeTargetHttpsProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetHttpsProxiesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpsProxiesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/Patch.hs b/gen/Gogol/Compute/TargetHttpsProxies/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.patch@.
+module Gogol.Compute.TargetHttpsProxies.Patch
+  ( -- * Resource
+    ComputeTargetHttpsProxiesPatchResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesPatch (..),
+    newComputeTargetHttpsProxiesPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.patch@ method which the
+-- 'ComputeTargetHttpsProxiesPatch' request conforms to.
+type ComputeTargetHttpsProxiesPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetHttpsProxy
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified TargetHttpsProxy resource with the data included in the request. This method supports PATCH semantics and uses JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesPatch' smart constructor.
+data ComputeTargetHttpsProxiesPatch = ComputeTargetHttpsProxiesPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to patch.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesPatch' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to patch. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesPatch
+newComputeTargetHttpsProxiesPatch payload project targetHttpsProxy =
+  ComputeTargetHttpsProxiesPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      targetHttpsProxy = targetHttpsProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesPatch where
+  type Rs ComputeTargetHttpsProxiesPatch = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesPatch {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetHttpsProxiesPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/SetCertificateMap.hs b/gen/Gogol/Compute/TargetHttpsProxies/SetCertificateMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/SetCertificateMap.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.SetCertificateMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the Certificate Map for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.setCertificateMap@.
+module Gogol.Compute.TargetHttpsProxies.SetCertificateMap
+  ( -- * Resource
+    ComputeTargetHttpsProxiesSetCertificateMapResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesSetCertificateMap (..),
+    newComputeTargetHttpsProxiesSetCertificateMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.setCertificateMap@ method which the
+-- 'ComputeTargetHttpsProxiesSetCertificateMap' request conforms to.
+type ComputeTargetHttpsProxiesSetCertificateMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setCertificateMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetHttpsProxiesSetCertificateMapRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the Certificate Map for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesSetCertificateMap' smart constructor.
+data ComputeTargetHttpsProxiesSetCertificateMap = ComputeTargetHttpsProxiesSetCertificateMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxiesSetCertificateMapRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesSetCertificateMap' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesSetCertificateMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxiesSetCertificateMapRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesSetCertificateMap
+newComputeTargetHttpsProxiesSetCertificateMap
+  payload
+  project
+  targetHttpsProxy =
+    ComputeTargetHttpsProxiesSetCertificateMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetHttpsProxiesSetCertificateMap
+  where
+  type Rs ComputeTargetHttpsProxiesSetCertificateMap = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesSetCertificateMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesSetCertificateMap {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesSetCertificateMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/SetQuicOverride.hs b/gen/Gogol/Compute/TargetHttpsProxies/SetQuicOverride.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/SetQuicOverride.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.SetQuicOverride
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the QUIC override policy for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.setQuicOverride@.
+module Gogol.Compute.TargetHttpsProxies.SetQuicOverride
+  ( -- * Resource
+    ComputeTargetHttpsProxiesSetQuicOverrideResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesSetQuicOverride (..),
+    newComputeTargetHttpsProxiesSetQuicOverride,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.setQuicOverride@ method which the
+-- 'ComputeTargetHttpsProxiesSetQuicOverride' request conforms to.
+type ComputeTargetHttpsProxiesSetQuicOverrideResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setQuicOverride"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetHttpsProxiesSetQuicOverrideRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the QUIC override policy for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesSetQuicOverride' smart constructor.
+data ComputeTargetHttpsProxiesSetQuicOverride = ComputeTargetHttpsProxiesSetQuicOverride
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxiesSetQuicOverrideRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesSetQuicOverride' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesSetQuicOverride ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxiesSetQuicOverrideRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesSetQuicOverride
+newComputeTargetHttpsProxiesSetQuicOverride
+  payload
+  project
+  targetHttpsProxy =
+    ComputeTargetHttpsProxiesSetQuicOverride
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetHttpsProxiesSetQuicOverride
+  where
+  type Rs ComputeTargetHttpsProxiesSetQuicOverride = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesSetQuicOverride =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesSetQuicOverride {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesSetQuicOverrideResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/SetSslCertificates.hs b/gen/Gogol/Compute/TargetHttpsProxies/SetSslCertificates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/SetSslCertificates.hs
@@ -0,0 +1,142 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.SetSslCertificates
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Replaces SslCertificates for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.setSslCertificates@.
+module Gogol.Compute.TargetHttpsProxies.SetSslCertificates
+  ( -- * Resource
+    ComputeTargetHttpsProxiesSetSslCertificatesResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesSetSslCertificates (..),
+    newComputeTargetHttpsProxiesSetSslCertificates,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.setSslCertificates@ method which the
+-- 'ComputeTargetHttpsProxiesSetSslCertificates' request conforms to.
+type ComputeTargetHttpsProxiesSetSslCertificatesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setSslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetHttpsProxiesSetSslCertificatesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Replaces SslCertificates for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesSetSslCertificates' smart constructor.
+data ComputeTargetHttpsProxiesSetSslCertificates = ComputeTargetHttpsProxiesSetSslCertificates
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetHttpsProxiesSetSslCertificatesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource to set an SslCertificates resource for.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesSetSslCertificates' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesSetSslCertificates ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetHttpsProxiesSetSslCertificatesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource to set an SslCertificates resource for. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesSetSslCertificates
+newComputeTargetHttpsProxiesSetSslCertificates
+  payload
+  project
+  targetHttpsProxy =
+    ComputeTargetHttpsProxiesSetSslCertificates
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetHttpsProxiesSetSslCertificates
+  where
+  type Rs ComputeTargetHttpsProxiesSetSslCertificates = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesSetSslCertificates =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesSetSslCertificates {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesSetSslCertificatesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/SetSslPolicy.hs b/gen/Gogol/Compute/TargetHttpsProxies/SetSslPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/SetSslPolicy.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.SetSslPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.setSslPolicy@.
+module Gogol.Compute.TargetHttpsProxies.SetSslPolicy
+  ( -- * Resource
+    ComputeTargetHttpsProxiesSetSslPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesSetSslPolicy (..),
+    newComputeTargetHttpsProxiesSetSslPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.setSslPolicy@ method which the
+-- 'ComputeTargetHttpsProxiesSetSslPolicy' request conforms to.
+type ComputeTargetHttpsProxiesSetSslPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setSslPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the HTTPS proxy load balancer. They do not affect the connection between the load balancer and the backends.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesSetSslPolicy' smart constructor.
+data ComputeTargetHttpsProxiesSetSslPolicy = ComputeTargetHttpsProxiesSetSslPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesSetSslPolicy' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesSetSslPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesSetSslPolicy
+newComputeTargetHttpsProxiesSetSslPolicy
+  payload
+  project
+  targetHttpsProxy =
+    ComputeTargetHttpsProxiesSetSslPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesSetSslPolicy where
+  type Rs ComputeTargetHttpsProxiesSetSslPolicy = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesSetSslPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesSetSslPolicy {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesSetSslPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetHttpsProxies/SetUrlMap.hs b/gen/Gogol/Compute/TargetHttpsProxies/SetUrlMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetHttpsProxies/SetUrlMap.hs
@@ -0,0 +1,137 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetHttpsProxies.SetUrlMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the URL map for TargetHttpsProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetHttpsProxies.setUrlMap@.
+module Gogol.Compute.TargetHttpsProxies.SetUrlMap
+  ( -- * Resource
+    ComputeTargetHttpsProxiesSetUrlMapResource,
+
+    -- ** Constructing a Request
+    ComputeTargetHttpsProxiesSetUrlMap (..),
+    newComputeTargetHttpsProxiesSetUrlMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetHttpsProxies.setUrlMap@ method which the
+-- 'ComputeTargetHttpsProxiesSetUrlMap' request conforms to.
+type ComputeTargetHttpsProxiesSetUrlMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "targetHttpsProxies"
+    Core.:> Core.Capture "targetHttpsProxy" Core.Text
+    Core.:> "setUrlMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMapReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the URL map for TargetHttpsProxy.
+--
+-- /See:/ 'newComputeTargetHttpsProxiesSetUrlMap' smart constructor.
+data ComputeTargetHttpsProxiesSetUrlMap = ComputeTargetHttpsProxiesSetUrlMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMapReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetHttpsProxy resource whose URL map is to be set.
+    targetHttpsProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetHttpsProxiesSetUrlMap' with the minimum fields required to make a request.
+newComputeTargetHttpsProxiesSetUrlMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMapReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetHttpsProxy resource whose URL map is to be set. See 'targetHttpsProxy'.
+  Core.Text ->
+  ComputeTargetHttpsProxiesSetUrlMap
+newComputeTargetHttpsProxiesSetUrlMap
+  payload
+  project
+  targetHttpsProxy =
+    ComputeTargetHttpsProxiesSetUrlMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetHttpsProxy = targetHttpsProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetHttpsProxiesSetUrlMap where
+  type Rs ComputeTargetHttpsProxiesSetUrlMap = Operation
+  type
+    Scopes ComputeTargetHttpsProxiesSetUrlMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetHttpsProxiesSetUrlMap {..} =
+    go
+      project
+      targetHttpsProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetHttpsProxiesSetUrlMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/AggregatedList.hs b/gen/Gogol/Compute/TargetInstances/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.aggregatedList@.
+module Gogol.Compute.TargetInstances.AggregatedList
+  ( -- * Resource
+    ComputeTargetInstancesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesAggregatedList (..),
+    newComputeTargetInstancesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.aggregatedList@ method which the
+-- 'ComputeTargetInstancesAggregatedList' request conforms to.
+type ComputeTargetInstancesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetInstanceAggregatedList
+
+-- | Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetInstancesAggregatedList' smart constructor.
+data ComputeTargetInstancesAggregatedList = ComputeTargetInstancesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesAggregatedList' with the minimum fields required to make a request.
+newComputeTargetInstancesAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetInstancesAggregatedList
+newComputeTargetInstancesAggregatedList project =
+  ComputeTargetInstancesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetInstancesAggregatedList where
+  type
+    Rs ComputeTargetInstancesAggregatedList =
+      TargetInstanceAggregatedList
+  type
+    Scopes ComputeTargetInstancesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetInstancesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetInstancesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/Delete.hs b/gen/Gogol/Compute/TargetInstances/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetInstance resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.delete@.
+module Gogol.Compute.TargetInstances.Delete
+  ( -- * Resource
+    ComputeTargetInstancesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesDelete (..),
+    newComputeTargetInstancesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.delete@ method which the
+-- 'ComputeTargetInstancesDelete' request conforms to.
+type ComputeTargetInstancesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "targetInstances"
+    Core.:> Core.Capture "targetInstance" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetInstance resource.
+--
+-- /See:/ 'newComputeTargetInstancesDelete' smart constructor.
+data ComputeTargetInstancesDelete = ComputeTargetInstancesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetInstance resource to delete.
+    targetInstance :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesDelete' with the minimum fields required to make a request.
+newComputeTargetInstancesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetInstance resource to delete. See 'targetInstance'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeTargetInstancesDelete
+newComputeTargetInstancesDelete project targetInstance zone =
+  ComputeTargetInstancesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetInstance = targetInstance,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeTargetInstancesDelete where
+  type Rs ComputeTargetInstancesDelete = Operation
+  type
+    Scopes ComputeTargetInstancesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetInstancesDelete {..} =
+    go
+      project
+      zone
+      targetInstance
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetInstancesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/Get.hs b/gen/Gogol/Compute/TargetInstances/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetInstance resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.get@.
+module Gogol.Compute.TargetInstances.Get
+  ( -- * Resource
+    ComputeTargetInstancesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesGet (..),
+    newComputeTargetInstancesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.get@ method which the
+-- 'ComputeTargetInstancesGet' request conforms to.
+type ComputeTargetInstancesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "targetInstances"
+    Core.:> Core.Capture "targetInstance" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetInstance
+
+-- | Returns the specified TargetInstance resource.
+--
+-- /See:/ 'newComputeTargetInstancesGet' smart constructor.
+data ComputeTargetInstancesGet = ComputeTargetInstancesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetInstance resource to return.
+    targetInstance :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesGet' with the minimum fields required to make a request.
+newComputeTargetInstancesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetInstance resource to return. See 'targetInstance'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeTargetInstancesGet
+newComputeTargetInstancesGet project targetInstance zone =
+  ComputeTargetInstancesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetInstance = targetInstance,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeTargetInstancesGet where
+  type Rs ComputeTargetInstancesGet = TargetInstance
+  type
+    Scopes ComputeTargetInstancesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetInstancesGet {..} =
+    go
+      project
+      zone
+      targetInstance
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetInstancesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/Insert.hs b/gen/Gogol/Compute/TargetInstances/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetInstance resource in the specified project and zone using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.insert@.
+module Gogol.Compute.TargetInstances.Insert
+  ( -- * Resource
+    ComputeTargetInstancesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesInsert (..),
+    newComputeTargetInstancesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.insert@ method which the
+-- 'ComputeTargetInstancesInsert' request conforms to.
+type ComputeTargetInstancesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "targetInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetInstance
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetInstance resource in the specified project and zone using the data included in the request.
+--
+-- /See:/ 'newComputeTargetInstancesInsert' smart constructor.
+data ComputeTargetInstancesInsert = ComputeTargetInstancesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetInstance,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesInsert' with the minimum fields required to make a request.
+newComputeTargetInstancesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetInstance ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeTargetInstancesInsert
+newComputeTargetInstancesInsert payload project zone =
+  ComputeTargetInstancesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeTargetInstancesInsert where
+  type Rs ComputeTargetInstancesInsert = Operation
+  type
+    Scopes ComputeTargetInstancesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetInstancesInsert {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetInstancesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/List.hs b/gen/Gogol/Compute/TargetInstances/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of TargetInstance resources available to the specified project and zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.list@.
+module Gogol.Compute.TargetInstances.List
+  ( -- * Resource
+    ComputeTargetInstancesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesList (..),
+    newComputeTargetInstancesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.list@ method which the
+-- 'ComputeTargetInstancesList' request conforms to.
+type ComputeTargetInstancesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "targetInstances"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetInstanceList
+
+-- | Retrieves a list of TargetInstance resources available to the specified project and zone.
+--
+-- /See:/ 'newComputeTargetInstancesList' smart constructor.
+data ComputeTargetInstancesList = ComputeTargetInstancesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesList' with the minimum fields required to make a request.
+newComputeTargetInstancesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeTargetInstancesList
+newComputeTargetInstancesList project zone =
+  ComputeTargetInstancesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeTargetInstancesList where
+  type Rs ComputeTargetInstancesList = TargetInstanceList
+  type
+    Scopes ComputeTargetInstancesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetInstancesList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetInstancesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetInstances/SetSecurityPolicy.hs b/gen/Gogol/Compute/TargetInstances/SetSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetInstances/SetSecurityPolicy.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetInstances.SetSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetInstances.setSecurityPolicy@.
+module Gogol.Compute.TargetInstances.SetSecurityPolicy
+  ( -- * Resource
+    ComputeTargetInstancesSetSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeTargetInstancesSetSecurityPolicy (..),
+    newComputeTargetInstancesSetSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetInstances.setSecurityPolicy@ method which the
+-- 'ComputeTargetInstancesSetSecurityPolicy' request conforms to.
+type ComputeTargetInstancesSetSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "targetInstances"
+    Core.:> Core.Capture "targetInstance" Core.Text
+    Core.:> "setSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Google Cloud Armor security policy for the specified target instance. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ 'newComputeTargetInstancesSetSecurityPolicy' smart constructor.
+data ComputeTargetInstancesSetSecurityPolicy = ComputeTargetInstancesSetSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035.
+    targetInstance :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone scoping this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetInstancesSetSecurityPolicy' with the minimum fields required to make a request.
+newComputeTargetInstancesSetSecurityPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetInstance resource to which the security policy should be set. The name should conform to RFC1035. See 'targetInstance'.
+  Core.Text ->
+  -- |  Name of the zone scoping this request. See 'zone'.
+  Core.Text ->
+  ComputeTargetInstancesSetSecurityPolicy
+newComputeTargetInstancesSetSecurityPolicy
+  payload
+  project
+  targetInstance
+  zone =
+    ComputeTargetInstancesSetSecurityPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetInstance = targetInstance,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing,
+        zone = zone
+      }
+
+instance Core.GoogleRequest ComputeTargetInstancesSetSecurityPolicy where
+  type Rs ComputeTargetInstancesSetSecurityPolicy = Operation
+  type
+    Scopes ComputeTargetInstancesSetSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetInstancesSetSecurityPolicy {..} =
+    go
+      project
+      zone
+      targetInstance
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetInstancesSetSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/AddHealthCheck.hs b/gen/Gogol/Compute/TargetPools/AddHealthCheck.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/AddHealthCheck.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.AddHealthCheck
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds health check URLs to a target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.addHealthCheck@.
+module Gogol.Compute.TargetPools.AddHealthCheck
+  ( -- * Resource
+    ComputeTargetPoolsAddHealthCheckResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsAddHealthCheck (..),
+    newComputeTargetPoolsAddHealthCheck,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.addHealthCheck@ method which the
+-- 'ComputeTargetPoolsAddHealthCheck' request conforms to.
+type ComputeTargetPoolsAddHealthCheckResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "addHealthCheck"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetPoolsAddHealthCheckRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds health check URLs to a target pool.
+--
+-- /See:/ 'newComputeTargetPoolsAddHealthCheck' smart constructor.
+data ComputeTargetPoolsAddHealthCheck = ComputeTargetPoolsAddHealthCheck
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetPoolsAddHealthCheckRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the target pool to add a health check to.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsAddHealthCheck' with the minimum fields required to make a request.
+newComputeTargetPoolsAddHealthCheck ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetPoolsAddHealthCheckRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the target pool to add a health check to. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsAddHealthCheck
+newComputeTargetPoolsAddHealthCheck
+  payload
+  project
+  region
+  targetPool =
+    ComputeTargetPoolsAddHealthCheck
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetPool = targetPool,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetPoolsAddHealthCheck where
+  type Rs ComputeTargetPoolsAddHealthCheck = Operation
+  type
+    Scopes ComputeTargetPoolsAddHealthCheck =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsAddHealthCheck {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsAddHealthCheckResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/AddInstance.hs b/gen/Gogol/Compute/TargetPools/AddInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/AddInstance.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.AddInstance
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds an instance to a target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.addInstance@.
+module Gogol.Compute.TargetPools.AddInstance
+  ( -- * Resource
+    ComputeTargetPoolsAddInstanceResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsAddInstance (..),
+    newComputeTargetPoolsAddInstance,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.addInstance@ method which the
+-- 'ComputeTargetPoolsAddInstance' request conforms to.
+type ComputeTargetPoolsAddInstanceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "addInstance"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetPoolsAddInstanceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Adds an instance to a target pool.
+--
+-- /See:/ 'newComputeTargetPoolsAddInstance' smart constructor.
+data ComputeTargetPoolsAddInstance = ComputeTargetPoolsAddInstance
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetPoolsAddInstanceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetPool resource to add instances to.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsAddInstance' with the minimum fields required to make a request.
+newComputeTargetPoolsAddInstance ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetPoolsAddInstanceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to add instances to. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsAddInstance
+newComputeTargetPoolsAddInstance payload project region targetPool =
+  ComputeTargetPoolsAddInstance
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      targetPool = targetPool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsAddInstance where
+  type Rs ComputeTargetPoolsAddInstance = Operation
+  type
+    Scopes ComputeTargetPoolsAddInstance =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsAddInstance {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsAddInstanceResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/AggregatedList.hs b/gen/Gogol/Compute/TargetPools/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.aggregatedList@.
+module Gogol.Compute.TargetPools.AggregatedList
+  ( -- * Resource
+    ComputeTargetPoolsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsAggregatedList (..),
+    newComputeTargetPoolsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.aggregatedList@ method which the
+-- 'ComputeTargetPoolsAggregatedList' request conforms to.
+type ComputeTargetPoolsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetPools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetPoolAggregatedList
+
+-- | Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetPoolsAggregatedList' smart constructor.
+data ComputeTargetPoolsAggregatedList = ComputeTargetPoolsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsAggregatedList' with the minimum fields required to make a request.
+newComputeTargetPoolsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetPoolsAggregatedList
+newComputeTargetPoolsAggregatedList project =
+  ComputeTargetPoolsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsAggregatedList where
+  type Rs ComputeTargetPoolsAggregatedList = TargetPoolAggregatedList
+  type
+    Scopes ComputeTargetPoolsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetPoolsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/Delete.hs b/gen/Gogol/Compute/TargetPools/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.delete@.
+module Gogol.Compute.TargetPools.Delete
+  ( -- * Resource
+    ComputeTargetPoolsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsDelete (..),
+    newComputeTargetPoolsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.delete@ method which the
+-- 'ComputeTargetPoolsDelete' request conforms to.
+type ComputeTargetPoolsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified target pool.
+--
+-- /See:/ 'newComputeTargetPoolsDelete' smart constructor.
+data ComputeTargetPoolsDelete = ComputeTargetPoolsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetPool resource to delete.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsDelete' with the minimum fields required to make a request.
+newComputeTargetPoolsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to delete. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsDelete
+newComputeTargetPoolsDelete project region targetPool =
+  ComputeTargetPoolsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      targetPool = targetPool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsDelete where
+  type Rs ComputeTargetPoolsDelete = Operation
+  type
+    Scopes ComputeTargetPoolsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsDelete {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/Get.hs b/gen/Gogol/Compute/TargetPools/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.get@.
+module Gogol.Compute.TargetPools.Get
+  ( -- * Resource
+    ComputeTargetPoolsGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsGet (..),
+    newComputeTargetPoolsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.get@ method which the
+-- 'ComputeTargetPoolsGet' request conforms to.
+type ComputeTargetPoolsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetPool
+
+-- | Returns the specified target pool.
+--
+-- /See:/ 'newComputeTargetPoolsGet' smart constructor.
+data ComputeTargetPoolsGet = ComputeTargetPoolsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the TargetPool resource to return.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsGet' with the minimum fields required to make a request.
+newComputeTargetPoolsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to return. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsGet
+newComputeTargetPoolsGet project region targetPool =
+  ComputeTargetPoolsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      targetPool = targetPool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsGet where
+  type Rs ComputeTargetPoolsGet = TargetPool
+  type
+    Scopes ComputeTargetPoolsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetPoolsGet {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/GetHealth.hs b/gen/Gogol/Compute/TargetPools/GetHealth.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/GetHealth.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.GetHealth
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.getHealth@.
+module Gogol.Compute.TargetPools.GetHealth
+  ( -- * Resource
+    ComputeTargetPoolsGetHealthResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsGetHealth (..),
+    newComputeTargetPoolsGetHealth,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.getHealth@ method which the
+-- 'ComputeTargetPoolsGetHealth' request conforms to.
+type ComputeTargetPoolsGetHealthResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "getHealth"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] InstanceReference
+    Core.:> Core.Post '[Core.JSON] TargetPoolInstanceHealth
+
+-- | Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.
+--
+-- /See:/ 'newComputeTargetPoolsGetHealth' smart constructor.
+data ComputeTargetPoolsGetHealth = ComputeTargetPoolsGetHealth
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: InstanceReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Name of the TargetPool resource to which the queried instance belongs.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsGetHealth' with the minimum fields required to make a request.
+newComputeTargetPoolsGetHealth ::
+  -- |  Multipart request metadata. See 'payload'.
+  InstanceReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to which the queried instance belongs. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsGetHealth
+newComputeTargetPoolsGetHealth payload project region targetPool =
+  ComputeTargetPoolsGetHealth
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      targetPool = targetPool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsGetHealth where
+  type Rs ComputeTargetPoolsGetHealth = TargetPoolInstanceHealth
+  type
+    Scopes ComputeTargetPoolsGetHealth =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetPoolsGetHealth {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsGetHealthResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/Insert.hs b/gen/Gogol/Compute/TargetPools/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a target pool in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.insert@.
+module Gogol.Compute.TargetPools.Insert
+  ( -- * Resource
+    ComputeTargetPoolsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsInsert (..),
+    newComputeTargetPoolsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.insert@ method which the
+-- 'ComputeTargetPoolsInsert' request conforms to.
+type ComputeTargetPoolsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetPool
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a target pool in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeTargetPoolsInsert' smart constructor.
+data ComputeTargetPoolsInsert = ComputeTargetPoolsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetPool,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsInsert' with the minimum fields required to make a request.
+newComputeTargetPoolsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetPool ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeTargetPoolsInsert
+newComputeTargetPoolsInsert payload project region =
+  ComputeTargetPoolsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsInsert where
+  type Rs ComputeTargetPoolsInsert = Operation
+  type
+    Scopes ComputeTargetPoolsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/List.hs b/gen/Gogol/Compute/TargetPools/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of target pools available to the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.list@.
+module Gogol.Compute.TargetPools.List
+  ( -- * Resource
+    ComputeTargetPoolsListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsList (..),
+    newComputeTargetPoolsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.list@ method which the
+-- 'ComputeTargetPoolsList' request conforms to.
+type ComputeTargetPoolsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetPoolList
+
+-- | Retrieves a list of target pools available to the specified project and region.
+--
+-- /See:/ 'newComputeTargetPoolsList' smart constructor.
+data ComputeTargetPoolsList = ComputeTargetPoolsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsList' with the minimum fields required to make a request.
+newComputeTargetPoolsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  ComputeTargetPoolsList
+newComputeTargetPoolsList project region =
+  ComputeTargetPoolsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsList where
+  type Rs ComputeTargetPoolsList = TargetPoolList
+  type
+    Scopes ComputeTargetPoolsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetPoolsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/RemoveHealthCheck.hs b/gen/Gogol/Compute/TargetPools/RemoveHealthCheck.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/RemoveHealthCheck.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.RemoveHealthCheck
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes health check URL from a target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.removeHealthCheck@.
+module Gogol.Compute.TargetPools.RemoveHealthCheck
+  ( -- * Resource
+    ComputeTargetPoolsRemoveHealthCheckResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsRemoveHealthCheck (..),
+    newComputeTargetPoolsRemoveHealthCheck,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.removeHealthCheck@ method which the
+-- 'ComputeTargetPoolsRemoveHealthCheck' request conforms to.
+type ComputeTargetPoolsRemoveHealthCheckResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "removeHealthCheck"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetPoolsRemoveHealthCheckRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes health check URL from a target pool.
+--
+-- /See:/ 'newComputeTargetPoolsRemoveHealthCheck' smart constructor.
+data ComputeTargetPoolsRemoveHealthCheck = ComputeTargetPoolsRemoveHealthCheck
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetPoolsRemoveHealthCheckRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the target pool to remove health checks from.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsRemoveHealthCheck' with the minimum fields required to make a request.
+newComputeTargetPoolsRemoveHealthCheck ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetPoolsRemoveHealthCheckRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the target pool to remove health checks from. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsRemoveHealthCheck
+newComputeTargetPoolsRemoveHealthCheck
+  payload
+  project
+  region
+  targetPool =
+    ComputeTargetPoolsRemoveHealthCheck
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetPool = targetPool,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetPoolsRemoveHealthCheck where
+  type Rs ComputeTargetPoolsRemoveHealthCheck = Operation
+  type
+    Scopes ComputeTargetPoolsRemoveHealthCheck =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsRemoveHealthCheck {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetPoolsRemoveHealthCheckResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/RemoveInstance.hs b/gen/Gogol/Compute/TargetPools/RemoveInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/RemoveInstance.hs
@@ -0,0 +1,144 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.RemoveInstance
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes instance URL from a target pool.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.removeInstance@.
+module Gogol.Compute.TargetPools.RemoveInstance
+  ( -- * Resource
+    ComputeTargetPoolsRemoveInstanceResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsRemoveInstance (..),
+    newComputeTargetPoolsRemoveInstance,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.removeInstance@ method which the
+-- 'ComputeTargetPoolsRemoveInstance' request conforms to.
+type ComputeTargetPoolsRemoveInstanceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "removeInstance"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetPoolsRemoveInstanceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Removes instance URL from a target pool.
+--
+-- /See:/ 'newComputeTargetPoolsRemoveInstance' smart constructor.
+data ComputeTargetPoolsRemoveInstance = ComputeTargetPoolsRemoveInstance
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetPoolsRemoveInstanceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetPool resource to remove instances from.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsRemoveInstance' with the minimum fields required to make a request.
+newComputeTargetPoolsRemoveInstance ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetPoolsRemoveInstanceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to remove instances from. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsRemoveInstance
+newComputeTargetPoolsRemoveInstance
+  payload
+  project
+  region
+  targetPool =
+    ComputeTargetPoolsRemoveInstance
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetPool = targetPool,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetPoolsRemoveInstance where
+  type Rs ComputeTargetPoolsRemoveInstance = Operation
+  type
+    Scopes ComputeTargetPoolsRemoveInstance =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsRemoveInstance {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsRemoveInstanceResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/SetBackup.hs b/gen/Gogol/Compute/TargetPools/SetBackup.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/SetBackup.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.SetBackup
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes a backup target pool\'s configurations.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.setBackup@.
+module Gogol.Compute.TargetPools.SetBackup
+  ( -- * Resource
+    ComputeTargetPoolsSetBackupResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsSetBackup (..),
+    newComputeTargetPoolsSetBackup,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.setBackup@ method which the
+-- 'ComputeTargetPoolsSetBackup' request conforms to.
+type ComputeTargetPoolsSetBackupResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "setBackup"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "failoverRatio" Core.Double
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes a backup target pool\'s configurations.
+--
+-- /See:/ 'newComputeTargetPoolsSetBackup' smart constructor.
+data ComputeTargetPoolsSetBackup = ComputeTargetPoolsSetBackup
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | New failoverRatio value for the target pool.
+    failoverRatio :: (Core.Maybe Core.Double),
+    -- | Multipart request metadata.
+    payload :: TargetReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetPool resource to set a backup pool for.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsSetBackup' with the minimum fields required to make a request.
+newComputeTargetPoolsSetBackup ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to set a backup pool for. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsSetBackup
+newComputeTargetPoolsSetBackup payload project region targetPool =
+  ComputeTargetPoolsSetBackup
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      failoverRatio = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      targetPool = targetPool,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetPoolsSetBackup where
+  type Rs ComputeTargetPoolsSetBackup = Operation
+  type
+    Scopes ComputeTargetPoolsSetBackup =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsSetBackup {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      failoverRatio
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetPoolsSetBackupResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetPools/SetSecurityPolicy.hs b/gen/Gogol/Compute/TargetPools/SetSecurityPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetPools/SetSecurityPolicy.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetPools.SetSecurityPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetPools.setSecurityPolicy@.
+module Gogol.Compute.TargetPools.SetSecurityPolicy
+  ( -- * Resource
+    ComputeTargetPoolsSetSecurityPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeTargetPoolsSetSecurityPolicy (..),
+    newComputeTargetPoolsSetSecurityPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetPools.setSecurityPolicy@ method which the
+-- 'ComputeTargetPoolsSetSecurityPolicy' request conforms to.
+type ComputeTargetPoolsSetSecurityPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetPools"
+    Core.:> Core.Capture "targetPool" Core.Text
+    Core.:> "setSecurityPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SecurityPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the Google Cloud Armor security policy for the specified target pool. For more information, see Google Cloud Armor Overview
+--
+-- /See:/ 'newComputeTargetPoolsSetSecurityPolicy' smart constructor.
+data ComputeTargetPoolsSetSecurityPolicy = ComputeTargetPoolsSetSecurityPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SecurityPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region scoping this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035.
+    targetPool :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetPoolsSetSecurityPolicy' with the minimum fields required to make a request.
+newComputeTargetPoolsSetSecurityPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  SecurityPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region scoping this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the TargetPool resource to which the security policy should be set. The name should conform to RFC1035. See 'targetPool'.
+  Core.Text ->
+  ComputeTargetPoolsSetSecurityPolicy
+newComputeTargetPoolsSetSecurityPolicy
+  payload
+  project
+  region
+  targetPool =
+    ComputeTargetPoolsSetSecurityPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        targetPool = targetPool,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetPoolsSetSecurityPolicy where
+  type Rs ComputeTargetPoolsSetSecurityPolicy = Operation
+  type
+    Scopes ComputeTargetPoolsSetSecurityPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetPoolsSetSecurityPolicy {..} =
+    go
+      project
+      region
+      targetPool
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetPoolsSetSecurityPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/Delete.hs b/gen/Gogol/Compute/TargetSslProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetSslProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.delete@.
+module Gogol.Compute.TargetSslProxies.Delete
+  ( -- * Resource
+    ComputeTargetSslProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesDelete (..),
+    newComputeTargetSslProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.delete@ method which the
+-- 'ComputeTargetSslProxiesDelete' request conforms to.
+type ComputeTargetSslProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetSslProxy resource.
+--
+-- /See:/ 'newComputeTargetSslProxiesDelete' smart constructor.
+data ComputeTargetSslProxiesDelete = ComputeTargetSslProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource to delete.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesDelete' with the minimum fields required to make a request.
+newComputeTargetSslProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource to delete. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesDelete
+newComputeTargetSslProxiesDelete project targetSslProxy =
+  ComputeTargetSslProxiesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetSslProxy = targetSslProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesDelete where
+  type Rs ComputeTargetSslProxiesDelete = Operation
+  type
+    Scopes ComputeTargetSslProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesDelete {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetSslProxiesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/Get.hs b/gen/Gogol/Compute/TargetSslProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetSslProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.get@.
+module Gogol.Compute.TargetSslProxies.Get
+  ( -- * Resource
+    ComputeTargetSslProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesGet (..),
+    newComputeTargetSslProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.get@ method which the
+-- 'ComputeTargetSslProxiesGet' request conforms to.
+type ComputeTargetSslProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetSslProxy
+
+-- | Returns the specified TargetSslProxy resource.
+--
+-- /See:/ 'newComputeTargetSslProxiesGet' smart constructor.
+data ComputeTargetSslProxiesGet = ComputeTargetSslProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetSslProxy resource to return.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesGet' with the minimum fields required to make a request.
+newComputeTargetSslProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource to return. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesGet
+newComputeTargetSslProxiesGet project targetSslProxy =
+  ComputeTargetSslProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetSslProxy = targetSslProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesGet where
+  type Rs ComputeTargetSslProxiesGet = TargetSslProxy
+  type
+    Scopes ComputeTargetSslProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetSslProxiesGet {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetSslProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/Insert.hs b/gen/Gogol/Compute/TargetSslProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetSslProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.insert@.
+module Gogol.Compute.TargetSslProxies.Insert
+  ( -- * Resource
+    ComputeTargetSslProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesInsert (..),
+    newComputeTargetSslProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.insert@ method which the
+-- 'ComputeTargetSslProxiesInsert' request conforms to.
+type ComputeTargetSslProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetSslProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetSslProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeTargetSslProxiesInsert' smart constructor.
+data ComputeTargetSslProxiesInsert = ComputeTargetSslProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetSslProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesInsert' with the minimum fields required to make a request.
+newComputeTargetSslProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetSslProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetSslProxiesInsert
+newComputeTargetSslProxiesInsert payload project =
+  ComputeTargetSslProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesInsert where
+  type Rs ComputeTargetSslProxiesInsert = Operation
+  type
+    Scopes ComputeTargetSslProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetSslProxiesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/List.hs b/gen/Gogol/Compute/TargetSslProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetSslProxy resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.list@.
+module Gogol.Compute.TargetSslProxies.List
+  ( -- * Resource
+    ComputeTargetSslProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesList (..),
+    newComputeTargetSslProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.list@ method which the
+-- 'ComputeTargetSslProxiesList' request conforms to.
+type ComputeTargetSslProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetSslProxyList
+
+-- | Retrieves the list of TargetSslProxy resources available to the specified project.
+--
+-- /See:/ 'newComputeTargetSslProxiesList' smart constructor.
+data ComputeTargetSslProxiesList = ComputeTargetSslProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesList' with the minimum fields required to make a request.
+newComputeTargetSslProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetSslProxiesList
+newComputeTargetSslProxiesList project =
+  ComputeTargetSslProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesList where
+  type Rs ComputeTargetSslProxiesList = TargetSslProxyList
+  type
+    Scopes ComputeTargetSslProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetSslProxiesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetSslProxiesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/SetBackendService.hs b/gen/Gogol/Compute/TargetSslProxies/SetBackendService.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/SetBackendService.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.SetBackendService
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the BackendService for TargetSslProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.setBackendService@.
+module Gogol.Compute.TargetSslProxies.SetBackendService
+  ( -- * Resource
+    ComputeTargetSslProxiesSetBackendServiceResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesSetBackendService (..),
+    newComputeTargetSslProxiesSetBackendService,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.setBackendService@ method which the
+-- 'ComputeTargetSslProxiesSetBackendService' request conforms to.
+type ComputeTargetSslProxiesSetBackendServiceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> "setBackendService"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetSslProxiesSetBackendServiceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the BackendService for TargetSslProxy.
+--
+-- /See:/ 'newComputeTargetSslProxiesSetBackendService' smart constructor.
+data ComputeTargetSslProxiesSetBackendService = ComputeTargetSslProxiesSetBackendService
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetSslProxiesSetBackendServiceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource whose BackendService resource is to be set.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesSetBackendService' with the minimum fields required to make a request.
+newComputeTargetSslProxiesSetBackendService ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetSslProxiesSetBackendServiceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource whose BackendService resource is to be set. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesSetBackendService
+newComputeTargetSslProxiesSetBackendService
+  payload
+  project
+  targetSslProxy =
+    ComputeTargetSslProxiesSetBackendService
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetSslProxy = targetSslProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetSslProxiesSetBackendService
+  where
+  type Rs ComputeTargetSslProxiesSetBackendService = Operation
+  type
+    Scopes ComputeTargetSslProxiesSetBackendService =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesSetBackendService {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetSslProxiesSetBackendServiceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/SetCertificateMap.hs b/gen/Gogol/Compute/TargetSslProxies/SetCertificateMap.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/SetCertificateMap.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.SetCertificateMap
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the Certificate Map for TargetSslProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.setCertificateMap@.
+module Gogol.Compute.TargetSslProxies.SetCertificateMap
+  ( -- * Resource
+    ComputeTargetSslProxiesSetCertificateMapResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesSetCertificateMap (..),
+    newComputeTargetSslProxiesSetCertificateMap,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.setCertificateMap@ method which the
+-- 'ComputeTargetSslProxiesSetCertificateMap' request conforms to.
+type ComputeTargetSslProxiesSetCertificateMapResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> "setCertificateMap"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetSslProxiesSetCertificateMapRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the Certificate Map for TargetSslProxy.
+--
+-- /See:/ 'newComputeTargetSslProxiesSetCertificateMap' smart constructor.
+data ComputeTargetSslProxiesSetCertificateMap = ComputeTargetSslProxiesSetCertificateMap
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetSslProxiesSetCertificateMapRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesSetCertificateMap' with the minimum fields required to make a request.
+newComputeTargetSslProxiesSetCertificateMap ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetSslProxiesSetCertificateMapRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource whose CertificateMap is to be set. The name must be 1-63 characters long, and comply with RFC1035. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesSetCertificateMap
+newComputeTargetSslProxiesSetCertificateMap
+  payload
+  project
+  targetSslProxy =
+    ComputeTargetSslProxiesSetCertificateMap
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetSslProxy = targetSslProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetSslProxiesSetCertificateMap
+  where
+  type Rs ComputeTargetSslProxiesSetCertificateMap = Operation
+  type
+    Scopes ComputeTargetSslProxiesSetCertificateMap =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesSetCertificateMap {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetSslProxiesSetCertificateMapResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/SetProxyHeader.hs b/gen/Gogol/Compute/TargetSslProxies/SetProxyHeader.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/SetProxyHeader.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.SetProxyHeader
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the ProxyHeaderType for TargetSslProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.setProxyHeader@.
+module Gogol.Compute.TargetSslProxies.SetProxyHeader
+  ( -- * Resource
+    ComputeTargetSslProxiesSetProxyHeaderResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesSetProxyHeader (..),
+    newComputeTargetSslProxiesSetProxyHeader,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.setProxyHeader@ method which the
+-- 'ComputeTargetSslProxiesSetProxyHeader' request conforms to.
+type ComputeTargetSslProxiesSetProxyHeaderResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> "setProxyHeader"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetSslProxiesSetProxyHeaderRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the ProxyHeaderType for TargetSslProxy.
+--
+-- /See:/ 'newComputeTargetSslProxiesSetProxyHeader' smart constructor.
+data ComputeTargetSslProxiesSetProxyHeader = ComputeTargetSslProxiesSetProxyHeader
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetSslProxiesSetProxyHeaderRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource whose ProxyHeader is to be set.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesSetProxyHeader' with the minimum fields required to make a request.
+newComputeTargetSslProxiesSetProxyHeader ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetSslProxiesSetProxyHeaderRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource whose ProxyHeader is to be set. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesSetProxyHeader
+newComputeTargetSslProxiesSetProxyHeader
+  payload
+  project
+  targetSslProxy =
+    ComputeTargetSslProxiesSetProxyHeader
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetSslProxy = targetSslProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesSetProxyHeader where
+  type Rs ComputeTargetSslProxiesSetProxyHeader = Operation
+  type
+    Scopes ComputeTargetSslProxiesSetProxyHeader =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesSetProxyHeader {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetSslProxiesSetProxyHeaderResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/SetSslCertificates.hs b/gen/Gogol/Compute/TargetSslProxies/SetSslCertificates.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/SetSslCertificates.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.SetSslCertificates
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes SslCertificates for TargetSslProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.setSslCertificates@.
+module Gogol.Compute.TargetSslProxies.SetSslCertificates
+  ( -- * Resource
+    ComputeTargetSslProxiesSetSslCertificatesResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesSetSslCertificates (..),
+    newComputeTargetSslProxiesSetSslCertificates,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.setSslCertificates@ method which the
+-- 'ComputeTargetSslProxiesSetSslCertificates' request conforms to.
+type ComputeTargetSslProxiesSetSslCertificatesResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> "setSslCertificates"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetSslProxiesSetSslCertificatesRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes SslCertificates for TargetSslProxy.
+--
+-- /See:/ 'newComputeTargetSslProxiesSetSslCertificates' smart constructor.
+data ComputeTargetSslProxiesSetSslCertificates = ComputeTargetSslProxiesSetSslCertificates
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetSslProxiesSetSslCertificatesRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource whose SslCertificate resource is to be set.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesSetSslCertificates' with the minimum fields required to make a request.
+newComputeTargetSslProxiesSetSslCertificates ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetSslProxiesSetSslCertificatesRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource whose SslCertificate resource is to be set. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesSetSslCertificates
+newComputeTargetSslProxiesSetSslCertificates
+  payload
+  project
+  targetSslProxy =
+    ComputeTargetSslProxiesSetSslCertificates
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetSslProxy = targetSslProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetSslProxiesSetSslCertificates
+  where
+  type Rs ComputeTargetSslProxiesSetSslCertificates = Operation
+  type
+    Scopes ComputeTargetSslProxiesSetSslCertificates =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesSetSslCertificates {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetSslProxiesSetSslCertificatesResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetSslProxies/SetSslPolicy.hs b/gen/Gogol/Compute/TargetSslProxies/SetSslPolicy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetSslProxies/SetSslPolicy.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetSslProxies.SetSslPolicy
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetSslProxies.setSslPolicy@.
+module Gogol.Compute.TargetSslProxies.SetSslPolicy
+  ( -- * Resource
+    ComputeTargetSslProxiesSetSslPolicyResource,
+
+    -- ** Constructing a Request
+    ComputeTargetSslProxiesSetSslPolicy (..),
+    newComputeTargetSslProxiesSetSslPolicy,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetSslProxies.setSslPolicy@ method which the
+-- 'ComputeTargetSslProxiesSetSslPolicy' request conforms to.
+type ComputeTargetSslProxiesSetSslPolicyResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetSslProxies"
+    Core.:> Core.Capture "targetSslProxy" Core.Text
+    Core.:> "setSslPolicy"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] SslPolicyReference
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends.
+--
+-- /See:/ 'newComputeTargetSslProxiesSetSslPolicy' smart constructor.
+data ComputeTargetSslProxiesSetSslPolicy = ComputeTargetSslProxiesSetSslPolicy
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: SslPolicyReference,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035.
+    targetSslProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetSslProxiesSetSslPolicy' with the minimum fields required to make a request.
+newComputeTargetSslProxiesSetSslPolicy ::
+  -- |  Multipart request metadata. See 'payload'.
+  SslPolicyReference ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetSslProxy resource whose SSL policy is to be set. The name must be 1-63 characters long, and comply with RFC1035. See 'targetSslProxy'.
+  Core.Text ->
+  ComputeTargetSslProxiesSetSslPolicy
+newComputeTargetSslProxiesSetSslPolicy
+  payload
+  project
+  targetSslProxy =
+    ComputeTargetSslProxiesSetSslPolicy
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetSslProxy = targetSslProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetSslProxiesSetSslPolicy where
+  type Rs ComputeTargetSslProxiesSetSslPolicy = Operation
+  type
+    Scopes ComputeTargetSslProxiesSetSslPolicy =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetSslProxiesSetSslPolicy {..} =
+    go
+      project
+      targetSslProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetSslProxiesSetSslPolicyResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/AggregatedList.hs b/gen/Gogol/Compute/TargetTcpProxies/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.aggregatedList@.
+module Gogol.Compute.TargetTcpProxies.AggregatedList
+  ( -- * Resource
+    ComputeTargetTcpProxiesAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesAggregatedList (..),
+    newComputeTargetTcpProxiesAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.aggregatedList@ method which the
+-- 'ComputeTargetTcpProxiesAggregatedList' request conforms to.
+type ComputeTargetTcpProxiesAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetTcpProxyAggregatedList
+
+-- | Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetTcpProxiesAggregatedList' smart constructor.
+data ComputeTargetTcpProxiesAggregatedList = ComputeTargetTcpProxiesAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesAggregatedList' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeTargetTcpProxiesAggregatedList
+newComputeTargetTcpProxiesAggregatedList project =
+  ComputeTargetTcpProxiesAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesAggregatedList where
+  type
+    Rs ComputeTargetTcpProxiesAggregatedList =
+      TargetTcpProxyAggregatedList
+  type
+    Scopes ComputeTargetTcpProxiesAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetTcpProxiesAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetTcpProxiesAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/Delete.hs b/gen/Gogol/Compute/TargetTcpProxies/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified TargetTcpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.delete@.
+module Gogol.Compute.TargetTcpProxies.Delete
+  ( -- * Resource
+    ComputeTargetTcpProxiesDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesDelete (..),
+    newComputeTargetTcpProxiesDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.delete@ method which the
+-- 'ComputeTargetTcpProxiesDelete' request conforms to.
+type ComputeTargetTcpProxiesDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified TargetTcpProxy resource.
+--
+-- /See:/ 'newComputeTargetTcpProxiesDelete' smart constructor.
+data ComputeTargetTcpProxiesDelete = ComputeTargetTcpProxiesDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetTcpProxy resource to delete.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesDelete' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource to delete. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeTargetTcpProxiesDelete
+newComputeTargetTcpProxiesDelete project targetTcpProxy =
+  ComputeTargetTcpProxiesDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      targetTcpProxy = targetTcpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesDelete where
+  type Rs ComputeTargetTcpProxiesDelete = Operation
+  type
+    Scopes ComputeTargetTcpProxiesDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetTcpProxiesDelete {..} =
+    go
+      project
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetTcpProxiesDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/Get.hs b/gen/Gogol/Compute/TargetTcpProxies/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified TargetTcpProxy resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.get@.
+module Gogol.Compute.TargetTcpProxies.Get
+  ( -- * Resource
+    ComputeTargetTcpProxiesGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesGet (..),
+    newComputeTargetTcpProxiesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.get@ method which the
+-- 'ComputeTargetTcpProxiesGet' request conforms to.
+type ComputeTargetTcpProxiesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetTcpProxy
+
+-- | Returns the specified TargetTcpProxy resource.
+--
+-- /See:/ 'newComputeTargetTcpProxiesGet' smart constructor.
+data ComputeTargetTcpProxiesGet = ComputeTargetTcpProxiesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the TargetTcpProxy resource to return.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesGet' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource to return. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeTargetTcpProxiesGet
+newComputeTargetTcpProxiesGet project targetTcpProxy =
+  ComputeTargetTcpProxiesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      targetTcpProxy = targetTcpProxy,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesGet where
+  type Rs ComputeTargetTcpProxiesGet = TargetTcpProxy
+  type
+    Scopes ComputeTargetTcpProxiesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetTcpProxiesGet {..} =
+    go
+      project
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetTcpProxiesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/Insert.hs b/gen/Gogol/Compute/TargetTcpProxies/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a TargetTcpProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.insert@.
+module Gogol.Compute.TargetTcpProxies.Insert
+  ( -- * Resource
+    ComputeTargetTcpProxiesInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesInsert (..),
+    newComputeTargetTcpProxiesInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.insert@ method which the
+-- 'ComputeTargetTcpProxiesInsert' request conforms to.
+type ComputeTargetTcpProxiesInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetTcpProxy
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a TargetTcpProxy resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeTargetTcpProxiesInsert' smart constructor.
+data ComputeTargetTcpProxiesInsert = ComputeTargetTcpProxiesInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetTcpProxy,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesInsert' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetTcpProxy ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetTcpProxiesInsert
+newComputeTargetTcpProxiesInsert payload project =
+  ComputeTargetTcpProxiesInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesInsert where
+  type Rs ComputeTargetTcpProxiesInsert = Operation
+  type
+    Scopes ComputeTargetTcpProxiesInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetTcpProxiesInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetTcpProxiesInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/List.hs b/gen/Gogol/Compute/TargetTcpProxies/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of TargetTcpProxy resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.list@.
+module Gogol.Compute.TargetTcpProxies.List
+  ( -- * Resource
+    ComputeTargetTcpProxiesListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesList (..),
+    newComputeTargetTcpProxiesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.list@ method which the
+-- 'ComputeTargetTcpProxiesList' request conforms to.
+type ComputeTargetTcpProxiesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetTcpProxyList
+
+-- | Retrieves the list of TargetTcpProxy resources available to the specified project.
+--
+-- /See:/ 'newComputeTargetTcpProxiesList' smart constructor.
+data ComputeTargetTcpProxiesList = ComputeTargetTcpProxiesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesList' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetTcpProxiesList
+newComputeTargetTcpProxiesList project =
+  ComputeTargetTcpProxiesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesList where
+  type Rs ComputeTargetTcpProxiesList = TargetTcpProxyList
+  type
+    Scopes ComputeTargetTcpProxiesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetTcpProxiesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetTcpProxiesListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/SetBackendService.hs b/gen/Gogol/Compute/TargetTcpProxies/SetBackendService.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/SetBackendService.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.SetBackendService
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the BackendService for TargetTcpProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.setBackendService@.
+module Gogol.Compute.TargetTcpProxies.SetBackendService
+  ( -- * Resource
+    ComputeTargetTcpProxiesSetBackendServiceResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesSetBackendService (..),
+    newComputeTargetTcpProxiesSetBackendService,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.setBackendService@ method which the
+-- 'ComputeTargetTcpProxiesSetBackendService' request conforms to.
+type ComputeTargetTcpProxiesSetBackendServiceResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> "setBackendService"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody
+              '[Core.JSON]
+              TargetTcpProxiesSetBackendServiceRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the BackendService for TargetTcpProxy.
+--
+-- /See:/ 'newComputeTargetTcpProxiesSetBackendService' smart constructor.
+data ComputeTargetTcpProxiesSetBackendService = ComputeTargetTcpProxiesSetBackendService
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetTcpProxiesSetBackendServiceRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetTcpProxy resource whose BackendService resource is to be set.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesSetBackendService' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesSetBackendService ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetTcpProxiesSetBackendServiceRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource whose BackendService resource is to be set. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeTargetTcpProxiesSetBackendService
+newComputeTargetTcpProxiesSetBackendService
+  payload
+  project
+  targetTcpProxy =
+    ComputeTargetTcpProxiesSetBackendService
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetTcpProxy = targetTcpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance
+  Core.GoogleRequest
+    ComputeTargetTcpProxiesSetBackendService
+  where
+  type Rs ComputeTargetTcpProxiesSetBackendService = Operation
+  type
+    Scopes ComputeTargetTcpProxiesSetBackendService =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetTcpProxiesSetBackendService {..} =
+    go
+      project
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetTcpProxiesSetBackendServiceResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetTcpProxies/SetProxyHeader.hs b/gen/Gogol/Compute/TargetTcpProxies/SetProxyHeader.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetTcpProxies/SetProxyHeader.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetTcpProxies.SetProxyHeader
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Changes the ProxyHeaderType for TargetTcpProxy.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetTcpProxies.setProxyHeader@.
+module Gogol.Compute.TargetTcpProxies.SetProxyHeader
+  ( -- * Resource
+    ComputeTargetTcpProxiesSetProxyHeaderResource,
+
+    -- ** Constructing a Request
+    ComputeTargetTcpProxiesSetProxyHeader (..),
+    newComputeTargetTcpProxiesSetProxyHeader,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetTcpProxies.setProxyHeader@ method which the
+-- 'ComputeTargetTcpProxiesSetProxyHeader' request conforms to.
+type ComputeTargetTcpProxiesSetProxyHeaderResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "targetTcpProxies"
+    Core.:> Core.Capture "targetTcpProxy" Core.Text
+    Core.:> "setProxyHeader"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetTcpProxiesSetProxyHeaderRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Changes the ProxyHeaderType for TargetTcpProxy.
+--
+-- /See:/ 'newComputeTargetTcpProxiesSetProxyHeader' smart constructor.
+data ComputeTargetTcpProxiesSetProxyHeader = ComputeTargetTcpProxiesSetProxyHeader
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetTcpProxiesSetProxyHeaderRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the TargetTcpProxy resource whose ProxyHeader is to be set.
+    targetTcpProxy :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetTcpProxiesSetProxyHeader' with the minimum fields required to make a request.
+newComputeTargetTcpProxiesSetProxyHeader ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetTcpProxiesSetProxyHeaderRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the TargetTcpProxy resource whose ProxyHeader is to be set. See 'targetTcpProxy'.
+  Core.Text ->
+  ComputeTargetTcpProxiesSetProxyHeader
+newComputeTargetTcpProxiesSetProxyHeader
+  payload
+  project
+  targetTcpProxy =
+    ComputeTargetTcpProxiesSetProxyHeader
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        requestId = Core.Nothing,
+        targetTcpProxy = targetTcpProxy,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetTcpProxiesSetProxyHeader where
+  type Rs ComputeTargetTcpProxiesSetProxyHeader = Operation
+  type
+    Scopes ComputeTargetTcpProxiesSetProxyHeader =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetTcpProxiesSetProxyHeader {..} =
+    go
+      project
+      targetTcpProxy
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetTcpProxiesSetProxyHeaderResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/AggregatedList.hs b/gen/Gogol/Compute/TargetVpnGateways/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/AggregatedList.hs
@@ -0,0 +1,154 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.aggregatedList@.
+module Gogol.Compute.TargetVpnGateways.AggregatedList
+  ( -- * Resource
+    ComputeTargetVpnGatewaysAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysAggregatedList (..),
+    newComputeTargetVpnGatewaysAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.aggregatedList@ method which the
+-- 'ComputeTargetVpnGatewaysAggregatedList' request conforms to.
+type ComputeTargetVpnGatewaysAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "targetVpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetVpnGatewayAggregatedList
+
+-- | Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysAggregatedList' smart constructor.
+data ComputeTargetVpnGatewaysAggregatedList = ComputeTargetVpnGatewaysAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysAggregatedList' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysAggregatedList
+newComputeTargetVpnGatewaysAggregatedList project =
+  ComputeTargetVpnGatewaysAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysAggregatedList where
+  type
+    Rs ComputeTargetVpnGatewaysAggregatedList =
+      TargetVpnGatewayAggregatedList
+  type
+    Scopes ComputeTargetVpnGatewaysAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetVpnGatewaysAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetVpnGatewaysAggregatedListResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/Delete.hs b/gen/Gogol/Compute/TargetVpnGateways/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified target VPN gateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.delete@.
+module Gogol.Compute.TargetVpnGateways.Delete
+  ( -- * Resource
+    ComputeTargetVpnGatewaysDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysDelete (..),
+    newComputeTargetVpnGatewaysDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.delete@ method which the
+-- 'ComputeTargetVpnGatewaysDelete' request conforms to.
+type ComputeTargetVpnGatewaysDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetVpnGateways"
+    Core.:> Core.Capture "targetVpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified target VPN gateway.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysDelete' smart constructor.
+data ComputeTargetVpnGatewaysDelete = ComputeTargetVpnGatewaysDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name of the target VPN gateway to delete.
+    targetVpnGateway :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysDelete' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the target VPN gateway to delete. See 'targetVpnGateway'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysDelete
+newComputeTargetVpnGatewaysDelete project region targetVpnGateway =
+  ComputeTargetVpnGatewaysDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      targetVpnGateway = targetVpnGateway,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysDelete where
+  type Rs ComputeTargetVpnGatewaysDelete = Operation
+  type
+    Scopes ComputeTargetVpnGatewaysDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetVpnGatewaysDelete {..} =
+    go
+      project
+      region
+      targetVpnGateway
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetVpnGatewaysDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/Get.hs b/gen/Gogol/Compute/TargetVpnGateways/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified target VPN gateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.get@.
+module Gogol.Compute.TargetVpnGateways.Get
+  ( -- * Resource
+    ComputeTargetVpnGatewaysGetResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysGet (..),
+    newComputeTargetVpnGatewaysGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.get@ method which the
+-- 'ComputeTargetVpnGatewaysGet' request conforms to.
+type ComputeTargetVpnGatewaysGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetVpnGateways"
+    Core.:> Core.Capture "targetVpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetVpnGateway
+
+-- | Returns the specified target VPN gateway.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysGet' smart constructor.
+data ComputeTargetVpnGatewaysGet = ComputeTargetVpnGatewaysGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Name of the target VPN gateway to return.
+    targetVpnGateway :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysGet' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the target VPN gateway to return. See 'targetVpnGateway'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysGet
+newComputeTargetVpnGatewaysGet project region targetVpnGateway =
+  ComputeTargetVpnGatewaysGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      targetVpnGateway = targetVpnGateway,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysGet where
+  type Rs ComputeTargetVpnGatewaysGet = TargetVpnGateway
+  type
+    Scopes ComputeTargetVpnGatewaysGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetVpnGatewaysGet {..} =
+    go
+      project
+      region
+      targetVpnGateway
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetVpnGatewaysGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/Insert.hs b/gen/Gogol/Compute/TargetVpnGateways/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a target VPN gateway in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.insert@.
+module Gogol.Compute.TargetVpnGateways.Insert
+  ( -- * Resource
+    ComputeTargetVpnGatewaysInsertResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysInsert (..),
+    newComputeTargetVpnGatewaysInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.insert@ method which the
+-- 'ComputeTargetVpnGatewaysInsert' request conforms to.
+type ComputeTargetVpnGatewaysInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetVpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TargetVpnGateway
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a target VPN gateway in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysInsert' smart constructor.
+data ComputeTargetVpnGatewaysInsert = ComputeTargetVpnGatewaysInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TargetVpnGateway,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysInsert' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  TargetVpnGateway ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysInsert
+newComputeTargetVpnGatewaysInsert payload project region =
+  ComputeTargetVpnGatewaysInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysInsert where
+  type Rs ComputeTargetVpnGatewaysInsert = Operation
+  type
+    Scopes ComputeTargetVpnGatewaysInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetVpnGatewaysInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetVpnGatewaysInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/List.hs b/gen/Gogol/Compute/TargetVpnGateways/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of target VPN gateways available to the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.list@.
+module Gogol.Compute.TargetVpnGateways.List
+  ( -- * Resource
+    ComputeTargetVpnGatewaysListResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysList (..),
+    newComputeTargetVpnGatewaysList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.list@ method which the
+-- 'ComputeTargetVpnGatewaysList' request conforms to.
+type ComputeTargetVpnGatewaysListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetVpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] TargetVpnGatewayList
+
+-- | Retrieves a list of target VPN gateways available to the specified project and region.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysList' smart constructor.
+data ComputeTargetVpnGatewaysList = ComputeTargetVpnGatewaysList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysList' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysList
+newComputeTargetVpnGatewaysList project region =
+  ComputeTargetVpnGatewaysList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysList where
+  type Rs ComputeTargetVpnGatewaysList = TargetVpnGatewayList
+  type
+    Scopes ComputeTargetVpnGatewaysList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeTargetVpnGatewaysList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeTargetVpnGatewaysListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/TargetVpnGateways/SetLabels.hs b/gen/Gogol/Compute/TargetVpnGateways/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/TargetVpnGateways/SetLabels.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.TargetVpnGateways.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.targetVpnGateways.setLabels@.
+module Gogol.Compute.TargetVpnGateways.SetLabels
+  ( -- * Resource
+    ComputeTargetVpnGatewaysSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeTargetVpnGatewaysSetLabels (..),
+    newComputeTargetVpnGatewaysSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.targetVpnGateways.setLabels@ method which the
+-- 'ComputeTargetVpnGatewaysSetLabels' request conforms to.
+type ComputeTargetVpnGatewaysSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "targetVpnGateways"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeTargetVpnGatewaysSetLabels' smart constructor.
+data ComputeTargetVpnGatewaysSetLabels = ComputeTargetVpnGatewaysSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeTargetVpnGatewaysSetLabels' with the minimum fields required to make a request.
+newComputeTargetVpnGatewaysSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeTargetVpnGatewaysSetLabels
+newComputeTargetVpnGatewaysSetLabels
+  payload
+  project
+  region
+  resource =
+    ComputeTargetVpnGatewaysSetLabels
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        requestId = Core.Nothing,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeTargetVpnGatewaysSetLabels where
+  type Rs ComputeTargetVpnGatewaysSetLabels = Operation
+  type
+    Scopes ComputeTargetVpnGatewaysSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeTargetVpnGatewaysSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeTargetVpnGatewaysSetLabelsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/Types.hs b/gen/Gogol/Compute/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Types.hs
@@ -0,0 +1,6595 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Types
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Gogol.Compute.Types
+  ( -- * Configuration
+    computeService,
+
+    -- * OAuth Scopes
+    CloudPlatform'FullControl,
+    Compute'FullControl,
+    Compute'Readonly,
+    Devstorage'FullControl,
+    Devstorage'ReadOnly,
+    Devstorage'ReadWrite,
+
+    -- * Types
+
+    -- ** Xgafv
+    Xgafv (..),
+
+    -- ** AWSV4Signature
+    AWSV4Signature (..),
+    newAWSV4Signature,
+
+    -- ** AcceleratorConfig
+    AcceleratorConfig (..),
+    newAcceleratorConfig,
+
+    -- ** AcceleratorType
+    AcceleratorType (..),
+    newAcceleratorType,
+
+    -- ** AcceleratorTypeAggregatedList
+    AcceleratorTypeAggregatedList (..),
+    newAcceleratorTypeAggregatedList,
+
+    -- ** AcceleratorTypeAggregatedList_Items
+    AcceleratorTypeAggregatedList_Items (..),
+    newAcceleratorTypeAggregatedList_Items,
+
+    -- ** AcceleratorTypeAggregatedList_Warning
+    AcceleratorTypeAggregatedList_Warning (..),
+    newAcceleratorTypeAggregatedList_Warning,
+
+    -- ** AcceleratorTypeAggregatedList_Warning_Code
+    AcceleratorTypeAggregatedList_Warning_Code (..),
+
+    -- ** AcceleratorTypeAggregatedList_Warning_DataItem
+    AcceleratorTypeAggregatedList_Warning_DataItem (..),
+    newAcceleratorTypeAggregatedList_Warning_DataItem,
+
+    -- ** AcceleratorTypeList
+    AcceleratorTypeList (..),
+    newAcceleratorTypeList,
+
+    -- ** AcceleratorTypeList_Warning
+    AcceleratorTypeList_Warning (..),
+    newAcceleratorTypeList_Warning,
+
+    -- ** AcceleratorTypeList_Warning_Code
+    AcceleratorTypeList_Warning_Code (..),
+
+    -- ** AcceleratorTypeList_Warning_DataItem
+    AcceleratorTypeList_Warning_DataItem (..),
+    newAcceleratorTypeList_Warning_DataItem,
+
+    -- ** AcceleratorTypesScopedList
+    AcceleratorTypesScopedList (..),
+    newAcceleratorTypesScopedList,
+
+    -- ** AcceleratorTypesScopedList_Warning
+    AcceleratorTypesScopedList_Warning (..),
+    newAcceleratorTypesScopedList_Warning,
+
+    -- ** AcceleratorTypesScopedList_Warning_Code
+    AcceleratorTypesScopedList_Warning_Code (..),
+
+    -- ** AcceleratorTypesScopedList_Warning_DataItem
+    AcceleratorTypesScopedList_Warning_DataItem (..),
+    newAcceleratorTypesScopedList_Warning_DataItem,
+
+    -- ** AccessConfig
+    AccessConfig (..),
+    newAccessConfig,
+
+    -- ** AccessConfig_NetworkTier
+    AccessConfig_NetworkTier (..),
+
+    -- ** AccessConfig_Type
+    AccessConfig_Type (..),
+
+    -- ** Address
+    Address (..),
+    newAddress,
+
+    -- ** Address_AddressType
+    Address_AddressType (..),
+
+    -- ** Address_IpVersion
+    Address_IpVersion (..),
+
+    -- ** Address_Ipv6EndpointType
+    Address_Ipv6EndpointType (..),
+
+    -- ** Address_Labels
+    Address_Labels (..),
+    newAddress_Labels,
+
+    -- ** Address_NetworkTier
+    Address_NetworkTier (..),
+
+    -- ** Address_Purpose
+    Address_Purpose (..),
+
+    -- ** Address_Status
+    Address_Status (..),
+
+    -- ** AddressAggregatedList
+    AddressAggregatedList (..),
+    newAddressAggregatedList,
+
+    -- ** AddressAggregatedList_Items
+    AddressAggregatedList_Items (..),
+    newAddressAggregatedList_Items,
+
+    -- ** AddressAggregatedList_Warning
+    AddressAggregatedList_Warning (..),
+    newAddressAggregatedList_Warning,
+
+    -- ** AddressAggregatedList_Warning_Code
+    AddressAggregatedList_Warning_Code (..),
+
+    -- ** AddressAggregatedList_Warning_DataItem
+    AddressAggregatedList_Warning_DataItem (..),
+    newAddressAggregatedList_Warning_DataItem,
+
+    -- ** AddressList
+    AddressList (..),
+    newAddressList,
+
+    -- ** AddressList_Warning
+    AddressList_Warning (..),
+    newAddressList_Warning,
+
+    -- ** AddressList_Warning_Code
+    AddressList_Warning_Code (..),
+
+    -- ** AddressList_Warning_DataItem
+    AddressList_Warning_DataItem (..),
+    newAddressList_Warning_DataItem,
+
+    -- ** AddressesScopedList
+    AddressesScopedList (..),
+    newAddressesScopedList,
+
+    -- ** AddressesScopedList_Warning
+    AddressesScopedList_Warning (..),
+    newAddressesScopedList_Warning,
+
+    -- ** AddressesScopedList_Warning_Code
+    AddressesScopedList_Warning_Code (..),
+
+    -- ** AddressesScopedList_Warning_DataItem
+    AddressesScopedList_Warning_DataItem (..),
+    newAddressesScopedList_Warning_DataItem,
+
+    -- ** AdvancedMachineFeatures
+    AdvancedMachineFeatures (..),
+    newAdvancedMachineFeatures,
+
+    -- ** AdvancedMachineFeatures_PerformanceMonitoringUnit
+    AdvancedMachineFeatures_PerformanceMonitoringUnit (..),
+
+    -- ** AliasIpRange
+    AliasIpRange (..),
+    newAliasIpRange,
+
+    -- ** AllocationAggregateReservation
+    AllocationAggregateReservation (..),
+    newAllocationAggregateReservation,
+
+    -- ** AllocationAggregateReservation_VmFamily
+    AllocationAggregateReservation_VmFamily (..),
+
+    -- ** AllocationAggregateReservation_WorkloadType
+    AllocationAggregateReservation_WorkloadType (..),
+
+    -- ** AllocationAggregateReservationReservedResourceInfo
+    AllocationAggregateReservationReservedResourceInfo (..),
+    newAllocationAggregateReservationReservedResourceInfo,
+
+    -- ** AllocationAggregateReservationReservedResourceInfoAccelerator
+    AllocationAggregateReservationReservedResourceInfoAccelerator (..),
+    newAllocationAggregateReservationReservedResourceInfoAccelerator,
+
+    -- ** AllocationReservationSharingPolicy
+    AllocationReservationSharingPolicy (..),
+    newAllocationReservationSharingPolicy,
+
+    -- ** AllocationReservationSharingPolicy_ServiceShareType
+    AllocationReservationSharingPolicy_ServiceShareType (..),
+
+    -- ** AllocationResourceStatus
+    AllocationResourceStatus (..),
+    newAllocationResourceStatus,
+
+    -- ** AllocationResourceStatusSpecificSKUAllocation
+    AllocationResourceStatusSpecificSKUAllocation (..),
+    newAllocationResourceStatusSpecificSKUAllocation,
+
+    -- ** AllocationResourceStatusSpecificSKUAllocation_Utilizations
+    AllocationResourceStatusSpecificSKUAllocation_Utilizations (..),
+    newAllocationResourceStatusSpecificSKUAllocation_Utilizations,
+
+    -- ** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
+    AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk (..),
+    newAllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk,
+
+    -- ** AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk_Interface
+    AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk_Interface (..),
+
+    -- ** AllocationSpecificSKUAllocationReservedInstanceProperties
+    AllocationSpecificSKUAllocationReservedInstanceProperties (..),
+    newAllocationSpecificSKUAllocationReservedInstanceProperties,
+
+    -- ** AllocationSpecificSKUReservation
+    AllocationSpecificSKUReservation (..),
+    newAllocationSpecificSKUReservation,
+
+    -- ** AttachedDisk
+    AttachedDisk (..),
+    newAttachedDisk,
+
+    -- ** AttachedDisk_Architecture
+    AttachedDisk_Architecture (..),
+
+    -- ** AttachedDisk_Interface
+    AttachedDisk_Interface (..),
+
+    -- ** AttachedDisk_Mode
+    AttachedDisk_Mode (..),
+
+    -- ** AttachedDisk_SavedState
+    AttachedDisk_SavedState (..),
+
+    -- ** AttachedDisk_Type
+    AttachedDisk_Type (..),
+
+    -- ** AttachedDiskInitializeParams
+    AttachedDiskInitializeParams (..),
+    newAttachedDiskInitializeParams,
+
+    -- ** AttachedDiskInitializeParams_Architecture
+    AttachedDiskInitializeParams_Architecture (..),
+
+    -- ** AttachedDiskInitializeParams_Labels
+    AttachedDiskInitializeParams_Labels (..),
+    newAttachedDiskInitializeParams_Labels,
+
+    -- ** AttachedDiskInitializeParams_OnUpdateAction
+    AttachedDiskInitializeParams_OnUpdateAction (..),
+
+    -- ** AttachedDiskInitializeParams_ResourceManagerTags
+    AttachedDiskInitializeParams_ResourceManagerTags (..),
+    newAttachedDiskInitializeParams_ResourceManagerTags,
+
+    -- ** AuditConfig
+    AuditConfig (..),
+    newAuditConfig,
+
+    -- ** AuditLogConfig
+    AuditLogConfig (..),
+    newAuditLogConfig,
+
+    -- ** AuditLogConfig_LogType
+    AuditLogConfig_LogType (..),
+
+    -- ** Autoscaler
+    Autoscaler (..),
+    newAutoscaler,
+
+    -- ** Autoscaler_ScalingScheduleStatus
+    Autoscaler_ScalingScheduleStatus (..),
+    newAutoscaler_ScalingScheduleStatus,
+
+    -- ** Autoscaler_Status
+    Autoscaler_Status (..),
+
+    -- ** AutoscalerAggregatedList
+    AutoscalerAggregatedList (..),
+    newAutoscalerAggregatedList,
+
+    -- ** AutoscalerAggregatedList_Items
+    AutoscalerAggregatedList_Items (..),
+    newAutoscalerAggregatedList_Items,
+
+    -- ** AutoscalerAggregatedList_Warning
+    AutoscalerAggregatedList_Warning (..),
+    newAutoscalerAggregatedList_Warning,
+
+    -- ** AutoscalerAggregatedList_Warning_Code
+    AutoscalerAggregatedList_Warning_Code (..),
+
+    -- ** AutoscalerAggregatedList_Warning_DataItem
+    AutoscalerAggregatedList_Warning_DataItem (..),
+    newAutoscalerAggregatedList_Warning_DataItem,
+
+    -- ** AutoscalerList
+    AutoscalerList (..),
+    newAutoscalerList,
+
+    -- ** AutoscalerList_Warning
+    AutoscalerList_Warning (..),
+    newAutoscalerList_Warning,
+
+    -- ** AutoscalerList_Warning_Code
+    AutoscalerList_Warning_Code (..),
+
+    -- ** AutoscalerList_Warning_DataItem
+    AutoscalerList_Warning_DataItem (..),
+    newAutoscalerList_Warning_DataItem,
+
+    -- ** AutoscalerStatusDetails
+    AutoscalerStatusDetails (..),
+    newAutoscalerStatusDetails,
+
+    -- ** AutoscalerStatusDetails_Type
+    AutoscalerStatusDetails_Type (..),
+
+    -- ** AutoscalersScopedList
+    AutoscalersScopedList (..),
+    newAutoscalersScopedList,
+
+    -- ** AutoscalersScopedList_Warning
+    AutoscalersScopedList_Warning (..),
+    newAutoscalersScopedList_Warning,
+
+    -- ** AutoscalersScopedList_Warning_Code
+    AutoscalersScopedList_Warning_Code (..),
+
+    -- ** AutoscalersScopedList_Warning_DataItem
+    AutoscalersScopedList_Warning_DataItem (..),
+    newAutoscalersScopedList_Warning_DataItem,
+
+    -- ** AutoscalingPolicy
+    AutoscalingPolicy (..),
+    newAutoscalingPolicy,
+
+    -- ** AutoscalingPolicy_Mode
+    AutoscalingPolicy_Mode (..),
+
+    -- ** AutoscalingPolicy_ScalingSchedules
+    AutoscalingPolicy_ScalingSchedules (..),
+    newAutoscalingPolicy_ScalingSchedules,
+
+    -- ** AutoscalingPolicyCpuUtilization
+    AutoscalingPolicyCpuUtilization (..),
+    newAutoscalingPolicyCpuUtilization,
+
+    -- ** AutoscalingPolicyCpuUtilization_PredictiveMethod
+    AutoscalingPolicyCpuUtilization_PredictiveMethod (..),
+
+    -- ** AutoscalingPolicyCustomMetricUtilization
+    AutoscalingPolicyCustomMetricUtilization (..),
+    newAutoscalingPolicyCustomMetricUtilization,
+
+    -- ** AutoscalingPolicyCustomMetricUtilization_UtilizationTargetType
+    AutoscalingPolicyCustomMetricUtilization_UtilizationTargetType (..),
+
+    -- ** AutoscalingPolicyLoadBalancingUtilization
+    AutoscalingPolicyLoadBalancingUtilization (..),
+    newAutoscalingPolicyLoadBalancingUtilization,
+
+    -- ** AutoscalingPolicyScaleInControl
+    AutoscalingPolicyScaleInControl (..),
+    newAutoscalingPolicyScaleInControl,
+
+    -- ** AutoscalingPolicyScalingSchedule
+    AutoscalingPolicyScalingSchedule (..),
+    newAutoscalingPolicyScalingSchedule,
+
+    -- ** Backend
+    Backend (..),
+    newBackend,
+
+    -- ** Backend_BalancingMode
+    Backend_BalancingMode (..),
+
+    -- ** Backend_Preference
+    Backend_Preference (..),
+
+    -- ** BackendBucket
+    BackendBucket (..),
+    newBackendBucket,
+
+    -- ** BackendBucket_CompressionMode
+    BackendBucket_CompressionMode (..),
+
+    -- ** BackendBucketCdnPolicy
+    BackendBucketCdnPolicy (..),
+    newBackendBucketCdnPolicy,
+
+    -- ** BackendBucketCdnPolicy_CacheMode
+    BackendBucketCdnPolicy_CacheMode (..),
+
+    -- ** BackendBucketCdnPolicyBypassCacheOnRequestHeader
+    BackendBucketCdnPolicyBypassCacheOnRequestHeader (..),
+    newBackendBucketCdnPolicyBypassCacheOnRequestHeader,
+
+    -- ** BackendBucketCdnPolicyCacheKeyPolicy
+    BackendBucketCdnPolicyCacheKeyPolicy (..),
+    newBackendBucketCdnPolicyCacheKeyPolicy,
+
+    -- ** BackendBucketCdnPolicyNegativeCachingPolicy
+    BackendBucketCdnPolicyNegativeCachingPolicy (..),
+    newBackendBucketCdnPolicyNegativeCachingPolicy,
+
+    -- ** BackendBucketList
+    BackendBucketList (..),
+    newBackendBucketList,
+
+    -- ** BackendBucketList_Warning
+    BackendBucketList_Warning (..),
+    newBackendBucketList_Warning,
+
+    -- ** BackendBucketList_Warning_Code
+    BackendBucketList_Warning_Code (..),
+
+    -- ** BackendBucketList_Warning_DataItem
+    BackendBucketList_Warning_DataItem (..),
+    newBackendBucketList_Warning_DataItem,
+
+    -- ** BackendBucketUsedBy
+    BackendBucketUsedBy (..),
+    newBackendBucketUsedBy,
+
+    -- ** BackendCustomMetric
+    BackendCustomMetric (..),
+    newBackendCustomMetric,
+
+    -- ** BackendService
+    BackendService (..),
+    newBackendService,
+
+    -- ** BackendService_CompressionMode
+    BackendService_CompressionMode (..),
+
+    -- ** BackendService_IpAddressSelectionPolicy
+    BackendService_IpAddressSelectionPolicy (..),
+
+    -- ** BackendService_LoadBalancingScheme
+    BackendService_LoadBalancingScheme (..),
+
+    -- ** BackendService_LocalityLbPolicy
+    BackendService_LocalityLbPolicy (..),
+
+    -- ** BackendService_Metadatas
+    BackendService_Metadatas (..),
+    newBackendService_Metadatas,
+
+    -- ** BackendService_Protocol
+    BackendService_Protocol (..),
+
+    -- ** BackendService_SessionAffinity
+    BackendService_SessionAffinity (..),
+
+    -- ** BackendServiceAggregatedList
+    BackendServiceAggregatedList (..),
+    newBackendServiceAggregatedList,
+
+    -- ** BackendServiceAggregatedList_Items
+    BackendServiceAggregatedList_Items (..),
+    newBackendServiceAggregatedList_Items,
+
+    -- ** BackendServiceAggregatedList_Warning
+    BackendServiceAggregatedList_Warning (..),
+    newBackendServiceAggregatedList_Warning,
+
+    -- ** BackendServiceAggregatedList_Warning_Code
+    BackendServiceAggregatedList_Warning_Code (..),
+
+    -- ** BackendServiceAggregatedList_Warning_DataItem
+    BackendServiceAggregatedList_Warning_DataItem (..),
+    newBackendServiceAggregatedList_Warning_DataItem,
+
+    -- ** BackendServiceCdnPolicy
+    BackendServiceCdnPolicy (..),
+    newBackendServiceCdnPolicy,
+
+    -- ** BackendServiceCdnPolicy_CacheMode
+    BackendServiceCdnPolicy_CacheMode (..),
+
+    -- ** BackendServiceCdnPolicyBypassCacheOnRequestHeader
+    BackendServiceCdnPolicyBypassCacheOnRequestHeader (..),
+    newBackendServiceCdnPolicyBypassCacheOnRequestHeader,
+
+    -- ** BackendServiceCdnPolicyNegativeCachingPolicy
+    BackendServiceCdnPolicyNegativeCachingPolicy (..),
+    newBackendServiceCdnPolicyNegativeCachingPolicy,
+
+    -- ** BackendServiceConnectionTrackingPolicy
+    BackendServiceConnectionTrackingPolicy (..),
+    newBackendServiceConnectionTrackingPolicy,
+
+    -- ** BackendServiceConnectionTrackingPolicy_ConnectionPersistenceOnUnhealthyBackends
+    BackendServiceConnectionTrackingPolicy_ConnectionPersistenceOnUnhealthyBackends (..),
+
+    -- ** BackendServiceConnectionTrackingPolicy_TrackingMode
+    BackendServiceConnectionTrackingPolicy_TrackingMode (..),
+
+    -- ** BackendServiceCustomMetric
+    BackendServiceCustomMetric (..),
+    newBackendServiceCustomMetric,
+
+    -- ** BackendServiceFailoverPolicy
+    BackendServiceFailoverPolicy (..),
+    newBackendServiceFailoverPolicy,
+
+    -- ** BackendServiceGroupHealth
+    BackendServiceGroupHealth (..),
+    newBackendServiceGroupHealth,
+
+    -- ** BackendServiceGroupHealth_Annotations
+    BackendServiceGroupHealth_Annotations (..),
+    newBackendServiceGroupHealth_Annotations,
+
+    -- ** BackendServiceHttpCookie
+    BackendServiceHttpCookie (..),
+    newBackendServiceHttpCookie,
+
+    -- ** BackendServiceIAP
+    BackendServiceIAP (..),
+    newBackendServiceIAP,
+
+    -- ** BackendServiceList
+    BackendServiceList (..),
+    newBackendServiceList,
+
+    -- ** BackendServiceList_Warning
+    BackendServiceList_Warning (..),
+    newBackendServiceList_Warning,
+
+    -- ** BackendServiceList_Warning_Code
+    BackendServiceList_Warning_Code (..),
+
+    -- ** BackendServiceList_Warning_DataItem
+    BackendServiceList_Warning_DataItem (..),
+    newBackendServiceList_Warning_DataItem,
+
+    -- ** BackendServiceListUsable
+    BackendServiceListUsable (..),
+    newBackendServiceListUsable,
+
+    -- ** BackendServiceListUsable_Warning
+    BackendServiceListUsable_Warning (..),
+    newBackendServiceListUsable_Warning,
+
+    -- ** BackendServiceListUsable_Warning_Code
+    BackendServiceListUsable_Warning_Code (..),
+
+    -- ** BackendServiceListUsable_Warning_DataItem
+    BackendServiceListUsable_Warning_DataItem (..),
+    newBackendServiceListUsable_Warning_DataItem,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfig
+    BackendServiceLocalityLoadBalancingPolicyConfig (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfig,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy
+    BackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfigCustomPolicy,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigPolicy
+    BackendServiceLocalityLoadBalancingPolicyConfigPolicy (..),
+    newBackendServiceLocalityLoadBalancingPolicyConfigPolicy,
+
+    -- ** BackendServiceLocalityLoadBalancingPolicyConfigPolicy_Name
+    BackendServiceLocalityLoadBalancingPolicyConfigPolicy_Name (..),
+
+    -- ** BackendServiceLogConfig
+    BackendServiceLogConfig (..),
+    newBackendServiceLogConfig,
+
+    -- ** BackendServiceLogConfig_OptionalMode
+    BackendServiceLogConfig_OptionalMode (..),
+
+    -- ** BackendServiceReference
+    BackendServiceReference (..),
+    newBackendServiceReference,
+
+    -- ** BackendServiceUsedBy
+    BackendServiceUsedBy (..),
+    newBackendServiceUsedBy,
+
+    -- ** BackendServicesScopedList
+    BackendServicesScopedList (..),
+    newBackendServicesScopedList,
+
+    -- ** BackendServicesScopedList_Warning
+    BackendServicesScopedList_Warning (..),
+    newBackendServicesScopedList_Warning,
+
+    -- ** BackendServicesScopedList_Warning_Code
+    BackendServicesScopedList_Warning_Code (..),
+
+    -- ** BackendServicesScopedList_Warning_DataItem
+    BackendServicesScopedList_Warning_DataItem (..),
+    newBackendServicesScopedList_Warning_DataItem,
+
+    -- ** BfdPacket
+    BfdPacket (..),
+    newBfdPacket,
+
+    -- ** BfdPacket_Diagnostic
+    BfdPacket_Diagnostic (..),
+
+    -- ** BfdPacket_State
+    BfdPacket_State (..),
+
+    -- ** BfdStatus
+    BfdStatus (..),
+    newBfdStatus,
+
+    -- ** BfdStatus_BfdSessionInitializationMode
+    BfdStatus_BfdSessionInitializationMode (..),
+
+    -- ** BfdStatus_LocalDiagnostic
+    BfdStatus_LocalDiagnostic (..),
+
+    -- ** BfdStatus_LocalState
+    BfdStatus_LocalState (..),
+
+    -- ** BfdStatusPacketCounts
+    BfdStatusPacketCounts (..),
+    newBfdStatusPacketCounts,
+
+    -- ** BgpRoute
+    BgpRoute (..),
+    newBgpRoute,
+
+    -- ** BgpRoute_Origin
+    BgpRoute_Origin (..),
+
+    -- ** BgpRouteAsPath
+    BgpRouteAsPath (..),
+    newBgpRouteAsPath,
+
+    -- ** BgpRouteAsPath_Type
+    BgpRouteAsPath_Type (..),
+
+    -- ** BgpRouteNetworkLayerReachabilityInformation
+    BgpRouteNetworkLayerReachabilityInformation (..),
+    newBgpRouteNetworkLayerReachabilityInformation,
+
+    -- ** Binding
+    Binding (..),
+    newBinding,
+
+    -- ** BulkInsertDiskResource
+    BulkInsertDiskResource (..),
+    newBulkInsertDiskResource,
+
+    -- ** BulkInsertInstanceResource
+    BulkInsertInstanceResource (..),
+    newBulkInsertInstanceResource,
+
+    -- ** BulkInsertInstanceResource_PerInstanceProperties
+    BulkInsertInstanceResource_PerInstanceProperties (..),
+    newBulkInsertInstanceResource_PerInstanceProperties,
+
+    -- ** BulkInsertInstanceResourcePerInstanceProperties
+    BulkInsertInstanceResourcePerInstanceProperties (..),
+    newBulkInsertInstanceResourcePerInstanceProperties,
+
+    -- ** BulkInsertOperationStatus
+    BulkInsertOperationStatus (..),
+    newBulkInsertOperationStatus,
+
+    -- ** BulkInsertOperationStatus_Status
+    BulkInsertOperationStatus_Status (..),
+
+    -- ** CacheInvalidationRule
+    CacheInvalidationRule (..),
+    newCacheInvalidationRule,
+
+    -- ** CacheKeyPolicy
+    CacheKeyPolicy (..),
+    newCacheKeyPolicy,
+
+    -- ** CircuitBreakers
+    CircuitBreakers (..),
+    newCircuitBreakers,
+
+    -- ** Commitment
+    Commitment (..),
+    newCommitment,
+
+    -- ** Commitment_Category
+    Commitment_Category (..),
+
+    -- ** Commitment_Plan
+    Commitment_Plan (..),
+
+    -- ** Commitment_Status
+    Commitment_Status (..),
+
+    -- ** Commitment_Type
+    Commitment_Type (..),
+
+    -- ** CommitmentAggregatedList
+    CommitmentAggregatedList (..),
+    newCommitmentAggregatedList,
+
+    -- ** CommitmentAggregatedList_Items
+    CommitmentAggregatedList_Items (..),
+    newCommitmentAggregatedList_Items,
+
+    -- ** CommitmentAggregatedList_Warning
+    CommitmentAggregatedList_Warning (..),
+    newCommitmentAggregatedList_Warning,
+
+    -- ** CommitmentAggregatedList_Warning_Code
+    CommitmentAggregatedList_Warning_Code (..),
+
+    -- ** CommitmentAggregatedList_Warning_DataItem
+    CommitmentAggregatedList_Warning_DataItem (..),
+    newCommitmentAggregatedList_Warning_DataItem,
+
+    -- ** CommitmentList
+    CommitmentList (..),
+    newCommitmentList,
+
+    -- ** CommitmentList_Warning
+    CommitmentList_Warning (..),
+    newCommitmentList_Warning,
+
+    -- ** CommitmentList_Warning_Code
+    CommitmentList_Warning_Code (..),
+
+    -- ** CommitmentList_Warning_DataItem
+    CommitmentList_Warning_DataItem (..),
+    newCommitmentList_Warning_DataItem,
+
+    -- ** CommitmentResourceStatus
+    CommitmentResourceStatus (..),
+    newCommitmentResourceStatus,
+
+    -- ** CommitmentsScopedList
+    CommitmentsScopedList (..),
+    newCommitmentsScopedList,
+
+    -- ** CommitmentsScopedList_Warning
+    CommitmentsScopedList_Warning (..),
+    newCommitmentsScopedList_Warning,
+
+    -- ** CommitmentsScopedList_Warning_Code
+    CommitmentsScopedList_Warning_Code (..),
+
+    -- ** CommitmentsScopedList_Warning_DataItem
+    CommitmentsScopedList_Warning_DataItem (..),
+    newCommitmentsScopedList_Warning_DataItem,
+
+    -- ** ConfidentialInstanceConfig
+    ConfidentialInstanceConfig (..),
+    newConfidentialInstanceConfig,
+
+    -- ** ConfidentialInstanceConfig_ConfidentialInstanceType
+    ConfidentialInstanceConfig_ConfidentialInstanceType (..),
+
+    -- ** ConnectionDraining
+    ConnectionDraining (..),
+    newConnectionDraining,
+
+    -- ** ConsistentHashLoadBalancerSettings
+    ConsistentHashLoadBalancerSettings (..),
+    newConsistentHashLoadBalancerSettings,
+
+    -- ** ConsistentHashLoadBalancerSettingsHttpCookie
+    ConsistentHashLoadBalancerSettingsHttpCookie (..),
+    newConsistentHashLoadBalancerSettingsHttpCookie,
+
+    -- ** CorsPolicy
+    CorsPolicy (..),
+    newCorsPolicy,
+
+    -- ** CustomErrorResponsePolicy
+    CustomErrorResponsePolicy (..),
+    newCustomErrorResponsePolicy,
+
+    -- ** CustomErrorResponsePolicyCustomErrorResponseRule
+    CustomErrorResponsePolicyCustomErrorResponseRule (..),
+    newCustomErrorResponsePolicyCustomErrorResponseRule,
+
+    -- ** CustomerEncryptionKey
+    CustomerEncryptionKey (..),
+    newCustomerEncryptionKey,
+
+    -- ** CustomerEncryptionKeyProtectedDisk
+    CustomerEncryptionKeyProtectedDisk (..),
+    newCustomerEncryptionKeyProtectedDisk,
+
+    -- ** DeprecationStatus
+    DeprecationStatus (..),
+    newDeprecationStatus,
+
+    -- ** DeprecationStatus_State
+    DeprecationStatus_State (..),
+
+    -- ** Disk
+    Disk (..),
+    newDisk,
+
+    -- ** Disk_AccessMode
+    Disk_AccessMode (..),
+
+    -- ** Disk_Architecture
+    Disk_Architecture (..),
+
+    -- ** Disk_AsyncSecondaryDisks
+    Disk_AsyncSecondaryDisks (..),
+    newDisk_AsyncSecondaryDisks,
+
+    -- ** Disk_Labels
+    Disk_Labels (..),
+    newDisk_Labels,
+
+    -- ** Disk_Status
+    Disk_Status (..),
+
+    -- ** DiskAggregatedList
+    DiskAggregatedList (..),
+    newDiskAggregatedList,
+
+    -- ** DiskAggregatedList_Items
+    DiskAggregatedList_Items (..),
+    newDiskAggregatedList_Items,
+
+    -- ** DiskAggregatedList_Warning
+    DiskAggregatedList_Warning (..),
+    newDiskAggregatedList_Warning,
+
+    -- ** DiskAggregatedList_Warning_Code
+    DiskAggregatedList_Warning_Code (..),
+
+    -- ** DiskAggregatedList_Warning_DataItem
+    DiskAggregatedList_Warning_DataItem (..),
+    newDiskAggregatedList_Warning_DataItem,
+
+    -- ** DiskAsyncReplication
+    DiskAsyncReplication (..),
+    newDiskAsyncReplication,
+
+    -- ** DiskAsyncReplicationList
+    DiskAsyncReplicationList (..),
+    newDiskAsyncReplicationList,
+
+    -- ** DiskInstantiationConfig
+    DiskInstantiationConfig (..),
+    newDiskInstantiationConfig,
+
+    -- ** DiskInstantiationConfig_InstantiateFrom
+    DiskInstantiationConfig_InstantiateFrom (..),
+
+    -- ** DiskList
+    DiskList (..),
+    newDiskList,
+
+    -- ** DiskList_Warning
+    DiskList_Warning (..),
+    newDiskList_Warning,
+
+    -- ** DiskList_Warning_Code
+    DiskList_Warning_Code (..),
+
+    -- ** DiskList_Warning_DataItem
+    DiskList_Warning_DataItem (..),
+    newDiskList_Warning_DataItem,
+
+    -- ** DiskMoveRequest
+    DiskMoveRequest (..),
+    newDiskMoveRequest,
+
+    -- ** DiskParams
+    DiskParams (..),
+    newDiskParams,
+
+    -- ** DiskParams_ResourceManagerTags
+    DiskParams_ResourceManagerTags (..),
+    newDiskParams_ResourceManagerTags,
+
+    -- ** DiskResourceStatus
+    DiskResourceStatus (..),
+    newDiskResourceStatus,
+
+    -- ** DiskResourceStatus_AsyncSecondaryDisks
+    DiskResourceStatus_AsyncSecondaryDisks (..),
+    newDiskResourceStatus_AsyncSecondaryDisks,
+
+    -- ** DiskResourceStatusAsyncReplicationStatus
+    DiskResourceStatusAsyncReplicationStatus (..),
+    newDiskResourceStatusAsyncReplicationStatus,
+
+    -- ** DiskResourceStatusAsyncReplicationStatus_State
+    DiskResourceStatusAsyncReplicationStatus_State (..),
+
+    -- ** DiskType
+    DiskType (..),
+    newDiskType,
+
+    -- ** DiskTypeAggregatedList
+    DiskTypeAggregatedList (..),
+    newDiskTypeAggregatedList,
+
+    -- ** DiskTypeAggregatedList_Items
+    DiskTypeAggregatedList_Items (..),
+    newDiskTypeAggregatedList_Items,
+
+    -- ** DiskTypeAggregatedList_Warning
+    DiskTypeAggregatedList_Warning (..),
+    newDiskTypeAggregatedList_Warning,
+
+    -- ** DiskTypeAggregatedList_Warning_Code
+    DiskTypeAggregatedList_Warning_Code (..),
+
+    -- ** DiskTypeAggregatedList_Warning_DataItem
+    DiskTypeAggregatedList_Warning_DataItem (..),
+    newDiskTypeAggregatedList_Warning_DataItem,
+
+    -- ** DiskTypeList
+    DiskTypeList (..),
+    newDiskTypeList,
+
+    -- ** DiskTypeList_Warning
+    DiskTypeList_Warning (..),
+    newDiskTypeList_Warning,
+
+    -- ** DiskTypeList_Warning_Code
+    DiskTypeList_Warning_Code (..),
+
+    -- ** DiskTypeList_Warning_DataItem
+    DiskTypeList_Warning_DataItem (..),
+    newDiskTypeList_Warning_DataItem,
+
+    -- ** DiskTypesScopedList
+    DiskTypesScopedList (..),
+    newDiskTypesScopedList,
+
+    -- ** DiskTypesScopedList_Warning
+    DiskTypesScopedList_Warning (..),
+    newDiskTypesScopedList_Warning,
+
+    -- ** DiskTypesScopedList_Warning_Code
+    DiskTypesScopedList_Warning_Code (..),
+
+    -- ** DiskTypesScopedList_Warning_DataItem
+    DiskTypesScopedList_Warning_DataItem (..),
+    newDiskTypesScopedList_Warning_DataItem,
+
+    -- ** DisksAddResourcePoliciesRequest
+    DisksAddResourcePoliciesRequest (..),
+    newDisksAddResourcePoliciesRequest,
+
+    -- ** DisksRemoveResourcePoliciesRequest
+    DisksRemoveResourcePoliciesRequest (..),
+    newDisksRemoveResourcePoliciesRequest,
+
+    -- ** DisksResizeRequest
+    DisksResizeRequest (..),
+    newDisksResizeRequest,
+
+    -- ** DisksScopedList
+    DisksScopedList (..),
+    newDisksScopedList,
+
+    -- ** DisksScopedList_Warning
+    DisksScopedList_Warning (..),
+    newDisksScopedList_Warning,
+
+    -- ** DisksScopedList_Warning_Code
+    DisksScopedList_Warning_Code (..),
+
+    -- ** DisksScopedList_Warning_DataItem
+    DisksScopedList_Warning_DataItem (..),
+    newDisksScopedList_Warning_DataItem,
+
+    -- ** DisksStartAsyncReplicationRequest
+    DisksStartAsyncReplicationRequest (..),
+    newDisksStartAsyncReplicationRequest,
+
+    -- ** DisksStopGroupAsyncReplicationResource
+    DisksStopGroupAsyncReplicationResource (..),
+    newDisksStopGroupAsyncReplicationResource,
+
+    -- ** DisplayDevice
+    DisplayDevice (..),
+    newDisplayDevice,
+
+    -- ** DistributionPolicy
+    DistributionPolicy (..),
+    newDistributionPolicy,
+
+    -- ** DistributionPolicy_TargetShape
+    DistributionPolicy_TargetShape (..),
+
+    -- ** DistributionPolicyZoneConfiguration
+    DistributionPolicyZoneConfiguration (..),
+    newDistributionPolicyZoneConfiguration,
+
+    -- ** Duration
+    Duration (..),
+    newDuration,
+
+    -- ** ErrorInfo
+    ErrorInfo (..),
+    newErrorInfo,
+
+    -- ** ErrorInfo_Metadatas
+    ErrorInfo_Metadatas (..),
+    newErrorInfo_Metadatas,
+
+    -- ** ExchangedPeeringRoute
+    ExchangedPeeringRoute (..),
+    newExchangedPeeringRoute,
+
+    -- ** ExchangedPeeringRoute_Type
+    ExchangedPeeringRoute_Type (..),
+
+    -- ** ExchangedPeeringRoutesList
+    ExchangedPeeringRoutesList (..),
+    newExchangedPeeringRoutesList,
+
+    -- ** ExchangedPeeringRoutesList_Warning
+    ExchangedPeeringRoutesList_Warning (..),
+    newExchangedPeeringRoutesList_Warning,
+
+    -- ** ExchangedPeeringRoutesList_Warning_Code
+    ExchangedPeeringRoutesList_Warning_Code (..),
+
+    -- ** ExchangedPeeringRoutesList_Warning_DataItem
+    ExchangedPeeringRoutesList_Warning_DataItem (..),
+    newExchangedPeeringRoutesList_Warning_DataItem,
+
+    -- ** Expr
+    Expr (..),
+    newExpr,
+
+    -- ** ExternalVpnGateway
+    ExternalVpnGateway (..),
+    newExternalVpnGateway,
+
+    -- ** ExternalVpnGateway_Labels
+    ExternalVpnGateway_Labels (..),
+    newExternalVpnGateway_Labels,
+
+    -- ** ExternalVpnGateway_RedundancyType
+    ExternalVpnGateway_RedundancyType (..),
+
+    -- ** ExternalVpnGatewayInterface
+    ExternalVpnGatewayInterface (..),
+    newExternalVpnGatewayInterface,
+
+    -- ** ExternalVpnGatewayList
+    ExternalVpnGatewayList (..),
+    newExternalVpnGatewayList,
+
+    -- ** ExternalVpnGatewayList_Warning
+    ExternalVpnGatewayList_Warning (..),
+    newExternalVpnGatewayList_Warning,
+
+    -- ** ExternalVpnGatewayList_Warning_Code
+    ExternalVpnGatewayList_Warning_Code (..),
+
+    -- ** ExternalVpnGatewayList_Warning_DataItem
+    ExternalVpnGatewayList_Warning_DataItem (..),
+    newExternalVpnGatewayList_Warning_DataItem,
+
+    -- ** FileContentBuffer
+    FileContentBuffer (..),
+    newFileContentBuffer,
+
+    -- ** FileContentBuffer_FileType
+    FileContentBuffer_FileType (..),
+
+    -- ** Firewall
+    Firewall (..),
+    newFirewall,
+
+    -- ** Firewall_AllowedItem
+    Firewall_AllowedItem (..),
+    newFirewall_AllowedItem,
+
+    -- ** Firewall_DeniedItem
+    Firewall_DeniedItem (..),
+    newFirewall_DeniedItem,
+
+    -- ** Firewall_Direction
+    Firewall_Direction (..),
+
+    -- ** FirewallList
+    FirewallList (..),
+    newFirewallList,
+
+    -- ** FirewallList_Warning
+    FirewallList_Warning (..),
+    newFirewallList_Warning,
+
+    -- ** FirewallList_Warning_Code
+    FirewallList_Warning_Code (..),
+
+    -- ** FirewallList_Warning_DataItem
+    FirewallList_Warning_DataItem (..),
+    newFirewallList_Warning_DataItem,
+
+    -- ** FirewallLogConfig
+    FirewallLogConfig (..),
+    newFirewallLogConfig,
+
+    -- ** FirewallLogConfig_Metadata
+    FirewallLogConfig_Metadata (..),
+
+    -- ** FirewallPoliciesListAssociationsResponse
+    FirewallPoliciesListAssociationsResponse (..),
+    newFirewallPoliciesListAssociationsResponse,
+
+    -- ** FirewallPoliciesScopedList
+    FirewallPoliciesScopedList (..),
+    newFirewallPoliciesScopedList,
+
+    -- ** FirewallPoliciesScopedList_Warning
+    FirewallPoliciesScopedList_Warning (..),
+    newFirewallPoliciesScopedList_Warning,
+
+    -- ** FirewallPoliciesScopedList_Warning_Code
+    FirewallPoliciesScopedList_Warning_Code (..),
+
+    -- ** FirewallPoliciesScopedList_Warning_DataItem
+    FirewallPoliciesScopedList_Warning_DataItem (..),
+    newFirewallPoliciesScopedList_Warning_DataItem,
+
+    -- ** FirewallPolicy
+    FirewallPolicy (..),
+    newFirewallPolicy,
+
+    -- ** FirewallPolicyAssociation
+    FirewallPolicyAssociation (..),
+    newFirewallPolicyAssociation,
+
+    -- ** FirewallPolicyList
+    FirewallPolicyList (..),
+    newFirewallPolicyList,
+
+    -- ** FirewallPolicyList_Warning
+    FirewallPolicyList_Warning (..),
+    newFirewallPolicyList_Warning,
+
+    -- ** FirewallPolicyList_Warning_Code
+    FirewallPolicyList_Warning_Code (..),
+
+    -- ** FirewallPolicyList_Warning_DataItem
+    FirewallPolicyList_Warning_DataItem (..),
+    newFirewallPolicyList_Warning_DataItem,
+
+    -- ** FirewallPolicyRule
+    FirewallPolicyRule (..),
+    newFirewallPolicyRule,
+
+    -- ** FirewallPolicyRule_Direction
+    FirewallPolicyRule_Direction (..),
+
+    -- ** FirewallPolicyRuleMatcher
+    FirewallPolicyRuleMatcher (..),
+    newFirewallPolicyRuleMatcher,
+
+    -- ** FirewallPolicyRuleMatcherLayer4Config
+    FirewallPolicyRuleMatcherLayer4Config (..),
+    newFirewallPolicyRuleMatcherLayer4Config,
+
+    -- ** FirewallPolicyRuleSecureTag
+    FirewallPolicyRuleSecureTag (..),
+    newFirewallPolicyRuleSecureTag,
+
+    -- ** FirewallPolicyRuleSecureTag_State
+    FirewallPolicyRuleSecureTag_State (..),
+
+    -- ** FixedOrPercent
+    FixedOrPercent (..),
+    newFixedOrPercent,
+
+    -- ** ForwardingRule
+    ForwardingRule (..),
+    newForwardingRule,
+
+    -- ** ForwardingRule_IPProtocol
+    ForwardingRule_IPProtocol (..),
+
+    -- ** ForwardingRule_IpVersion
+    ForwardingRule_IpVersion (..),
+
+    -- ** ForwardingRule_Labels
+    ForwardingRule_Labels (..),
+    newForwardingRule_Labels,
+
+    -- ** ForwardingRule_LoadBalancingScheme
+    ForwardingRule_LoadBalancingScheme (..),
+
+    -- ** ForwardingRule_NetworkTier
+    ForwardingRule_NetworkTier (..),
+
+    -- ** ForwardingRule_PscConnectionStatus
+    ForwardingRule_PscConnectionStatus (..),
+
+    -- ** ForwardingRuleAggregatedList
+    ForwardingRuleAggregatedList (..),
+    newForwardingRuleAggregatedList,
+
+    -- ** ForwardingRuleAggregatedList_Items
+    ForwardingRuleAggregatedList_Items (..),
+    newForwardingRuleAggregatedList_Items,
+
+    -- ** ForwardingRuleAggregatedList_Warning
+    ForwardingRuleAggregatedList_Warning (..),
+    newForwardingRuleAggregatedList_Warning,
+
+    -- ** ForwardingRuleAggregatedList_Warning_Code
+    ForwardingRuleAggregatedList_Warning_Code (..),
+
+    -- ** ForwardingRuleAggregatedList_Warning_DataItem
+    ForwardingRuleAggregatedList_Warning_DataItem (..),
+    newForwardingRuleAggregatedList_Warning_DataItem,
+
+    -- ** ForwardingRuleList
+    ForwardingRuleList (..),
+    newForwardingRuleList,
+
+    -- ** ForwardingRuleList_Warning
+    ForwardingRuleList_Warning (..),
+    newForwardingRuleList_Warning,
+
+    -- ** ForwardingRuleList_Warning_Code
+    ForwardingRuleList_Warning_Code (..),
+
+    -- ** ForwardingRuleList_Warning_DataItem
+    ForwardingRuleList_Warning_DataItem (..),
+    newForwardingRuleList_Warning_DataItem,
+
+    -- ** ForwardingRuleReference
+    ForwardingRuleReference (..),
+    newForwardingRuleReference,
+
+    -- ** ForwardingRuleServiceDirectoryRegistration
+    ForwardingRuleServiceDirectoryRegistration (..),
+    newForwardingRuleServiceDirectoryRegistration,
+
+    -- ** ForwardingRulesScopedList
+    ForwardingRulesScopedList (..),
+    newForwardingRulesScopedList,
+
+    -- ** ForwardingRulesScopedList_Warning
+    ForwardingRulesScopedList_Warning (..),
+    newForwardingRulesScopedList_Warning,
+
+    -- ** ForwardingRulesScopedList_Warning_Code
+    ForwardingRulesScopedList_Warning_Code (..),
+
+    -- ** ForwardingRulesScopedList_Warning_DataItem
+    ForwardingRulesScopedList_Warning_DataItem (..),
+    newForwardingRulesScopedList_Warning_DataItem,
+
+    -- ** GRPCHealthCheck
+    GRPCHealthCheck (..),
+    newGRPCHealthCheck,
+
+    -- ** GRPCHealthCheck_PortSpecification
+    GRPCHealthCheck_PortSpecification (..),
+
+    -- ** GlobalAddressesMoveRequest
+    GlobalAddressesMoveRequest (..),
+    newGlobalAddressesMoveRequest,
+
+    -- ** GlobalNetworkEndpointGroupsAttachEndpointsRequest
+    GlobalNetworkEndpointGroupsAttachEndpointsRequest (..),
+    newGlobalNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** GlobalNetworkEndpointGroupsDetachEndpointsRequest
+    GlobalNetworkEndpointGroupsDetachEndpointsRequest (..),
+    newGlobalNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** GlobalOrganizationSetPolicyRequest
+    GlobalOrganizationSetPolicyRequest (..),
+    newGlobalOrganizationSetPolicyRequest,
+
+    -- ** GlobalSetLabelsRequest
+    GlobalSetLabelsRequest (..),
+    newGlobalSetLabelsRequest,
+
+    -- ** GlobalSetLabelsRequest_Labels
+    GlobalSetLabelsRequest_Labels (..),
+    newGlobalSetLabelsRequest_Labels,
+
+    -- ** GlobalSetPolicyRequest
+    GlobalSetPolicyRequest (..),
+    newGlobalSetPolicyRequest,
+
+    -- ** GuestAttributes
+    GuestAttributes (..),
+    newGuestAttributes,
+
+    -- ** GuestAttributesEntry
+    GuestAttributesEntry (..),
+    newGuestAttributesEntry,
+
+    -- ** GuestAttributesValue
+    GuestAttributesValue (..),
+    newGuestAttributesValue,
+
+    -- ** GuestOsFeature
+    GuestOsFeature (..),
+    newGuestOsFeature,
+
+    -- ** GuestOsFeature_Type
+    GuestOsFeature_Type (..),
+
+    -- ** HTTP2HealthCheck
+    HTTP2HealthCheck (..),
+    newHTTP2HealthCheck,
+
+    -- ** HTTP2HealthCheck_PortSpecification
+    HTTP2HealthCheck_PortSpecification (..),
+
+    -- ** HTTP2HealthCheck_ProxyHeader
+    HTTP2HealthCheck_ProxyHeader (..),
+
+    -- ** HTTPHealthCheck
+    HTTPHealthCheck (..),
+    newHTTPHealthCheck,
+
+    -- ** HTTPHealthCheck_PortSpecification
+    HTTPHealthCheck_PortSpecification (..),
+
+    -- ** HTTPHealthCheck_ProxyHeader
+    HTTPHealthCheck_ProxyHeader (..),
+
+    -- ** HTTPSHealthCheck
+    HTTPSHealthCheck (..),
+    newHTTPSHealthCheck,
+
+    -- ** HTTPSHealthCheck_PortSpecification
+    HTTPSHealthCheck_PortSpecification (..),
+
+    -- ** HTTPSHealthCheck_ProxyHeader
+    HTTPSHealthCheck_ProxyHeader (..),
+
+    -- ** HealthCheck
+    HealthCheck (..),
+    newHealthCheck,
+
+    -- ** HealthCheck_Type
+    HealthCheck_Type (..),
+
+    -- ** HealthCheckList
+    HealthCheckList (..),
+    newHealthCheckList,
+
+    -- ** HealthCheckList_Warning
+    HealthCheckList_Warning (..),
+    newHealthCheckList_Warning,
+
+    -- ** HealthCheckList_Warning_Code
+    HealthCheckList_Warning_Code (..),
+
+    -- ** HealthCheckList_Warning_DataItem
+    HealthCheckList_Warning_DataItem (..),
+    newHealthCheckList_Warning_DataItem,
+
+    -- ** HealthCheckLogConfig
+    HealthCheckLogConfig (..),
+    newHealthCheckLogConfig,
+
+    -- ** HealthCheckReference
+    HealthCheckReference (..),
+    newHealthCheckReference,
+
+    -- ** HealthCheckService
+    HealthCheckService (..),
+    newHealthCheckService,
+
+    -- ** HealthCheckService_HealthStatusAggregationPolicy
+    HealthCheckService_HealthStatusAggregationPolicy (..),
+
+    -- ** HealthCheckServiceReference
+    HealthCheckServiceReference (..),
+    newHealthCheckServiceReference,
+
+    -- ** HealthCheckServicesList
+    HealthCheckServicesList (..),
+    newHealthCheckServicesList,
+
+    -- ** HealthCheckServicesList_Warning
+    HealthCheckServicesList_Warning (..),
+    newHealthCheckServicesList_Warning,
+
+    -- ** HealthCheckServicesList_Warning_Code
+    HealthCheckServicesList_Warning_Code (..),
+
+    -- ** HealthCheckServicesList_Warning_DataItem
+    HealthCheckServicesList_Warning_DataItem (..),
+    newHealthCheckServicesList_Warning_DataItem,
+
+    -- ** HealthChecksAggregatedList
+    HealthChecksAggregatedList (..),
+    newHealthChecksAggregatedList,
+
+    -- ** HealthChecksAggregatedList_Items
+    HealthChecksAggregatedList_Items (..),
+    newHealthChecksAggregatedList_Items,
+
+    -- ** HealthChecksAggregatedList_Warning
+    HealthChecksAggregatedList_Warning (..),
+    newHealthChecksAggregatedList_Warning,
+
+    -- ** HealthChecksAggregatedList_Warning_Code
+    HealthChecksAggregatedList_Warning_Code (..),
+
+    -- ** HealthChecksAggregatedList_Warning_DataItem
+    HealthChecksAggregatedList_Warning_DataItem (..),
+    newHealthChecksAggregatedList_Warning_DataItem,
+
+    -- ** HealthChecksScopedList
+    HealthChecksScopedList (..),
+    newHealthChecksScopedList,
+
+    -- ** HealthChecksScopedList_Warning
+    HealthChecksScopedList_Warning (..),
+    newHealthChecksScopedList_Warning,
+
+    -- ** HealthChecksScopedList_Warning_Code
+    HealthChecksScopedList_Warning_Code (..),
+
+    -- ** HealthChecksScopedList_Warning_DataItem
+    HealthChecksScopedList_Warning_DataItem (..),
+    newHealthChecksScopedList_Warning_DataItem,
+
+    -- ** HealthStatus
+    HealthStatus (..),
+    newHealthStatus,
+
+    -- ** HealthStatus_Annotations
+    HealthStatus_Annotations (..),
+    newHealthStatus_Annotations,
+
+    -- ** HealthStatus_HealthState
+    HealthStatus_HealthState (..),
+
+    -- ** HealthStatus_Ipv6HealthState
+    HealthStatus_Ipv6HealthState (..),
+
+    -- ** HealthStatus_WeightError
+    HealthStatus_WeightError (..),
+
+    -- ** HealthStatusForNetworkEndpoint
+    HealthStatusForNetworkEndpoint (..),
+    newHealthStatusForNetworkEndpoint,
+
+    -- ** HealthStatusForNetworkEndpoint_HealthState
+    HealthStatusForNetworkEndpoint_HealthState (..),
+
+    -- ** HealthStatusForNetworkEndpoint_Ipv6HealthState
+    HealthStatusForNetworkEndpoint_Ipv6HealthState (..),
+
+    -- ** Help
+    Help (..),
+    newHelp,
+
+    -- ** HelpLink
+    HelpLink (..),
+    newHelpLink,
+
+    -- ** HostRule
+    HostRule (..),
+    newHostRule,
+
+    -- ** HttpFaultAbort
+    HttpFaultAbort (..),
+    newHttpFaultAbort,
+
+    -- ** HttpFaultDelay
+    HttpFaultDelay (..),
+    newHttpFaultDelay,
+
+    -- ** HttpFaultInjection
+    HttpFaultInjection (..),
+    newHttpFaultInjection,
+
+    -- ** HttpHeaderAction
+    HttpHeaderAction (..),
+    newHttpHeaderAction,
+
+    -- ** HttpHeaderMatch
+    HttpHeaderMatch (..),
+    newHttpHeaderMatch,
+
+    -- ** HttpHeaderOption
+    HttpHeaderOption (..),
+    newHttpHeaderOption,
+
+    -- ** HttpHealthCheck
+    HttpHealthCheck (..),
+    newHttpHealthCheck,
+
+    -- ** HttpHealthCheckList
+    HttpHealthCheckList (..),
+    newHttpHealthCheckList,
+
+    -- ** HttpHealthCheckList_Warning
+    HttpHealthCheckList_Warning (..),
+    newHttpHealthCheckList_Warning,
+
+    -- ** HttpHealthCheckList_Warning_Code
+    HttpHealthCheckList_Warning_Code (..),
+
+    -- ** HttpHealthCheckList_Warning_DataItem
+    HttpHealthCheckList_Warning_DataItem (..),
+    newHttpHealthCheckList_Warning_DataItem,
+
+    -- ** HttpQueryParameterMatch
+    HttpQueryParameterMatch (..),
+    newHttpQueryParameterMatch,
+
+    -- ** HttpRedirectAction
+    HttpRedirectAction (..),
+    newHttpRedirectAction,
+
+    -- ** HttpRedirectAction_RedirectResponseCode
+    HttpRedirectAction_RedirectResponseCode (..),
+
+    -- ** HttpRetryPolicy
+    HttpRetryPolicy (..),
+    newHttpRetryPolicy,
+
+    -- ** HttpRouteAction
+    HttpRouteAction (..),
+    newHttpRouteAction,
+
+    -- ** HttpRouteRule
+    HttpRouteRule (..),
+    newHttpRouteRule,
+
+    -- ** HttpRouteRuleMatch
+    HttpRouteRuleMatch (..),
+    newHttpRouteRuleMatch,
+
+    -- ** HttpsHealthCheck
+    HttpsHealthCheck (..),
+    newHttpsHealthCheck,
+
+    -- ** HttpsHealthCheckList
+    HttpsHealthCheckList (..),
+    newHttpsHealthCheckList,
+
+    -- ** HttpsHealthCheckList_Warning
+    HttpsHealthCheckList_Warning (..),
+    newHttpsHealthCheckList_Warning,
+
+    -- ** HttpsHealthCheckList_Warning_Code
+    HttpsHealthCheckList_Warning_Code (..),
+
+    -- ** HttpsHealthCheckList_Warning_DataItem
+    HttpsHealthCheckList_Warning_DataItem (..),
+    newHttpsHealthCheckList_Warning_DataItem,
+
+    -- ** Image
+    Image (..),
+    newImage,
+
+    -- ** Image_Architecture
+    Image_Architecture (..),
+
+    -- ** Image_Labels
+    Image_Labels (..),
+    newImage_Labels,
+
+    -- ** Image_RawDisk
+    Image_RawDisk (..),
+    newImage_RawDisk,
+
+    -- ** Image_RawDisk_ContainerType
+    Image_RawDisk_ContainerType (..),
+
+    -- ** Image_SourceType
+    Image_SourceType (..),
+
+    -- ** Image_Status
+    Image_Status (..),
+
+    -- ** ImageFamilyView
+    ImageFamilyView (..),
+    newImageFamilyView,
+
+    -- ** ImageList
+    ImageList (..),
+    newImageList,
+
+    -- ** ImageList_Warning
+    ImageList_Warning (..),
+    newImageList_Warning,
+
+    -- ** ImageList_Warning_Code
+    ImageList_Warning_Code (..),
+
+    -- ** ImageList_Warning_DataItem
+    ImageList_Warning_DataItem (..),
+    newImageList_Warning_DataItem,
+
+    -- ** InitialStateConfig
+    InitialStateConfig (..),
+    newInitialStateConfig,
+
+    -- ** Instance
+    Instance (..),
+    newInstance,
+
+    -- ** Instance_KeyRevocationActionType
+    Instance_KeyRevocationActionType (..),
+
+    -- ** Instance_Labels
+    Instance_Labels (..),
+    newInstance_Labels,
+
+    -- ** Instance_PrivateIpv6GoogleAccess
+    Instance_PrivateIpv6GoogleAccess (..),
+
+    -- ** Instance_Status
+    Instance_Status (..),
+
+    -- ** InstanceAggregatedList
+    InstanceAggregatedList (..),
+    newInstanceAggregatedList,
+
+    -- ** InstanceAggregatedList_Items
+    InstanceAggregatedList_Items (..),
+    newInstanceAggregatedList_Items,
+
+    -- ** InstanceAggregatedList_Warning
+    InstanceAggregatedList_Warning (..),
+    newInstanceAggregatedList_Warning,
+
+    -- ** InstanceAggregatedList_Warning_Code
+    InstanceAggregatedList_Warning_Code (..),
+
+    -- ** InstanceAggregatedList_Warning_DataItem
+    InstanceAggregatedList_Warning_DataItem (..),
+    newInstanceAggregatedList_Warning_DataItem,
+
+    -- ** InstanceConsumptionData
+    InstanceConsumptionData (..),
+    newInstanceConsumptionData,
+
+    -- ** InstanceConsumptionInfo
+    InstanceConsumptionInfo (..),
+    newInstanceConsumptionInfo,
+
+    -- ** InstanceGroup
+    InstanceGroup (..),
+    newInstanceGroup,
+
+    -- ** InstanceGroupAggregatedList
+    InstanceGroupAggregatedList (..),
+    newInstanceGroupAggregatedList,
+
+    -- ** InstanceGroupAggregatedList_Items
+    InstanceGroupAggregatedList_Items (..),
+    newInstanceGroupAggregatedList_Items,
+
+    -- ** InstanceGroupAggregatedList_Warning
+    InstanceGroupAggregatedList_Warning (..),
+    newInstanceGroupAggregatedList_Warning,
+
+    -- ** InstanceGroupAggregatedList_Warning_Code
+    InstanceGroupAggregatedList_Warning_Code (..),
+
+    -- ** InstanceGroupAggregatedList_Warning_DataItem
+    InstanceGroupAggregatedList_Warning_DataItem (..),
+    newInstanceGroupAggregatedList_Warning_DataItem,
+
+    -- ** InstanceGroupList
+    InstanceGroupList (..),
+    newInstanceGroupList,
+
+    -- ** InstanceGroupList_Warning
+    InstanceGroupList_Warning (..),
+    newInstanceGroupList_Warning,
+
+    -- ** InstanceGroupList_Warning_Code
+    InstanceGroupList_Warning_Code (..),
+
+    -- ** InstanceGroupList_Warning_DataItem
+    InstanceGroupList_Warning_DataItem (..),
+    newInstanceGroupList_Warning_DataItem,
+
+    -- ** InstanceGroupManager
+    InstanceGroupManager (..),
+    newInstanceGroupManager,
+
+    -- ** InstanceGroupManager_ListManagedInstancesResults
+    InstanceGroupManager_ListManagedInstancesResults (..),
+
+    -- ** InstanceGroupManagerActionsSummary
+    InstanceGroupManagerActionsSummary (..),
+    newInstanceGroupManagerActionsSummary,
+
+    -- ** InstanceGroupManagerAggregatedList
+    InstanceGroupManagerAggregatedList (..),
+    newInstanceGroupManagerAggregatedList,
+
+    -- ** InstanceGroupManagerAggregatedList_Items
+    InstanceGroupManagerAggregatedList_Items (..),
+    newInstanceGroupManagerAggregatedList_Items,
+
+    -- ** InstanceGroupManagerAggregatedList_Warning
+    InstanceGroupManagerAggregatedList_Warning (..),
+    newInstanceGroupManagerAggregatedList_Warning,
+
+    -- ** InstanceGroupManagerAggregatedList_Warning_Code
+    InstanceGroupManagerAggregatedList_Warning_Code (..),
+
+    -- ** InstanceGroupManagerAggregatedList_Warning_DataItem
+    InstanceGroupManagerAggregatedList_Warning_DataItem (..),
+    newInstanceGroupManagerAggregatedList_Warning_DataItem,
+
+    -- ** InstanceGroupManagerAllInstancesConfig
+    InstanceGroupManagerAllInstancesConfig (..),
+    newInstanceGroupManagerAllInstancesConfig,
+
+    -- ** InstanceGroupManagerAutoHealingPolicy
+    InstanceGroupManagerAutoHealingPolicy (..),
+    newInstanceGroupManagerAutoHealingPolicy,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicy
+    InstanceGroupManagerInstanceFlexibilityPolicy (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicy,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections
+    InstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicy_InstanceSelections,
+
+    -- ** InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection
+    InstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection (..),
+    newInstanceGroupManagerInstanceFlexibilityPolicyInstanceSelection,
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy
+    InstanceGroupManagerInstanceLifecyclePolicy (..),
+    newInstanceGroupManagerInstanceLifecyclePolicy,
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy_DefaultActionOnFailure
+    InstanceGroupManagerInstanceLifecyclePolicy_DefaultActionOnFailure (..),
+
+    -- ** InstanceGroupManagerInstanceLifecyclePolicy_ForceUpdateOnRepair
+    InstanceGroupManagerInstanceLifecyclePolicy_ForceUpdateOnRepair (..),
+
+    -- ** InstanceGroupManagerList
+    InstanceGroupManagerList (..),
+    newInstanceGroupManagerList,
+
+    -- ** InstanceGroupManagerList_Warning
+    InstanceGroupManagerList_Warning (..),
+    newInstanceGroupManagerList_Warning,
+
+    -- ** InstanceGroupManagerList_Warning_Code
+    InstanceGroupManagerList_Warning_Code (..),
+
+    -- ** InstanceGroupManagerList_Warning_DataItem
+    InstanceGroupManagerList_Warning_DataItem (..),
+    newInstanceGroupManagerList_Warning_DataItem,
+
+    -- ** InstanceGroupManagerResizeRequest
+    InstanceGroupManagerResizeRequest (..),
+    newInstanceGroupManagerResizeRequest,
+
+    -- ** InstanceGroupManagerResizeRequest_State
+    InstanceGroupManagerResizeRequest_State (..),
+
+    -- ** InstanceGroupManagerResizeRequestStatus
+    InstanceGroupManagerResizeRequestStatus (..),
+    newInstanceGroupManagerResizeRequestStatus,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error
+    InstanceGroupManagerResizeRequestStatus_Error (..),
+    newInstanceGroupManagerResizeRequestStatus_Error,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem
+    InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem (..),
+    newInstanceGroupManagerResizeRequestStatus_Error_ErrorsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem
+    InstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem (..),
+    newInstanceGroupManagerResizeRequestStatus_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt
+    InstanceGroupManagerResizeRequestStatusLastAttempt (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem,
+
+    -- ** InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem
+    InstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem (..),
+    newInstanceGroupManagerResizeRequestStatusLastAttempt_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse
+    InstanceGroupManagerResizeRequestsListResponse (..),
+    newInstanceGroupManagerResizeRequestsListResponse,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning
+    InstanceGroupManagerResizeRequestsListResponse_Warning (..),
+    newInstanceGroupManagerResizeRequestsListResponse_Warning,
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning_Code
+    InstanceGroupManagerResizeRequestsListResponse_Warning_Code (..),
+
+    -- ** InstanceGroupManagerResizeRequestsListResponse_Warning_DataItem
+    InstanceGroupManagerResizeRequestsListResponse_Warning_DataItem (..),
+    newInstanceGroupManagerResizeRequestsListResponse_Warning_DataItem,
+
+    -- ** InstanceGroupManagerResourcePolicies
+    InstanceGroupManagerResourcePolicies (..),
+    newInstanceGroupManagerResourcePolicies,
+
+    -- ** InstanceGroupManagerStandbyPolicy
+    InstanceGroupManagerStandbyPolicy (..),
+    newInstanceGroupManagerStandbyPolicy,
+
+    -- ** InstanceGroupManagerStandbyPolicy_Mode
+    InstanceGroupManagerStandbyPolicy_Mode (..),
+
+    -- ** InstanceGroupManagerStatus
+    InstanceGroupManagerStatus (..),
+    newInstanceGroupManagerStatus,
+
+    -- ** InstanceGroupManagerStatusAllInstancesConfig
+    InstanceGroupManagerStatusAllInstancesConfig (..),
+    newInstanceGroupManagerStatusAllInstancesConfig,
+
+    -- ** InstanceGroupManagerStatusStateful
+    InstanceGroupManagerStatusStateful (..),
+    newInstanceGroupManagerStatusStateful,
+
+    -- ** InstanceGroupManagerStatusStatefulPerInstanceConfigs
+    InstanceGroupManagerStatusStatefulPerInstanceConfigs (..),
+    newInstanceGroupManagerStatusStatefulPerInstanceConfigs,
+
+    -- ** InstanceGroupManagerStatusVersionTarget
+    InstanceGroupManagerStatusVersionTarget (..),
+    newInstanceGroupManagerStatusVersionTarget,
+
+    -- ** InstanceGroupManagerUpdatePolicy
+    InstanceGroupManagerUpdatePolicy (..),
+    newInstanceGroupManagerUpdatePolicy,
+
+    -- ** InstanceGroupManagerUpdatePolicy_InstanceRedistributionType
+    InstanceGroupManagerUpdatePolicy_InstanceRedistributionType (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_MinimalAction
+    InstanceGroupManagerUpdatePolicy_MinimalAction (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_MostDisruptiveAllowedAction
+    InstanceGroupManagerUpdatePolicy_MostDisruptiveAllowedAction (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_ReplacementMethod
+    InstanceGroupManagerUpdatePolicy_ReplacementMethod (..),
+
+    -- ** InstanceGroupManagerUpdatePolicy_Type
+    InstanceGroupManagerUpdatePolicy_Type (..),
+
+    -- ** InstanceGroupManagerVersion
+    InstanceGroupManagerVersion (..),
+    newInstanceGroupManagerVersion,
+
+    -- ** InstanceGroupManagersAbandonInstancesRequest
+    InstanceGroupManagersAbandonInstancesRequest (..),
+    newInstanceGroupManagersAbandonInstancesRequest,
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest
+    InstanceGroupManagersApplyUpdatesRequest (..),
+    newInstanceGroupManagersApplyUpdatesRequest,
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest_MinimalAction
+    InstanceGroupManagersApplyUpdatesRequest_MinimalAction (..),
+
+    -- ** InstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction
+    InstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction (..),
+
+    -- ** InstanceGroupManagersCreateInstancesRequest
+    InstanceGroupManagersCreateInstancesRequest (..),
+    newInstanceGroupManagersCreateInstancesRequest,
+
+    -- ** InstanceGroupManagersDeleteInstancesRequest
+    InstanceGroupManagersDeleteInstancesRequest (..),
+    newInstanceGroupManagersDeleteInstancesRequest,
+
+    -- ** InstanceGroupManagersDeletePerInstanceConfigsReq
+    InstanceGroupManagersDeletePerInstanceConfigsReq (..),
+    newInstanceGroupManagersDeletePerInstanceConfigsReq,
+
+    -- ** InstanceGroupManagersListErrorsResponse
+    InstanceGroupManagersListErrorsResponse (..),
+    newInstanceGroupManagersListErrorsResponse,
+
+    -- ** InstanceGroupManagersListManagedInstancesResponse
+    InstanceGroupManagersListManagedInstancesResponse (..),
+    newInstanceGroupManagersListManagedInstancesResponse,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp
+    InstanceGroupManagersListPerInstanceConfigsResp (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp_Warning,
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning_Code
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning_Code (..),
+
+    -- ** InstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem
+    InstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem (..),
+    newInstanceGroupManagersListPerInstanceConfigsResp_Warning_DataItem,
+
+    -- ** InstanceGroupManagersPatchPerInstanceConfigsReq
+    InstanceGroupManagersPatchPerInstanceConfigsReq (..),
+    newInstanceGroupManagersPatchPerInstanceConfigsReq,
+
+    -- ** InstanceGroupManagersRecreateInstancesRequest
+    InstanceGroupManagersRecreateInstancesRequest (..),
+    newInstanceGroupManagersRecreateInstancesRequest,
+
+    -- ** InstanceGroupManagersResumeInstancesRequest
+    InstanceGroupManagersResumeInstancesRequest (..),
+    newInstanceGroupManagersResumeInstancesRequest,
+
+    -- ** InstanceGroupManagersScopedList
+    InstanceGroupManagersScopedList (..),
+    newInstanceGroupManagersScopedList,
+
+    -- ** InstanceGroupManagersScopedList_Warning
+    InstanceGroupManagersScopedList_Warning (..),
+    newInstanceGroupManagersScopedList_Warning,
+
+    -- ** InstanceGroupManagersScopedList_Warning_Code
+    InstanceGroupManagersScopedList_Warning_Code (..),
+
+    -- ** InstanceGroupManagersScopedList_Warning_DataItem
+    InstanceGroupManagersScopedList_Warning_DataItem (..),
+    newInstanceGroupManagersScopedList_Warning_DataItem,
+
+    -- ** InstanceGroupManagersSetInstanceTemplateRequest
+    InstanceGroupManagersSetInstanceTemplateRequest (..),
+    newInstanceGroupManagersSetInstanceTemplateRequest,
+
+    -- ** InstanceGroupManagersSetTargetPoolsRequest
+    InstanceGroupManagersSetTargetPoolsRequest (..),
+    newInstanceGroupManagersSetTargetPoolsRequest,
+
+    -- ** InstanceGroupManagersStartInstancesRequest
+    InstanceGroupManagersStartInstancesRequest (..),
+    newInstanceGroupManagersStartInstancesRequest,
+
+    -- ** InstanceGroupManagersStopInstancesRequest
+    InstanceGroupManagersStopInstancesRequest (..),
+    newInstanceGroupManagersStopInstancesRequest,
+
+    -- ** InstanceGroupManagersSuspendInstancesRequest
+    InstanceGroupManagersSuspendInstancesRequest (..),
+    newInstanceGroupManagersSuspendInstancesRequest,
+
+    -- ** InstanceGroupManagersUpdatePerInstanceConfigsReq
+    InstanceGroupManagersUpdatePerInstanceConfigsReq (..),
+    newInstanceGroupManagersUpdatePerInstanceConfigsReq,
+
+    -- ** InstanceGroupsAddInstancesRequest
+    InstanceGroupsAddInstancesRequest (..),
+    newInstanceGroupsAddInstancesRequest,
+
+    -- ** InstanceGroupsListInstances
+    InstanceGroupsListInstances (..),
+    newInstanceGroupsListInstances,
+
+    -- ** InstanceGroupsListInstances_Warning
+    InstanceGroupsListInstances_Warning (..),
+    newInstanceGroupsListInstances_Warning,
+
+    -- ** InstanceGroupsListInstances_Warning_Code
+    InstanceGroupsListInstances_Warning_Code (..),
+
+    -- ** InstanceGroupsListInstances_Warning_DataItem
+    InstanceGroupsListInstances_Warning_DataItem (..),
+    newInstanceGroupsListInstances_Warning_DataItem,
+
+    -- ** InstanceGroupsListInstancesRequest
+    InstanceGroupsListInstancesRequest (..),
+    newInstanceGroupsListInstancesRequest,
+
+    -- ** InstanceGroupsListInstancesRequest_InstanceState
+    InstanceGroupsListInstancesRequest_InstanceState (..),
+
+    -- ** InstanceGroupsRemoveInstancesRequest
+    InstanceGroupsRemoveInstancesRequest (..),
+    newInstanceGroupsRemoveInstancesRequest,
+
+    -- ** InstanceGroupsScopedList
+    InstanceGroupsScopedList (..),
+    newInstanceGroupsScopedList,
+
+    -- ** InstanceGroupsScopedList_Warning
+    InstanceGroupsScopedList_Warning (..),
+    newInstanceGroupsScopedList_Warning,
+
+    -- ** InstanceGroupsScopedList_Warning_Code
+    InstanceGroupsScopedList_Warning_Code (..),
+
+    -- ** InstanceGroupsScopedList_Warning_DataItem
+    InstanceGroupsScopedList_Warning_DataItem (..),
+    newInstanceGroupsScopedList_Warning_DataItem,
+
+    -- ** InstanceGroupsSetNamedPortsRequest
+    InstanceGroupsSetNamedPortsRequest (..),
+    newInstanceGroupsSetNamedPortsRequest,
+
+    -- ** InstanceList
+    InstanceList (..),
+    newInstanceList,
+
+    -- ** InstanceList_Warning
+    InstanceList_Warning (..),
+    newInstanceList_Warning,
+
+    -- ** InstanceList_Warning_Code
+    InstanceList_Warning_Code (..),
+
+    -- ** InstanceList_Warning_DataItem
+    InstanceList_Warning_DataItem (..),
+    newInstanceList_Warning_DataItem,
+
+    -- ** InstanceListReferrers
+    InstanceListReferrers (..),
+    newInstanceListReferrers,
+
+    -- ** InstanceListReferrers_Warning
+    InstanceListReferrers_Warning (..),
+    newInstanceListReferrers_Warning,
+
+    -- ** InstanceListReferrers_Warning_Code
+    InstanceListReferrers_Warning_Code (..),
+
+    -- ** InstanceListReferrers_Warning_DataItem
+    InstanceListReferrers_Warning_DataItem (..),
+    newInstanceListReferrers_Warning_DataItem,
+
+    -- ** InstanceManagedByIgmError
+    InstanceManagedByIgmError (..),
+    newInstanceManagedByIgmError,
+
+    -- ** InstanceManagedByIgmErrorInstanceActionDetails
+    InstanceManagedByIgmErrorInstanceActionDetails (..),
+    newInstanceManagedByIgmErrorInstanceActionDetails,
+
+    -- ** InstanceManagedByIgmErrorInstanceActionDetails_Action
+    InstanceManagedByIgmErrorInstanceActionDetails_Action (..),
+
+    -- ** InstanceManagedByIgmErrorManagedInstanceError
+    InstanceManagedByIgmErrorManagedInstanceError (..),
+    newInstanceManagedByIgmErrorManagedInstanceError,
+
+    -- ** InstanceMoveRequest
+    InstanceMoveRequest (..),
+    newInstanceMoveRequest,
+
+    -- ** InstanceParams
+    InstanceParams (..),
+    newInstanceParams,
+
+    -- ** InstanceParams_ResourceManagerTags
+    InstanceParams_ResourceManagerTags (..),
+    newInstanceParams_ResourceManagerTags,
+
+    -- ** InstanceProperties
+    InstanceProperties (..),
+    newInstanceProperties,
+
+    -- ** InstanceProperties_KeyRevocationActionType
+    InstanceProperties_KeyRevocationActionType (..),
+
+    -- ** InstanceProperties_Labels
+    InstanceProperties_Labels (..),
+    newInstanceProperties_Labels,
+
+    -- ** InstanceProperties_PrivateIpv6GoogleAccess
+    InstanceProperties_PrivateIpv6GoogleAccess (..),
+
+    -- ** InstanceProperties_ResourceManagerTags
+    InstanceProperties_ResourceManagerTags (..),
+    newInstanceProperties_ResourceManagerTags,
+
+    -- ** InstancePropertiesPatch
+    InstancePropertiesPatch (..),
+    newInstancePropertiesPatch,
+
+    -- ** InstancePropertiesPatch_Labels
+    InstancePropertiesPatch_Labels (..),
+    newInstancePropertiesPatch_Labels,
+
+    -- ** InstancePropertiesPatch_Metadata
+    InstancePropertiesPatch_Metadata (..),
+    newInstancePropertiesPatch_Metadata,
+
+    -- ** InstanceReference
+    InstanceReference (..),
+    newInstanceReference,
+
+    -- ** InstanceSettings
+    InstanceSettings (..),
+    newInstanceSettings,
+
+    -- ** InstanceSettingsMetadata
+    InstanceSettingsMetadata (..),
+    newInstanceSettingsMetadata,
+
+    -- ** InstanceSettingsMetadata_Items
+    InstanceSettingsMetadata_Items (..),
+    newInstanceSettingsMetadata_Items,
+
+    -- ** InstanceTemplate
+    InstanceTemplate (..),
+    newInstanceTemplate,
+
+    -- ** InstanceTemplateAggregatedList
+    InstanceTemplateAggregatedList (..),
+    newInstanceTemplateAggregatedList,
+
+    -- ** InstanceTemplateAggregatedList_Items
+    InstanceTemplateAggregatedList_Items (..),
+    newInstanceTemplateAggregatedList_Items,
+
+    -- ** InstanceTemplateAggregatedList_Warning
+    InstanceTemplateAggregatedList_Warning (..),
+    newInstanceTemplateAggregatedList_Warning,
+
+    -- ** InstanceTemplateAggregatedList_Warning_Code
+    InstanceTemplateAggregatedList_Warning_Code (..),
+
+    -- ** InstanceTemplateAggregatedList_Warning_DataItem
+    InstanceTemplateAggregatedList_Warning_DataItem (..),
+    newInstanceTemplateAggregatedList_Warning_DataItem,
+
+    -- ** InstanceTemplateList
+    InstanceTemplateList (..),
+    newInstanceTemplateList,
+
+    -- ** InstanceTemplateList_Warning
+    InstanceTemplateList_Warning (..),
+    newInstanceTemplateList_Warning,
+
+    -- ** InstanceTemplateList_Warning_Code
+    InstanceTemplateList_Warning_Code (..),
+
+    -- ** InstanceTemplateList_Warning_DataItem
+    InstanceTemplateList_Warning_DataItem (..),
+    newInstanceTemplateList_Warning_DataItem,
+
+    -- ** InstanceTemplatesScopedList
+    InstanceTemplatesScopedList (..),
+    newInstanceTemplatesScopedList,
+
+    -- ** InstanceTemplatesScopedList_Warning
+    InstanceTemplatesScopedList_Warning (..),
+    newInstanceTemplatesScopedList_Warning,
+
+    -- ** InstanceTemplatesScopedList_Warning_Code
+    InstanceTemplatesScopedList_Warning_Code (..),
+
+    -- ** InstanceTemplatesScopedList_Warning_DataItem
+    InstanceTemplatesScopedList_Warning_DataItem (..),
+    newInstanceTemplatesScopedList_Warning_DataItem,
+
+    -- ** InstanceWithNamedPorts
+    InstanceWithNamedPorts (..),
+    newInstanceWithNamedPorts,
+
+    -- ** InstanceWithNamedPorts_Status
+    InstanceWithNamedPorts_Status (..),
+
+    -- ** InstancesAddResourcePoliciesRequest
+    InstancesAddResourcePoliciesRequest (..),
+    newInstancesAddResourcePoliciesRequest,
+
+    -- ** InstancesBulkInsertOperationMetadata
+    InstancesBulkInsertOperationMetadata (..),
+    newInstancesBulkInsertOperationMetadata,
+
+    -- ** InstancesBulkInsertOperationMetadata_PerLocationStatus
+    InstancesBulkInsertOperationMetadata_PerLocationStatus (..),
+    newInstancesBulkInsertOperationMetadata_PerLocationStatus,
+
+    -- ** InstancesGetEffectiveFirewallsResponse
+    InstancesGetEffectiveFirewallsResponse (..),
+    newInstancesGetEffectiveFirewallsResponse,
+
+    -- ** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newInstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** InstancesRemoveResourcePoliciesRequest
+    InstancesRemoveResourcePoliciesRequest (..),
+    newInstancesRemoveResourcePoliciesRequest,
+
+    -- ** InstancesReportHostAsFaultyRequest
+    InstancesReportHostAsFaultyRequest (..),
+    newInstancesReportHostAsFaultyRequest,
+
+    -- ** InstancesReportHostAsFaultyRequest_DisruptionSchedule
+    InstancesReportHostAsFaultyRequest_DisruptionSchedule (..),
+
+    -- ** InstancesReportHostAsFaultyRequestFaultReason
+    InstancesReportHostAsFaultyRequestFaultReason (..),
+    newInstancesReportHostAsFaultyRequestFaultReason,
+
+    -- ** InstancesReportHostAsFaultyRequestFaultReason_Behavior
+    InstancesReportHostAsFaultyRequestFaultReason_Behavior (..),
+
+    -- ** InstancesScopedList
+    InstancesScopedList (..),
+    newInstancesScopedList,
+
+    -- ** InstancesScopedList_Warning
+    InstancesScopedList_Warning (..),
+    newInstancesScopedList_Warning,
+
+    -- ** InstancesScopedList_Warning_Code
+    InstancesScopedList_Warning_Code (..),
+
+    -- ** InstancesScopedList_Warning_DataItem
+    InstancesScopedList_Warning_DataItem (..),
+    newInstancesScopedList_Warning_DataItem,
+
+    -- ** InstancesSetLabelsRequest
+    InstancesSetLabelsRequest (..),
+    newInstancesSetLabelsRequest,
+
+    -- ** InstancesSetLabelsRequest_Labels
+    InstancesSetLabelsRequest_Labels (..),
+    newInstancesSetLabelsRequest_Labels,
+
+    -- ** InstancesSetMachineResourcesRequest
+    InstancesSetMachineResourcesRequest (..),
+    newInstancesSetMachineResourcesRequest,
+
+    -- ** InstancesSetMachineTypeRequest
+    InstancesSetMachineTypeRequest (..),
+    newInstancesSetMachineTypeRequest,
+
+    -- ** InstancesSetMinCpuPlatformRequest
+    InstancesSetMinCpuPlatformRequest (..),
+    newInstancesSetMinCpuPlatformRequest,
+
+    -- ** InstancesSetNameRequest
+    InstancesSetNameRequest (..),
+    newInstancesSetNameRequest,
+
+    -- ** InstancesSetSecurityPolicyRequest
+    InstancesSetSecurityPolicyRequest (..),
+    newInstancesSetSecurityPolicyRequest,
+
+    -- ** InstancesSetServiceAccountRequest
+    InstancesSetServiceAccountRequest (..),
+    newInstancesSetServiceAccountRequest,
+
+    -- ** InstancesStartWithEncryptionKeyRequest
+    InstancesStartWithEncryptionKeyRequest (..),
+    newInstancesStartWithEncryptionKeyRequest,
+
+    -- ** InstantSnapshot
+    InstantSnapshot (..),
+    newInstantSnapshot,
+
+    -- ** InstantSnapshot_Architecture
+    InstantSnapshot_Architecture (..),
+
+    -- ** InstantSnapshot_Labels
+    InstantSnapshot_Labels (..),
+    newInstantSnapshot_Labels,
+
+    -- ** InstantSnapshot_Status
+    InstantSnapshot_Status (..),
+
+    -- ** InstantSnapshotAggregatedList
+    InstantSnapshotAggregatedList (..),
+    newInstantSnapshotAggregatedList,
+
+    -- ** InstantSnapshotAggregatedList_Items
+    InstantSnapshotAggregatedList_Items (..),
+    newInstantSnapshotAggregatedList_Items,
+
+    -- ** InstantSnapshotAggregatedList_Warning
+    InstantSnapshotAggregatedList_Warning (..),
+    newInstantSnapshotAggregatedList_Warning,
+
+    -- ** InstantSnapshotAggregatedList_Warning_Code
+    InstantSnapshotAggregatedList_Warning_Code (..),
+
+    -- ** InstantSnapshotAggregatedList_Warning_DataItem
+    InstantSnapshotAggregatedList_Warning_DataItem (..),
+    newInstantSnapshotAggregatedList_Warning_DataItem,
+
+    -- ** InstantSnapshotList
+    InstantSnapshotList (..),
+    newInstantSnapshotList,
+
+    -- ** InstantSnapshotList_Warning
+    InstantSnapshotList_Warning (..),
+    newInstantSnapshotList_Warning,
+
+    -- ** InstantSnapshotList_Warning_Code
+    InstantSnapshotList_Warning_Code (..),
+
+    -- ** InstantSnapshotList_Warning_DataItem
+    InstantSnapshotList_Warning_DataItem (..),
+    newInstantSnapshotList_Warning_DataItem,
+
+    -- ** InstantSnapshotResourceStatus
+    InstantSnapshotResourceStatus (..),
+    newInstantSnapshotResourceStatus,
+
+    -- ** InstantSnapshotsScopedList
+    InstantSnapshotsScopedList (..),
+    newInstantSnapshotsScopedList,
+
+    -- ** InstantSnapshotsScopedList_Warning
+    InstantSnapshotsScopedList_Warning (..),
+    newInstantSnapshotsScopedList_Warning,
+
+    -- ** InstantSnapshotsScopedList_Warning_Code
+    InstantSnapshotsScopedList_Warning_Code (..),
+
+    -- ** InstantSnapshotsScopedList_Warning_DataItem
+    InstantSnapshotsScopedList_Warning_DataItem (..),
+    newInstantSnapshotsScopedList_Warning_DataItem,
+
+    -- ** Int64RangeMatch
+    Int64RangeMatch (..),
+    newInt64RangeMatch,
+
+    -- ** Interconnect
+    Interconnect (..),
+    newInterconnect,
+
+    -- ** Interconnect_AvailableFeaturesItem
+    Interconnect_AvailableFeaturesItem (..),
+
+    -- ** Interconnect_InterconnectType
+    Interconnect_InterconnectType (..),
+
+    -- ** Interconnect_Labels
+    Interconnect_Labels (..),
+    newInterconnect_Labels,
+
+    -- ** Interconnect_LinkType
+    Interconnect_LinkType (..),
+
+    -- ** Interconnect_OperationalStatus
+    Interconnect_OperationalStatus (..),
+
+    -- ** Interconnect_RequestedFeaturesItem
+    Interconnect_RequestedFeaturesItem (..),
+
+    -- ** Interconnect_State
+    Interconnect_State (..),
+
+    -- ** InterconnectAttachment
+    InterconnectAttachment (..),
+    newInterconnectAttachment,
+
+    -- ** InterconnectAttachment_Bandwidth
+    InterconnectAttachment_Bandwidth (..),
+
+    -- ** InterconnectAttachment_EdgeAvailabilityDomain
+    InterconnectAttachment_EdgeAvailabilityDomain (..),
+
+    -- ** InterconnectAttachment_Encryption
+    InterconnectAttachment_Encryption (..),
+
+    -- ** InterconnectAttachment_Labels
+    InterconnectAttachment_Labels (..),
+    newInterconnectAttachment_Labels,
+
+    -- ** InterconnectAttachment_OperationalStatus
+    InterconnectAttachment_OperationalStatus (..),
+
+    -- ** InterconnectAttachment_StackType
+    InterconnectAttachment_StackType (..),
+
+    -- ** InterconnectAttachment_State
+    InterconnectAttachment_State (..),
+
+    -- ** InterconnectAttachment_Type
+    InterconnectAttachment_Type (..),
+
+    -- ** InterconnectAttachmentAggregatedList
+    InterconnectAttachmentAggregatedList (..),
+    newInterconnectAttachmentAggregatedList,
+
+    -- ** InterconnectAttachmentAggregatedList_Items
+    InterconnectAttachmentAggregatedList_Items (..),
+    newInterconnectAttachmentAggregatedList_Items,
+
+    -- ** InterconnectAttachmentAggregatedList_Warning
+    InterconnectAttachmentAggregatedList_Warning (..),
+    newInterconnectAttachmentAggregatedList_Warning,
+
+    -- ** InterconnectAttachmentAggregatedList_Warning_Code
+    InterconnectAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentAggregatedList_Warning_DataItem
+    InterconnectAttachmentAggregatedList_Warning_DataItem (..),
+    newInterconnectAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** InterconnectAttachmentConfigurationConstraints
+    InterconnectAttachmentConfigurationConstraints (..),
+    newInterconnectAttachmentConfigurationConstraints,
+
+    -- ** InterconnectAttachmentConfigurationConstraints_BgpMd5
+    InterconnectAttachmentConfigurationConstraints_BgpMd5 (..),
+
+    -- ** InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange
+    InterconnectAttachmentConfigurationConstraintsBgpPeerASNRange (..),
+    newInterconnectAttachmentConfigurationConstraintsBgpPeerASNRange,
+
+    -- ** InterconnectAttachmentList
+    InterconnectAttachmentList (..),
+    newInterconnectAttachmentList,
+
+    -- ** InterconnectAttachmentList_Warning
+    InterconnectAttachmentList_Warning (..),
+    newInterconnectAttachmentList_Warning,
+
+    -- ** InterconnectAttachmentList_Warning_Code
+    InterconnectAttachmentList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentList_Warning_DataItem
+    InterconnectAttachmentList_Warning_DataItem (..),
+    newInterconnectAttachmentList_Warning_DataItem,
+
+    -- ** InterconnectAttachmentPartnerMetadata
+    InterconnectAttachmentPartnerMetadata (..),
+    newInterconnectAttachmentPartnerMetadata,
+
+    -- ** InterconnectAttachmentPrivateInfo
+    InterconnectAttachmentPrivateInfo (..),
+    newInterconnectAttachmentPrivateInfo,
+
+    -- ** InterconnectAttachmentsScopedList
+    InterconnectAttachmentsScopedList (..),
+    newInterconnectAttachmentsScopedList,
+
+    -- ** InterconnectAttachmentsScopedList_Warning
+    InterconnectAttachmentsScopedList_Warning (..),
+    newInterconnectAttachmentsScopedList_Warning,
+
+    -- ** InterconnectAttachmentsScopedList_Warning_Code
+    InterconnectAttachmentsScopedList_Warning_Code (..),
+
+    -- ** InterconnectAttachmentsScopedList_Warning_DataItem
+    InterconnectAttachmentsScopedList_Warning_DataItem (..),
+    newInterconnectAttachmentsScopedList_Warning_DataItem,
+
+    -- ** InterconnectCircuitInfo
+    InterconnectCircuitInfo (..),
+    newInterconnectCircuitInfo,
+
+    -- ** InterconnectDiagnostics
+    InterconnectDiagnostics (..),
+    newInterconnectDiagnostics,
+
+    -- ** InterconnectDiagnostics_BundleAggregationType
+    InterconnectDiagnostics_BundleAggregationType (..),
+
+    -- ** InterconnectDiagnostics_BundleOperationalStatus
+    InterconnectDiagnostics_BundleOperationalStatus (..),
+
+    -- ** InterconnectDiagnosticsARPEntry
+    InterconnectDiagnosticsARPEntry (..),
+    newInterconnectDiagnosticsARPEntry,
+
+    -- ** InterconnectDiagnosticsLinkLACPStatus
+    InterconnectDiagnosticsLinkLACPStatus (..),
+    newInterconnectDiagnosticsLinkLACPStatus,
+
+    -- ** InterconnectDiagnosticsLinkLACPStatus_State
+    InterconnectDiagnosticsLinkLACPStatus_State (..),
+
+    -- ** InterconnectDiagnosticsLinkOpticalPower
+    InterconnectDiagnosticsLinkOpticalPower (..),
+    newInterconnectDiagnosticsLinkOpticalPower,
+
+    -- ** InterconnectDiagnosticsLinkOpticalPower_State
+    InterconnectDiagnosticsLinkOpticalPower_State (..),
+
+    -- ** InterconnectDiagnosticsLinkStatus
+    InterconnectDiagnosticsLinkStatus (..),
+    newInterconnectDiagnosticsLinkStatus,
+
+    -- ** InterconnectDiagnosticsLinkStatus_OperationalStatus
+    InterconnectDiagnosticsLinkStatus_OperationalStatus (..),
+
+    -- ** InterconnectDiagnosticsMacsecStatus
+    InterconnectDiagnosticsMacsecStatus (..),
+    newInterconnectDiagnosticsMacsecStatus,
+
+    -- ** InterconnectList
+    InterconnectList (..),
+    newInterconnectList,
+
+    -- ** InterconnectList_Warning
+    InterconnectList_Warning (..),
+    newInterconnectList_Warning,
+
+    -- ** InterconnectList_Warning_Code
+    InterconnectList_Warning_Code (..),
+
+    -- ** InterconnectList_Warning_DataItem
+    InterconnectList_Warning_DataItem (..),
+    newInterconnectList_Warning_DataItem,
+
+    -- ** InterconnectLocation
+    InterconnectLocation (..),
+    newInterconnectLocation,
+
+    -- ** InterconnectLocation_AvailableFeaturesItem
+    InterconnectLocation_AvailableFeaturesItem (..),
+
+    -- ** InterconnectLocation_AvailableLinkTypesItem
+    InterconnectLocation_AvailableLinkTypesItem (..),
+
+    -- ** InterconnectLocation_Continent
+    InterconnectLocation_Continent (..),
+
+    -- ** InterconnectLocation_Status
+    InterconnectLocation_Status (..),
+
+    -- ** InterconnectLocationList
+    InterconnectLocationList (..),
+    newInterconnectLocationList,
+
+    -- ** InterconnectLocationList_Warning
+    InterconnectLocationList_Warning (..),
+    newInterconnectLocationList_Warning,
+
+    -- ** InterconnectLocationList_Warning_Code
+    InterconnectLocationList_Warning_Code (..),
+
+    -- ** InterconnectLocationList_Warning_DataItem
+    InterconnectLocationList_Warning_DataItem (..),
+    newInterconnectLocationList_Warning_DataItem,
+
+    -- ** InterconnectLocationRegionInfo
+    InterconnectLocationRegionInfo (..),
+    newInterconnectLocationRegionInfo,
+
+    -- ** InterconnectLocationRegionInfo_LocationPresence
+    InterconnectLocationRegionInfo_LocationPresence (..),
+
+    -- ** InterconnectMacsec
+    InterconnectMacsec (..),
+    newInterconnectMacsec,
+
+    -- ** InterconnectMacsecConfig
+    InterconnectMacsecConfig (..),
+    newInterconnectMacsecConfig,
+
+    -- ** InterconnectMacsecConfigPreSharedKey
+    InterconnectMacsecConfigPreSharedKey (..),
+    newInterconnectMacsecConfigPreSharedKey,
+
+    -- ** InterconnectMacsecPreSharedKey
+    InterconnectMacsecPreSharedKey (..),
+    newInterconnectMacsecPreSharedKey,
+
+    -- ** InterconnectOutageNotification
+    InterconnectOutageNotification (..),
+    newInterconnectOutageNotification,
+
+    -- ** InterconnectOutageNotification_IssueType
+    InterconnectOutageNotification_IssueType (..),
+
+    -- ** InterconnectOutageNotification_Source
+    InterconnectOutageNotification_Source (..),
+
+    -- ** InterconnectOutageNotification_State
+    InterconnectOutageNotification_State (..),
+
+    -- ** InterconnectRemoteLocation
+    InterconnectRemoteLocation (..),
+    newInterconnectRemoteLocation,
+
+    -- ** InterconnectRemoteLocation_Continent
+    InterconnectRemoteLocation_Continent (..),
+
+    -- ** InterconnectRemoteLocation_Lacp
+    InterconnectRemoteLocation_Lacp (..),
+
+    -- ** InterconnectRemoteLocation_Status
+    InterconnectRemoteLocation_Status (..),
+
+    -- ** InterconnectRemoteLocationConstraints
+    InterconnectRemoteLocationConstraints (..),
+    newInterconnectRemoteLocationConstraints,
+
+    -- ** InterconnectRemoteLocationConstraints_PortPairRemoteLocation
+    InterconnectRemoteLocationConstraints_PortPairRemoteLocation (..),
+
+    -- ** InterconnectRemoteLocationConstraints_PortPairVlan
+    InterconnectRemoteLocationConstraints_PortPairVlan (..),
+
+    -- ** InterconnectRemoteLocationConstraintsSubnetLengthRange
+    InterconnectRemoteLocationConstraintsSubnetLengthRange (..),
+    newInterconnectRemoteLocationConstraintsSubnetLengthRange,
+
+    -- ** InterconnectRemoteLocationList
+    InterconnectRemoteLocationList (..),
+    newInterconnectRemoteLocationList,
+
+    -- ** InterconnectRemoteLocationList_Warning
+    InterconnectRemoteLocationList_Warning (..),
+    newInterconnectRemoteLocationList_Warning,
+
+    -- ** InterconnectRemoteLocationList_Warning_Code
+    InterconnectRemoteLocationList_Warning_Code (..),
+
+    -- ** InterconnectRemoteLocationList_Warning_DataItem
+    InterconnectRemoteLocationList_Warning_DataItem (..),
+    newInterconnectRemoteLocationList_Warning_DataItem,
+
+    -- ** InterconnectRemoteLocationPermittedConnections
+    InterconnectRemoteLocationPermittedConnections (..),
+    newInterconnectRemoteLocationPermittedConnections,
+
+    -- ** InterconnectsGetDiagnosticsResponse
+    InterconnectsGetDiagnosticsResponse (..),
+    newInterconnectsGetDiagnosticsResponse,
+
+    -- ** InterconnectsGetMacsecConfigResponse
+    InterconnectsGetMacsecConfigResponse (..),
+    newInterconnectsGetMacsecConfigResponse,
+
+    -- ** License
+    License (..),
+    newLicense,
+
+    -- ** LicenseCode
+    LicenseCode (..),
+    newLicenseCode,
+
+    -- ** LicenseCode_State
+    LicenseCode_State (..),
+
+    -- ** LicenseCodeLicenseAlias
+    LicenseCodeLicenseAlias (..),
+    newLicenseCodeLicenseAlias,
+
+    -- ** LicenseResourceCommitment
+    LicenseResourceCommitment (..),
+    newLicenseResourceCommitment,
+
+    -- ** LicenseResourceRequirements
+    LicenseResourceRequirements (..),
+    newLicenseResourceRequirements,
+
+    -- ** LicensesListResponse
+    LicensesListResponse (..),
+    newLicensesListResponse,
+
+    -- ** LicensesListResponse_Warning
+    LicensesListResponse_Warning (..),
+    newLicensesListResponse_Warning,
+
+    -- ** LicensesListResponse_Warning_Code
+    LicensesListResponse_Warning_Code (..),
+
+    -- ** LicensesListResponse_Warning_DataItem
+    LicensesListResponse_Warning_DataItem (..),
+    newLicensesListResponse_Warning_DataItem,
+
+    -- ** LocalDisk
+    LocalDisk (..),
+    newLocalDisk,
+
+    -- ** LocalizedMessage
+    LocalizedMessage (..),
+    newLocalizedMessage,
+
+    -- ** LocationPolicy
+    LocationPolicy (..),
+    newLocationPolicy,
+
+    -- ** LocationPolicy_Locations
+    LocationPolicy_Locations (..),
+    newLocationPolicy_Locations,
+
+    -- ** LocationPolicy_TargetShape
+    LocationPolicy_TargetShape (..),
+
+    -- ** LocationPolicyLocation
+    LocationPolicyLocation (..),
+    newLocationPolicyLocation,
+
+    -- ** LocationPolicyLocation_Preference
+    LocationPolicyLocation_Preference (..),
+
+    -- ** LocationPolicyLocationConstraints
+    LocationPolicyLocationConstraints (..),
+    newLocationPolicyLocationConstraints,
+
+    -- ** MachineImage
+    MachineImage (..),
+    newMachineImage,
+
+    -- ** MachineImage_Status
+    MachineImage_Status (..),
+
+    -- ** MachineImageList
+    MachineImageList (..),
+    newMachineImageList,
+
+    -- ** MachineImageList_Warning
+    MachineImageList_Warning (..),
+    newMachineImageList_Warning,
+
+    -- ** MachineImageList_Warning_Code
+    MachineImageList_Warning_Code (..),
+
+    -- ** MachineImageList_Warning_DataItem
+    MachineImageList_Warning_DataItem (..),
+    newMachineImageList_Warning_DataItem,
+
+    -- ** MachineType
+    MachineType (..),
+    newMachineType,
+
+    -- ** MachineType_AcceleratorsItem
+    MachineType_AcceleratorsItem (..),
+    newMachineType_AcceleratorsItem,
+
+    -- ** MachineType_Architecture
+    MachineType_Architecture (..),
+
+    -- ** MachineType_ScratchDisksItem
+    MachineType_ScratchDisksItem (..),
+    newMachineType_ScratchDisksItem,
+
+    -- ** MachineTypeAggregatedList
+    MachineTypeAggregatedList (..),
+    newMachineTypeAggregatedList,
+
+    -- ** MachineTypeAggregatedList_Items
+    MachineTypeAggregatedList_Items (..),
+    newMachineTypeAggregatedList_Items,
+
+    -- ** MachineTypeAggregatedList_Warning
+    MachineTypeAggregatedList_Warning (..),
+    newMachineTypeAggregatedList_Warning,
+
+    -- ** MachineTypeAggregatedList_Warning_Code
+    MachineTypeAggregatedList_Warning_Code (..),
+
+    -- ** MachineTypeAggregatedList_Warning_DataItem
+    MachineTypeAggregatedList_Warning_DataItem (..),
+    newMachineTypeAggregatedList_Warning_DataItem,
+
+    -- ** MachineTypeList
+    MachineTypeList (..),
+    newMachineTypeList,
+
+    -- ** MachineTypeList_Warning
+    MachineTypeList_Warning (..),
+    newMachineTypeList_Warning,
+
+    -- ** MachineTypeList_Warning_Code
+    MachineTypeList_Warning_Code (..),
+
+    -- ** MachineTypeList_Warning_DataItem
+    MachineTypeList_Warning_DataItem (..),
+    newMachineTypeList_Warning_DataItem,
+
+    -- ** MachineTypesScopedList
+    MachineTypesScopedList (..),
+    newMachineTypesScopedList,
+
+    -- ** MachineTypesScopedList_Warning
+    MachineTypesScopedList_Warning (..),
+    newMachineTypesScopedList_Warning,
+
+    -- ** MachineTypesScopedList_Warning_Code
+    MachineTypesScopedList_Warning_Code (..),
+
+    -- ** MachineTypesScopedList_Warning_DataItem
+    MachineTypesScopedList_Warning_DataItem (..),
+    newMachineTypesScopedList_Warning_DataItem,
+
+    -- ** ManagedInstance
+    ManagedInstance (..),
+    newManagedInstance,
+
+    -- ** ManagedInstance_CurrentAction
+    ManagedInstance_CurrentAction (..),
+
+    -- ** ManagedInstance_InstanceStatus
+    ManagedInstance_InstanceStatus (..),
+
+    -- ** ManagedInstanceInstanceHealth
+    ManagedInstanceInstanceHealth (..),
+    newManagedInstanceInstanceHealth,
+
+    -- ** ManagedInstanceInstanceHealth_DetailedHealthState
+    ManagedInstanceInstanceHealth_DetailedHealthState (..),
+
+    -- ** ManagedInstanceLastAttempt
+    ManagedInstanceLastAttempt (..),
+    newManagedInstanceLastAttempt,
+
+    -- ** ManagedInstanceLastAttempt_Errors
+    ManagedInstanceLastAttempt_Errors (..),
+    newManagedInstanceLastAttempt_Errors,
+
+    -- ** ManagedInstanceLastAttempt_Errors_ErrorsItem
+    ManagedInstanceLastAttempt_Errors_ErrorsItem (..),
+    newManagedInstanceLastAttempt_Errors_ErrorsItem,
+
+    -- ** ManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem
+    ManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem (..),
+    newManagedInstanceLastAttempt_Errors_ErrorsItem_ErrorDetailsItem,
+
+    -- ** ManagedInstancePropertiesFromFlexibilityPolicy
+    ManagedInstancePropertiesFromFlexibilityPolicy (..),
+    newManagedInstancePropertiesFromFlexibilityPolicy,
+
+    -- ** ManagedInstanceVersion
+    ManagedInstanceVersion (..),
+    newManagedInstanceVersion,
+
+    -- ** Metadata
+    Metadata (..),
+    newMetadata,
+
+    -- ** Metadata_ItemsItem
+    Metadata_ItemsItem (..),
+    newMetadata_ItemsItem,
+
+    -- ** MetadataFilter
+    MetadataFilter (..),
+    newMetadataFilter,
+
+    -- ** MetadataFilter_FilterMatchCriteria
+    MetadataFilter_FilterMatchCriteria (..),
+
+    -- ** MetadataFilterLabelMatch
+    MetadataFilterLabelMatch (..),
+    newMetadataFilterLabelMatch,
+
+    -- ** NamedPort
+    NamedPort (..),
+    newNamedPort,
+
+    -- ** NatIpInfo
+    NatIpInfo (..),
+    newNatIpInfo,
+
+    -- ** NatIpInfoNatIpInfoMapping
+    NatIpInfoNatIpInfoMapping (..),
+    newNatIpInfoNatIpInfoMapping,
+
+    -- ** NatIpInfoNatIpInfoMapping_Mode
+    NatIpInfoNatIpInfoMapping_Mode (..),
+
+    -- ** NatIpInfoNatIpInfoMapping_Usage
+    NatIpInfoNatIpInfoMapping_Usage (..),
+
+    -- ** NatIpInfoResponse
+    NatIpInfoResponse (..),
+    newNatIpInfoResponse,
+
+    -- ** Network
+    Network (..),
+    newNetwork,
+
+    -- ** Network_NetworkFirewallPolicyEnforcementOrder
+    Network_NetworkFirewallPolicyEnforcementOrder (..),
+
+    -- ** NetworkAttachment
+    NetworkAttachment (..),
+    newNetworkAttachment,
+
+    -- ** NetworkAttachment_ConnectionPreference
+    NetworkAttachment_ConnectionPreference (..),
+
+    -- ** NetworkAttachmentAggregatedList
+    NetworkAttachmentAggregatedList (..),
+    newNetworkAttachmentAggregatedList,
+
+    -- ** NetworkAttachmentAggregatedList_Items
+    NetworkAttachmentAggregatedList_Items (..),
+    newNetworkAttachmentAggregatedList_Items,
+
+    -- ** NetworkAttachmentAggregatedList_Warning
+    NetworkAttachmentAggregatedList_Warning (..),
+    newNetworkAttachmentAggregatedList_Warning,
+
+    -- ** NetworkAttachmentAggregatedList_Warning_Code
+    NetworkAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** NetworkAttachmentAggregatedList_Warning_DataItem
+    NetworkAttachmentAggregatedList_Warning_DataItem (..),
+    newNetworkAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** NetworkAttachmentConnectedEndpoint
+    NetworkAttachmentConnectedEndpoint (..),
+    newNetworkAttachmentConnectedEndpoint,
+
+    -- ** NetworkAttachmentConnectedEndpoint_Status
+    NetworkAttachmentConnectedEndpoint_Status (..),
+
+    -- ** NetworkAttachmentList
+    NetworkAttachmentList (..),
+    newNetworkAttachmentList,
+
+    -- ** NetworkAttachmentList_Warning
+    NetworkAttachmentList_Warning (..),
+    newNetworkAttachmentList_Warning,
+
+    -- ** NetworkAttachmentList_Warning_Code
+    NetworkAttachmentList_Warning_Code (..),
+
+    -- ** NetworkAttachmentList_Warning_DataItem
+    NetworkAttachmentList_Warning_DataItem (..),
+    newNetworkAttachmentList_Warning_DataItem,
+
+    -- ** NetworkAttachmentsScopedList
+    NetworkAttachmentsScopedList (..),
+    newNetworkAttachmentsScopedList,
+
+    -- ** NetworkAttachmentsScopedList_Warning
+    NetworkAttachmentsScopedList_Warning (..),
+    newNetworkAttachmentsScopedList_Warning,
+
+    -- ** NetworkAttachmentsScopedList_Warning_Code
+    NetworkAttachmentsScopedList_Warning_Code (..),
+
+    -- ** NetworkAttachmentsScopedList_Warning_DataItem
+    NetworkAttachmentsScopedList_Warning_DataItem (..),
+    newNetworkAttachmentsScopedList_Warning_DataItem,
+
+    -- ** NetworkEdgeSecurityService
+    NetworkEdgeSecurityService (..),
+    newNetworkEdgeSecurityService,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList
+    NetworkEdgeSecurityServiceAggregatedList (..),
+    newNetworkEdgeSecurityServiceAggregatedList,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Items
+    NetworkEdgeSecurityServiceAggregatedList_Items (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Items,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning
+    NetworkEdgeSecurityServiceAggregatedList_Warning (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Warning,
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning_Code
+    NetworkEdgeSecurityServiceAggregatedList_Warning_Code (..),
+
+    -- ** NetworkEdgeSecurityServiceAggregatedList_Warning_DataItem
+    NetworkEdgeSecurityServiceAggregatedList_Warning_DataItem (..),
+    newNetworkEdgeSecurityServiceAggregatedList_Warning_DataItem,
+
+    -- ** NetworkEdgeSecurityServicesScopedList
+    NetworkEdgeSecurityServicesScopedList (..),
+    newNetworkEdgeSecurityServicesScopedList,
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning
+    NetworkEdgeSecurityServicesScopedList_Warning (..),
+    newNetworkEdgeSecurityServicesScopedList_Warning,
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning_Code
+    NetworkEdgeSecurityServicesScopedList_Warning_Code (..),
+
+    -- ** NetworkEdgeSecurityServicesScopedList_Warning_DataItem
+    NetworkEdgeSecurityServicesScopedList_Warning_DataItem (..),
+    newNetworkEdgeSecurityServicesScopedList_Warning_DataItem,
+
+    -- ** NetworkEndpoint
+    NetworkEndpoint (..),
+    newNetworkEndpoint,
+
+    -- ** NetworkEndpoint_Annotations
+    NetworkEndpoint_Annotations (..),
+    newNetworkEndpoint_Annotations,
+
+    -- ** NetworkEndpointGroup
+    NetworkEndpointGroup (..),
+    newNetworkEndpointGroup,
+
+    -- ** NetworkEndpointGroup_Annotations
+    NetworkEndpointGroup_Annotations (..),
+    newNetworkEndpointGroup_Annotations,
+
+    -- ** NetworkEndpointGroup_NetworkEndpointType
+    NetworkEndpointGroup_NetworkEndpointType (..),
+
+    -- ** NetworkEndpointGroupAggregatedList
+    NetworkEndpointGroupAggregatedList (..),
+    newNetworkEndpointGroupAggregatedList,
+
+    -- ** NetworkEndpointGroupAggregatedList_Items
+    NetworkEndpointGroupAggregatedList_Items (..),
+    newNetworkEndpointGroupAggregatedList_Items,
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning
+    NetworkEndpointGroupAggregatedList_Warning (..),
+    newNetworkEndpointGroupAggregatedList_Warning,
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning_Code
+    NetworkEndpointGroupAggregatedList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupAggregatedList_Warning_DataItem
+    NetworkEndpointGroupAggregatedList_Warning_DataItem (..),
+    newNetworkEndpointGroupAggregatedList_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupAppEngine
+    NetworkEndpointGroupAppEngine (..),
+    newNetworkEndpointGroupAppEngine,
+
+    -- ** NetworkEndpointGroupCloudFunction
+    NetworkEndpointGroupCloudFunction (..),
+    newNetworkEndpointGroupCloudFunction,
+
+    -- ** NetworkEndpointGroupCloudRun
+    NetworkEndpointGroupCloudRun (..),
+    newNetworkEndpointGroupCloudRun,
+
+    -- ** NetworkEndpointGroupList
+    NetworkEndpointGroupList (..),
+    newNetworkEndpointGroupList,
+
+    -- ** NetworkEndpointGroupList_Warning
+    NetworkEndpointGroupList_Warning (..),
+    newNetworkEndpointGroupList_Warning,
+
+    -- ** NetworkEndpointGroupList_Warning_Code
+    NetworkEndpointGroupList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupList_Warning_DataItem
+    NetworkEndpointGroupList_Warning_DataItem (..),
+    newNetworkEndpointGroupList_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupPscData
+    NetworkEndpointGroupPscData (..),
+    newNetworkEndpointGroupPscData,
+
+    -- ** NetworkEndpointGroupPscData_PscConnectionStatus
+    NetworkEndpointGroupPscData_PscConnectionStatus (..),
+
+    -- ** NetworkEndpointGroupsAttachEndpointsRequest
+    NetworkEndpointGroupsAttachEndpointsRequest (..),
+    newNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsDetachEndpointsRequest
+    NetworkEndpointGroupsDetachEndpointsRequest (..),
+    newNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsListEndpointsRequest
+    NetworkEndpointGroupsListEndpointsRequest (..),
+    newNetworkEndpointGroupsListEndpointsRequest,
+
+    -- ** NetworkEndpointGroupsListEndpointsRequest_HealthStatus
+    NetworkEndpointGroupsListEndpointsRequest_HealthStatus (..),
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints
+    NetworkEndpointGroupsListNetworkEndpoints (..),
+    newNetworkEndpointGroupsListNetworkEndpoints,
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning
+    NetworkEndpointGroupsListNetworkEndpoints_Warning (..),
+    newNetworkEndpointGroupsListNetworkEndpoints_Warning,
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning_Code
+    NetworkEndpointGroupsListNetworkEndpoints_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem
+    NetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem (..),
+    newNetworkEndpointGroupsListNetworkEndpoints_Warning_DataItem,
+
+    -- ** NetworkEndpointGroupsScopedList
+    NetworkEndpointGroupsScopedList (..),
+    newNetworkEndpointGroupsScopedList,
+
+    -- ** NetworkEndpointGroupsScopedList_Warning
+    NetworkEndpointGroupsScopedList_Warning (..),
+    newNetworkEndpointGroupsScopedList_Warning,
+
+    -- ** NetworkEndpointGroupsScopedList_Warning_Code
+    NetworkEndpointGroupsScopedList_Warning_Code (..),
+
+    -- ** NetworkEndpointGroupsScopedList_Warning_DataItem
+    NetworkEndpointGroupsScopedList_Warning_DataItem (..),
+    newNetworkEndpointGroupsScopedList_Warning_DataItem,
+
+    -- ** NetworkEndpointWithHealthStatus
+    NetworkEndpointWithHealthStatus (..),
+    newNetworkEndpointWithHealthStatus,
+
+    -- ** NetworkFirewallPolicyAggregatedList
+    NetworkFirewallPolicyAggregatedList (..),
+    newNetworkFirewallPolicyAggregatedList,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Items
+    NetworkFirewallPolicyAggregatedList_Items (..),
+    newNetworkFirewallPolicyAggregatedList_Items,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning
+    NetworkFirewallPolicyAggregatedList_Warning (..),
+    newNetworkFirewallPolicyAggregatedList_Warning,
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning_Code
+    NetworkFirewallPolicyAggregatedList_Warning_Code (..),
+
+    -- ** NetworkFirewallPolicyAggregatedList_Warning_DataItem
+    NetworkFirewallPolicyAggregatedList_Warning_DataItem (..),
+    newNetworkFirewallPolicyAggregatedList_Warning_DataItem,
+
+    -- ** NetworkInterface
+    NetworkInterface (..),
+    newNetworkInterface,
+
+    -- ** NetworkInterface_Ipv6AccessType
+    NetworkInterface_Ipv6AccessType (..),
+
+    -- ** NetworkInterface_NicType
+    NetworkInterface_NicType (..),
+
+    -- ** NetworkInterface_StackType
+    NetworkInterface_StackType (..),
+
+    -- ** NetworkList
+    NetworkList (..),
+    newNetworkList,
+
+    -- ** NetworkList_Warning
+    NetworkList_Warning (..),
+    newNetworkList_Warning,
+
+    -- ** NetworkList_Warning_Code
+    NetworkList_Warning_Code (..),
+
+    -- ** NetworkList_Warning_DataItem
+    NetworkList_Warning_DataItem (..),
+    newNetworkList_Warning_DataItem,
+
+    -- ** NetworkPeering
+    NetworkPeering (..),
+    newNetworkPeering,
+
+    -- ** NetworkPeering_StackType
+    NetworkPeering_StackType (..),
+
+    -- ** NetworkPeering_State
+    NetworkPeering_State (..),
+
+    -- ** NetworkPerformanceConfig
+    NetworkPerformanceConfig (..),
+    newNetworkPerformanceConfig,
+
+    -- ** NetworkPerformanceConfig_TotalEgressBandwidthTier
+    NetworkPerformanceConfig_TotalEgressBandwidthTier (..),
+
+    -- ** NetworkProfile
+    NetworkProfile (..),
+    newNetworkProfile,
+
+    -- ** NetworkProfileLocation
+    NetworkProfileLocation (..),
+    newNetworkProfileLocation,
+
+    -- ** NetworkProfileLocation_Scope
+    NetworkProfileLocation_Scope (..),
+
+    -- ** NetworkProfileNetworkFeatures
+    NetworkProfileNetworkFeatures (..),
+    newNetworkProfileNetworkFeatures,
+
+    -- ** NetworkProfileNetworkFeatures_AddressPurposesItem
+    NetworkProfileNetworkFeatures_AddressPurposesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowAliasIpRanges
+    NetworkProfileNetworkFeatures_AllowAliasIpRanges (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowAutoModeSubnet
+    NetworkProfileNetworkFeatures_AllowAutoModeSubnet (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowClassDFirewalls
+    NetworkProfileNetworkFeatures_AllowClassDFirewalls (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowCloudNat
+    NetworkProfileNetworkFeatures_AllowCloudNat (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowCloudRouter
+    NetworkProfileNetworkFeatures_AllowCloudRouter (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowExternalIpAccess
+    NetworkProfileNetworkFeatures_AllowExternalIpAccess (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowInterconnect
+    NetworkProfileNetworkFeatures_AllowInterconnect (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowLoadBalancing
+    NetworkProfileNetworkFeatures_AllowLoadBalancing (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowMultiNicInSameNetwork
+    NetworkProfileNetworkFeatures_AllowMultiNicInSameNetwork (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPacketMirroring
+    NetworkProfileNetworkFeatures_AllowPacketMirroring (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPrivateGoogleAccess
+    NetworkProfileNetworkFeatures_AllowPrivateGoogleAccess (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowPsc
+    NetworkProfileNetworkFeatures_AllowPsc (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowSameNetworkUnicast
+    NetworkProfileNetworkFeatures_AllowSameNetworkUnicast (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowStaticRoutes
+    NetworkProfileNetworkFeatures_AllowStaticRoutes (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowSubInterfaces
+    NetworkProfileNetworkFeatures_AllowSubInterfaces (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowVpcPeering
+    NetworkProfileNetworkFeatures_AllowVpcPeering (..),
+
+    -- ** NetworkProfileNetworkFeatures_AllowVpn
+    NetworkProfileNetworkFeatures_AllowVpn (..),
+
+    -- ** NetworkProfileNetworkFeatures_InterfaceTypesItem
+    NetworkProfileNetworkFeatures_InterfaceTypesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_SubnetPurposesItem
+    NetworkProfileNetworkFeatures_SubnetPurposesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_SubnetStackTypesItem
+    NetworkProfileNetworkFeatures_SubnetStackTypesItem (..),
+
+    -- ** NetworkProfileNetworkFeatures_Unicast
+    NetworkProfileNetworkFeatures_Unicast (..),
+
+    -- ** NetworkProfilesListResponse
+    NetworkProfilesListResponse (..),
+    newNetworkProfilesListResponse,
+
+    -- ** NetworkProfilesListResponse_Warning
+    NetworkProfilesListResponse_Warning (..),
+    newNetworkProfilesListResponse_Warning,
+
+    -- ** NetworkProfilesListResponse_Warning_Code
+    NetworkProfilesListResponse_Warning_Code (..),
+
+    -- ** NetworkProfilesListResponse_Warning_DataItem
+    NetworkProfilesListResponse_Warning_DataItem (..),
+    newNetworkProfilesListResponse_Warning_DataItem,
+
+    -- ** NetworkRoutingConfig
+    NetworkRoutingConfig (..),
+    newNetworkRoutingConfig,
+
+    -- ** NetworkRoutingConfig_BgpBestPathSelectionMode
+    NetworkRoutingConfig_BgpBestPathSelectionMode (..),
+
+    -- ** NetworkRoutingConfig_BgpInterRegionCost
+    NetworkRoutingConfig_BgpInterRegionCost (..),
+
+    -- ** NetworkRoutingConfig_EffectiveBgpInterRegionCost
+    NetworkRoutingConfig_EffectiveBgpInterRegionCost (..),
+
+    -- ** NetworkRoutingConfig_RoutingMode
+    NetworkRoutingConfig_RoutingMode (..),
+
+    -- ** NetworksAddPeeringRequest
+    NetworksAddPeeringRequest (..),
+    newNetworksAddPeeringRequest,
+
+    -- ** NetworksGetEffectiveFirewallsResponse
+    NetworksGetEffectiveFirewallsResponse (..),
+    newNetworksGetEffectiveFirewallsResponse,
+
+    -- ** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newNetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** NetworksRemovePeeringRequest
+    NetworksRemovePeeringRequest (..),
+    newNetworksRemovePeeringRequest,
+
+    -- ** NetworksUpdatePeeringRequest
+    NetworksUpdatePeeringRequest (..),
+    newNetworksUpdatePeeringRequest,
+
+    -- ** NodeGroup
+    NodeGroup (..),
+    newNodeGroup,
+
+    -- ** NodeGroup_MaintenanceInterval
+    NodeGroup_MaintenanceInterval (..),
+
+    -- ** NodeGroup_MaintenancePolicy
+    NodeGroup_MaintenancePolicy (..),
+
+    -- ** NodeGroup_Status
+    NodeGroup_Status (..),
+
+    -- ** NodeGroupAggregatedList
+    NodeGroupAggregatedList (..),
+    newNodeGroupAggregatedList,
+
+    -- ** NodeGroupAggregatedList_Items
+    NodeGroupAggregatedList_Items (..),
+    newNodeGroupAggregatedList_Items,
+
+    -- ** NodeGroupAggregatedList_Warning
+    NodeGroupAggregatedList_Warning (..),
+    newNodeGroupAggregatedList_Warning,
+
+    -- ** NodeGroupAggregatedList_Warning_Code
+    NodeGroupAggregatedList_Warning_Code (..),
+
+    -- ** NodeGroupAggregatedList_Warning_DataItem
+    NodeGroupAggregatedList_Warning_DataItem (..),
+    newNodeGroupAggregatedList_Warning_DataItem,
+
+    -- ** NodeGroupAutoscalingPolicy
+    NodeGroupAutoscalingPolicy (..),
+    newNodeGroupAutoscalingPolicy,
+
+    -- ** NodeGroupAutoscalingPolicy_Mode
+    NodeGroupAutoscalingPolicy_Mode (..),
+
+    -- ** NodeGroupList
+    NodeGroupList (..),
+    newNodeGroupList,
+
+    -- ** NodeGroupList_Warning
+    NodeGroupList_Warning (..),
+    newNodeGroupList_Warning,
+
+    -- ** NodeGroupList_Warning_Code
+    NodeGroupList_Warning_Code (..),
+
+    -- ** NodeGroupList_Warning_DataItem
+    NodeGroupList_Warning_DataItem (..),
+    newNodeGroupList_Warning_DataItem,
+
+    -- ** NodeGroupMaintenanceWindow
+    NodeGroupMaintenanceWindow (..),
+    newNodeGroupMaintenanceWindow,
+
+    -- ** NodeGroupNode
+    NodeGroupNode (..),
+    newNodeGroupNode,
+
+    -- ** NodeGroupNode_CpuOvercommitType
+    NodeGroupNode_CpuOvercommitType (..),
+
+    -- ** NodeGroupNode_Status
+    NodeGroupNode_Status (..),
+
+    -- ** NodeGroupsAddNodesRequest
+    NodeGroupsAddNodesRequest (..),
+    newNodeGroupsAddNodesRequest,
+
+    -- ** NodeGroupsDeleteNodesRequest
+    NodeGroupsDeleteNodesRequest (..),
+    newNodeGroupsDeleteNodesRequest,
+
+    -- ** NodeGroupsListNodes
+    NodeGroupsListNodes (..),
+    newNodeGroupsListNodes,
+
+    -- ** NodeGroupsListNodes_Warning
+    NodeGroupsListNodes_Warning (..),
+    newNodeGroupsListNodes_Warning,
+
+    -- ** NodeGroupsListNodes_Warning_Code
+    NodeGroupsListNodes_Warning_Code (..),
+
+    -- ** NodeGroupsListNodes_Warning_DataItem
+    NodeGroupsListNodes_Warning_DataItem (..),
+    newNodeGroupsListNodes_Warning_DataItem,
+
+    -- ** NodeGroupsPerformMaintenanceRequest
+    NodeGroupsPerformMaintenanceRequest (..),
+    newNodeGroupsPerformMaintenanceRequest,
+
+    -- ** NodeGroupsScopedList
+    NodeGroupsScopedList (..),
+    newNodeGroupsScopedList,
+
+    -- ** NodeGroupsScopedList_Warning
+    NodeGroupsScopedList_Warning (..),
+    newNodeGroupsScopedList_Warning,
+
+    -- ** NodeGroupsScopedList_Warning_Code
+    NodeGroupsScopedList_Warning_Code (..),
+
+    -- ** NodeGroupsScopedList_Warning_DataItem
+    NodeGroupsScopedList_Warning_DataItem (..),
+    newNodeGroupsScopedList_Warning_DataItem,
+
+    -- ** NodeGroupsSetNodeTemplateRequest
+    NodeGroupsSetNodeTemplateRequest (..),
+    newNodeGroupsSetNodeTemplateRequest,
+
+    -- ** NodeGroupsSimulateMaintenanceEventRequest
+    NodeGroupsSimulateMaintenanceEventRequest (..),
+    newNodeGroupsSimulateMaintenanceEventRequest,
+
+    -- ** NodeTemplate
+    NodeTemplate (..),
+    newNodeTemplate,
+
+    -- ** NodeTemplate_CpuOvercommitType
+    NodeTemplate_CpuOvercommitType (..),
+
+    -- ** NodeTemplate_NodeAffinityLabels
+    NodeTemplate_NodeAffinityLabels (..),
+    newNodeTemplate_NodeAffinityLabels,
+
+    -- ** NodeTemplate_Status
+    NodeTemplate_Status (..),
+
+    -- ** NodeTemplateAggregatedList
+    NodeTemplateAggregatedList (..),
+    newNodeTemplateAggregatedList,
+
+    -- ** NodeTemplateAggregatedList_Items
+    NodeTemplateAggregatedList_Items (..),
+    newNodeTemplateAggregatedList_Items,
+
+    -- ** NodeTemplateAggregatedList_Warning
+    NodeTemplateAggregatedList_Warning (..),
+    newNodeTemplateAggregatedList_Warning,
+
+    -- ** NodeTemplateAggregatedList_Warning_Code
+    NodeTemplateAggregatedList_Warning_Code (..),
+
+    -- ** NodeTemplateAggregatedList_Warning_DataItem
+    NodeTemplateAggregatedList_Warning_DataItem (..),
+    newNodeTemplateAggregatedList_Warning_DataItem,
+
+    -- ** NodeTemplateList
+    NodeTemplateList (..),
+    newNodeTemplateList,
+
+    -- ** NodeTemplateList_Warning
+    NodeTemplateList_Warning (..),
+    newNodeTemplateList_Warning,
+
+    -- ** NodeTemplateList_Warning_Code
+    NodeTemplateList_Warning_Code (..),
+
+    -- ** NodeTemplateList_Warning_DataItem
+    NodeTemplateList_Warning_DataItem (..),
+    newNodeTemplateList_Warning_DataItem,
+
+    -- ** NodeTemplateNodeTypeFlexibility
+    NodeTemplateNodeTypeFlexibility (..),
+    newNodeTemplateNodeTypeFlexibility,
+
+    -- ** NodeTemplatesScopedList
+    NodeTemplatesScopedList (..),
+    newNodeTemplatesScopedList,
+
+    -- ** NodeTemplatesScopedList_Warning
+    NodeTemplatesScopedList_Warning (..),
+    newNodeTemplatesScopedList_Warning,
+
+    -- ** NodeTemplatesScopedList_Warning_Code
+    NodeTemplatesScopedList_Warning_Code (..),
+
+    -- ** NodeTemplatesScopedList_Warning_DataItem
+    NodeTemplatesScopedList_Warning_DataItem (..),
+    newNodeTemplatesScopedList_Warning_DataItem,
+
+    -- ** NodeType
+    NodeType (..),
+    newNodeType,
+
+    -- ** NodeTypeAggregatedList
+    NodeTypeAggregatedList (..),
+    newNodeTypeAggregatedList,
+
+    -- ** NodeTypeAggregatedList_Items
+    NodeTypeAggregatedList_Items (..),
+    newNodeTypeAggregatedList_Items,
+
+    -- ** NodeTypeAggregatedList_Warning
+    NodeTypeAggregatedList_Warning (..),
+    newNodeTypeAggregatedList_Warning,
+
+    -- ** NodeTypeAggregatedList_Warning_Code
+    NodeTypeAggregatedList_Warning_Code (..),
+
+    -- ** NodeTypeAggregatedList_Warning_DataItem
+    NodeTypeAggregatedList_Warning_DataItem (..),
+    newNodeTypeAggregatedList_Warning_DataItem,
+
+    -- ** NodeTypeList
+    NodeTypeList (..),
+    newNodeTypeList,
+
+    -- ** NodeTypeList_Warning
+    NodeTypeList_Warning (..),
+    newNodeTypeList_Warning,
+
+    -- ** NodeTypeList_Warning_Code
+    NodeTypeList_Warning_Code (..),
+
+    -- ** NodeTypeList_Warning_DataItem
+    NodeTypeList_Warning_DataItem (..),
+    newNodeTypeList_Warning_DataItem,
+
+    -- ** NodeTypesScopedList
+    NodeTypesScopedList (..),
+    newNodeTypesScopedList,
+
+    -- ** NodeTypesScopedList_Warning
+    NodeTypesScopedList_Warning (..),
+    newNodeTypesScopedList_Warning,
+
+    -- ** NodeTypesScopedList_Warning_Code
+    NodeTypesScopedList_Warning_Code (..),
+
+    -- ** NodeTypesScopedList_Warning_DataItem
+    NodeTypesScopedList_Warning_DataItem (..),
+    newNodeTypesScopedList_Warning_DataItem,
+
+    -- ** NotificationEndpoint
+    NotificationEndpoint (..),
+    newNotificationEndpoint,
+
+    -- ** NotificationEndpointGrpcSettings
+    NotificationEndpointGrpcSettings (..),
+    newNotificationEndpointGrpcSettings,
+
+    -- ** NotificationEndpointList
+    NotificationEndpointList (..),
+    newNotificationEndpointList,
+
+    -- ** NotificationEndpointList_Warning
+    NotificationEndpointList_Warning (..),
+    newNotificationEndpointList_Warning,
+
+    -- ** NotificationEndpointList_Warning_Code
+    NotificationEndpointList_Warning_Code (..),
+
+    -- ** NotificationEndpointList_Warning_DataItem
+    NotificationEndpointList_Warning_DataItem (..),
+    newNotificationEndpointList_Warning_DataItem,
+
+    -- ** Operation
+    Operation (..),
+    newOperation,
+
+    -- ** Operation_Error
+    Operation_Error (..),
+    newOperation_Error,
+
+    -- ** Operation_Error_ErrorsItem
+    Operation_Error_ErrorsItem (..),
+    newOperation_Error_ErrorsItem,
+
+    -- ** Operation_Error_ErrorsItem_ErrorDetailsItem
+    Operation_Error_ErrorsItem_ErrorDetailsItem (..),
+    newOperation_Error_ErrorsItem_ErrorDetailsItem,
+
+    -- ** Operation_Status
+    Operation_Status (..),
+
+    -- ** Operation_WarningsItem
+    Operation_WarningsItem (..),
+    newOperation_WarningsItem,
+
+    -- ** Operation_WarningsItem_Code
+    Operation_WarningsItem_Code (..),
+
+    -- ** Operation_WarningsItem_DataItem
+    Operation_WarningsItem_DataItem (..),
+    newOperation_WarningsItem_DataItem,
+
+    -- ** OperationAggregatedList
+    OperationAggregatedList (..),
+    newOperationAggregatedList,
+
+    -- ** OperationAggregatedList_Items
+    OperationAggregatedList_Items (..),
+    newOperationAggregatedList_Items,
+
+    -- ** OperationAggregatedList_Warning
+    OperationAggregatedList_Warning (..),
+    newOperationAggregatedList_Warning,
+
+    -- ** OperationAggregatedList_Warning_Code
+    OperationAggregatedList_Warning_Code (..),
+
+    -- ** OperationAggregatedList_Warning_DataItem
+    OperationAggregatedList_Warning_DataItem (..),
+    newOperationAggregatedList_Warning_DataItem,
+
+    -- ** OperationList
+    OperationList (..),
+    newOperationList,
+
+    -- ** OperationList_Warning
+    OperationList_Warning (..),
+    newOperationList_Warning,
+
+    -- ** OperationList_Warning_Code
+    OperationList_Warning_Code (..),
+
+    -- ** OperationList_Warning_DataItem
+    OperationList_Warning_DataItem (..),
+    newOperationList_Warning_DataItem,
+
+    -- ** OperationsScopedList
+    OperationsScopedList (..),
+    newOperationsScopedList,
+
+    -- ** OperationsScopedList_Warning
+    OperationsScopedList_Warning (..),
+    newOperationsScopedList_Warning,
+
+    -- ** OperationsScopedList_Warning_Code
+    OperationsScopedList_Warning_Code (..),
+
+    -- ** OperationsScopedList_Warning_DataItem
+    OperationsScopedList_Warning_DataItem (..),
+    newOperationsScopedList_Warning_DataItem,
+
+    -- ** OutlierDetection
+    OutlierDetection (..),
+    newOutlierDetection,
+
+    -- ** PacketIntervals
+    PacketIntervals (..),
+    newPacketIntervals,
+
+    -- ** PacketIntervals_Duration
+    PacketIntervals_Duration (..),
+
+    -- ** PacketIntervals_Type
+    PacketIntervals_Type (..),
+
+    -- ** PacketMirroring
+    PacketMirroring (..),
+    newPacketMirroring,
+
+    -- ** PacketMirroring_Enable
+    PacketMirroring_Enable (..),
+
+    -- ** PacketMirroringAggregatedList
+    PacketMirroringAggregatedList (..),
+    newPacketMirroringAggregatedList,
+
+    -- ** PacketMirroringAggregatedList_Items
+    PacketMirroringAggregatedList_Items (..),
+    newPacketMirroringAggregatedList_Items,
+
+    -- ** PacketMirroringAggregatedList_Warning
+    PacketMirroringAggregatedList_Warning (..),
+    newPacketMirroringAggregatedList_Warning,
+
+    -- ** PacketMirroringAggregatedList_Warning_Code
+    PacketMirroringAggregatedList_Warning_Code (..),
+
+    -- ** PacketMirroringAggregatedList_Warning_DataItem
+    PacketMirroringAggregatedList_Warning_DataItem (..),
+    newPacketMirroringAggregatedList_Warning_DataItem,
+
+    -- ** PacketMirroringFilter
+    PacketMirroringFilter (..),
+    newPacketMirroringFilter,
+
+    -- ** PacketMirroringFilter_Direction
+    PacketMirroringFilter_Direction (..),
+
+    -- ** PacketMirroringForwardingRuleInfo
+    PacketMirroringForwardingRuleInfo (..),
+    newPacketMirroringForwardingRuleInfo,
+
+    -- ** PacketMirroringList
+    PacketMirroringList (..),
+    newPacketMirroringList,
+
+    -- ** PacketMirroringList_Warning
+    PacketMirroringList_Warning (..),
+    newPacketMirroringList_Warning,
+
+    -- ** PacketMirroringList_Warning_Code
+    PacketMirroringList_Warning_Code (..),
+
+    -- ** PacketMirroringList_Warning_DataItem
+    PacketMirroringList_Warning_DataItem (..),
+    newPacketMirroringList_Warning_DataItem,
+
+    -- ** PacketMirroringMirroredResourceInfo
+    PacketMirroringMirroredResourceInfo (..),
+    newPacketMirroringMirroredResourceInfo,
+
+    -- ** PacketMirroringMirroredResourceInfoInstanceInfo
+    PacketMirroringMirroredResourceInfoInstanceInfo (..),
+    newPacketMirroringMirroredResourceInfoInstanceInfo,
+
+    -- ** PacketMirroringMirroredResourceInfoSubnetInfo
+    PacketMirroringMirroredResourceInfoSubnetInfo (..),
+    newPacketMirroringMirroredResourceInfoSubnetInfo,
+
+    -- ** PacketMirroringNetworkInfo
+    PacketMirroringNetworkInfo (..),
+    newPacketMirroringNetworkInfo,
+
+    -- ** PacketMirroringsScopedList
+    PacketMirroringsScopedList (..),
+    newPacketMirroringsScopedList,
+
+    -- ** PacketMirroringsScopedList_Warning
+    PacketMirroringsScopedList_Warning (..),
+    newPacketMirroringsScopedList_Warning,
+
+    -- ** PacketMirroringsScopedList_Warning_Code
+    PacketMirroringsScopedList_Warning_Code (..),
+
+    -- ** PacketMirroringsScopedList_Warning_DataItem
+    PacketMirroringsScopedList_Warning_DataItem (..),
+    newPacketMirroringsScopedList_Warning_DataItem,
+
+    -- ** PathMatcher
+    PathMatcher (..),
+    newPathMatcher,
+
+    -- ** PathRule
+    PathRule (..),
+    newPathRule,
+
+    -- ** PerInstanceConfig
+    PerInstanceConfig (..),
+    newPerInstanceConfig,
+
+    -- ** PerInstanceConfig_Status
+    PerInstanceConfig_Status (..),
+
+    -- ** Policy
+    Policy (..),
+    newPolicy,
+
+    -- ** PreconfiguredWafSet
+    PreconfiguredWafSet (..),
+    newPreconfiguredWafSet,
+
+    -- ** PreservedState
+    PreservedState (..),
+    newPreservedState,
+
+    -- ** PreservedState_Disks
+    PreservedState_Disks (..),
+    newPreservedState_Disks,
+
+    -- ** PreservedState_ExternalIPs
+    PreservedState_ExternalIPs (..),
+    newPreservedState_ExternalIPs,
+
+    -- ** PreservedState_InternalIPs
+    PreservedState_InternalIPs (..),
+    newPreservedState_InternalIPs,
+
+    -- ** PreservedState_Metadata
+    PreservedState_Metadata (..),
+    newPreservedState_Metadata,
+
+    -- ** PreservedStatePreservedDisk
+    PreservedStatePreservedDisk (..),
+    newPreservedStatePreservedDisk,
+
+    -- ** PreservedStatePreservedDisk_AutoDelete
+    PreservedStatePreservedDisk_AutoDelete (..),
+
+    -- ** PreservedStatePreservedDisk_Mode
+    PreservedStatePreservedDisk_Mode (..),
+
+    -- ** PreservedStatePreservedNetworkIp
+    PreservedStatePreservedNetworkIp (..),
+    newPreservedStatePreservedNetworkIp,
+
+    -- ** PreservedStatePreservedNetworkIp_AutoDelete
+    PreservedStatePreservedNetworkIp_AutoDelete (..),
+
+    -- ** PreservedStatePreservedNetworkIpIpAddress
+    PreservedStatePreservedNetworkIpIpAddress (..),
+    newPreservedStatePreservedNetworkIpIpAddress,
+
+    -- ** Project
+    Project (..),
+    newProject,
+
+    -- ** Project_CloudArmorTier
+    Project_CloudArmorTier (..),
+
+    -- ** Project_DefaultNetworkTier
+    Project_DefaultNetworkTier (..),
+
+    -- ** Project_VmDnsSetting
+    Project_VmDnsSetting (..),
+
+    -- ** Project_XpnProjectStatus
+    Project_XpnProjectStatus (..),
+
+    -- ** ProjectsDisableXpnResourceRequest
+    ProjectsDisableXpnResourceRequest (..),
+    newProjectsDisableXpnResourceRequest,
+
+    -- ** ProjectsEnableXpnResourceRequest
+    ProjectsEnableXpnResourceRequest (..),
+    newProjectsEnableXpnResourceRequest,
+
+    -- ** ProjectsGetXpnResources
+    ProjectsGetXpnResources (..),
+    newProjectsGetXpnResources,
+
+    -- ** ProjectsListXpnHostsRequest
+    ProjectsListXpnHostsRequest (..),
+    newProjectsListXpnHostsRequest,
+
+    -- ** ProjectsSetCloudArmorTierRequest
+    ProjectsSetCloudArmorTierRequest (..),
+    newProjectsSetCloudArmorTierRequest,
+
+    -- ** ProjectsSetCloudArmorTierRequest_CloudArmorTier
+    ProjectsSetCloudArmorTierRequest_CloudArmorTier (..),
+
+    -- ** ProjectsSetDefaultNetworkTierRequest
+    ProjectsSetDefaultNetworkTierRequest (..),
+    newProjectsSetDefaultNetworkTierRequest,
+
+    -- ** ProjectsSetDefaultNetworkTierRequest_NetworkTier
+    ProjectsSetDefaultNetworkTierRequest_NetworkTier (..),
+
+    -- ** PublicAdvertisedPrefix
+    PublicAdvertisedPrefix (..),
+    newPublicAdvertisedPrefix,
+
+    -- ** PublicAdvertisedPrefix_ByoipApiVersion
+    PublicAdvertisedPrefix_ByoipApiVersion (..),
+
+    -- ** PublicAdvertisedPrefix_PdpScope
+    PublicAdvertisedPrefix_PdpScope (..),
+
+    -- ** PublicAdvertisedPrefix_Status
+    PublicAdvertisedPrefix_Status (..),
+
+    -- ** PublicAdvertisedPrefixList
+    PublicAdvertisedPrefixList (..),
+    newPublicAdvertisedPrefixList,
+
+    -- ** PublicAdvertisedPrefixList_Warning
+    PublicAdvertisedPrefixList_Warning (..),
+    newPublicAdvertisedPrefixList_Warning,
+
+    -- ** PublicAdvertisedPrefixList_Warning_Code
+    PublicAdvertisedPrefixList_Warning_Code (..),
+
+    -- ** PublicAdvertisedPrefixList_Warning_DataItem
+    PublicAdvertisedPrefixList_Warning_DataItem (..),
+    newPublicAdvertisedPrefixList_Warning_DataItem,
+
+    -- ** PublicAdvertisedPrefixPublicDelegatedPrefix
+    PublicAdvertisedPrefixPublicDelegatedPrefix (..),
+    newPublicAdvertisedPrefixPublicDelegatedPrefix,
+
+    -- ** PublicDelegatedPrefix
+    PublicDelegatedPrefix (..),
+    newPublicDelegatedPrefix,
+
+    -- ** PublicDelegatedPrefix_ByoipApiVersion
+    PublicDelegatedPrefix_ByoipApiVersion (..),
+
+    -- ** PublicDelegatedPrefix_Mode
+    PublicDelegatedPrefix_Mode (..),
+
+    -- ** PublicDelegatedPrefix_Status
+    PublicDelegatedPrefix_Status (..),
+
+    -- ** PublicDelegatedPrefixAggregatedList
+    PublicDelegatedPrefixAggregatedList (..),
+    newPublicDelegatedPrefixAggregatedList,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Items
+    PublicDelegatedPrefixAggregatedList_Items (..),
+    newPublicDelegatedPrefixAggregatedList_Items,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning
+    PublicDelegatedPrefixAggregatedList_Warning (..),
+    newPublicDelegatedPrefixAggregatedList_Warning,
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning_Code
+    PublicDelegatedPrefixAggregatedList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixAggregatedList_Warning_DataItem
+    PublicDelegatedPrefixAggregatedList_Warning_DataItem (..),
+    newPublicDelegatedPrefixAggregatedList_Warning_DataItem,
+
+    -- ** PublicDelegatedPrefixList
+    PublicDelegatedPrefixList (..),
+    newPublicDelegatedPrefixList,
+
+    -- ** PublicDelegatedPrefixList_Warning
+    PublicDelegatedPrefixList_Warning (..),
+    newPublicDelegatedPrefixList_Warning,
+
+    -- ** PublicDelegatedPrefixList_Warning_Code
+    PublicDelegatedPrefixList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixList_Warning_DataItem
+    PublicDelegatedPrefixList_Warning_DataItem (..),
+    newPublicDelegatedPrefixList_Warning_DataItem,
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix
+    PublicDelegatedPrefixPublicDelegatedSubPrefix (..),
+    newPublicDelegatedPrefixPublicDelegatedSubPrefix,
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix_Mode
+    PublicDelegatedPrefixPublicDelegatedSubPrefix_Mode (..),
+
+    -- ** PublicDelegatedPrefixPublicDelegatedSubPrefix_Status
+    PublicDelegatedPrefixPublicDelegatedSubPrefix_Status (..),
+
+    -- ** PublicDelegatedPrefixesScopedList
+    PublicDelegatedPrefixesScopedList (..),
+    newPublicDelegatedPrefixesScopedList,
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning
+    PublicDelegatedPrefixesScopedList_Warning (..),
+    newPublicDelegatedPrefixesScopedList_Warning,
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning_Code
+    PublicDelegatedPrefixesScopedList_Warning_Code (..),
+
+    -- ** PublicDelegatedPrefixesScopedList_Warning_DataItem
+    PublicDelegatedPrefixesScopedList_Warning_DataItem (..),
+    newPublicDelegatedPrefixesScopedList_Warning_DataItem,
+
+    -- ** Quota
+    Quota (..),
+    newQuota,
+
+    -- ** Quota_Metric
+    Quota_Metric (..),
+
+    -- ** QuotaExceededInfo
+    QuotaExceededInfo (..),
+    newQuotaExceededInfo,
+
+    -- ** QuotaExceededInfo_Dimensions
+    QuotaExceededInfo_Dimensions (..),
+    newQuotaExceededInfo_Dimensions,
+
+    -- ** QuotaExceededInfo_RolloutStatus
+    QuotaExceededInfo_RolloutStatus (..),
+
+    -- ** Reference
+    Reference (..),
+    newReference,
+
+    -- ** Region
+    Region (..),
+    newRegion,
+
+    -- ** Region_QuotaStatusWarning
+    Region_QuotaStatusWarning (..),
+    newRegion_QuotaStatusWarning,
+
+    -- ** Region_QuotaStatusWarning_Code
+    Region_QuotaStatusWarning_Code (..),
+
+    -- ** Region_QuotaStatusWarning_DataItem
+    Region_QuotaStatusWarning_DataItem (..),
+    newRegion_QuotaStatusWarning_DataItem,
+
+    -- ** Region_Status
+    Region_Status (..),
+
+    -- ** RegionAddressesMoveRequest
+    RegionAddressesMoveRequest (..),
+    newRegionAddressesMoveRequest,
+
+    -- ** RegionAutoscalerList
+    RegionAutoscalerList (..),
+    newRegionAutoscalerList,
+
+    -- ** RegionAutoscalerList_Warning
+    RegionAutoscalerList_Warning (..),
+    newRegionAutoscalerList_Warning,
+
+    -- ** RegionAutoscalerList_Warning_Code
+    RegionAutoscalerList_Warning_Code (..),
+
+    -- ** RegionAutoscalerList_Warning_DataItem
+    RegionAutoscalerList_Warning_DataItem (..),
+    newRegionAutoscalerList_Warning_DataItem,
+
+    -- ** RegionDiskTypeList
+    RegionDiskTypeList (..),
+    newRegionDiskTypeList,
+
+    -- ** RegionDiskTypeList_Warning
+    RegionDiskTypeList_Warning (..),
+    newRegionDiskTypeList_Warning,
+
+    -- ** RegionDiskTypeList_Warning_Code
+    RegionDiskTypeList_Warning_Code (..),
+
+    -- ** RegionDiskTypeList_Warning_DataItem
+    RegionDiskTypeList_Warning_DataItem (..),
+    newRegionDiskTypeList_Warning_DataItem,
+
+    -- ** RegionDisksAddResourcePoliciesRequest
+    RegionDisksAddResourcePoliciesRequest (..),
+    newRegionDisksAddResourcePoliciesRequest,
+
+    -- ** RegionDisksRemoveResourcePoliciesRequest
+    RegionDisksRemoveResourcePoliciesRequest (..),
+    newRegionDisksRemoveResourcePoliciesRequest,
+
+    -- ** RegionDisksResizeRequest
+    RegionDisksResizeRequest (..),
+    newRegionDisksResizeRequest,
+
+    -- ** RegionDisksStartAsyncReplicationRequest
+    RegionDisksStartAsyncReplicationRequest (..),
+    newRegionDisksStartAsyncReplicationRequest,
+
+    -- ** RegionInstanceGroupList
+    RegionInstanceGroupList (..),
+    newRegionInstanceGroupList,
+
+    -- ** RegionInstanceGroupList_Warning
+    RegionInstanceGroupList_Warning (..),
+    newRegionInstanceGroupList_Warning,
+
+    -- ** RegionInstanceGroupList_Warning_Code
+    RegionInstanceGroupList_Warning_Code (..),
+
+    -- ** RegionInstanceGroupList_Warning_DataItem
+    RegionInstanceGroupList_Warning_DataItem (..),
+    newRegionInstanceGroupList_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagerDeleteInstanceConfigReq
+    RegionInstanceGroupManagerDeleteInstanceConfigReq (..),
+    newRegionInstanceGroupManagerDeleteInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagerList
+    RegionInstanceGroupManagerList (..),
+    newRegionInstanceGroupManagerList,
+
+    -- ** RegionInstanceGroupManagerList_Warning
+    RegionInstanceGroupManagerList_Warning (..),
+    newRegionInstanceGroupManagerList_Warning,
+
+    -- ** RegionInstanceGroupManagerList_Warning_Code
+    RegionInstanceGroupManagerList_Warning_Code (..),
+
+    -- ** RegionInstanceGroupManagerList_Warning_DataItem
+    RegionInstanceGroupManagerList_Warning_DataItem (..),
+    newRegionInstanceGroupManagerList_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagerPatchInstanceConfigReq
+    RegionInstanceGroupManagerPatchInstanceConfigReq (..),
+    newRegionInstanceGroupManagerPatchInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagerUpdateInstanceConfigReq
+    RegionInstanceGroupManagerUpdateInstanceConfigReq (..),
+    newRegionInstanceGroupManagerUpdateInstanceConfigReq,
+
+    -- ** RegionInstanceGroupManagersAbandonInstancesRequest
+    RegionInstanceGroupManagersAbandonInstancesRequest (..),
+    newRegionInstanceGroupManagersAbandonInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest
+    RegionInstanceGroupManagersApplyUpdatesRequest (..),
+    newRegionInstanceGroupManagersApplyUpdatesRequest,
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest_MinimalAction
+    RegionInstanceGroupManagersApplyUpdatesRequest_MinimalAction (..),
+
+    -- ** RegionInstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction
+    RegionInstanceGroupManagersApplyUpdatesRequest_MostDisruptiveAllowedAction (..),
+
+    -- ** RegionInstanceGroupManagersCreateInstancesRequest
+    RegionInstanceGroupManagersCreateInstancesRequest (..),
+    newRegionInstanceGroupManagersCreateInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersDeleteInstancesRequest
+    RegionInstanceGroupManagersDeleteInstancesRequest (..),
+    newRegionInstanceGroupManagersDeleteInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersListErrorsResponse
+    RegionInstanceGroupManagersListErrorsResponse (..),
+    newRegionInstanceGroupManagersListErrorsResponse,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp
+    RegionInstanceGroupManagersListInstanceConfigsResp (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp_Warning,
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning_Code
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning_Code (..),
+
+    -- ** RegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem
+    RegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem (..),
+    newRegionInstanceGroupManagersListInstanceConfigsResp_Warning_DataItem,
+
+    -- ** RegionInstanceGroupManagersListInstancesResponse
+    RegionInstanceGroupManagersListInstancesResponse (..),
+    newRegionInstanceGroupManagersListInstancesResponse,
+
+    -- ** RegionInstanceGroupManagersRecreateRequest
+    RegionInstanceGroupManagersRecreateRequest (..),
+    newRegionInstanceGroupManagersRecreateRequest,
+
+    -- ** RegionInstanceGroupManagersResumeInstancesRequest
+    RegionInstanceGroupManagersResumeInstancesRequest (..),
+    newRegionInstanceGroupManagersResumeInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersSetTargetPoolsRequest
+    RegionInstanceGroupManagersSetTargetPoolsRequest (..),
+    newRegionInstanceGroupManagersSetTargetPoolsRequest,
+
+    -- ** RegionInstanceGroupManagersSetTemplateRequest
+    RegionInstanceGroupManagersSetTemplateRequest (..),
+    newRegionInstanceGroupManagersSetTemplateRequest,
+
+    -- ** RegionInstanceGroupManagersStartInstancesRequest
+    RegionInstanceGroupManagersStartInstancesRequest (..),
+    newRegionInstanceGroupManagersStartInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersStopInstancesRequest
+    RegionInstanceGroupManagersStopInstancesRequest (..),
+    newRegionInstanceGroupManagersStopInstancesRequest,
+
+    -- ** RegionInstanceGroupManagersSuspendInstancesRequest
+    RegionInstanceGroupManagersSuspendInstancesRequest (..),
+    newRegionInstanceGroupManagersSuspendInstancesRequest,
+
+    -- ** RegionInstanceGroupsListInstances
+    RegionInstanceGroupsListInstances (..),
+    newRegionInstanceGroupsListInstances,
+
+    -- ** RegionInstanceGroupsListInstances_Warning
+    RegionInstanceGroupsListInstances_Warning (..),
+    newRegionInstanceGroupsListInstances_Warning,
+
+    -- ** RegionInstanceGroupsListInstances_Warning_Code
+    RegionInstanceGroupsListInstances_Warning_Code (..),
+
+    -- ** RegionInstanceGroupsListInstances_Warning_DataItem
+    RegionInstanceGroupsListInstances_Warning_DataItem (..),
+    newRegionInstanceGroupsListInstances_Warning_DataItem,
+
+    -- ** RegionInstanceGroupsListInstancesRequest
+    RegionInstanceGroupsListInstancesRequest (..),
+    newRegionInstanceGroupsListInstancesRequest,
+
+    -- ** RegionInstanceGroupsListInstancesRequest_InstanceState
+    RegionInstanceGroupsListInstancesRequest_InstanceState (..),
+
+    -- ** RegionInstanceGroupsSetNamedPortsRequest
+    RegionInstanceGroupsSetNamedPortsRequest (..),
+    newRegionInstanceGroupsSetNamedPortsRequest,
+
+    -- ** RegionList
+    RegionList (..),
+    newRegionList,
+
+    -- ** RegionList_Warning
+    RegionList_Warning (..),
+    newRegionList_Warning,
+
+    -- ** RegionList_Warning_Code
+    RegionList_Warning_Code (..),
+
+    -- ** RegionList_Warning_DataItem
+    RegionList_Warning_DataItem (..),
+    newRegionList_Warning_DataItem,
+
+    -- ** RegionNetworkEndpointGroupsAttachEndpointsRequest
+    RegionNetworkEndpointGroupsAttachEndpointsRequest (..),
+    newRegionNetworkEndpointGroupsAttachEndpointsRequest,
+
+    -- ** RegionNetworkEndpointGroupsDetachEndpointsRequest
+    RegionNetworkEndpointGroupsDetachEndpointsRequest (..),
+    newRegionNetworkEndpointGroupsDetachEndpointsRequest,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse (..),
+    newRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy (..),
+    newRegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy,
+
+    -- ** RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type
+    RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponseEffectiveFirewallPolicy_Type (..),
+
+    -- ** RegionSetLabelsRequest
+    RegionSetLabelsRequest (..),
+    newRegionSetLabelsRequest,
+
+    -- ** RegionSetLabelsRequest_Labels
+    RegionSetLabelsRequest_Labels (..),
+    newRegionSetLabelsRequest_Labels,
+
+    -- ** RegionSetPolicyRequest
+    RegionSetPolicyRequest (..),
+    newRegionSetPolicyRequest,
+
+    -- ** RegionTargetHttpsProxiesSetSslCertificatesRequest
+    RegionTargetHttpsProxiesSetSslCertificatesRequest (..),
+    newRegionTargetHttpsProxiesSetSslCertificatesRequest,
+
+    -- ** RegionUrlMapsValidateRequest
+    RegionUrlMapsValidateRequest (..),
+    newRegionUrlMapsValidateRequest,
+
+    -- ** RequestMirrorPolicy
+    RequestMirrorPolicy (..),
+    newRequestMirrorPolicy,
+
+    -- ** Reservation
+    Reservation (..),
+    newReservation,
+
+    -- ** Reservation_ResourcePolicies
+    Reservation_ResourcePolicies (..),
+    newReservation_ResourcePolicies,
+
+    -- ** Reservation_Status
+    Reservation_Status (..),
+
+    -- ** ReservationAffinity
+    ReservationAffinity (..),
+    newReservationAffinity,
+
+    -- ** ReservationAffinity_ConsumeReservationType
+    ReservationAffinity_ConsumeReservationType (..),
+
+    -- ** ReservationAggregatedList
+    ReservationAggregatedList (..),
+    newReservationAggregatedList,
+
+    -- ** ReservationAggregatedList_Items
+    ReservationAggregatedList_Items (..),
+    newReservationAggregatedList_Items,
+
+    -- ** ReservationAggregatedList_Warning
+    ReservationAggregatedList_Warning (..),
+    newReservationAggregatedList_Warning,
+
+    -- ** ReservationAggregatedList_Warning_Code
+    ReservationAggregatedList_Warning_Code (..),
+
+    -- ** ReservationAggregatedList_Warning_DataItem
+    ReservationAggregatedList_Warning_DataItem (..),
+    newReservationAggregatedList_Warning_DataItem,
+
+    -- ** ReservationList
+    ReservationList (..),
+    newReservationList,
+
+    -- ** ReservationList_Warning
+    ReservationList_Warning (..),
+    newReservationList_Warning,
+
+    -- ** ReservationList_Warning_Code
+    ReservationList_Warning_Code (..),
+
+    -- ** ReservationList_Warning_DataItem
+    ReservationList_Warning_DataItem (..),
+    newReservationList_Warning_DataItem,
+
+    -- ** ReservationsResizeRequest
+    ReservationsResizeRequest (..),
+    newReservationsResizeRequest,
+
+    -- ** ReservationsScopedList
+    ReservationsScopedList (..),
+    newReservationsScopedList,
+
+    -- ** ReservationsScopedList_Warning
+    ReservationsScopedList_Warning (..),
+    newReservationsScopedList_Warning,
+
+    -- ** ReservationsScopedList_Warning_Code
+    ReservationsScopedList_Warning_Code (..),
+
+    -- ** ReservationsScopedList_Warning_DataItem
+    ReservationsScopedList_Warning_DataItem (..),
+    newReservationsScopedList_Warning_DataItem,
+
+    -- ** ResourceCommitment
+    ResourceCommitment (..),
+    newResourceCommitment,
+
+    -- ** ResourceCommitment_Type
+    ResourceCommitment_Type (..),
+
+    -- ** ResourceGroupReference
+    ResourceGroupReference (..),
+    newResourceGroupReference,
+
+    -- ** ResourcePoliciesScopedList
+    ResourcePoliciesScopedList (..),
+    newResourcePoliciesScopedList,
+
+    -- ** ResourcePoliciesScopedList_Warning
+    ResourcePoliciesScopedList_Warning (..),
+    newResourcePoliciesScopedList_Warning,
+
+    -- ** ResourcePoliciesScopedList_Warning_Code
+    ResourcePoliciesScopedList_Warning_Code (..),
+
+    -- ** ResourcePoliciesScopedList_Warning_DataItem
+    ResourcePoliciesScopedList_Warning_DataItem (..),
+    newResourcePoliciesScopedList_Warning_DataItem,
+
+    -- ** ResourcePolicy
+    ResourcePolicy (..),
+    newResourcePolicy,
+
+    -- ** ResourcePolicy_Status
+    ResourcePolicy_Status (..),
+
+    -- ** ResourcePolicyAggregatedList
+    ResourcePolicyAggregatedList (..),
+    newResourcePolicyAggregatedList,
+
+    -- ** ResourcePolicyAggregatedList_Items
+    ResourcePolicyAggregatedList_Items (..),
+    newResourcePolicyAggregatedList_Items,
+
+    -- ** ResourcePolicyAggregatedList_Warning
+    ResourcePolicyAggregatedList_Warning (..),
+    newResourcePolicyAggregatedList_Warning,
+
+    -- ** ResourcePolicyAggregatedList_Warning_Code
+    ResourcePolicyAggregatedList_Warning_Code (..),
+
+    -- ** ResourcePolicyAggregatedList_Warning_DataItem
+    ResourcePolicyAggregatedList_Warning_DataItem (..),
+    newResourcePolicyAggregatedList_Warning_DataItem,
+
+    -- ** ResourcePolicyDailyCycle
+    ResourcePolicyDailyCycle (..),
+    newResourcePolicyDailyCycle,
+
+    -- ** ResourcePolicyDiskConsistencyGroupPolicy
+    ResourcePolicyDiskConsistencyGroupPolicy (..),
+    newResourcePolicyDiskConsistencyGroupPolicy,
+
+    -- ** ResourcePolicyGroupPlacementPolicy
+    ResourcePolicyGroupPlacementPolicy (..),
+    newResourcePolicyGroupPlacementPolicy,
+
+    -- ** ResourcePolicyGroupPlacementPolicy_Collocation
+    ResourcePolicyGroupPlacementPolicy_Collocation (..),
+
+    -- ** ResourcePolicyHourlyCycle
+    ResourcePolicyHourlyCycle (..),
+    newResourcePolicyHourlyCycle,
+
+    -- ** ResourcePolicyInstanceSchedulePolicy
+    ResourcePolicyInstanceSchedulePolicy (..),
+    newResourcePolicyInstanceSchedulePolicy,
+
+    -- ** ResourcePolicyInstanceSchedulePolicySchedule
+    ResourcePolicyInstanceSchedulePolicySchedule (..),
+    newResourcePolicyInstanceSchedulePolicySchedule,
+
+    -- ** ResourcePolicyList
+    ResourcePolicyList (..),
+    newResourcePolicyList,
+
+    -- ** ResourcePolicyList_Warning
+    ResourcePolicyList_Warning (..),
+    newResourcePolicyList_Warning,
+
+    -- ** ResourcePolicyList_Warning_Code
+    ResourcePolicyList_Warning_Code (..),
+
+    -- ** ResourcePolicyList_Warning_DataItem
+    ResourcePolicyList_Warning_DataItem (..),
+    newResourcePolicyList_Warning_DataItem,
+
+    -- ** ResourcePolicyResourceStatus
+    ResourcePolicyResourceStatus (..),
+    newResourcePolicyResourceStatus,
+
+    -- ** ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
+    ResourcePolicyResourceStatusInstanceSchedulePolicyStatus (..),
+    newResourcePolicyResourceStatusInstanceSchedulePolicyStatus,
+
+    -- ** ResourcePolicySnapshotSchedulePolicy
+    ResourcePolicySnapshotSchedulePolicy (..),
+    newResourcePolicySnapshotSchedulePolicy,
+
+    -- ** ResourcePolicySnapshotSchedulePolicyRetentionPolicy
+    ResourcePolicySnapshotSchedulePolicyRetentionPolicy (..),
+    newResourcePolicySnapshotSchedulePolicyRetentionPolicy,
+
+    -- ** ResourcePolicySnapshotSchedulePolicyRetentionPolicy_OnSourceDiskDelete
+    ResourcePolicySnapshotSchedulePolicyRetentionPolicy_OnSourceDiskDelete (..),
+
+    -- ** ResourcePolicySnapshotSchedulePolicySchedule
+    ResourcePolicySnapshotSchedulePolicySchedule (..),
+    newResourcePolicySnapshotSchedulePolicySchedule,
+
+    -- ** ResourcePolicySnapshotSchedulePolicySnapshotProperties
+    ResourcePolicySnapshotSchedulePolicySnapshotProperties (..),
+    newResourcePolicySnapshotSchedulePolicySnapshotProperties,
+
+    -- ** ResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels
+    ResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels (..),
+    newResourcePolicySnapshotSchedulePolicySnapshotProperties_Labels,
+
+    -- ** ResourcePolicyWeeklyCycle
+    ResourcePolicyWeeklyCycle (..),
+    newResourcePolicyWeeklyCycle,
+
+    -- ** ResourcePolicyWeeklyCycleDayOfWeek
+    ResourcePolicyWeeklyCycleDayOfWeek (..),
+    newResourcePolicyWeeklyCycleDayOfWeek,
+
+    -- ** ResourcePolicyWeeklyCycleDayOfWeek_Day
+    ResourcePolicyWeeklyCycleDayOfWeek_Day (..),
+
+    -- ** ResourceStatus
+    ResourceStatus (..),
+    newResourceStatus,
+
+    -- ** ResourceStatusScheduling
+    ResourceStatusScheduling (..),
+    newResourceStatusScheduling,
+
+    -- ** Route
+    Route (..),
+    newRoute,
+
+    -- ** Route_NextHopOrigin
+    Route_NextHopOrigin (..),
+
+    -- ** Route_RouteStatus
+    Route_RouteStatus (..),
+
+    -- ** Route_RouteType
+    Route_RouteType (..),
+
+    -- ** Route_WarningsItem
+    Route_WarningsItem (..),
+    newRoute_WarningsItem,
+
+    -- ** Route_WarningsItem_Code
+    Route_WarningsItem_Code (..),
+
+    -- ** Route_WarningsItem_DataItem
+    Route_WarningsItem_DataItem (..),
+    newRoute_WarningsItem_DataItem,
+
+    -- ** RouteAsPath
+    RouteAsPath (..),
+    newRouteAsPath,
+
+    -- ** RouteAsPath_PathSegmentType
+    RouteAsPath_PathSegmentType (..),
+
+    -- ** RouteList
+    RouteList (..),
+    newRouteList,
+
+    -- ** RouteList_Warning
+    RouteList_Warning (..),
+    newRouteList_Warning,
+
+    -- ** RouteList_Warning_Code
+    RouteList_Warning_Code (..),
+
+    -- ** RouteList_Warning_DataItem
+    RouteList_Warning_DataItem (..),
+    newRouteList_Warning_DataItem,
+
+    -- ** RoutePolicy
+    RoutePolicy (..),
+    newRoutePolicy,
+
+    -- ** RoutePolicy_Type
+    RoutePolicy_Type (..),
+
+    -- ** RoutePolicyPolicyTerm
+    RoutePolicyPolicyTerm (..),
+    newRoutePolicyPolicyTerm,
+
+    -- ** Router
+    Router (..),
+    newRouter,
+
+    -- ** RouterAdvertisedIpRange
+    RouterAdvertisedIpRange (..),
+    newRouterAdvertisedIpRange,
+
+    -- ** RouterAggregatedList
+    RouterAggregatedList (..),
+    newRouterAggregatedList,
+
+    -- ** RouterAggregatedList_Items
+    RouterAggregatedList_Items (..),
+    newRouterAggregatedList_Items,
+
+    -- ** RouterAggregatedList_Warning
+    RouterAggregatedList_Warning (..),
+    newRouterAggregatedList_Warning,
+
+    -- ** RouterAggregatedList_Warning_Code
+    RouterAggregatedList_Warning_Code (..),
+
+    -- ** RouterAggregatedList_Warning_DataItem
+    RouterAggregatedList_Warning_DataItem (..),
+    newRouterAggregatedList_Warning_DataItem,
+
+    -- ** RouterBgp
+    RouterBgp (..),
+    newRouterBgp,
+
+    -- ** RouterBgp_AdvertiseMode
+    RouterBgp_AdvertiseMode (..),
+
+    -- ** RouterBgp_AdvertisedGroupsItem
+    RouterBgp_AdvertisedGroupsItem (..),
+
+    -- ** RouterBgpPeer
+    RouterBgpPeer (..),
+    newRouterBgpPeer,
+
+    -- ** RouterBgpPeer_AdvertiseMode
+    RouterBgpPeer_AdvertiseMode (..),
+
+    -- ** RouterBgpPeer_AdvertisedGroupsItem
+    RouterBgpPeer_AdvertisedGroupsItem (..),
+
+    -- ** RouterBgpPeer_Enable
+    RouterBgpPeer_Enable (..),
+
+    -- ** RouterBgpPeer_ManagementType
+    RouterBgpPeer_ManagementType (..),
+
+    -- ** RouterBgpPeerBfd
+    RouterBgpPeerBfd (..),
+    newRouterBgpPeerBfd,
+
+    -- ** RouterBgpPeerBfd_SessionInitializationMode
+    RouterBgpPeerBfd_SessionInitializationMode (..),
+
+    -- ** RouterBgpPeerCustomLearnedIpRange
+    RouterBgpPeerCustomLearnedIpRange (..),
+    newRouterBgpPeerCustomLearnedIpRange,
+
+    -- ** RouterInterface
+    RouterInterface (..),
+    newRouterInterface,
+
+    -- ** RouterInterface_IpVersion
+    RouterInterface_IpVersion (..),
+
+    -- ** RouterInterface_ManagementType
+    RouterInterface_ManagementType (..),
+
+    -- ** RouterList
+    RouterList (..),
+    newRouterList,
+
+    -- ** RouterList_Warning
+    RouterList_Warning (..),
+    newRouterList_Warning,
+
+    -- ** RouterList_Warning_Code
+    RouterList_Warning_Code (..),
+
+    -- ** RouterList_Warning_DataItem
+    RouterList_Warning_DataItem (..),
+    newRouterList_Warning_DataItem,
+
+    -- ** RouterMd5AuthenticationKey
+    RouterMd5AuthenticationKey (..),
+    newRouterMd5AuthenticationKey,
+
+    -- ** RouterNat
+    RouterNat (..),
+    newRouterNat,
+
+    -- ** RouterNat_AutoNetworkTier
+    RouterNat_AutoNetworkTier (..),
+
+    -- ** RouterNat_EndpointTypesItem
+    RouterNat_EndpointTypesItem (..),
+
+    -- ** RouterNat_NatIpAllocateOption
+    RouterNat_NatIpAllocateOption (..),
+
+    -- ** RouterNat_SourceSubnetworkIpRangesToNat
+    RouterNat_SourceSubnetworkIpRangesToNat (..),
+
+    -- ** RouterNat_Type
+    RouterNat_Type (..),
+
+    -- ** RouterNatLogConfig
+    RouterNatLogConfig (..),
+    newRouterNatLogConfig,
+
+    -- ** RouterNatLogConfig_Filter
+    RouterNatLogConfig_Filter (..),
+
+    -- ** RouterNatRule
+    RouterNatRule (..),
+    newRouterNatRule,
+
+    -- ** RouterNatRuleAction
+    RouterNatRuleAction (..),
+    newRouterNatRuleAction,
+
+    -- ** RouterNatSubnetworkToNat
+    RouterNatSubnetworkToNat (..),
+    newRouterNatSubnetworkToNat,
+
+    -- ** RouterNatSubnetworkToNat_SourceIpRangesToNatItem
+    RouterNatSubnetworkToNat_SourceIpRangesToNatItem (..),
+
+    -- ** RouterStatus
+    RouterStatus (..),
+    newRouterStatus,
+
+    -- ** RouterStatusBgpPeerStatus
+    RouterStatusBgpPeerStatus (..),
+    newRouterStatusBgpPeerStatus,
+
+    -- ** RouterStatusBgpPeerStatus_Status
+    RouterStatusBgpPeerStatus_Status (..),
+
+    -- ** RouterStatusBgpPeerStatus_StatusReason
+    RouterStatusBgpPeerStatus_StatusReason (..),
+
+    -- ** RouterStatusNatStatus
+    RouterStatusNatStatus (..),
+    newRouterStatusNatStatus,
+
+    -- ** RouterStatusNatStatusNatRuleStatus
+    RouterStatusNatStatusNatRuleStatus (..),
+    newRouterStatusNatStatusNatRuleStatus,
+
+    -- ** RouterStatusResponse
+    RouterStatusResponse (..),
+    newRouterStatusResponse,
+
+    -- ** RoutersGetRoutePolicyResponse
+    RoutersGetRoutePolicyResponse (..),
+    newRoutersGetRoutePolicyResponse,
+
+    -- ** RoutersListBgpRoutes
+    RoutersListBgpRoutes (..),
+    newRoutersListBgpRoutes,
+
+    -- ** RoutersListBgpRoutes_Warning
+    RoutersListBgpRoutes_Warning (..),
+    newRoutersListBgpRoutes_Warning,
+
+    -- ** RoutersListBgpRoutes_Warning_Code
+    RoutersListBgpRoutes_Warning_Code (..),
+
+    -- ** RoutersListBgpRoutes_Warning_DataItem
+    RoutersListBgpRoutes_Warning_DataItem (..),
+    newRoutersListBgpRoutes_Warning_DataItem,
+
+    -- ** RoutersListRoutePolicies
+    RoutersListRoutePolicies (..),
+    newRoutersListRoutePolicies,
+
+    -- ** RoutersListRoutePolicies_Warning
+    RoutersListRoutePolicies_Warning (..),
+    newRoutersListRoutePolicies_Warning,
+
+    -- ** RoutersListRoutePolicies_Warning_Code
+    RoutersListRoutePolicies_Warning_Code (..),
+
+    -- ** RoutersListRoutePolicies_Warning_DataItem
+    RoutersListRoutePolicies_Warning_DataItem (..),
+    newRoutersListRoutePolicies_Warning_DataItem,
+
+    -- ** RoutersPreviewResponse
+    RoutersPreviewResponse (..),
+    newRoutersPreviewResponse,
+
+    -- ** RoutersScopedList
+    RoutersScopedList (..),
+    newRoutersScopedList,
+
+    -- ** RoutersScopedList_Warning
+    RoutersScopedList_Warning (..),
+    newRoutersScopedList_Warning,
+
+    -- ** RoutersScopedList_Warning_Code
+    RoutersScopedList_Warning_Code (..),
+
+    -- ** RoutersScopedList_Warning_DataItem
+    RoutersScopedList_Warning_DataItem (..),
+    newRoutersScopedList_Warning_DataItem,
+
+    -- ** SSLHealthCheck
+    SSLHealthCheck (..),
+    newSSLHealthCheck,
+
+    -- ** SSLHealthCheck_PortSpecification
+    SSLHealthCheck_PortSpecification (..),
+
+    -- ** SSLHealthCheck_ProxyHeader
+    SSLHealthCheck_ProxyHeader (..),
+
+    -- ** SavedAttachedDisk
+    SavedAttachedDisk (..),
+    newSavedAttachedDisk,
+
+    -- ** SavedAttachedDisk_Interface
+    SavedAttachedDisk_Interface (..),
+
+    -- ** SavedAttachedDisk_Mode
+    SavedAttachedDisk_Mode (..),
+
+    -- ** SavedAttachedDisk_StorageBytesStatus
+    SavedAttachedDisk_StorageBytesStatus (..),
+
+    -- ** SavedAttachedDisk_Type
+    SavedAttachedDisk_Type (..),
+
+    -- ** SavedDisk
+    SavedDisk (..),
+    newSavedDisk,
+
+    -- ** SavedDisk_Architecture
+    SavedDisk_Architecture (..),
+
+    -- ** SavedDisk_StorageBytesStatus
+    SavedDisk_StorageBytesStatus (..),
+
+    -- ** ScalingScheduleStatus
+    ScalingScheduleStatus (..),
+    newScalingScheduleStatus,
+
+    -- ** ScalingScheduleStatus_State
+    ScalingScheduleStatus_State (..),
+
+    -- ** Scheduling
+    Scheduling (..),
+    newScheduling,
+
+    -- ** Scheduling_InstanceTerminationAction
+    Scheduling_InstanceTerminationAction (..),
+
+    -- ** Scheduling_OnHostMaintenance
+    Scheduling_OnHostMaintenance (..),
+
+    -- ** Scheduling_ProvisioningModel
+    Scheduling_ProvisioningModel (..),
+
+    -- ** SchedulingNodeAffinity
+    SchedulingNodeAffinity (..),
+    newSchedulingNodeAffinity,
+
+    -- ** SchedulingNodeAffinity_Operator
+    SchedulingNodeAffinity_Operator (..),
+
+    -- ** SchedulingOnInstanceStopAction
+    SchedulingOnInstanceStopAction (..),
+    newSchedulingOnInstanceStopAction,
+
+    -- ** Screenshot
+    Screenshot (..),
+    newScreenshot,
+
+    -- ** SecurityPoliciesAggregatedList
+    SecurityPoliciesAggregatedList (..),
+    newSecurityPoliciesAggregatedList,
+
+    -- ** SecurityPoliciesAggregatedList_Items
+    SecurityPoliciesAggregatedList_Items (..),
+    newSecurityPoliciesAggregatedList_Items,
+
+    -- ** SecurityPoliciesAggregatedList_Warning
+    SecurityPoliciesAggregatedList_Warning (..),
+    newSecurityPoliciesAggregatedList_Warning,
+
+    -- ** SecurityPoliciesAggregatedList_Warning_Code
+    SecurityPoliciesAggregatedList_Warning_Code (..),
+
+    -- ** SecurityPoliciesAggregatedList_Warning_DataItem
+    SecurityPoliciesAggregatedList_Warning_DataItem (..),
+    newSecurityPoliciesAggregatedList_Warning_DataItem,
+
+    -- ** SecurityPoliciesListPreconfiguredExpressionSetsResponse
+    SecurityPoliciesListPreconfiguredExpressionSetsResponse (..),
+    newSecurityPoliciesListPreconfiguredExpressionSetsResponse,
+
+    -- ** SecurityPoliciesScopedList
+    SecurityPoliciesScopedList (..),
+    newSecurityPoliciesScopedList,
+
+    -- ** SecurityPoliciesScopedList_Warning
+    SecurityPoliciesScopedList_Warning (..),
+    newSecurityPoliciesScopedList_Warning,
+
+    -- ** SecurityPoliciesScopedList_Warning_Code
+    SecurityPoliciesScopedList_Warning_Code (..),
+
+    -- ** SecurityPoliciesScopedList_Warning_DataItem
+    SecurityPoliciesScopedList_Warning_DataItem (..),
+    newSecurityPoliciesScopedList_Warning_DataItem,
+
+    -- ** SecurityPoliciesWafConfig
+    SecurityPoliciesWafConfig (..),
+    newSecurityPoliciesWafConfig,
+
+    -- ** SecurityPolicy
+    SecurityPolicy (..),
+    newSecurityPolicy,
+
+    -- ** SecurityPolicy_Labels
+    SecurityPolicy_Labels (..),
+    newSecurityPolicy_Labels,
+
+    -- ** SecurityPolicy_Type
+    SecurityPolicy_Type (..),
+
+    -- ** SecurityPolicyAdaptiveProtectionConfig
+    SecurityPolicyAdaptiveProtectionConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig_RuleVisibility
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfig_RuleVisibility (..),
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig (..),
+    newSecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig,
+
+    -- ** SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig_Type
+    SecurityPolicyAdaptiveProtectionConfigLayer7DdosDefenseConfigThresholdConfigTrafficGranularityConfig_Type (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfig
+    SecurityPolicyAdvancedOptionsConfig (..),
+    newSecurityPolicyAdvancedOptionsConfig,
+
+    -- ** SecurityPolicyAdvancedOptionsConfig_JsonParsing
+    SecurityPolicyAdvancedOptionsConfig_JsonParsing (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfig_LogLevel
+    SecurityPolicyAdvancedOptionsConfig_LogLevel (..),
+
+    -- ** SecurityPolicyAdvancedOptionsConfigJsonCustomConfig
+    SecurityPolicyAdvancedOptionsConfigJsonCustomConfig (..),
+    newSecurityPolicyAdvancedOptionsConfigJsonCustomConfig,
+
+    -- ** SecurityPolicyDdosProtectionConfig
+    SecurityPolicyDdosProtectionConfig (..),
+    newSecurityPolicyDdosProtectionConfig,
+
+    -- ** SecurityPolicyDdosProtectionConfig_DdosProtection
+    SecurityPolicyDdosProtectionConfig_DdosProtection (..),
+
+    -- ** SecurityPolicyList
+    SecurityPolicyList (..),
+    newSecurityPolicyList,
+
+    -- ** SecurityPolicyList_Warning
+    SecurityPolicyList_Warning (..),
+    newSecurityPolicyList_Warning,
+
+    -- ** SecurityPolicyList_Warning_Code
+    SecurityPolicyList_Warning_Code (..),
+
+    -- ** SecurityPolicyList_Warning_DataItem
+    SecurityPolicyList_Warning_DataItem (..),
+    newSecurityPolicyList_Warning_DataItem,
+
+    -- ** SecurityPolicyRecaptchaOptionsConfig
+    SecurityPolicyRecaptchaOptionsConfig (..),
+    newSecurityPolicyRecaptchaOptionsConfig,
+
+    -- ** SecurityPolicyReference
+    SecurityPolicyReference (..),
+    newSecurityPolicyReference,
+
+    -- ** SecurityPolicyRule
+    SecurityPolicyRule (..),
+    newSecurityPolicyRule,
+
+    -- ** SecurityPolicyRuleHttpHeaderAction
+    SecurityPolicyRuleHttpHeaderAction (..),
+    newSecurityPolicyRuleHttpHeaderAction,
+
+    -- ** SecurityPolicyRuleHttpHeaderActionHttpHeaderOption
+    SecurityPolicyRuleHttpHeaderActionHttpHeaderOption (..),
+    newSecurityPolicyRuleHttpHeaderActionHttpHeaderOption,
+
+    -- ** SecurityPolicyRuleMatcher
+    SecurityPolicyRuleMatcher (..),
+    newSecurityPolicyRuleMatcher,
+
+    -- ** SecurityPolicyRuleMatcher_VersionedExpr
+    SecurityPolicyRuleMatcher_VersionedExpr (..),
+
+    -- ** SecurityPolicyRuleMatcherConfig
+    SecurityPolicyRuleMatcherConfig (..),
+    newSecurityPolicyRuleMatcherConfig,
+
+    -- ** SecurityPolicyRuleMatcherExprOptions
+    SecurityPolicyRuleMatcherExprOptions (..),
+    newSecurityPolicyRuleMatcherExprOptions,
+
+    -- ** SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions
+    SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions (..),
+    newSecurityPolicyRuleMatcherExprOptionsRecaptchaOptions,
+
+    -- ** SecurityPolicyRuleNetworkMatcher
+    SecurityPolicyRuleNetworkMatcher (..),
+    newSecurityPolicyRuleNetworkMatcher,
+
+    -- ** SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch
+    SecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch (..),
+    newSecurityPolicyRuleNetworkMatcherUserDefinedFieldMatch,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfig
+    SecurityPolicyRulePreconfiguredWafConfig (..),
+    newSecurityPolicyRulePreconfiguredWafConfig,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusion
+    SecurityPolicyRulePreconfiguredWafConfigExclusion (..),
+    newSecurityPolicyRulePreconfiguredWafConfigExclusion,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams
+    SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams (..),
+    newSecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams,
+
+    -- ** SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams_Op
+    SecurityPolicyRulePreconfiguredWafConfigExclusionFieldParams_Op (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptions
+    SecurityPolicyRuleRateLimitOptions (..),
+    newSecurityPolicyRuleRateLimitOptions,
+
+    -- ** SecurityPolicyRuleRateLimitOptions_EnforceOnKey
+    SecurityPolicyRuleRateLimitOptions_EnforceOnKey (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig
+    SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig (..),
+    newSecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig,
+
+    -- ** SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig_EnforceOnKeyType
+    SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig_EnforceOnKeyType (..),
+
+    -- ** SecurityPolicyRuleRateLimitOptionsThreshold
+    SecurityPolicyRuleRateLimitOptionsThreshold (..),
+    newSecurityPolicyRuleRateLimitOptionsThreshold,
+
+    -- ** SecurityPolicyRuleRedirectOptions
+    SecurityPolicyRuleRedirectOptions (..),
+    newSecurityPolicyRuleRedirectOptions,
+
+    -- ** SecurityPolicyRuleRedirectOptions_Type
+    SecurityPolicyRuleRedirectOptions_Type (..),
+
+    -- ** SecurityPolicyUserDefinedField
+    SecurityPolicyUserDefinedField (..),
+    newSecurityPolicyUserDefinedField,
+
+    -- ** SecurityPolicyUserDefinedField_Base
+    SecurityPolicyUserDefinedField_Base (..),
+
+    -- ** SecuritySettings
+    SecuritySettings (..),
+    newSecuritySettings,
+
+    -- ** SerialPortOutput
+    SerialPortOutput (..),
+    newSerialPortOutput,
+
+    -- ** ServerBinding
+    ServerBinding (..),
+    newServerBinding,
+
+    -- ** ServerBinding_Type
+    ServerBinding_Type (..),
+
+    -- ** ServiceAccount
+    ServiceAccount (..),
+    newServiceAccount,
+
+    -- ** ServiceAttachment
+    ServiceAttachment (..),
+    newServiceAttachment,
+
+    -- ** ServiceAttachment_ConnectionPreference
+    ServiceAttachment_ConnectionPreference (..),
+
+    -- ** ServiceAttachmentAggregatedList
+    ServiceAttachmentAggregatedList (..),
+    newServiceAttachmentAggregatedList,
+
+    -- ** ServiceAttachmentAggregatedList_Items
+    ServiceAttachmentAggregatedList_Items (..),
+    newServiceAttachmentAggregatedList_Items,
+
+    -- ** ServiceAttachmentAggregatedList_Warning
+    ServiceAttachmentAggregatedList_Warning (..),
+    newServiceAttachmentAggregatedList_Warning,
+
+    -- ** ServiceAttachmentAggregatedList_Warning_Code
+    ServiceAttachmentAggregatedList_Warning_Code (..),
+
+    -- ** ServiceAttachmentAggregatedList_Warning_DataItem
+    ServiceAttachmentAggregatedList_Warning_DataItem (..),
+    newServiceAttachmentAggregatedList_Warning_DataItem,
+
+    -- ** ServiceAttachmentConnectedEndpoint
+    ServiceAttachmentConnectedEndpoint (..),
+    newServiceAttachmentConnectedEndpoint,
+
+    -- ** ServiceAttachmentConnectedEndpoint_Status
+    ServiceAttachmentConnectedEndpoint_Status (..),
+
+    -- ** ServiceAttachmentConsumerProjectLimit
+    ServiceAttachmentConsumerProjectLimit (..),
+    newServiceAttachmentConsumerProjectLimit,
+
+    -- ** ServiceAttachmentList
+    ServiceAttachmentList (..),
+    newServiceAttachmentList,
+
+    -- ** ServiceAttachmentList_Warning
+    ServiceAttachmentList_Warning (..),
+    newServiceAttachmentList_Warning,
+
+    -- ** ServiceAttachmentList_Warning_Code
+    ServiceAttachmentList_Warning_Code (..),
+
+    -- ** ServiceAttachmentList_Warning_DataItem
+    ServiceAttachmentList_Warning_DataItem (..),
+    newServiceAttachmentList_Warning_DataItem,
+
+    -- ** ServiceAttachmentsScopedList
+    ServiceAttachmentsScopedList (..),
+    newServiceAttachmentsScopedList,
+
+    -- ** ServiceAttachmentsScopedList_Warning
+    ServiceAttachmentsScopedList_Warning (..),
+    newServiceAttachmentsScopedList_Warning,
+
+    -- ** ServiceAttachmentsScopedList_Warning_Code
+    ServiceAttachmentsScopedList_Warning_Code (..),
+
+    -- ** ServiceAttachmentsScopedList_Warning_DataItem
+    ServiceAttachmentsScopedList_Warning_DataItem (..),
+    newServiceAttachmentsScopedList_Warning_DataItem,
+
+    -- ** SetCommonInstanceMetadataOperationMetadata
+    SetCommonInstanceMetadataOperationMetadata (..),
+    newSetCommonInstanceMetadataOperationMetadata,
+
+    -- ** SetCommonInstanceMetadataOperationMetadata_PerLocationOperations
+    SetCommonInstanceMetadataOperationMetadata_PerLocationOperations (..),
+    newSetCommonInstanceMetadataOperationMetadata_PerLocationOperations,
+
+    -- ** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo
+    SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo (..),
+    newSetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo,
+
+    -- ** SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo_State
+    SetCommonInstanceMetadataOperationMetadataPerLocationOperationInfo_State (..),
+
+    -- ** ShareSettings
+    ShareSettings (..),
+    newShareSettings,
+
+    -- ** ShareSettings_ProjectMap
+    ShareSettings_ProjectMap (..),
+    newShareSettings_ProjectMap,
+
+    -- ** ShareSettings_ShareType
+    ShareSettings_ShareType (..),
+
+    -- ** ShareSettingsProjectConfig
+    ShareSettingsProjectConfig (..),
+    newShareSettingsProjectConfig,
+
+    -- ** ShieldedInstanceConfig
+    ShieldedInstanceConfig (..),
+    newShieldedInstanceConfig,
+
+    -- ** ShieldedInstanceIdentity
+    ShieldedInstanceIdentity (..),
+    newShieldedInstanceIdentity,
+
+    -- ** ShieldedInstanceIdentityEntry
+    ShieldedInstanceIdentityEntry (..),
+    newShieldedInstanceIdentityEntry,
+
+    -- ** ShieldedInstanceIntegrityPolicy
+    ShieldedInstanceIntegrityPolicy (..),
+    newShieldedInstanceIntegrityPolicy,
+
+    -- ** SignedUrlKey
+    SignedUrlKey (..),
+    newSignedUrlKey,
+
+    -- ** Snapshot
+    Snapshot (..),
+    newSnapshot,
+
+    -- ** Snapshot_Architecture
+    Snapshot_Architecture (..),
+
+    -- ** Snapshot_Labels
+    Snapshot_Labels (..),
+    newSnapshot_Labels,
+
+    -- ** Snapshot_SnapshotType
+    Snapshot_SnapshotType (..),
+
+    -- ** Snapshot_Status
+    Snapshot_Status (..),
+
+    -- ** Snapshot_StorageBytesStatus
+    Snapshot_StorageBytesStatus (..),
+
+    -- ** SnapshotList
+    SnapshotList (..),
+    newSnapshotList,
+
+    -- ** SnapshotList_Warning
+    SnapshotList_Warning (..),
+    newSnapshotList_Warning,
+
+    -- ** SnapshotList_Warning_Code
+    SnapshotList_Warning_Code (..),
+
+    -- ** SnapshotList_Warning_DataItem
+    SnapshotList_Warning_DataItem (..),
+    newSnapshotList_Warning_DataItem,
+
+    -- ** SnapshotSettings
+    SnapshotSettings (..),
+    newSnapshotSettings,
+
+    -- ** SnapshotSettingsStorageLocationSettings
+    SnapshotSettingsStorageLocationSettings (..),
+    newSnapshotSettingsStorageLocationSettings,
+
+    -- ** SnapshotSettingsStorageLocationSettings_Locations
+    SnapshotSettingsStorageLocationSettings_Locations (..),
+    newSnapshotSettingsStorageLocationSettings_Locations,
+
+    -- ** SnapshotSettingsStorageLocationSettings_Policy
+    SnapshotSettingsStorageLocationSettings_Policy (..),
+
+    -- ** SnapshotSettingsStorageLocationSettingsStorageLocationPreference
+    SnapshotSettingsStorageLocationSettingsStorageLocationPreference (..),
+    newSnapshotSettingsStorageLocationSettingsStorageLocationPreference,
+
+    -- ** SourceDiskEncryptionKey
+    SourceDiskEncryptionKey (..),
+    newSourceDiskEncryptionKey,
+
+    -- ** SourceInstanceParams
+    SourceInstanceParams (..),
+    newSourceInstanceParams,
+
+    -- ** SourceInstanceProperties
+    SourceInstanceProperties (..),
+    newSourceInstanceProperties,
+
+    -- ** SourceInstanceProperties_KeyRevocationActionType
+    SourceInstanceProperties_KeyRevocationActionType (..),
+
+    -- ** SourceInstanceProperties_Labels
+    SourceInstanceProperties_Labels (..),
+    newSourceInstanceProperties_Labels,
+
+    -- ** SslCertificate
+    SslCertificate (..),
+    newSslCertificate,
+
+    -- ** SslCertificate_Type
+    SslCertificate_Type (..),
+
+    -- ** SslCertificateAggregatedList
+    SslCertificateAggregatedList (..),
+    newSslCertificateAggregatedList,
+
+    -- ** SslCertificateAggregatedList_Items
+    SslCertificateAggregatedList_Items (..),
+    newSslCertificateAggregatedList_Items,
+
+    -- ** SslCertificateAggregatedList_Warning
+    SslCertificateAggregatedList_Warning (..),
+    newSslCertificateAggregatedList_Warning,
+
+    -- ** SslCertificateAggregatedList_Warning_Code
+    SslCertificateAggregatedList_Warning_Code (..),
+
+    -- ** SslCertificateAggregatedList_Warning_DataItem
+    SslCertificateAggregatedList_Warning_DataItem (..),
+    newSslCertificateAggregatedList_Warning_DataItem,
+
+    -- ** SslCertificateList
+    SslCertificateList (..),
+    newSslCertificateList,
+
+    -- ** SslCertificateList_Warning
+    SslCertificateList_Warning (..),
+    newSslCertificateList_Warning,
+
+    -- ** SslCertificateList_Warning_Code
+    SslCertificateList_Warning_Code (..),
+
+    -- ** SslCertificateList_Warning_DataItem
+    SslCertificateList_Warning_DataItem (..),
+    newSslCertificateList_Warning_DataItem,
+
+    -- ** SslCertificateManagedSslCertificate
+    SslCertificateManagedSslCertificate (..),
+    newSslCertificateManagedSslCertificate,
+
+    -- ** SslCertificateManagedSslCertificate_DomainStatus
+    SslCertificateManagedSslCertificate_DomainStatus (..),
+    newSslCertificateManagedSslCertificate_DomainStatus,
+
+    -- ** SslCertificateManagedSslCertificate_DomainStatusAdditional
+    SslCertificateManagedSslCertificate_DomainStatusAdditional (..),
+
+    -- ** SslCertificateManagedSslCertificate_Status
+    SslCertificateManagedSslCertificate_Status (..),
+
+    -- ** SslCertificateSelfManagedSslCertificate
+    SslCertificateSelfManagedSslCertificate (..),
+    newSslCertificateSelfManagedSslCertificate,
+
+    -- ** SslCertificatesScopedList
+    SslCertificatesScopedList (..),
+    newSslCertificatesScopedList,
+
+    -- ** SslCertificatesScopedList_Warning
+    SslCertificatesScopedList_Warning (..),
+    newSslCertificatesScopedList_Warning,
+
+    -- ** SslCertificatesScopedList_Warning_Code
+    SslCertificatesScopedList_Warning_Code (..),
+
+    -- ** SslCertificatesScopedList_Warning_DataItem
+    SslCertificatesScopedList_Warning_DataItem (..),
+    newSslCertificatesScopedList_Warning_DataItem,
+
+    -- ** SslPoliciesAggregatedList
+    SslPoliciesAggregatedList (..),
+    newSslPoliciesAggregatedList,
+
+    -- ** SslPoliciesAggregatedList_Items
+    SslPoliciesAggregatedList_Items (..),
+    newSslPoliciesAggregatedList_Items,
+
+    -- ** SslPoliciesAggregatedList_Warning
+    SslPoliciesAggregatedList_Warning (..),
+    newSslPoliciesAggregatedList_Warning,
+
+    -- ** SslPoliciesAggregatedList_Warning_Code
+    SslPoliciesAggregatedList_Warning_Code (..),
+
+    -- ** SslPoliciesAggregatedList_Warning_DataItem
+    SslPoliciesAggregatedList_Warning_DataItem (..),
+    newSslPoliciesAggregatedList_Warning_DataItem,
+
+    -- ** SslPoliciesList
+    SslPoliciesList (..),
+    newSslPoliciesList,
+
+    -- ** SslPoliciesList_Warning
+    SslPoliciesList_Warning (..),
+    newSslPoliciesList_Warning,
+
+    -- ** SslPoliciesList_Warning_Code
+    SslPoliciesList_Warning_Code (..),
+
+    -- ** SslPoliciesList_Warning_DataItem
+    SslPoliciesList_Warning_DataItem (..),
+    newSslPoliciesList_Warning_DataItem,
+
+    -- ** SslPoliciesListAvailableFeaturesResponse
+    SslPoliciesListAvailableFeaturesResponse (..),
+    newSslPoliciesListAvailableFeaturesResponse,
+
+    -- ** SslPoliciesScopedList
+    SslPoliciesScopedList (..),
+    newSslPoliciesScopedList,
+
+    -- ** SslPoliciesScopedList_Warning
+    SslPoliciesScopedList_Warning (..),
+    newSslPoliciesScopedList_Warning,
+
+    -- ** SslPoliciesScopedList_Warning_Code
+    SslPoliciesScopedList_Warning_Code (..),
+
+    -- ** SslPoliciesScopedList_Warning_DataItem
+    SslPoliciesScopedList_Warning_DataItem (..),
+    newSslPoliciesScopedList_Warning_DataItem,
+
+    -- ** SslPolicy
+    SslPolicy (..),
+    newSslPolicy,
+
+    -- ** SslPolicy_MinTlsVersion
+    SslPolicy_MinTlsVersion (..),
+
+    -- ** SslPolicy_Profile
+    SslPolicy_Profile (..),
+
+    -- ** SslPolicy_WarningsItem
+    SslPolicy_WarningsItem (..),
+    newSslPolicy_WarningsItem,
+
+    -- ** SslPolicy_WarningsItem_Code
+    SslPolicy_WarningsItem_Code (..),
+
+    -- ** SslPolicy_WarningsItem_DataItem
+    SslPolicy_WarningsItem_DataItem (..),
+    newSslPolicy_WarningsItem_DataItem,
+
+    -- ** SslPolicyReference
+    SslPolicyReference (..),
+    newSslPolicyReference,
+
+    -- ** StatefulPolicy
+    StatefulPolicy (..),
+    newStatefulPolicy,
+
+    -- ** StatefulPolicyPreservedState
+    StatefulPolicyPreservedState (..),
+    newStatefulPolicyPreservedState,
+
+    -- ** StatefulPolicyPreservedState_Disks
+    StatefulPolicyPreservedState_Disks (..),
+    newStatefulPolicyPreservedState_Disks,
+
+    -- ** StatefulPolicyPreservedState_ExternalIPs
+    StatefulPolicyPreservedState_ExternalIPs (..),
+    newStatefulPolicyPreservedState_ExternalIPs,
+
+    -- ** StatefulPolicyPreservedState_InternalIPs
+    StatefulPolicyPreservedState_InternalIPs (..),
+    newStatefulPolicyPreservedState_InternalIPs,
+
+    -- ** StatefulPolicyPreservedStateDiskDevice
+    StatefulPolicyPreservedStateDiskDevice (..),
+    newStatefulPolicyPreservedStateDiskDevice,
+
+    -- ** StatefulPolicyPreservedStateDiskDevice_AutoDelete
+    StatefulPolicyPreservedStateDiskDevice_AutoDelete (..),
+
+    -- ** StatefulPolicyPreservedStateNetworkIp
+    StatefulPolicyPreservedStateNetworkIp (..),
+    newStatefulPolicyPreservedStateNetworkIp,
+
+    -- ** StatefulPolicyPreservedStateNetworkIp_AutoDelete
+    StatefulPolicyPreservedStateNetworkIp_AutoDelete (..),
+
+    -- ** Status
+    Status (..),
+    newStatus,
+
+    -- ** Status_DetailsItem
+    Status_DetailsItem (..),
+    newStatus_DetailsItem,
+
+    -- ** StoragePool
+    StoragePool (..),
+    newStoragePool,
+
+    -- ** StoragePool_CapacityProvisioningType
+    StoragePool_CapacityProvisioningType (..),
+
+    -- ** StoragePool_Labels
+    StoragePool_Labels (..),
+    newStoragePool_Labels,
+
+    -- ** StoragePool_PerformanceProvisioningType
+    StoragePool_PerformanceProvisioningType (..),
+
+    -- ** StoragePool_State
+    StoragePool_State (..),
+
+    -- ** StoragePoolAggregatedList
+    StoragePoolAggregatedList (..),
+    newStoragePoolAggregatedList,
+
+    -- ** StoragePoolAggregatedList_Items
+    StoragePoolAggregatedList_Items (..),
+    newStoragePoolAggregatedList_Items,
+
+    -- ** StoragePoolAggregatedList_Warning
+    StoragePoolAggregatedList_Warning (..),
+    newStoragePoolAggregatedList_Warning,
+
+    -- ** StoragePoolAggregatedList_Warning_Code
+    StoragePoolAggregatedList_Warning_Code (..),
+
+    -- ** StoragePoolAggregatedList_Warning_DataItem
+    StoragePoolAggregatedList_Warning_DataItem (..),
+    newStoragePoolAggregatedList_Warning_DataItem,
+
+    -- ** StoragePoolDisk
+    StoragePoolDisk (..),
+    newStoragePoolDisk,
+
+    -- ** StoragePoolDisk_Status
+    StoragePoolDisk_Status (..),
+
+    -- ** StoragePoolList
+    StoragePoolList (..),
+    newStoragePoolList,
+
+    -- ** StoragePoolList_Warning
+    StoragePoolList_Warning (..),
+    newStoragePoolList_Warning,
+
+    -- ** StoragePoolList_Warning_Code
+    StoragePoolList_Warning_Code (..),
+
+    -- ** StoragePoolList_Warning_DataItem
+    StoragePoolList_Warning_DataItem (..),
+    newStoragePoolList_Warning_DataItem,
+
+    -- ** StoragePoolListDisks
+    StoragePoolListDisks (..),
+    newStoragePoolListDisks,
+
+    -- ** StoragePoolListDisks_Warning
+    StoragePoolListDisks_Warning (..),
+    newStoragePoolListDisks_Warning,
+
+    -- ** StoragePoolListDisks_Warning_Code
+    StoragePoolListDisks_Warning_Code (..),
+
+    -- ** StoragePoolListDisks_Warning_DataItem
+    StoragePoolListDisks_Warning_DataItem (..),
+    newStoragePoolListDisks_Warning_DataItem,
+
+    -- ** StoragePoolResourceStatus
+    StoragePoolResourceStatus (..),
+    newStoragePoolResourceStatus,
+
+    -- ** StoragePoolType
+    StoragePoolType (..),
+    newStoragePoolType,
+
+    -- ** StoragePoolTypeAggregatedList
+    StoragePoolTypeAggregatedList (..),
+    newStoragePoolTypeAggregatedList,
+
+    -- ** StoragePoolTypeAggregatedList_Items
+    StoragePoolTypeAggregatedList_Items (..),
+    newStoragePoolTypeAggregatedList_Items,
+
+    -- ** StoragePoolTypeAggregatedList_Warning
+    StoragePoolTypeAggregatedList_Warning (..),
+    newStoragePoolTypeAggregatedList_Warning,
+
+    -- ** StoragePoolTypeAggregatedList_Warning_Code
+    StoragePoolTypeAggregatedList_Warning_Code (..),
+
+    -- ** StoragePoolTypeAggregatedList_Warning_DataItem
+    StoragePoolTypeAggregatedList_Warning_DataItem (..),
+    newStoragePoolTypeAggregatedList_Warning_DataItem,
+
+    -- ** StoragePoolTypeList
+    StoragePoolTypeList (..),
+    newStoragePoolTypeList,
+
+    -- ** StoragePoolTypeList_Warning
+    StoragePoolTypeList_Warning (..),
+    newStoragePoolTypeList_Warning,
+
+    -- ** StoragePoolTypeList_Warning_Code
+    StoragePoolTypeList_Warning_Code (..),
+
+    -- ** StoragePoolTypeList_Warning_DataItem
+    StoragePoolTypeList_Warning_DataItem (..),
+    newStoragePoolTypeList_Warning_DataItem,
+
+    -- ** StoragePoolTypesScopedList
+    StoragePoolTypesScopedList (..),
+    newStoragePoolTypesScopedList,
+
+    -- ** StoragePoolTypesScopedList_Warning
+    StoragePoolTypesScopedList_Warning (..),
+    newStoragePoolTypesScopedList_Warning,
+
+    -- ** StoragePoolTypesScopedList_Warning_Code
+    StoragePoolTypesScopedList_Warning_Code (..),
+
+    -- ** StoragePoolTypesScopedList_Warning_DataItem
+    StoragePoolTypesScopedList_Warning_DataItem (..),
+    newStoragePoolTypesScopedList_Warning_DataItem,
+
+    -- ** StoragePoolsScopedList
+    StoragePoolsScopedList (..),
+    newStoragePoolsScopedList,
+
+    -- ** StoragePoolsScopedList_Warning
+    StoragePoolsScopedList_Warning (..),
+    newStoragePoolsScopedList_Warning,
+
+    -- ** StoragePoolsScopedList_Warning_Code
+    StoragePoolsScopedList_Warning_Code (..),
+
+    -- ** StoragePoolsScopedList_Warning_DataItem
+    StoragePoolsScopedList_Warning_DataItem (..),
+    newStoragePoolsScopedList_Warning_DataItem,
+
+    -- ** Subnetwork
+    Subnetwork (..),
+    newSubnetwork,
+
+    -- ** Subnetwork_Ipv6AccessType
+    Subnetwork_Ipv6AccessType (..),
+
+    -- ** Subnetwork_PrivateIpv6GoogleAccess
+    Subnetwork_PrivateIpv6GoogleAccess (..),
+
+    -- ** Subnetwork_Purpose
+    Subnetwork_Purpose (..),
+
+    -- ** Subnetwork_Role
+    Subnetwork_Role (..),
+
+    -- ** Subnetwork_StackType
+    Subnetwork_StackType (..),
+
+    -- ** Subnetwork_State
+    Subnetwork_State (..),
+
+    -- ** SubnetworkAggregatedList
+    SubnetworkAggregatedList (..),
+    newSubnetworkAggregatedList,
+
+    -- ** SubnetworkAggregatedList_Items
+    SubnetworkAggregatedList_Items (..),
+    newSubnetworkAggregatedList_Items,
+
+    -- ** SubnetworkAggregatedList_Warning
+    SubnetworkAggregatedList_Warning (..),
+    newSubnetworkAggregatedList_Warning,
+
+    -- ** SubnetworkAggregatedList_Warning_Code
+    SubnetworkAggregatedList_Warning_Code (..),
+
+    -- ** SubnetworkAggregatedList_Warning_DataItem
+    SubnetworkAggregatedList_Warning_DataItem (..),
+    newSubnetworkAggregatedList_Warning_DataItem,
+
+    -- ** SubnetworkList
+    SubnetworkList (..),
+    newSubnetworkList,
+
+    -- ** SubnetworkList_Warning
+    SubnetworkList_Warning (..),
+    newSubnetworkList_Warning,
+
+    -- ** SubnetworkList_Warning_Code
+    SubnetworkList_Warning_Code (..),
+
+    -- ** SubnetworkList_Warning_DataItem
+    SubnetworkList_Warning_DataItem (..),
+    newSubnetworkList_Warning_DataItem,
+
+    -- ** SubnetworkLogConfig
+    SubnetworkLogConfig (..),
+    newSubnetworkLogConfig,
+
+    -- ** SubnetworkLogConfig_AggregationInterval
+    SubnetworkLogConfig_AggregationInterval (..),
+
+    -- ** SubnetworkLogConfig_Metadata
+    SubnetworkLogConfig_Metadata (..),
+
+    -- ** SubnetworkSecondaryRange
+    SubnetworkSecondaryRange (..),
+    newSubnetworkSecondaryRange,
+
+    -- ** SubnetworksExpandIpCidrRangeRequest
+    SubnetworksExpandIpCidrRangeRequest (..),
+    newSubnetworksExpandIpCidrRangeRequest,
+
+    -- ** SubnetworksScopedList
+    SubnetworksScopedList (..),
+    newSubnetworksScopedList,
+
+    -- ** SubnetworksScopedList_Warning
+    SubnetworksScopedList_Warning (..),
+    newSubnetworksScopedList_Warning,
+
+    -- ** SubnetworksScopedList_Warning_Code
+    SubnetworksScopedList_Warning_Code (..),
+
+    -- ** SubnetworksScopedList_Warning_DataItem
+    SubnetworksScopedList_Warning_DataItem (..),
+    newSubnetworksScopedList_Warning_DataItem,
+
+    -- ** SubnetworksSetPrivateIpGoogleAccessRequest
+    SubnetworksSetPrivateIpGoogleAccessRequest (..),
+    newSubnetworksSetPrivateIpGoogleAccessRequest,
+
+    -- ** Subsetting
+    Subsetting (..),
+    newSubsetting,
+
+    -- ** Subsetting_Policy
+    Subsetting_Policy (..),
+
+    -- ** TCPHealthCheck
+    TCPHealthCheck (..),
+    newTCPHealthCheck,
+
+    -- ** TCPHealthCheck_PortSpecification
+    TCPHealthCheck_PortSpecification (..),
+
+    -- ** TCPHealthCheck_ProxyHeader
+    TCPHealthCheck_ProxyHeader (..),
+
+    -- ** Tags
+    Tags (..),
+    newTags,
+
+    -- ** TargetGrpcProxy
+    TargetGrpcProxy (..),
+    newTargetGrpcProxy,
+
+    -- ** TargetGrpcProxyList
+    TargetGrpcProxyList (..),
+    newTargetGrpcProxyList,
+
+    -- ** TargetGrpcProxyList_Warning
+    TargetGrpcProxyList_Warning (..),
+    newTargetGrpcProxyList_Warning,
+
+    -- ** TargetGrpcProxyList_Warning_Code
+    TargetGrpcProxyList_Warning_Code (..),
+
+    -- ** TargetGrpcProxyList_Warning_DataItem
+    TargetGrpcProxyList_Warning_DataItem (..),
+    newTargetGrpcProxyList_Warning_DataItem,
+
+    -- ** TargetHttpProxiesScopedList
+    TargetHttpProxiesScopedList (..),
+    newTargetHttpProxiesScopedList,
+
+    -- ** TargetHttpProxiesScopedList_Warning
+    TargetHttpProxiesScopedList_Warning (..),
+    newTargetHttpProxiesScopedList_Warning,
+
+    -- ** TargetHttpProxiesScopedList_Warning_Code
+    TargetHttpProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetHttpProxiesScopedList_Warning_DataItem
+    TargetHttpProxiesScopedList_Warning_DataItem (..),
+    newTargetHttpProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetHttpProxy
+    TargetHttpProxy (..),
+    newTargetHttpProxy,
+
+    -- ** TargetHttpProxyAggregatedList
+    TargetHttpProxyAggregatedList (..),
+    newTargetHttpProxyAggregatedList,
+
+    -- ** TargetHttpProxyAggregatedList_Items
+    TargetHttpProxyAggregatedList_Items (..),
+    newTargetHttpProxyAggregatedList_Items,
+
+    -- ** TargetHttpProxyList
+    TargetHttpProxyList (..),
+    newTargetHttpProxyList,
+
+    -- ** TargetHttpProxyList_Warning
+    TargetHttpProxyList_Warning (..),
+    newTargetHttpProxyList_Warning,
+
+    -- ** TargetHttpProxyList_Warning_Code
+    TargetHttpProxyList_Warning_Code (..),
+
+    -- ** TargetHttpProxyList_Warning_DataItem
+    TargetHttpProxyList_Warning_DataItem (..),
+    newTargetHttpProxyList_Warning_DataItem,
+
+    -- ** TargetHttpsProxiesScopedList
+    TargetHttpsProxiesScopedList (..),
+    newTargetHttpsProxiesScopedList,
+
+    -- ** TargetHttpsProxiesScopedList_Warning
+    TargetHttpsProxiesScopedList_Warning (..),
+    newTargetHttpsProxiesScopedList_Warning,
+
+    -- ** TargetHttpsProxiesScopedList_Warning_Code
+    TargetHttpsProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetHttpsProxiesScopedList_Warning_DataItem
+    TargetHttpsProxiesScopedList_Warning_DataItem (..),
+    newTargetHttpsProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetHttpsProxiesSetCertificateMapRequest
+    TargetHttpsProxiesSetCertificateMapRequest (..),
+    newTargetHttpsProxiesSetCertificateMapRequest,
+
+    -- ** TargetHttpsProxiesSetQuicOverrideRequest
+    TargetHttpsProxiesSetQuicOverrideRequest (..),
+    newTargetHttpsProxiesSetQuicOverrideRequest,
+
+    -- ** TargetHttpsProxiesSetQuicOverrideRequest_QuicOverride
+    TargetHttpsProxiesSetQuicOverrideRequest_QuicOverride (..),
+
+    -- ** TargetHttpsProxiesSetSslCertificatesRequest
+    TargetHttpsProxiesSetSslCertificatesRequest (..),
+    newTargetHttpsProxiesSetSslCertificatesRequest,
+
+    -- ** TargetHttpsProxy
+    TargetHttpsProxy (..),
+    newTargetHttpsProxy,
+
+    -- ** TargetHttpsProxy_QuicOverride
+    TargetHttpsProxy_QuicOverride (..),
+
+    -- ** TargetHttpsProxy_TlsEarlyData
+    TargetHttpsProxy_TlsEarlyData (..),
+
+    -- ** TargetHttpsProxyAggregatedList
+    TargetHttpsProxyAggregatedList (..),
+    newTargetHttpsProxyAggregatedList,
+
+    -- ** TargetHttpsProxyAggregatedList_Items
+    TargetHttpsProxyAggregatedList_Items (..),
+    newTargetHttpsProxyAggregatedList_Items,
+
+    -- ** TargetHttpsProxyAggregatedList_Warning
+    TargetHttpsProxyAggregatedList_Warning (..),
+    newTargetHttpsProxyAggregatedList_Warning,
+
+    -- ** TargetHttpsProxyAggregatedList_Warning_Code
+    TargetHttpsProxyAggregatedList_Warning_Code (..),
+
+    -- ** TargetHttpsProxyAggregatedList_Warning_DataItem
+    TargetHttpsProxyAggregatedList_Warning_DataItem (..),
+    newTargetHttpsProxyAggregatedList_Warning_DataItem,
+
+    -- ** TargetHttpsProxyList
+    TargetHttpsProxyList (..),
+    newTargetHttpsProxyList,
+
+    -- ** TargetHttpsProxyList_Warning
+    TargetHttpsProxyList_Warning (..),
+    newTargetHttpsProxyList_Warning,
+
+    -- ** TargetHttpsProxyList_Warning_Code
+    TargetHttpsProxyList_Warning_Code (..),
+
+    -- ** TargetHttpsProxyList_Warning_DataItem
+    TargetHttpsProxyList_Warning_DataItem (..),
+    newTargetHttpsProxyList_Warning_DataItem,
+
+    -- ** TargetInstance
+    TargetInstance (..),
+    newTargetInstance,
+
+    -- ** TargetInstance_NatPolicy
+    TargetInstance_NatPolicy (..),
+
+    -- ** TargetInstanceAggregatedList
+    TargetInstanceAggregatedList (..),
+    newTargetInstanceAggregatedList,
+
+    -- ** TargetInstanceAggregatedList_Items
+    TargetInstanceAggregatedList_Items (..),
+    newTargetInstanceAggregatedList_Items,
+
+    -- ** TargetInstanceAggregatedList_Warning
+    TargetInstanceAggregatedList_Warning (..),
+    newTargetInstanceAggregatedList_Warning,
+
+    -- ** TargetInstanceAggregatedList_Warning_Code
+    TargetInstanceAggregatedList_Warning_Code (..),
+
+    -- ** TargetInstanceAggregatedList_Warning_DataItem
+    TargetInstanceAggregatedList_Warning_DataItem (..),
+    newTargetInstanceAggregatedList_Warning_DataItem,
+
+    -- ** TargetInstanceList
+    TargetInstanceList (..),
+    newTargetInstanceList,
+
+    -- ** TargetInstanceList_Warning
+    TargetInstanceList_Warning (..),
+    newTargetInstanceList_Warning,
+
+    -- ** TargetInstanceList_Warning_Code
+    TargetInstanceList_Warning_Code (..),
+
+    -- ** TargetInstanceList_Warning_DataItem
+    TargetInstanceList_Warning_DataItem (..),
+    newTargetInstanceList_Warning_DataItem,
+
+    -- ** TargetInstancesScopedList
+    TargetInstancesScopedList (..),
+    newTargetInstancesScopedList,
+
+    -- ** TargetInstancesScopedList_Warning
+    TargetInstancesScopedList_Warning (..),
+    newTargetInstancesScopedList_Warning,
+
+    -- ** TargetInstancesScopedList_Warning_Code
+    TargetInstancesScopedList_Warning_Code (..),
+
+    -- ** TargetInstancesScopedList_Warning_DataItem
+    TargetInstancesScopedList_Warning_DataItem (..),
+    newTargetInstancesScopedList_Warning_DataItem,
+
+    -- ** TargetPool
+    TargetPool (..),
+    newTargetPool,
+
+    -- ** TargetPool_SessionAffinity
+    TargetPool_SessionAffinity (..),
+
+    -- ** TargetPoolAggregatedList
+    TargetPoolAggregatedList (..),
+    newTargetPoolAggregatedList,
+
+    -- ** TargetPoolAggregatedList_Items
+    TargetPoolAggregatedList_Items (..),
+    newTargetPoolAggregatedList_Items,
+
+    -- ** TargetPoolAggregatedList_Warning
+    TargetPoolAggregatedList_Warning (..),
+    newTargetPoolAggregatedList_Warning,
+
+    -- ** TargetPoolAggregatedList_Warning_Code
+    TargetPoolAggregatedList_Warning_Code (..),
+
+    -- ** TargetPoolAggregatedList_Warning_DataItem
+    TargetPoolAggregatedList_Warning_DataItem (..),
+    newTargetPoolAggregatedList_Warning_DataItem,
+
+    -- ** TargetPoolInstanceHealth
+    TargetPoolInstanceHealth (..),
+    newTargetPoolInstanceHealth,
+
+    -- ** TargetPoolList
+    TargetPoolList (..),
+    newTargetPoolList,
+
+    -- ** TargetPoolList_Warning
+    TargetPoolList_Warning (..),
+    newTargetPoolList_Warning,
+
+    -- ** TargetPoolList_Warning_Code
+    TargetPoolList_Warning_Code (..),
+
+    -- ** TargetPoolList_Warning_DataItem
+    TargetPoolList_Warning_DataItem (..),
+    newTargetPoolList_Warning_DataItem,
+
+    -- ** TargetPoolsAddHealthCheckRequest
+    TargetPoolsAddHealthCheckRequest (..),
+    newTargetPoolsAddHealthCheckRequest,
+
+    -- ** TargetPoolsAddInstanceRequest
+    TargetPoolsAddInstanceRequest (..),
+    newTargetPoolsAddInstanceRequest,
+
+    -- ** TargetPoolsRemoveHealthCheckRequest
+    TargetPoolsRemoveHealthCheckRequest (..),
+    newTargetPoolsRemoveHealthCheckRequest,
+
+    -- ** TargetPoolsRemoveInstanceRequest
+    TargetPoolsRemoveInstanceRequest (..),
+    newTargetPoolsRemoveInstanceRequest,
+
+    -- ** TargetPoolsScopedList
+    TargetPoolsScopedList (..),
+    newTargetPoolsScopedList,
+
+    -- ** TargetPoolsScopedList_Warning
+    TargetPoolsScopedList_Warning (..),
+    newTargetPoolsScopedList_Warning,
+
+    -- ** TargetPoolsScopedList_Warning_Code
+    TargetPoolsScopedList_Warning_Code (..),
+
+    -- ** TargetPoolsScopedList_Warning_DataItem
+    TargetPoolsScopedList_Warning_DataItem (..),
+    newTargetPoolsScopedList_Warning_DataItem,
+
+    -- ** TargetReference
+    TargetReference (..),
+    newTargetReference,
+
+    -- ** TargetSslProxiesSetBackendServiceRequest
+    TargetSslProxiesSetBackendServiceRequest (..),
+    newTargetSslProxiesSetBackendServiceRequest,
+
+    -- ** TargetSslProxiesSetCertificateMapRequest
+    TargetSslProxiesSetCertificateMapRequest (..),
+    newTargetSslProxiesSetCertificateMapRequest,
+
+    -- ** TargetSslProxiesSetProxyHeaderRequest
+    TargetSslProxiesSetProxyHeaderRequest (..),
+    newTargetSslProxiesSetProxyHeaderRequest,
+
+    -- ** TargetSslProxiesSetProxyHeaderRequest_ProxyHeader
+    TargetSslProxiesSetProxyHeaderRequest_ProxyHeader (..),
+
+    -- ** TargetSslProxiesSetSslCertificatesRequest
+    TargetSslProxiesSetSslCertificatesRequest (..),
+    newTargetSslProxiesSetSslCertificatesRequest,
+
+    -- ** TargetSslProxy
+    TargetSslProxy (..),
+    newTargetSslProxy,
+
+    -- ** TargetSslProxy_ProxyHeader
+    TargetSslProxy_ProxyHeader (..),
+
+    -- ** TargetSslProxyList
+    TargetSslProxyList (..),
+    newTargetSslProxyList,
+
+    -- ** TargetSslProxyList_Warning
+    TargetSslProxyList_Warning (..),
+    newTargetSslProxyList_Warning,
+
+    -- ** TargetSslProxyList_Warning_Code
+    TargetSslProxyList_Warning_Code (..),
+
+    -- ** TargetSslProxyList_Warning_DataItem
+    TargetSslProxyList_Warning_DataItem (..),
+    newTargetSslProxyList_Warning_DataItem,
+
+    -- ** TargetTcpProxiesScopedList
+    TargetTcpProxiesScopedList (..),
+    newTargetTcpProxiesScopedList,
+
+    -- ** TargetTcpProxiesScopedList_Warning
+    TargetTcpProxiesScopedList_Warning (..),
+    newTargetTcpProxiesScopedList_Warning,
+
+    -- ** TargetTcpProxiesScopedList_Warning_Code
+    TargetTcpProxiesScopedList_Warning_Code (..),
+
+    -- ** TargetTcpProxiesScopedList_Warning_DataItem
+    TargetTcpProxiesScopedList_Warning_DataItem (..),
+    newTargetTcpProxiesScopedList_Warning_DataItem,
+
+    -- ** TargetTcpProxiesSetBackendServiceRequest
+    TargetTcpProxiesSetBackendServiceRequest (..),
+    newTargetTcpProxiesSetBackendServiceRequest,
+
+    -- ** TargetTcpProxiesSetProxyHeaderRequest
+    TargetTcpProxiesSetProxyHeaderRequest (..),
+    newTargetTcpProxiesSetProxyHeaderRequest,
+
+    -- ** TargetTcpProxiesSetProxyHeaderRequest_ProxyHeader
+    TargetTcpProxiesSetProxyHeaderRequest_ProxyHeader (..),
+
+    -- ** TargetTcpProxy
+    TargetTcpProxy (..),
+    newTargetTcpProxy,
+
+    -- ** TargetTcpProxy_ProxyHeader
+    TargetTcpProxy_ProxyHeader (..),
+
+    -- ** TargetTcpProxyAggregatedList
+    TargetTcpProxyAggregatedList (..),
+    newTargetTcpProxyAggregatedList,
+
+    -- ** TargetTcpProxyAggregatedList_Items
+    TargetTcpProxyAggregatedList_Items (..),
+    newTargetTcpProxyAggregatedList_Items,
+
+    -- ** TargetTcpProxyAggregatedList_Warning
+    TargetTcpProxyAggregatedList_Warning (..),
+    newTargetTcpProxyAggregatedList_Warning,
+
+    -- ** TargetTcpProxyAggregatedList_Warning_Code
+    TargetTcpProxyAggregatedList_Warning_Code (..),
+
+    -- ** TargetTcpProxyAggregatedList_Warning_DataItem
+    TargetTcpProxyAggregatedList_Warning_DataItem (..),
+    newTargetTcpProxyAggregatedList_Warning_DataItem,
+
+    -- ** TargetTcpProxyList
+    TargetTcpProxyList (..),
+    newTargetTcpProxyList,
+
+    -- ** TargetTcpProxyList_Warning
+    TargetTcpProxyList_Warning (..),
+    newTargetTcpProxyList_Warning,
+
+    -- ** TargetTcpProxyList_Warning_Code
+    TargetTcpProxyList_Warning_Code (..),
+
+    -- ** TargetTcpProxyList_Warning_DataItem
+    TargetTcpProxyList_Warning_DataItem (..),
+    newTargetTcpProxyList_Warning_DataItem,
+
+    -- ** TargetVpnGateway
+    TargetVpnGateway (..),
+    newTargetVpnGateway,
+
+    -- ** TargetVpnGateway_Labels
+    TargetVpnGateway_Labels (..),
+    newTargetVpnGateway_Labels,
+
+    -- ** TargetVpnGateway_Status
+    TargetVpnGateway_Status (..),
+
+    -- ** TargetVpnGatewayAggregatedList
+    TargetVpnGatewayAggregatedList (..),
+    newTargetVpnGatewayAggregatedList,
+
+    -- ** TargetVpnGatewayAggregatedList_Items
+    TargetVpnGatewayAggregatedList_Items (..),
+    newTargetVpnGatewayAggregatedList_Items,
+
+    -- ** TargetVpnGatewayAggregatedList_Warning
+    TargetVpnGatewayAggregatedList_Warning (..),
+    newTargetVpnGatewayAggregatedList_Warning,
+
+    -- ** TargetVpnGatewayAggregatedList_Warning_Code
+    TargetVpnGatewayAggregatedList_Warning_Code (..),
+
+    -- ** TargetVpnGatewayAggregatedList_Warning_DataItem
+    TargetVpnGatewayAggregatedList_Warning_DataItem (..),
+    newTargetVpnGatewayAggregatedList_Warning_DataItem,
+
+    -- ** TargetVpnGatewayList
+    TargetVpnGatewayList (..),
+    newTargetVpnGatewayList,
+
+    -- ** TargetVpnGatewayList_Warning
+    TargetVpnGatewayList_Warning (..),
+    newTargetVpnGatewayList_Warning,
+
+    -- ** TargetVpnGatewayList_Warning_Code
+    TargetVpnGatewayList_Warning_Code (..),
+
+    -- ** TargetVpnGatewayList_Warning_DataItem
+    TargetVpnGatewayList_Warning_DataItem (..),
+    newTargetVpnGatewayList_Warning_DataItem,
+
+    -- ** TargetVpnGatewaysScopedList
+    TargetVpnGatewaysScopedList (..),
+    newTargetVpnGatewaysScopedList,
+
+    -- ** TargetVpnGatewaysScopedList_Warning
+    TargetVpnGatewaysScopedList_Warning (..),
+    newTargetVpnGatewaysScopedList_Warning,
+
+    -- ** TargetVpnGatewaysScopedList_Warning_Code
+    TargetVpnGatewaysScopedList_Warning_Code (..),
+
+    -- ** TargetVpnGatewaysScopedList_Warning_DataItem
+    TargetVpnGatewaysScopedList_Warning_DataItem (..),
+    newTargetVpnGatewaysScopedList_Warning_DataItem,
+
+    -- ** TestFailure
+    TestFailure (..),
+    newTestFailure,
+
+    -- ** TestPermissionsRequest
+    TestPermissionsRequest (..),
+    newTestPermissionsRequest,
+
+    -- ** TestPermissionsResponse
+    TestPermissionsResponse (..),
+    newTestPermissionsResponse,
+
+    -- ** Uint128
+    Uint128 (..),
+    newUint128,
+
+    -- ** UpcomingMaintenance
+    UpcomingMaintenance (..),
+    newUpcomingMaintenance,
+
+    -- ** UpcomingMaintenance_MaintenanceStatus
+    UpcomingMaintenance_MaintenanceStatus (..),
+
+    -- ** UpcomingMaintenance_Type
+    UpcomingMaintenance_Type (..),
+
+    -- ** UrlMap
+    UrlMap (..),
+    newUrlMap,
+
+    -- ** UrlMapList
+    UrlMapList (..),
+    newUrlMapList,
+
+    -- ** UrlMapList_Warning
+    UrlMapList_Warning (..),
+    newUrlMapList_Warning,
+
+    -- ** UrlMapList_Warning_Code
+    UrlMapList_Warning_Code (..),
+
+    -- ** UrlMapList_Warning_DataItem
+    UrlMapList_Warning_DataItem (..),
+    newUrlMapList_Warning_DataItem,
+
+    -- ** UrlMapReference
+    UrlMapReference (..),
+    newUrlMapReference,
+
+    -- ** UrlMapTest
+    UrlMapTest (..),
+    newUrlMapTest,
+
+    -- ** UrlMapTestHeader
+    UrlMapTestHeader (..),
+    newUrlMapTestHeader,
+
+    -- ** UrlMapValidationResult
+    UrlMapValidationResult (..),
+    newUrlMapValidationResult,
+
+    -- ** UrlMapsAggregatedList
+    UrlMapsAggregatedList (..),
+    newUrlMapsAggregatedList,
+
+    -- ** UrlMapsAggregatedList_Items
+    UrlMapsAggregatedList_Items (..),
+    newUrlMapsAggregatedList_Items,
+
+    -- ** UrlMapsAggregatedList_Warning
+    UrlMapsAggregatedList_Warning (..),
+    newUrlMapsAggregatedList_Warning,
+
+    -- ** UrlMapsAggregatedList_Warning_Code
+    UrlMapsAggregatedList_Warning_Code (..),
+
+    -- ** UrlMapsAggregatedList_Warning_DataItem
+    UrlMapsAggregatedList_Warning_DataItem (..),
+    newUrlMapsAggregatedList_Warning_DataItem,
+
+    -- ** UrlMapsScopedList
+    UrlMapsScopedList (..),
+    newUrlMapsScopedList,
+
+    -- ** UrlMapsScopedList_Warning
+    UrlMapsScopedList_Warning (..),
+    newUrlMapsScopedList_Warning,
+
+    -- ** UrlMapsScopedList_Warning_Code
+    UrlMapsScopedList_Warning_Code (..),
+
+    -- ** UrlMapsScopedList_Warning_DataItem
+    UrlMapsScopedList_Warning_DataItem (..),
+    newUrlMapsScopedList_Warning_DataItem,
+
+    -- ** UrlMapsValidateRequest
+    UrlMapsValidateRequest (..),
+    newUrlMapsValidateRequest,
+
+    -- ** UrlMapsValidateRequest_LoadBalancingSchemesItem
+    UrlMapsValidateRequest_LoadBalancingSchemesItem (..),
+
+    -- ** UrlMapsValidateResponse
+    UrlMapsValidateResponse (..),
+    newUrlMapsValidateResponse,
+
+    -- ** UrlRewrite
+    UrlRewrite (..),
+    newUrlRewrite,
+
+    -- ** UsableSubnetwork
+    UsableSubnetwork (..),
+    newUsableSubnetwork,
+
+    -- ** UsableSubnetwork_Ipv6AccessType
+    UsableSubnetwork_Ipv6AccessType (..),
+
+    -- ** UsableSubnetwork_Purpose
+    UsableSubnetwork_Purpose (..),
+
+    -- ** UsableSubnetwork_Role
+    UsableSubnetwork_Role (..),
+
+    -- ** UsableSubnetwork_StackType
+    UsableSubnetwork_StackType (..),
+
+    -- ** UsableSubnetworkSecondaryRange
+    UsableSubnetworkSecondaryRange (..),
+    newUsableSubnetworkSecondaryRange,
+
+    -- ** UsableSubnetworksAggregatedList
+    UsableSubnetworksAggregatedList (..),
+    newUsableSubnetworksAggregatedList,
+
+    -- ** UsableSubnetworksAggregatedList_Warning
+    UsableSubnetworksAggregatedList_Warning (..),
+    newUsableSubnetworksAggregatedList_Warning,
+
+    -- ** UsableSubnetworksAggregatedList_Warning_Code
+    UsableSubnetworksAggregatedList_Warning_Code (..),
+
+    -- ** UsableSubnetworksAggregatedList_Warning_DataItem
+    UsableSubnetworksAggregatedList_Warning_DataItem (..),
+    newUsableSubnetworksAggregatedList_Warning_DataItem,
+
+    -- ** UsageExportLocation
+    UsageExportLocation (..),
+    newUsageExportLocation,
+
+    -- ** VmEndpointNatMappings
+    VmEndpointNatMappings (..),
+    newVmEndpointNatMappings,
+
+    -- ** VmEndpointNatMappingsInterfaceNatMappings
+    VmEndpointNatMappingsInterfaceNatMappings (..),
+    newVmEndpointNatMappingsInterfaceNatMappings,
+
+    -- ** VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings
+    VmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings (..),
+    newVmEndpointNatMappingsInterfaceNatMappingsNatRuleMappings,
+
+    -- ** VmEndpointNatMappingsList
+    VmEndpointNatMappingsList (..),
+    newVmEndpointNatMappingsList,
+
+    -- ** VmEndpointNatMappingsList_Warning
+    VmEndpointNatMappingsList_Warning (..),
+    newVmEndpointNatMappingsList_Warning,
+
+    -- ** VmEndpointNatMappingsList_Warning_Code
+    VmEndpointNatMappingsList_Warning_Code (..),
+
+    -- ** VmEndpointNatMappingsList_Warning_DataItem
+    VmEndpointNatMappingsList_Warning_DataItem (..),
+    newVmEndpointNatMappingsList_Warning_DataItem,
+
+    -- ** VpnGateway
+    VpnGateway (..),
+    newVpnGateway,
+
+    -- ** VpnGateway_GatewayIpVersion
+    VpnGateway_GatewayIpVersion (..),
+
+    -- ** VpnGateway_Labels
+    VpnGateway_Labels (..),
+    newVpnGateway_Labels,
+
+    -- ** VpnGateway_StackType
+    VpnGateway_StackType (..),
+
+    -- ** VpnGatewayAggregatedList
+    VpnGatewayAggregatedList (..),
+    newVpnGatewayAggregatedList,
+
+    -- ** VpnGatewayAggregatedList_Items
+    VpnGatewayAggregatedList_Items (..),
+    newVpnGatewayAggregatedList_Items,
+
+    -- ** VpnGatewayAggregatedList_Warning
+    VpnGatewayAggregatedList_Warning (..),
+    newVpnGatewayAggregatedList_Warning,
+
+    -- ** VpnGatewayAggregatedList_Warning_Code
+    VpnGatewayAggregatedList_Warning_Code (..),
+
+    -- ** VpnGatewayAggregatedList_Warning_DataItem
+    VpnGatewayAggregatedList_Warning_DataItem (..),
+    newVpnGatewayAggregatedList_Warning_DataItem,
+
+    -- ** VpnGatewayList
+    VpnGatewayList (..),
+    newVpnGatewayList,
+
+    -- ** VpnGatewayList_Warning
+    VpnGatewayList_Warning (..),
+    newVpnGatewayList_Warning,
+
+    -- ** VpnGatewayList_Warning_Code
+    VpnGatewayList_Warning_Code (..),
+
+    -- ** VpnGatewayList_Warning_DataItem
+    VpnGatewayList_Warning_DataItem (..),
+    newVpnGatewayList_Warning_DataItem,
+
+    -- ** VpnGatewayStatus
+    VpnGatewayStatus (..),
+    newVpnGatewayStatus,
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState
+    VpnGatewayStatusHighAvailabilityRequirementState (..),
+    newVpnGatewayStatusHighAvailabilityRequirementState,
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState_State
+    VpnGatewayStatusHighAvailabilityRequirementState_State (..),
+
+    -- ** VpnGatewayStatusHighAvailabilityRequirementState_UnsatisfiedReason
+    VpnGatewayStatusHighAvailabilityRequirementState_UnsatisfiedReason (..),
+
+    -- ** VpnGatewayStatusTunnel
+    VpnGatewayStatusTunnel (..),
+    newVpnGatewayStatusTunnel,
+
+    -- ** VpnGatewayStatusVpnConnection
+    VpnGatewayStatusVpnConnection (..),
+    newVpnGatewayStatusVpnConnection,
+
+    -- ** VpnGatewayVpnGatewayInterface
+    VpnGatewayVpnGatewayInterface (..),
+    newVpnGatewayVpnGatewayInterface,
+
+    -- ** VpnGatewaysGetStatusResponse
+    VpnGatewaysGetStatusResponse (..),
+    newVpnGatewaysGetStatusResponse,
+
+    -- ** VpnGatewaysScopedList
+    VpnGatewaysScopedList (..),
+    newVpnGatewaysScopedList,
+
+    -- ** VpnGatewaysScopedList_Warning
+    VpnGatewaysScopedList_Warning (..),
+    newVpnGatewaysScopedList_Warning,
+
+    -- ** VpnGatewaysScopedList_Warning_Code
+    VpnGatewaysScopedList_Warning_Code (..),
+
+    -- ** VpnGatewaysScopedList_Warning_DataItem
+    VpnGatewaysScopedList_Warning_DataItem (..),
+    newVpnGatewaysScopedList_Warning_DataItem,
+
+    -- ** VpnTunnel
+    VpnTunnel (..),
+    newVpnTunnel,
+
+    -- ** VpnTunnel_Labels
+    VpnTunnel_Labels (..),
+    newVpnTunnel_Labels,
+
+    -- ** VpnTunnel_Status
+    VpnTunnel_Status (..),
+
+    -- ** VpnTunnelAggregatedList
+    VpnTunnelAggregatedList (..),
+    newVpnTunnelAggregatedList,
+
+    -- ** VpnTunnelAggregatedList_Items
+    VpnTunnelAggregatedList_Items (..),
+    newVpnTunnelAggregatedList_Items,
+
+    -- ** VpnTunnelAggregatedList_Warning
+    VpnTunnelAggregatedList_Warning (..),
+    newVpnTunnelAggregatedList_Warning,
+
+    -- ** VpnTunnelAggregatedList_Warning_Code
+    VpnTunnelAggregatedList_Warning_Code (..),
+
+    -- ** VpnTunnelAggregatedList_Warning_DataItem
+    VpnTunnelAggregatedList_Warning_DataItem (..),
+    newVpnTunnelAggregatedList_Warning_DataItem,
+
+    -- ** VpnTunnelList
+    VpnTunnelList (..),
+    newVpnTunnelList,
+
+    -- ** VpnTunnelList_Warning
+    VpnTunnelList_Warning (..),
+    newVpnTunnelList_Warning,
+
+    -- ** VpnTunnelList_Warning_Code
+    VpnTunnelList_Warning_Code (..),
+
+    -- ** VpnTunnelList_Warning_DataItem
+    VpnTunnelList_Warning_DataItem (..),
+    newVpnTunnelList_Warning_DataItem,
+
+    -- ** VpnTunnelsScopedList
+    VpnTunnelsScopedList (..),
+    newVpnTunnelsScopedList,
+
+    -- ** VpnTunnelsScopedList_Warning
+    VpnTunnelsScopedList_Warning (..),
+    newVpnTunnelsScopedList_Warning,
+
+    -- ** VpnTunnelsScopedList_Warning_Code
+    VpnTunnelsScopedList_Warning_Code (..),
+
+    -- ** VpnTunnelsScopedList_Warning_DataItem
+    VpnTunnelsScopedList_Warning_DataItem (..),
+    newVpnTunnelsScopedList_Warning_DataItem,
+
+    -- ** WafExpressionSet
+    WafExpressionSet (..),
+    newWafExpressionSet,
+
+    -- ** WafExpressionSetExpression
+    WafExpressionSetExpression (..),
+    newWafExpressionSetExpression,
+
+    -- ** WeightedBackendService
+    WeightedBackendService (..),
+    newWeightedBackendService,
+
+    -- ** XpnHostList
+    XpnHostList (..),
+    newXpnHostList,
+
+    -- ** XpnHostList_Warning
+    XpnHostList_Warning (..),
+    newXpnHostList_Warning,
+
+    -- ** XpnHostList_Warning_Code
+    XpnHostList_Warning_Code (..),
+
+    -- ** XpnHostList_Warning_DataItem
+    XpnHostList_Warning_DataItem (..),
+    newXpnHostList_Warning_DataItem,
+
+    -- ** XpnResourceId
+    XpnResourceId (..),
+    newXpnResourceId,
+
+    -- ** XpnResourceId_Type
+    XpnResourceId_Type (..),
+
+    -- ** Zone
+    Zone (..),
+    newZone,
+
+    -- ** Zone_Status
+    Zone_Status (..),
+
+    -- ** ZoneList
+    ZoneList (..),
+    newZoneList,
+
+    -- ** ZoneList_Warning
+    ZoneList_Warning (..),
+    newZoneList_Warning,
+
+    -- ** ZoneList_Warning_Code
+    ZoneList_Warning_Code (..),
+
+    -- ** ZoneList_Warning_DataItem
+    ZoneList_Warning_DataItem (..),
+    newZoneList_Warning_DataItem,
+
+    -- ** ZoneSetLabelsRequest
+    ZoneSetLabelsRequest (..),
+    newZoneSetLabelsRequest,
+
+    -- ** ZoneSetLabelsRequest_Labels
+    ZoneSetLabelsRequest_Labels (..),
+    newZoneSetLabelsRequest_Labels,
+
+    -- ** ZoneSetPolicyRequest
+    ZoneSetPolicyRequest (..),
+    newZoneSetPolicyRequest,
+
+    -- ** InstancesUpdateMinimalAction
+    InstancesUpdateMinimalAction (..),
+
+    -- ** InstancesUpdateMostDisruptiveAllowedAction
+    InstancesUpdateMostDisruptiveAllowedAction (..),
+
+    -- ** NetworksListPeeringRoutesDirection
+    NetworksListPeeringRoutesDirection (..),
+
+    -- ** RoutersListBgpRoutesAddressFamily
+    RoutersListBgpRoutesAddressFamily (..),
+
+    -- ** RoutersListBgpRoutesRouteType
+    RoutersListBgpRoutesRouteType (..),
+  )
+where
+
+import Gogol.Compute.Internal.Product
+import Gogol.Compute.Internal.Sum
+import Gogol.Prelude qualified as Core
+
+-- | Default request referring to version @v1@ of the Compute Engine API. This contains the host and root path used as a starting point for constructing service requests.
+computeService :: Core.ServiceConfig
+computeService =
+  Core.defaultService
+    (Core.ServiceId "compute:v1")
+    "compute.googleapis.com"
+
+-- | See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account.
+type CloudPlatform'FullControl =
+  "https://www.googleapis.com/auth/cloud-platform"
+
+-- | View and manage your Google Compute Engine resources
+type Compute'FullControl =
+  "https://www.googleapis.com/auth/compute"
+
+-- | View your Google Compute Engine resources
+type Compute'Readonly =
+  "https://www.googleapis.com/auth/compute.readonly"
+
+-- | Manage your data and permissions in Cloud Storage and see the email address for your Google Account
+type Devstorage'FullControl =
+  "https://www.googleapis.com/auth/devstorage.full_control"
+
+-- | View your data in Google Cloud Storage
+type Devstorage'ReadOnly =
+  "https://www.googleapis.com/auth/devstorage.read_only"
+
+-- | Manage your data in Cloud Storage and see the email address of your Google Account
+type Devstorage'ReadWrite =
+  "https://www.googleapis.com/auth/devstorage.read_write"
diff --git a/gen/Gogol/Compute/UrlMaps/AggregatedList.hs b/gen/Gogol/Compute/UrlMaps/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.aggregatedList@.
+module Gogol.Compute.UrlMaps.AggregatedList
+  ( -- * Resource
+    ComputeUrlMapsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsAggregatedList (..),
+    newComputeUrlMapsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.aggregatedList@ method which the
+-- 'ComputeUrlMapsAggregatedList' request conforms to.
+type ComputeUrlMapsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "urlMaps"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UrlMapsAggregatedList
+
+-- | Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeUrlMapsAggregatedList' smart constructor.
+data ComputeUrlMapsAggregatedList = ComputeUrlMapsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Name of the project scoping this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsAggregatedList' with the minimum fields required to make a request.
+newComputeUrlMapsAggregatedList ::
+  -- |  Name of the project scoping this request. See 'project'.
+  Core.Text ->
+  ComputeUrlMapsAggregatedList
+newComputeUrlMapsAggregatedList project =
+  ComputeUrlMapsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsAggregatedList where
+  type Rs ComputeUrlMapsAggregatedList = UrlMapsAggregatedList
+  type
+    Scopes ComputeUrlMapsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeUrlMapsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Delete.hs b/gen/Gogol/Compute/UrlMaps/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Delete.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified UrlMap resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.delete@.
+module Gogol.Compute.UrlMaps.Delete
+  ( -- * Resource
+    ComputeUrlMapsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsDelete (..),
+    newComputeUrlMapsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.delete@ method which the
+-- 'ComputeUrlMapsDelete' request conforms to.
+type ComputeUrlMapsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified UrlMap resource.
+--
+-- /See:/ 'newComputeUrlMapsDelete' smart constructor.
+data ComputeUrlMapsDelete = ComputeUrlMapsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to delete.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsDelete' with the minimum fields required to make a request.
+newComputeUrlMapsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to delete. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsDelete
+newComputeUrlMapsDelete project urlMap =
+  ComputeUrlMapsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsDelete where
+  type Rs ComputeUrlMapsDelete = Operation
+  type
+    Scopes ComputeUrlMapsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsDelete {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Get.hs b/gen/Gogol/Compute/UrlMaps/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Get.hs
@@ -0,0 +1,120 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified UrlMap resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.get@.
+module Gogol.Compute.UrlMaps.Get
+  ( -- * Resource
+    ComputeUrlMapsGetResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsGet (..),
+    newComputeUrlMapsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.get@ method which the
+-- 'ComputeUrlMapsGet' request conforms to.
+type ComputeUrlMapsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UrlMap
+
+-- | Returns the specified UrlMap resource.
+--
+-- /See:/ 'newComputeUrlMapsGet' smart constructor.
+data ComputeUrlMapsGet = ComputeUrlMapsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to return.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsGet' with the minimum fields required to make a request.
+newComputeUrlMapsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to return. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsGet
+newComputeUrlMapsGet project urlMap =
+  ComputeUrlMapsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsGet where
+  type Rs ComputeUrlMapsGet = UrlMap
+  type
+    Scopes ComputeUrlMapsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeUrlMapsGet {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Insert.hs b/gen/Gogol/Compute/UrlMaps/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Insert.hs
@@ -0,0 +1,125 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a UrlMap resource in the specified project using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.insert@.
+module Gogol.Compute.UrlMaps.Insert
+  ( -- * Resource
+    ComputeUrlMapsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsInsert (..),
+    newComputeUrlMapsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.insert@ method which the
+-- 'ComputeUrlMapsInsert' request conforms to.
+type ComputeUrlMapsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a UrlMap resource in the specified project using the data included in the request.
+--
+-- /See:/ 'newComputeUrlMapsInsert' smart constructor.
+data ComputeUrlMapsInsert = ComputeUrlMapsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsInsert' with the minimum fields required to make a request.
+newComputeUrlMapsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeUrlMapsInsert
+newComputeUrlMapsInsert payload project =
+  ComputeUrlMapsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsInsert where
+  type Rs ComputeUrlMapsInsert = Operation
+  type
+    Scopes ComputeUrlMapsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsInsert {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/InvalidateCache.hs b/gen/Gogol/Compute/UrlMaps/InvalidateCache.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/InvalidateCache.hs
@@ -0,0 +1,133 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.InvalidateCache
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see </cdn/docs/invalidating-cached-content Invalidating cached content>.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.invalidateCache@.
+module Gogol.Compute.UrlMaps.InvalidateCache
+  ( -- * Resource
+    ComputeUrlMapsInvalidateCacheResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsInvalidateCache (..),
+    newComputeUrlMapsInvalidateCache,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.invalidateCache@ method which the
+-- 'ComputeUrlMapsInvalidateCache' request conforms to.
+type ComputeUrlMapsInvalidateCacheResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> "invalidateCache"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] CacheInvalidationRule
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap. For more information, see </cdn/docs/invalidating-cached-content Invalidating cached content>.
+--
+-- /See:/ 'newComputeUrlMapsInvalidateCache' smart constructor.
+data ComputeUrlMapsInvalidateCache = ComputeUrlMapsInvalidateCache
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: CacheInvalidationRule,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap scoping this request.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsInvalidateCache' with the minimum fields required to make a request.
+newComputeUrlMapsInvalidateCache ::
+  -- |  Multipart request metadata. See 'payload'.
+  CacheInvalidationRule ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap scoping this request. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsInvalidateCache
+newComputeUrlMapsInvalidateCache payload project urlMap =
+  ComputeUrlMapsInvalidateCache
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsInvalidateCache where
+  type Rs ComputeUrlMapsInvalidateCache = Operation
+  type
+    Scopes ComputeUrlMapsInvalidateCache =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsInvalidateCache {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsInvalidateCacheResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/List.hs b/gen/Gogol/Compute/UrlMaps/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/List.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of UrlMap resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.list@.
+module Gogol.Compute.UrlMaps.List
+  ( -- * Resource
+    ComputeUrlMapsListResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsList (..),
+    newComputeUrlMapsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.list@ method which the
+-- 'ComputeUrlMapsList' request conforms to.
+type ComputeUrlMapsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] UrlMapList
+
+-- | Retrieves the list of UrlMap resources available to the specified project.
+--
+-- /See:/ 'newComputeUrlMapsList' smart constructor.
+data ComputeUrlMapsList = ComputeUrlMapsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsList' with the minimum fields required to make a request.
+newComputeUrlMapsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeUrlMapsList
+newComputeUrlMapsList project =
+  ComputeUrlMapsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsList where
+  type Rs ComputeUrlMapsList = UrlMapList
+  type
+    Scopes ComputeUrlMapsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeUrlMapsList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Patch.hs b/gen/Gogol/Compute/UrlMaps/Patch.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Patch.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Patch
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.patch@.
+module Gogol.Compute.UrlMaps.Patch
+  ( -- * Resource
+    ComputeUrlMapsPatchResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsPatch (..),
+    newComputeUrlMapsPatch,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.patch@ method which the
+-- 'ComputeUrlMapsPatch' request conforms to.
+type ComputeUrlMapsPatchResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Patch '[Core.JSON] Operation
+
+-- | Patches the specified UrlMap resource with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.
+--
+-- /See:/ 'newComputeUrlMapsPatch' smart constructor.
+data ComputeUrlMapsPatch = ComputeUrlMapsPatch
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to patch.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsPatch' with the minimum fields required to make a request.
+newComputeUrlMapsPatch ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to patch. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsPatch
+newComputeUrlMapsPatch payload project urlMap =
+  ComputeUrlMapsPatch
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsPatch where
+  type Rs ComputeUrlMapsPatch = Operation
+  type
+    Scopes ComputeUrlMapsPatch =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsPatch {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsPatchResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Update.hs b/gen/Gogol/Compute/UrlMaps/Update.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Update.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Update
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified UrlMap resource with the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.update@.
+module Gogol.Compute.UrlMaps.Update
+  ( -- * Resource
+    ComputeUrlMapsUpdateResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsUpdate (..),
+    newComputeUrlMapsUpdate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.update@ method which the
+-- 'ComputeUrlMapsUpdate' request conforms to.
+type ComputeUrlMapsUpdateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMap
+    Core.:> Core.Put '[Core.JSON] Operation
+
+-- | Updates the specified UrlMap resource with the data included in the request.
+--
+-- /See:/ 'newComputeUrlMapsUpdate' smart constructor.
+data ComputeUrlMapsUpdate = ComputeUrlMapsUpdate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMap,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to update.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsUpdate' with the minimum fields required to make a request.
+newComputeUrlMapsUpdate ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMap ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to update. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsUpdate
+newComputeUrlMapsUpdate payload project urlMap =
+  ComputeUrlMapsUpdate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsUpdate where
+  type Rs ComputeUrlMapsUpdate = Operation
+  type
+    Scopes ComputeUrlMapsUpdate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsUpdate {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsUpdateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/UrlMaps/Validate.hs b/gen/Gogol/Compute/UrlMaps/Validate.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/UrlMaps/Validate.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.UrlMaps.Validate
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.urlMaps.validate@.
+module Gogol.Compute.UrlMaps.Validate
+  ( -- * Resource
+    ComputeUrlMapsValidateResource,
+
+    -- ** Constructing a Request
+    ComputeUrlMapsValidate (..),
+    newComputeUrlMapsValidate,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.urlMaps.validate@ method which the
+-- 'ComputeUrlMapsValidate' request conforms to.
+type ComputeUrlMapsValidateResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "global"
+    Core.:> "urlMaps"
+    Core.:> Core.Capture "urlMap" Core.Text
+    Core.:> "validate"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] UrlMapsValidateRequest
+    Core.:> Core.Post '[Core.JSON] UrlMapsValidateResponse
+
+-- | Runs static validation for the UrlMap. In particular, the tests of the provided UrlMap will be run. Calling this method does NOT create the UrlMap.
+--
+-- /See:/ 'newComputeUrlMapsValidate' smart constructor.
+data ComputeUrlMapsValidate = ComputeUrlMapsValidate
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: UrlMapsValidateRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the UrlMap resource to be validated as.
+    urlMap :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeUrlMapsValidate' with the minimum fields required to make a request.
+newComputeUrlMapsValidate ::
+  -- |  Multipart request metadata. See 'payload'.
+  UrlMapsValidateRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the UrlMap resource to be validated as. See 'urlMap'.
+  Core.Text ->
+  ComputeUrlMapsValidate
+newComputeUrlMapsValidate payload project urlMap =
+  ComputeUrlMapsValidate
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      urlMap = urlMap
+    }
+
+instance Core.GoogleRequest ComputeUrlMapsValidate where
+  type Rs ComputeUrlMapsValidate = UrlMapsValidateResponse
+  type
+    Scopes ComputeUrlMapsValidate =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeUrlMapsValidate {..} =
+    go
+      project
+      urlMap
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeUrlMapsValidateResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/AggregatedList.hs b/gen/Gogol/Compute/VpnGateways/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.aggregatedList@.
+module Gogol.Compute.VpnGateways.AggregatedList
+  ( -- * Resource
+    ComputeVpnGatewaysAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysAggregatedList (..),
+    newComputeVpnGatewaysAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.aggregatedList@ method which the
+-- 'ComputeVpnGatewaysAggregatedList' request conforms to.
+type ComputeVpnGatewaysAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "vpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnGatewayAggregatedList
+
+-- | Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeVpnGatewaysAggregatedList' smart constructor.
+data ComputeVpnGatewaysAggregatedList = ComputeVpnGatewaysAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysAggregatedList' with the minimum fields required to make a request.
+newComputeVpnGatewaysAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeVpnGatewaysAggregatedList
+newComputeVpnGatewaysAggregatedList project =
+  ComputeVpnGatewaysAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysAggregatedList where
+  type Rs ComputeVpnGatewaysAggregatedList = VpnGatewayAggregatedList
+  type
+    Scopes ComputeVpnGatewaysAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnGatewaysAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/Delete.hs b/gen/Gogol/Compute/VpnGateways/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified VPN gateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.delete@.
+module Gogol.Compute.VpnGateways.Delete
+  ( -- * Resource
+    ComputeVpnGatewaysDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysDelete (..),
+    newComputeVpnGatewaysDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.delete@ method which the
+-- 'ComputeVpnGatewaysDelete' request conforms to.
+type ComputeVpnGatewaysDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.Capture "vpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified VPN gateway.
+--
+-- /See:/ 'newComputeVpnGatewaysDelete' smart constructor.
+data ComputeVpnGatewaysDelete = ComputeVpnGatewaysDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the VPN gateway to delete.
+    vpnGateway :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysDelete' with the minimum fields required to make a request.
+newComputeVpnGatewaysDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the VPN gateway to delete. See 'vpnGateway'.
+  Core.Text ->
+  ComputeVpnGatewaysDelete
+newComputeVpnGatewaysDelete project region vpnGateway =
+  ComputeVpnGatewaysDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      vpnGateway = vpnGateway
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysDelete where
+  type Rs ComputeVpnGatewaysDelete = Operation
+  type
+    Scopes ComputeVpnGatewaysDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnGatewaysDelete {..} =
+    go
+      project
+      region
+      vpnGateway
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/Get.hs b/gen/Gogol/Compute/VpnGateways/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified VPN gateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.get@.
+module Gogol.Compute.VpnGateways.Get
+  ( -- * Resource
+    ComputeVpnGatewaysGetResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysGet (..),
+    newComputeVpnGatewaysGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.get@ method which the
+-- 'ComputeVpnGatewaysGet' request conforms to.
+type ComputeVpnGatewaysGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.Capture "vpnGateway" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnGateway
+
+-- | Returns the specified VPN gateway.
+--
+-- /See:/ 'newComputeVpnGatewaysGet' smart constructor.
+data ComputeVpnGatewaysGet = ComputeVpnGatewaysGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the VPN gateway to return.
+    vpnGateway :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysGet' with the minimum fields required to make a request.
+newComputeVpnGatewaysGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the VPN gateway to return. See 'vpnGateway'.
+  Core.Text ->
+  ComputeVpnGatewaysGet
+newComputeVpnGatewaysGet project region vpnGateway =
+  ComputeVpnGatewaysGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      vpnGateway = vpnGateway
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysGet where
+  type Rs ComputeVpnGatewaysGet = VpnGateway
+  type
+    Scopes ComputeVpnGatewaysGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnGatewaysGet {..} =
+    go
+      project
+      region
+      vpnGateway
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/GetStatus.hs b/gen/Gogol/Compute/VpnGateways/GetStatus.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/GetStatus.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.GetStatus
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the status for the specified VPN gateway.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.getStatus@.
+module Gogol.Compute.VpnGateways.GetStatus
+  ( -- * Resource
+    ComputeVpnGatewaysGetStatusResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysGetStatus (..),
+    newComputeVpnGatewaysGetStatus,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.getStatus@ method which the
+-- 'ComputeVpnGatewaysGetStatus' request conforms to.
+type ComputeVpnGatewaysGetStatusResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.Capture "vpnGateway" Core.Text
+    Core.:> "getStatus"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnGatewaysGetStatusResponse
+
+-- | Returns the status for the specified VPN gateway.
+--
+-- /See:/ 'newComputeVpnGatewaysGetStatus' smart constructor.
+data ComputeVpnGatewaysGetStatus = ComputeVpnGatewaysGetStatus
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the VPN gateway to return.
+    vpnGateway :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysGetStatus' with the minimum fields required to make a request.
+newComputeVpnGatewaysGetStatus ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the VPN gateway to return. See 'vpnGateway'.
+  Core.Text ->
+  ComputeVpnGatewaysGetStatus
+newComputeVpnGatewaysGetStatus project region vpnGateway =
+  ComputeVpnGatewaysGetStatus
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      vpnGateway = vpnGateway
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysGetStatus where
+  type Rs ComputeVpnGatewaysGetStatus = VpnGatewaysGetStatusResponse
+  type
+    Scopes ComputeVpnGatewaysGetStatus =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnGatewaysGetStatus {..} =
+    go
+      project
+      region
+      vpnGateway
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysGetStatusResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/Insert.hs b/gen/Gogol/Compute/VpnGateways/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a VPN gateway in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.insert@.
+module Gogol.Compute.VpnGateways.Insert
+  ( -- * Resource
+    ComputeVpnGatewaysInsertResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysInsert (..),
+    newComputeVpnGatewaysInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.insert@ method which the
+-- 'ComputeVpnGatewaysInsert' request conforms to.
+type ComputeVpnGatewaysInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] VpnGateway
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a VPN gateway in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeVpnGatewaysInsert' smart constructor.
+data ComputeVpnGatewaysInsert = ComputeVpnGatewaysInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: VpnGateway,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysInsert' with the minimum fields required to make a request.
+newComputeVpnGatewaysInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  VpnGateway ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeVpnGatewaysInsert
+newComputeVpnGatewaysInsert payload project region =
+  ComputeVpnGatewaysInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysInsert where
+  type Rs ComputeVpnGatewaysInsert = Operation
+  type
+    Scopes ComputeVpnGatewaysInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnGatewaysInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/List.hs b/gen/Gogol/Compute/VpnGateways/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of VPN gateways available to the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.list@.
+module Gogol.Compute.VpnGateways.List
+  ( -- * Resource
+    ComputeVpnGatewaysListResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysList (..),
+    newComputeVpnGatewaysList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.list@ method which the
+-- 'ComputeVpnGatewaysList' request conforms to.
+type ComputeVpnGatewaysListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnGatewayList
+
+-- | Retrieves a list of VPN gateways available to the specified project and region.
+--
+-- /See:/ 'newComputeVpnGatewaysList' smart constructor.
+data ComputeVpnGatewaysList = ComputeVpnGatewaysList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysList' with the minimum fields required to make a request.
+newComputeVpnGatewaysList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeVpnGatewaysList
+newComputeVpnGatewaysList project region =
+  ComputeVpnGatewaysList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysList where
+  type Rs ComputeVpnGatewaysList = VpnGatewayList
+  type
+    Scopes ComputeVpnGatewaysList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnGatewaysList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/SetLabels.hs b/gen/Gogol/Compute/VpnGateways/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.setLabels@.
+module Gogol.Compute.VpnGateways.SetLabels
+  ( -- * Resource
+    ComputeVpnGatewaysSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysSetLabels (..),
+    newComputeVpnGatewaysSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.setLabels@ method which the
+-- 'ComputeVpnGatewaysSetLabels' request conforms to.
+type ComputeVpnGatewaysSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeVpnGatewaysSetLabels' smart constructor.
+data ComputeVpnGatewaysSetLabels = ComputeVpnGatewaysSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysSetLabels' with the minimum fields required to make a request.
+newComputeVpnGatewaysSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeVpnGatewaysSetLabels
+newComputeVpnGatewaysSetLabels payload project region resource =
+  ComputeVpnGatewaysSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnGatewaysSetLabels where
+  type Rs ComputeVpnGatewaysSetLabels = Operation
+  type
+    Scopes ComputeVpnGatewaysSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnGatewaysSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnGatewaysSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnGateways/TestIamPermissions.hs b/gen/Gogol/Compute/VpnGateways/TestIamPermissions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnGateways/TestIamPermissions.hs
@@ -0,0 +1,143 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnGateways.TestIamPermissions
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnGateways.testIamPermissions@.
+module Gogol.Compute.VpnGateways.TestIamPermissions
+  ( -- * Resource
+    ComputeVpnGatewaysTestIamPermissionsResource,
+
+    -- ** Constructing a Request
+    ComputeVpnGatewaysTestIamPermissions (..),
+    newComputeVpnGatewaysTestIamPermissions,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnGateways.testIamPermissions@ method which the
+-- 'ComputeVpnGatewaysTestIamPermissions' request conforms to.
+type ComputeVpnGatewaysTestIamPermissionsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnGateways"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "testIamPermissions"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] TestPermissionsRequest
+    Core.:> Core.Post '[Core.JSON] TestPermissionsResponse
+
+-- | Returns permissions that a caller has on the specified resource.
+--
+-- /See:/ 'newComputeVpnGatewaysTestIamPermissions' smart constructor.
+data ComputeVpnGatewaysTestIamPermissions = ComputeVpnGatewaysTestIamPermissions
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: TestPermissionsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The name of the region for this request.
+    region :: Core.Text,
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnGatewaysTestIamPermissions' with the minimum fields required to make a request.
+newComputeVpnGatewaysTestIamPermissions ::
+  -- |  Multipart request metadata. See 'payload'.
+  TestPermissionsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeVpnGatewaysTestIamPermissions
+newComputeVpnGatewaysTestIamPermissions
+  payload
+  project
+  region
+  resource =
+    ComputeVpnGatewaysTestIamPermissions
+      { xgafv = Core.Nothing,
+        accessToken = Core.Nothing,
+        callback = Core.Nothing,
+        payload = payload,
+        project = project,
+        region = region,
+        resource = resource,
+        uploadType = Core.Nothing,
+        uploadProtocol = Core.Nothing
+      }
+
+instance Core.GoogleRequest ComputeVpnGatewaysTestIamPermissions where
+  type
+    Rs ComputeVpnGatewaysTestIamPermissions =
+      TestPermissionsResponse
+  type
+    Scopes ComputeVpnGatewaysTestIamPermissions =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnGatewaysTestIamPermissions {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          ( Core.Proxy ::
+              Core.Proxy ComputeVpnGatewaysTestIamPermissionsResource
+          )
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/AggregatedList.hs b/gen/Gogol/Compute/VpnTunnels/AggregatedList.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/AggregatedList.hs
@@ -0,0 +1,150 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.AggregatedList
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.aggregatedList@.
+module Gogol.Compute.VpnTunnels.AggregatedList
+  ( -- * Resource
+    ComputeVpnTunnelsAggregatedListResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsAggregatedList (..),
+    newComputeVpnTunnelsAggregatedList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.aggregatedList@ method which the
+-- 'ComputeVpnTunnelsAggregatedList' request conforms to.
+type ComputeVpnTunnelsAggregatedListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "aggregated"
+    Core.:> "vpnTunnels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "includeAllScopes" Core.Bool
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "serviceProjectNumber" Core.Int64
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnTunnelAggregatedList
+
+-- | Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the @returnPartialSuccess@ parameter to @true@.
+--
+-- /See:/ 'newComputeVpnTunnelsAggregatedList' smart constructor.
+data ComputeVpnTunnelsAggregatedList = ComputeVpnTunnelsAggregatedList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.
+    includeAllScopes :: (Core.Maybe Core.Bool),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.
+    serviceProjectNumber :: (Core.Maybe Core.Int64),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsAggregatedList' with the minimum fields required to make a request.
+newComputeVpnTunnelsAggregatedList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeVpnTunnelsAggregatedList
+newComputeVpnTunnelsAggregatedList project =
+  ComputeVpnTunnelsAggregatedList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      includeAllScopes = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      serviceProjectNumber = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsAggregatedList where
+  type Rs ComputeVpnTunnelsAggregatedList = VpnTunnelAggregatedList
+  type
+    Scopes ComputeVpnTunnelsAggregatedList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnTunnelsAggregatedList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      includeAllScopes
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      serviceProjectNumber
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsAggregatedListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/Delete.hs b/gen/Gogol/Compute/VpnTunnels/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/Delete.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified VpnTunnel resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.delete@.
+module Gogol.Compute.VpnTunnels.Delete
+  ( -- * Resource
+    ComputeVpnTunnelsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsDelete (..),
+    newComputeVpnTunnelsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.delete@ method which the
+-- 'ComputeVpnTunnelsDelete' request conforms to.
+type ComputeVpnTunnelsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnTunnels"
+    Core.:> Core.Capture "vpnTunnel" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] Operation
+
+-- | Deletes the specified VpnTunnel resource.
+--
+-- /See:/ 'newComputeVpnTunnelsDelete' smart constructor.
+data ComputeVpnTunnelsDelete = ComputeVpnTunnelsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the VpnTunnel resource to delete.
+    vpnTunnel :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsDelete' with the minimum fields required to make a request.
+newComputeVpnTunnelsDelete ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the VpnTunnel resource to delete. See 'vpnTunnel'.
+  Core.Text ->
+  ComputeVpnTunnelsDelete
+newComputeVpnTunnelsDelete project region vpnTunnel =
+  ComputeVpnTunnelsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      vpnTunnel = vpnTunnel
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsDelete where
+  type Rs ComputeVpnTunnelsDelete = Operation
+  type
+    Scopes ComputeVpnTunnelsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnTunnelsDelete {..} =
+    go
+      project
+      region
+      vpnTunnel
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/Get.hs b/gen/Gogol/Compute/VpnTunnels/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified VpnTunnel resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.get@.
+module Gogol.Compute.VpnTunnels.Get
+  ( -- * Resource
+    ComputeVpnTunnelsGetResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsGet (..),
+    newComputeVpnTunnelsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.get@ method which the
+-- 'ComputeVpnTunnelsGet' request conforms to.
+type ComputeVpnTunnelsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnTunnels"
+    Core.:> Core.Capture "vpnTunnel" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnTunnel
+
+-- | Returns the specified VpnTunnel resource.
+--
+-- /See:/ 'newComputeVpnTunnelsGet' smart constructor.
+data ComputeVpnTunnelsGet = ComputeVpnTunnelsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the VpnTunnel resource to return.
+    vpnTunnel :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsGet' with the minimum fields required to make a request.
+newComputeVpnTunnelsGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name of the VpnTunnel resource to return. See 'vpnTunnel'.
+  Core.Text ->
+  ComputeVpnTunnelsGet
+newComputeVpnTunnelsGet project region vpnTunnel =
+  ComputeVpnTunnelsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      region = region,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      vpnTunnel = vpnTunnel
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsGet where
+  type Rs ComputeVpnTunnelsGet = VpnTunnel
+  type
+    Scopes ComputeVpnTunnelsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnTunnelsGet {..} =
+    go
+      project
+      region
+      vpnTunnel
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/Insert.hs b/gen/Gogol/Compute/VpnTunnels/Insert.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/Insert.hs
@@ -0,0 +1,132 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.Insert
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a VpnTunnel resource in the specified project and region using the data included in the request.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.insert@.
+module Gogol.Compute.VpnTunnels.Insert
+  ( -- * Resource
+    ComputeVpnTunnelsInsertResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsInsert (..),
+    newComputeVpnTunnelsInsert,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.insert@ method which the
+-- 'ComputeVpnTunnelsInsert' request conforms to.
+type ComputeVpnTunnelsInsertResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnTunnels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] VpnTunnel
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Creates a VpnTunnel resource in the specified project and region using the data included in the request.
+--
+-- /See:/ 'newComputeVpnTunnelsInsert' smart constructor.
+data ComputeVpnTunnelsInsert = ComputeVpnTunnelsInsert
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: VpnTunnel,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsInsert' with the minimum fields required to make a request.
+newComputeVpnTunnelsInsert ::
+  -- |  Multipart request metadata. See 'payload'.
+  VpnTunnel ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeVpnTunnelsInsert
+newComputeVpnTunnelsInsert payload project region =
+  ComputeVpnTunnelsInsert
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsInsert where
+  type Rs ComputeVpnTunnelsInsert = Operation
+  type
+    Scopes ComputeVpnTunnelsInsert =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnTunnelsInsert {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsInsertResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/List.hs b/gen/Gogol/Compute/VpnTunnels/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of VpnTunnel resources contained in the specified project and region.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.list@.
+module Gogol.Compute.VpnTunnels.List
+  ( -- * Resource
+    ComputeVpnTunnelsListResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsList (..),
+    newComputeVpnTunnelsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.list@ method which the
+-- 'ComputeVpnTunnelsList' request conforms to.
+type ComputeVpnTunnelsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnTunnels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] VpnTunnelList
+
+-- | Retrieves a list of VpnTunnel resources contained in the specified project and region.
+--
+-- /See:/ 'newComputeVpnTunnelsList' smart constructor.
+data ComputeVpnTunnelsList = ComputeVpnTunnelsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Name of the region for this request.
+    region :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsList' with the minimum fields required to make a request.
+newComputeVpnTunnelsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the region for this request. See 'region'.
+  Core.Text ->
+  ComputeVpnTunnelsList
+newComputeVpnTunnelsList project region =
+  ComputeVpnTunnelsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      region = region,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsList where
+  type Rs ComputeVpnTunnelsList = VpnTunnelList
+  type
+    Scopes ComputeVpnTunnelsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeVpnTunnelsList {..} =
+    go
+      project
+      region
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/VpnTunnels/SetLabels.hs b/gen/Gogol/Compute/VpnTunnels/SetLabels.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/VpnTunnels/SetLabels.hs
@@ -0,0 +1,140 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.VpnTunnels.SetLabels
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.vpnTunnels.setLabels@.
+module Gogol.Compute.VpnTunnels.SetLabels
+  ( -- * Resource
+    ComputeVpnTunnelsSetLabelsResource,
+
+    -- ** Constructing a Request
+    ComputeVpnTunnelsSetLabels (..),
+    newComputeVpnTunnelsSetLabels,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.vpnTunnels.setLabels@ method which the
+-- 'ComputeVpnTunnelsSetLabels' request conforms to.
+type ComputeVpnTunnelsSetLabelsResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "regions"
+    Core.:> Core.Capture "region" Core.Text
+    Core.:> "vpnTunnels"
+    Core.:> Core.Capture "resource" Core.Text
+    Core.:> "setLabels"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "requestId" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.ReqBody '[Core.JSON] RegionSetLabelsRequest
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.
+--
+-- /See:/ 'newComputeVpnTunnelsSetLabels' smart constructor.
+data ComputeVpnTunnelsSetLabels = ComputeVpnTunnelsSetLabels
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Multipart request metadata.
+    payload :: RegionSetLabelsRequest,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | The region for this request.
+    region :: Core.Text,
+    -- | An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).
+    requestId :: (Core.Maybe Core.Text),
+    -- | Name or id of the resource for this request.
+    resource :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeVpnTunnelsSetLabels' with the minimum fields required to make a request.
+newComputeVpnTunnelsSetLabels ::
+  -- |  Multipart request metadata. See 'payload'.
+  RegionSetLabelsRequest ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  The region for this request. See 'region'.
+  Core.Text ->
+  -- |  Name or id of the resource for this request. See 'resource'.
+  Core.Text ->
+  ComputeVpnTunnelsSetLabels
+newComputeVpnTunnelsSetLabels payload project region resource =
+  ComputeVpnTunnelsSetLabels
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      payload = payload,
+      project = project,
+      region = region,
+      requestId = Core.Nothing,
+      resource = resource,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeVpnTunnelsSetLabels where
+  type Rs ComputeVpnTunnelsSetLabels = Operation
+  type
+    Scopes ComputeVpnTunnelsSetLabels =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeVpnTunnelsSetLabels {..} =
+    go
+      project
+      region
+      resource
+      xgafv
+      accessToken
+      callback
+      requestId
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      payload
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeVpnTunnelsSetLabelsResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ZoneOperations/Delete.hs b/gen/Gogol/Compute/ZoneOperations/Delete.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ZoneOperations/Delete.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ZoneOperations.Delete
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes the specified zone-specific Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zoneOperations.delete@.
+module Gogol.Compute.ZoneOperations.Delete
+  ( -- * Resource
+    ComputeZoneOperationsDeleteResource,
+
+    -- ** Constructing a Request
+    ComputeZoneOperationsDelete (..),
+    newComputeZoneOperationsDelete,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zoneOperations.delete@ method which the
+-- 'ComputeZoneOperationsDelete' request conforms to.
+type ComputeZoneOperationsDeleteResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Delete '[Core.JSON] ()
+
+-- | Deletes the specified zone-specific Operations resource.
+--
+-- /See:/ 'newComputeZoneOperationsDelete' smart constructor.
+data ComputeZoneOperationsDelete = ComputeZoneOperationsDelete
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to delete, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZoneOperationsDelete' with the minimum fields required to make a request.
+newComputeZoneOperationsDelete ::
+  -- |  Name of the Operations resource to delete, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeZoneOperationsDelete
+newComputeZoneOperationsDelete operation project zone =
+  ComputeZoneOperationsDelete
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeZoneOperationsDelete where
+  type Rs ComputeZoneOperationsDelete = ()
+  type
+    Scopes ComputeZoneOperationsDelete =
+      '[CloudPlatform'FullControl, Compute'FullControl]
+  requestClient ComputeZoneOperationsDelete {..} =
+    go
+      project
+      zone
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZoneOperationsDeleteResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ZoneOperations/Get.hs b/gen/Gogol/Compute/ZoneOperations/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ZoneOperations/Get.hs
@@ -0,0 +1,127 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ZoneOperations.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the specified zone-specific Operations resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zoneOperations.get@.
+module Gogol.Compute.ZoneOperations.Get
+  ( -- * Resource
+    ComputeZoneOperationsGetResource,
+
+    -- ** Constructing a Request
+    ComputeZoneOperationsGet (..),
+    newComputeZoneOperationsGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zoneOperations.get@ method which the
+-- 'ComputeZoneOperationsGet' request conforms to.
+type ComputeZoneOperationsGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Operation
+
+-- | Retrieves the specified zone-specific Operations resource.
+--
+-- /See:/ 'newComputeZoneOperationsGet' smart constructor.
+data ComputeZoneOperationsGet = ComputeZoneOperationsGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZoneOperationsGet' with the minimum fields required to make a request.
+newComputeZoneOperationsGet ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeZoneOperationsGet
+newComputeZoneOperationsGet operation project zone =
+  ComputeZoneOperationsGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeZoneOperationsGet where
+  type Rs ComputeZoneOperationsGet = Operation
+  type
+    Scopes ComputeZoneOperationsGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeZoneOperationsGet {..} =
+    go
+      project
+      zone
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZoneOperationsGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ZoneOperations/List.hs b/gen/Gogol/Compute/ZoneOperations/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ZoneOperations/List.hs
@@ -0,0 +1,147 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ZoneOperations.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves a list of Operation resources contained within the specified zone.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zoneOperations.list@.
+module Gogol.Compute.ZoneOperations.List
+  ( -- * Resource
+    ComputeZoneOperationsListResource,
+
+    -- ** Constructing a Request
+    ComputeZoneOperationsList (..),
+    newComputeZoneOperationsList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zoneOperations.list@ method which the
+-- 'ComputeZoneOperationsList' request conforms to.
+type ComputeZoneOperationsListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "operations"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] OperationList
+
+-- | Retrieves a list of Operation resources contained within the specified zone.
+--
+-- /See:/ 'newComputeZoneOperationsList' smart constructor.
+data ComputeZoneOperationsList = ComputeZoneOperationsList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZoneOperationsList' with the minimum fields required to make a request.
+newComputeZoneOperationsList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for request. See 'zone'.
+  Core.Text ->
+  ComputeZoneOperationsList
+newComputeZoneOperationsList project zone =
+  ComputeZoneOperationsList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeZoneOperationsList where
+  type Rs ComputeZoneOperationsList = OperationList
+  type
+    Scopes ComputeZoneOperationsList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeZoneOperationsList {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZoneOperationsListResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/ZoneOperations/Wait.hs b/gen/Gogol/Compute/ZoneOperations/Wait.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/ZoneOperations/Wait.hs
@@ -0,0 +1,128 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.ZoneOperations.Wait
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method waits for no more than the 2 minutes and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zoneOperations.wait@.
+module Gogol.Compute.ZoneOperations.Wait
+  ( -- * Resource
+    ComputeZoneOperationsWaitResource,
+
+    -- ** Constructing a Request
+    ComputeZoneOperationsWait (..),
+    newComputeZoneOperationsWait,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zoneOperations.wait@ method which the
+-- 'ComputeZoneOperationsWait' request conforms to.
+type ComputeZoneOperationsWaitResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> "operations"
+    Core.:> Core.Capture "operation" Core.Text
+    Core.:> "wait"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Post '[Core.JSON] Operation
+
+-- | Waits for the specified Operation resource to return as @DONE@ or for the request to approach the 2 minute deadline, and retrieves the specified Operation resource. This method waits for no more than the 2 minutes and then returns the current state of the operation, which might be @DONE@ or still in progress. This method is called on a best-effort basis. Specifically: - In uncommon cases, when the server is overloaded, the request might return before the default deadline is reached, or might return after zero seconds. - If the default deadline is reached, there is no guarantee that the operation is actually done when the method returns. Be prepared to retry if the operation is not @DONE@.
+--
+-- /See:/ 'newComputeZoneOperationsWait' smart constructor.
+data ComputeZoneOperationsWait = ComputeZoneOperationsWait
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Name of the Operations resource to return, or its unique numeric identifier.
+    operation :: Core.Text,
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone for this request.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZoneOperationsWait' with the minimum fields required to make a request.
+newComputeZoneOperationsWait ::
+  -- |  Name of the Operations resource to return, or its unique numeric identifier. See 'operation'.
+  Core.Text ->
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone for this request. See 'zone'.
+  Core.Text ->
+  ComputeZoneOperationsWait
+newComputeZoneOperationsWait operation project zone =
+  ComputeZoneOperationsWait
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      operation = operation,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeZoneOperationsWait where
+  type Rs ComputeZoneOperationsWait = Operation
+  type
+    Scopes ComputeZoneOperationsWait =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeZoneOperationsWait {..} =
+    go
+      project
+      zone
+      operation
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZoneOperationsWaitResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Zones/Get.hs b/gen/Gogol/Compute/Zones/Get.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Zones/Get.hs
@@ -0,0 +1,119 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Zones.Get
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified Zone resource.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zones.get@.
+module Gogol.Compute.Zones.Get
+  ( -- * Resource
+    ComputeZonesGetResource,
+
+    -- ** Constructing a Request
+    ComputeZonesGet (..),
+    newComputeZonesGet,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zones.get@ method which the
+-- 'ComputeZonesGet' request conforms to.
+type ComputeZonesGetResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.Capture "zone" Core.Text
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] Zone
+
+-- | Returns the specified Zone resource.
+--
+-- /See:/ 'newComputeZonesGet' smart constructor.
+data ComputeZonesGet = ComputeZonesGet
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text),
+    -- | Name of the zone resource to return.
+    zone :: Core.Text
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZonesGet' with the minimum fields required to make a request.
+newComputeZonesGet ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  -- |  Name of the zone resource to return. See 'zone'.
+  Core.Text ->
+  ComputeZonesGet
+newComputeZonesGet project zone =
+  ComputeZonesGet
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      project = project,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing,
+      zone = zone
+    }
+
+instance Core.GoogleRequest ComputeZonesGet where
+  type Rs ComputeZonesGet = Zone
+  type
+    Scopes ComputeZonesGet =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeZonesGet {..} =
+    go
+      project
+      zone
+      xgafv
+      accessToken
+      callback
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZonesGetResource)
+          Core.mempty
diff --git a/gen/Gogol/Compute/Zones/List.hs b/gen/Gogol/Compute/Zones/List.hs
new file mode 100644
--- /dev/null
+++ b/gen/Gogol/Compute/Zones/List.hs
@@ -0,0 +1,139 @@
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE ImportQualifiedPost #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- |
+-- Module      : Gogol.Compute.Zones.List
+-- Copyright   : (c) 2015-2025 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay <brendan.g.hay+gogol@gmail.com>
+--               Toni Cebrián <toni@tonicebrian.com>
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Retrieves the list of Zone resources available to the specified project.
+--
+-- /See:/ <https://cloud.google.com/compute/ Compute Engine API Reference> for @compute.zones.list@.
+module Gogol.Compute.Zones.List
+  ( -- * Resource
+    ComputeZonesListResource,
+
+    -- ** Constructing a Request
+    ComputeZonesList (..),
+    newComputeZonesList,
+  )
+where
+
+import Gogol.Compute.Types
+import Gogol.Prelude qualified as Core
+
+-- | A resource alias for @compute.zones.list@ method which the
+-- 'ComputeZonesList' request conforms to.
+type ComputeZonesListResource =
+  "compute"
+    Core.:> "v1"
+    Core.:> "projects"
+    Core.:> Core.Capture "project" Core.Text
+    Core.:> "zones"
+    Core.:> Core.QueryParam "$.xgafv" Xgafv
+    Core.:> Core.QueryParam "access_token" Core.Text
+    Core.:> Core.QueryParam "callback" Core.Text
+    Core.:> Core.QueryParam "filter" Core.Text
+    Core.:> Core.QueryParam "maxResults" Core.Word32
+    Core.:> Core.QueryParam "orderBy" Core.Text
+    Core.:> Core.QueryParam "pageToken" Core.Text
+    Core.:> Core.QueryParam "returnPartialSuccess" Core.Bool
+    Core.:> Core.QueryParam "uploadType" Core.Text
+    Core.:> Core.QueryParam "upload_protocol" Core.Text
+    Core.:> Core.QueryParam "alt" Core.AltJSON
+    Core.:> Core.Get '[Core.JSON] ZoneList
+
+-- | Retrieves the list of Zone resources available to the specified project.
+--
+-- /See:/ 'newComputeZonesList' smart constructor.
+data ComputeZonesList = ComputeZonesList
+  { -- | V1 error format.
+    xgafv :: (Core.Maybe Xgafv),
+    -- | OAuth access token.
+    accessToken :: (Core.Maybe Core.Text),
+    -- | JSONP
+    callback :: (Core.Maybe Core.Text),
+    -- | A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either @=@, @!=@, @>@, @\<@, @\<=@, @>=@ or @:@. For example, if you are filtering Compute Engine instances, you can exclude instances named @example-instance@ by specifying @name != example-instance@. The @:*@ comparison can be used to test whether a key has been defined. For example, to find all objects with @owner@ label use: @labels.owner:*@ You can also filter nested fields. For example, you could specify @scheduling.automaticRestart = false@ to include instances only if they are not scheduled for
+    -- automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: @(scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\")@ By default, each expression is an @AND@ expression. However, you can include @AND@ and @OR@ expressions explicitly. For example: @(cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true)@ If you want to use a regular expression, use the @eq@ (equal) or @ne@ (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: @fieldname eq unquoted literal@ @fieldname eq \'single quoted literal\'@ @fieldname eq \"double quoted literal\"@ @(fieldname1 eq literal) (fieldname2 ne \"literal\")@ The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the
+    -- entire field. For example, to filter for instances that do not end with name \"instance\", you would use @name ne .*instance@. You cannot combine constraints on multiple fields using regular expressions.
+    filter :: (Core.Maybe Core.Text),
+    -- | The maximum number of results per page that should be returned. If the number of available results is larger than @maxResults@, Compute Engine returns a @nextPageToken@ that can be used to get the next page of results in subsequent list requests. Acceptable values are @0@ to @500@, inclusive. (Default: @500@)
+    maxResults :: Core.Word32,
+    -- | Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using @orderBy=\"creationTimestamp desc\"@. This sorts results based on the @creationTimestamp@ field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by @name@ or @creationTimestamp desc@ is supported.
+    orderBy :: (Core.Maybe Core.Text),
+    -- | Specifies a page token to use. Set @pageToken@ to the @nextPageToken@ returned by a previous list request to get the next page of results.
+    pageToken :: (Core.Maybe Core.Text),
+    -- | Project ID for this request.
+    project :: Core.Text,
+    -- | Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.
+    returnPartialSuccess :: (Core.Maybe Core.Bool),
+    -- | Legacy upload protocol for media (e.g. \"media\", \"multipart\").
+    uploadType :: (Core.Maybe Core.Text),
+    -- | Upload protocol for media (e.g. \"raw\", \"multipart\").
+    uploadProtocol :: (Core.Maybe Core.Text)
+  }
+  deriving (Core.Eq, Core.Show, Core.Generic)
+
+-- | Creates a value of 'ComputeZonesList' with the minimum fields required to make a request.
+newComputeZonesList ::
+  -- |  Project ID for this request. See 'project'.
+  Core.Text ->
+  ComputeZonesList
+newComputeZonesList project =
+  ComputeZonesList
+    { xgafv = Core.Nothing,
+      accessToken = Core.Nothing,
+      callback = Core.Nothing,
+      filter = Core.Nothing,
+      maxResults = 500,
+      orderBy = Core.Nothing,
+      pageToken = Core.Nothing,
+      project = project,
+      returnPartialSuccess = Core.Nothing,
+      uploadType = Core.Nothing,
+      uploadProtocol = Core.Nothing
+    }
+
+instance Core.GoogleRequest ComputeZonesList where
+  type Rs ComputeZonesList = ZoneList
+  type
+    Scopes ComputeZonesList =
+      '[CloudPlatform'FullControl, Compute'FullControl, Compute'Readonly]
+  requestClient ComputeZonesList {..} =
+    go
+      project
+      xgafv
+      accessToken
+      callback
+      filter
+      (Core.Just maxResults)
+      orderBy
+      pageToken
+      returnPartialSuccess
+      uploadType
+      uploadProtocol
+      (Core.Just Core.AltJSON)
+      computeService
+    where
+      go =
+        Core.buildClient
+          (Core.Proxy :: Core.Proxy ComputeZonesListResource)
+          Core.mempty
diff --git a/gen/Network/Google/Compute.hs b/gen/Network/Google/Compute.hs
deleted file mode 100644
--- a/gen/Network/Google/Compute.hs
+++ /dev/null
@@ -1,7594 +0,0 @@
-{-# LANGUAGE DataKinds         #-}
-{-# LANGUAGE NoImplicitPrelude #-}
-{-# LANGUAGE TypeOperators     #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- |
--- Module      : Network.Google.Compute
--- 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 and runs virtual machines on Google Cloud Platform.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference>
-module Network.Google.Compute
-    (
-    -- * Service Configuration
-      computeService
-
-    -- * OAuth Scopes
-    , computeScope
-    , cloudPlatformScope
-    , storageReadOnlyScope
-    , storageReadWriteScope
-    , computeReadOnlyScope
-    , storageFullControlScope
-
-    -- * API Declaration
-    , ComputeAPI
-
-    -- * Resources
-
-    -- ** compute.acceleratorTypes.aggregatedList
-    , module Network.Google.Resource.Compute.AcceleratorTypes.AggregatedList
-
-    -- ** compute.acceleratorTypes.get
-    , module Network.Google.Resource.Compute.AcceleratorTypes.Get
-
-    -- ** compute.acceleratorTypes.list
-    , module Network.Google.Resource.Compute.AcceleratorTypes.List
-
-    -- ** compute.addresses.aggregatedList
-    , module Network.Google.Resource.Compute.Addresses.AggregatedList
-
-    -- ** compute.addresses.delete
-    , module Network.Google.Resource.Compute.Addresses.Delete
-
-    -- ** compute.addresses.get
-    , module Network.Google.Resource.Compute.Addresses.Get
-
-    -- ** compute.addresses.insert
-    , module Network.Google.Resource.Compute.Addresses.Insert
-
-    -- ** compute.addresses.list
-    , module Network.Google.Resource.Compute.Addresses.List
-
-    -- ** compute.autoscalers.aggregatedList
-    , module Network.Google.Resource.Compute.Autoscalers.AggregatedList
-
-    -- ** compute.autoscalers.delete
-    , module Network.Google.Resource.Compute.Autoscalers.Delete
-
-    -- ** compute.autoscalers.get
-    , module Network.Google.Resource.Compute.Autoscalers.Get
-
-    -- ** compute.autoscalers.insert
-    , module Network.Google.Resource.Compute.Autoscalers.Insert
-
-    -- ** compute.autoscalers.list
-    , module Network.Google.Resource.Compute.Autoscalers.List
-
-    -- ** compute.autoscalers.patch
-    , module Network.Google.Resource.Compute.Autoscalers.Patch
-
-    -- ** compute.autoscalers.update
-    , module Network.Google.Resource.Compute.Autoscalers.Update
-
-    -- ** compute.backendBuckets.addSignedUrlKey
-    , module Network.Google.Resource.Compute.BackendBuckets.AddSignedURLKey
-
-    -- ** compute.backendBuckets.delete
-    , module Network.Google.Resource.Compute.BackendBuckets.Delete
-
-    -- ** compute.backendBuckets.deleteSignedUrlKey
-    , module Network.Google.Resource.Compute.BackendBuckets.DeleteSignedURLKey
-
-    -- ** compute.backendBuckets.get
-    , module Network.Google.Resource.Compute.BackendBuckets.Get
-
-    -- ** compute.backendBuckets.insert
-    , module Network.Google.Resource.Compute.BackendBuckets.Insert
-
-    -- ** compute.backendBuckets.list
-    , module Network.Google.Resource.Compute.BackendBuckets.List
-
-    -- ** compute.backendBuckets.patch
-    , module Network.Google.Resource.Compute.BackendBuckets.Patch
-
-    -- ** compute.backendBuckets.update
-    , module Network.Google.Resource.Compute.BackendBuckets.Update
-
-    -- ** compute.backendServices.addSignedUrlKey
-    , module Network.Google.Resource.Compute.BackendServices.AddSignedURLKey
-
-    -- ** compute.backendServices.aggregatedList
-    , module Network.Google.Resource.Compute.BackendServices.AggregatedList
-
-    -- ** compute.backendServices.delete
-    , module Network.Google.Resource.Compute.BackendServices.Delete
-
-    -- ** compute.backendServices.deleteSignedUrlKey
-    , module Network.Google.Resource.Compute.BackendServices.DeleteSignedURLKey
-
-    -- ** compute.backendServices.get
-    , module Network.Google.Resource.Compute.BackendServices.Get
-
-    -- ** compute.backendServices.getHealth
-    , module Network.Google.Resource.Compute.BackendServices.GetHealth
-
-    -- ** compute.backendServices.insert
-    , module Network.Google.Resource.Compute.BackendServices.Insert
-
-    -- ** compute.backendServices.list
-    , module Network.Google.Resource.Compute.BackendServices.List
-
-    -- ** compute.backendServices.patch
-    , module Network.Google.Resource.Compute.BackendServices.Patch
-
-    -- ** compute.backendServices.setSecurityPolicy
-    , module Network.Google.Resource.Compute.BackendServices.SetSecurityPolicy
-
-    -- ** compute.backendServices.update
-    , module Network.Google.Resource.Compute.BackendServices.Update
-
-    -- ** compute.diskTypes.aggregatedList
-    , module Network.Google.Resource.Compute.DiskTypes.AggregatedList
-
-    -- ** compute.diskTypes.get
-    , module Network.Google.Resource.Compute.DiskTypes.Get
-
-    -- ** compute.diskTypes.list
-    , module Network.Google.Resource.Compute.DiskTypes.List
-
-    -- ** compute.disks.aggregatedList
-    , module Network.Google.Resource.Compute.Disks.AggregatedList
-
-    -- ** compute.disks.createSnapshot
-    , module Network.Google.Resource.Compute.Disks.CreateSnapshot
-
-    -- ** compute.disks.delete
-    , module Network.Google.Resource.Compute.Disks.Delete
-
-    -- ** compute.disks.get
-    , module Network.Google.Resource.Compute.Disks.Get
-
-    -- ** compute.disks.getIamPolicy
-    , module Network.Google.Resource.Compute.Disks.GetIAMPolicy
-
-    -- ** compute.disks.insert
-    , module Network.Google.Resource.Compute.Disks.Insert
-
-    -- ** compute.disks.list
-    , module Network.Google.Resource.Compute.Disks.List
-
-    -- ** compute.disks.resize
-    , module Network.Google.Resource.Compute.Disks.Resize
-
-    -- ** compute.disks.setIamPolicy
-    , module Network.Google.Resource.Compute.Disks.SetIAMPolicy
-
-    -- ** compute.disks.setLabels
-    , module Network.Google.Resource.Compute.Disks.SetLabels
-
-    -- ** compute.disks.testIamPermissions
-    , module Network.Google.Resource.Compute.Disks.TestIAMPermissions
-
-    -- ** compute.firewalls.delete
-    , module Network.Google.Resource.Compute.Firewalls.Delete
-
-    -- ** compute.firewalls.get
-    , module Network.Google.Resource.Compute.Firewalls.Get
-
-    -- ** compute.firewalls.insert
-    , module Network.Google.Resource.Compute.Firewalls.Insert
-
-    -- ** compute.firewalls.list
-    , module Network.Google.Resource.Compute.Firewalls.List
-
-    -- ** compute.firewalls.patch
-    , module Network.Google.Resource.Compute.Firewalls.Patch
-
-    -- ** compute.firewalls.update
-    , module Network.Google.Resource.Compute.Firewalls.Update
-
-    -- ** compute.forwardingRules.aggregatedList
-    , module Network.Google.Resource.Compute.ForwardingRules.AggregatedList
-
-    -- ** compute.forwardingRules.delete
-    , module Network.Google.Resource.Compute.ForwardingRules.Delete
-
-    -- ** compute.forwardingRules.get
-    , module Network.Google.Resource.Compute.ForwardingRules.Get
-
-    -- ** compute.forwardingRules.insert
-    , module Network.Google.Resource.Compute.ForwardingRules.Insert
-
-    -- ** compute.forwardingRules.list
-    , module Network.Google.Resource.Compute.ForwardingRules.List
-
-    -- ** compute.forwardingRules.setTarget
-    , module Network.Google.Resource.Compute.ForwardingRules.SetTarget
-
-    -- ** compute.globalAddresses.delete
-    , module Network.Google.Resource.Compute.GlobalAddresses.Delete
-
-    -- ** compute.globalAddresses.get
-    , module Network.Google.Resource.Compute.GlobalAddresses.Get
-
-    -- ** compute.globalAddresses.insert
-    , module Network.Google.Resource.Compute.GlobalAddresses.Insert
-
-    -- ** compute.globalAddresses.list
-    , module Network.Google.Resource.Compute.GlobalAddresses.List
-
-    -- ** compute.globalForwardingRules.delete
-    , module Network.Google.Resource.Compute.GlobalForwardingRules.Delete
-
-    -- ** compute.globalForwardingRules.get
-    , module Network.Google.Resource.Compute.GlobalForwardingRules.Get
-
-    -- ** compute.globalForwardingRules.insert
-    , module Network.Google.Resource.Compute.GlobalForwardingRules.Insert
-
-    -- ** compute.globalForwardingRules.list
-    , module Network.Google.Resource.Compute.GlobalForwardingRules.List
-
-    -- ** compute.globalForwardingRules.setTarget
-    , module Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget
-
-    -- ** compute.globalOperations.aggregatedList
-    , module Network.Google.Resource.Compute.GlobalOperations.AggregatedList
-
-    -- ** compute.globalOperations.delete
-    , module Network.Google.Resource.Compute.GlobalOperations.Delete
-
-    -- ** compute.globalOperations.get
-    , module Network.Google.Resource.Compute.GlobalOperations.Get
-
-    -- ** compute.globalOperations.list
-    , module Network.Google.Resource.Compute.GlobalOperations.List
-
-    -- ** compute.healthChecks.delete
-    , module Network.Google.Resource.Compute.HealthChecks.Delete
-
-    -- ** compute.healthChecks.get
-    , module Network.Google.Resource.Compute.HealthChecks.Get
-
-    -- ** compute.healthChecks.insert
-    , module Network.Google.Resource.Compute.HealthChecks.Insert
-
-    -- ** compute.healthChecks.list
-    , module Network.Google.Resource.Compute.HealthChecks.List
-
-    -- ** compute.healthChecks.patch
-    , module Network.Google.Resource.Compute.HealthChecks.Patch
-
-    -- ** compute.healthChecks.update
-    , module Network.Google.Resource.Compute.HealthChecks.Update
-
-    -- ** compute.httpHealthChecks.delete
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.Delete
-
-    -- ** compute.httpHealthChecks.get
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.Get
-
-    -- ** compute.httpHealthChecks.insert
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.Insert
-
-    -- ** compute.httpHealthChecks.list
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.List
-
-    -- ** compute.httpHealthChecks.patch
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.Patch
-
-    -- ** compute.httpHealthChecks.update
-    , module Network.Google.Resource.Compute.HTTPHealthChecks.Update
-
-    -- ** compute.httpsHealthChecks.delete
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Delete
-
-    -- ** compute.httpsHealthChecks.get
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Get
-
-    -- ** compute.httpsHealthChecks.insert
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Insert
-
-    -- ** compute.httpsHealthChecks.list
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.List
-
-    -- ** compute.httpsHealthChecks.patch
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Patch
-
-    -- ** compute.httpsHealthChecks.update
-    , module Network.Google.Resource.Compute.HTTPSHealthChecks.Update
-
-    -- ** compute.images.delete
-    , module Network.Google.Resource.Compute.Images.Delete
-
-    -- ** compute.images.deprecate
-    , module Network.Google.Resource.Compute.Images.Deprecate
-
-    -- ** compute.images.get
-    , module Network.Google.Resource.Compute.Images.Get
-
-    -- ** compute.images.getFromFamily
-    , module Network.Google.Resource.Compute.Images.GetFromFamily
-
-    -- ** compute.images.getIamPolicy
-    , module Network.Google.Resource.Compute.Images.GetIAMPolicy
-
-    -- ** compute.images.insert
-    , module Network.Google.Resource.Compute.Images.Insert
-
-    -- ** compute.images.list
-    , module Network.Google.Resource.Compute.Images.List
-
-    -- ** compute.images.setIamPolicy
-    , module Network.Google.Resource.Compute.Images.SetIAMPolicy
-
-    -- ** compute.images.setLabels
-    , module Network.Google.Resource.Compute.Images.SetLabels
-
-    -- ** compute.images.testIamPermissions
-    , module Network.Google.Resource.Compute.Images.TestIAMPermissions
-
-    -- ** compute.instanceGroupManagers.abandonInstances
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances
-
-    -- ** compute.instanceGroupManagers.aggregatedList
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList
-
-    -- ** compute.instanceGroupManagers.delete
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.Delete
-
-    -- ** compute.instanceGroupManagers.deleteInstances
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances
-
-    -- ** compute.instanceGroupManagers.get
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.Get
-
-    -- ** compute.instanceGroupManagers.insert
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.Insert
-
-    -- ** compute.instanceGroupManagers.list
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.List
-
-    -- ** compute.instanceGroupManagers.listManagedInstances
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances
-
-    -- ** compute.instanceGroupManagers.patch
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.Patch
-
-    -- ** compute.instanceGroupManagers.recreateInstances
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances
-
-    -- ** compute.instanceGroupManagers.resize
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.Resize
-
-    -- ** compute.instanceGroupManagers.setInstanceTemplate
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate
-
-    -- ** compute.instanceGroupManagers.setTargetPools
-    , module Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools
-
-    -- ** compute.instanceGroups.addInstances
-    , module Network.Google.Resource.Compute.InstanceGroups.AddInstances
-
-    -- ** compute.instanceGroups.aggregatedList
-    , module Network.Google.Resource.Compute.InstanceGroups.AggregatedList
-
-    -- ** compute.instanceGroups.delete
-    , module Network.Google.Resource.Compute.InstanceGroups.Delete
-
-    -- ** compute.instanceGroups.get
-    , module Network.Google.Resource.Compute.InstanceGroups.Get
-
-    -- ** compute.instanceGroups.insert
-    , module Network.Google.Resource.Compute.InstanceGroups.Insert
-
-    -- ** compute.instanceGroups.list
-    , module Network.Google.Resource.Compute.InstanceGroups.List
-
-    -- ** compute.instanceGroups.listInstances
-    , module Network.Google.Resource.Compute.InstanceGroups.ListInstances
-
-    -- ** compute.instanceGroups.removeInstances
-    , module Network.Google.Resource.Compute.InstanceGroups.RemoveInstances
-
-    -- ** compute.instanceGroups.setNamedPorts
-    , module Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts
-
-    -- ** compute.instanceTemplates.delete
-    , module Network.Google.Resource.Compute.InstanceTemplates.Delete
-
-    -- ** compute.instanceTemplates.get
-    , module Network.Google.Resource.Compute.InstanceTemplates.Get
-
-    -- ** compute.instanceTemplates.getIamPolicy
-    , module Network.Google.Resource.Compute.InstanceTemplates.GetIAMPolicy
-
-    -- ** compute.instanceTemplates.insert
-    , module Network.Google.Resource.Compute.InstanceTemplates.Insert
-
-    -- ** compute.instanceTemplates.list
-    , module Network.Google.Resource.Compute.InstanceTemplates.List
-
-    -- ** compute.instanceTemplates.setIamPolicy
-    , module Network.Google.Resource.Compute.InstanceTemplates.SetIAMPolicy
-
-    -- ** compute.instanceTemplates.testIamPermissions
-    , module Network.Google.Resource.Compute.InstanceTemplates.TestIAMPermissions
-
-    -- ** compute.instances.addAccessConfig
-    , module Network.Google.Resource.Compute.Instances.AddAccessConfig
-
-    -- ** compute.instances.aggregatedList
-    , module Network.Google.Resource.Compute.Instances.AggregatedList
-
-    -- ** compute.instances.attachDisk
-    , module Network.Google.Resource.Compute.Instances.AttachDisk
-
-    -- ** compute.instances.delete
-    , module Network.Google.Resource.Compute.Instances.Delete
-
-    -- ** compute.instances.deleteAccessConfig
-    , module Network.Google.Resource.Compute.Instances.DeleteAccessConfig
-
-    -- ** compute.instances.detachDisk
-    , module Network.Google.Resource.Compute.Instances.DetachDisk
-
-    -- ** compute.instances.get
-    , module Network.Google.Resource.Compute.Instances.Get
-
-    -- ** compute.instances.getIamPolicy
-    , module Network.Google.Resource.Compute.Instances.GetIAMPolicy
-
-    -- ** compute.instances.getSerialPortOutput
-    , module Network.Google.Resource.Compute.Instances.GetSerialPortOutput
-
-    -- ** compute.instances.getShieldedInstanceIdentity
-    , module Network.Google.Resource.Compute.Instances.GetShieldedInstanceIdentity
-
-    -- ** compute.instances.insert
-    , module Network.Google.Resource.Compute.Instances.Insert
-
-    -- ** compute.instances.list
-    , module Network.Google.Resource.Compute.Instances.List
-
-    -- ** compute.instances.listReferrers
-    , module Network.Google.Resource.Compute.Instances.ListReferrers
-
-    -- ** compute.instances.reset
-    , module Network.Google.Resource.Compute.Instances.Reset
-
-    -- ** compute.instances.setDeletionProtection
-    , module Network.Google.Resource.Compute.Instances.SetDeletionProtection
-
-    -- ** compute.instances.setDiskAutoDelete
-    , module Network.Google.Resource.Compute.Instances.SetDiskAutoDelete
-
-    -- ** compute.instances.setIamPolicy
-    , module Network.Google.Resource.Compute.Instances.SetIAMPolicy
-
-    -- ** compute.instances.setLabels
-    , module Network.Google.Resource.Compute.Instances.SetLabels
-
-    -- ** compute.instances.setMachineResources
-    , module Network.Google.Resource.Compute.Instances.SetMachineResources
-
-    -- ** compute.instances.setMachineType
-    , module Network.Google.Resource.Compute.Instances.SetMachineType
-
-    -- ** compute.instances.setMetadata
-    , module Network.Google.Resource.Compute.Instances.SetMetadata
-
-    -- ** compute.instances.setMinCpuPlatform
-    , module Network.Google.Resource.Compute.Instances.SetMinCPUPlatform
-
-    -- ** compute.instances.setScheduling
-    , module Network.Google.Resource.Compute.Instances.SetScheduling
-
-    -- ** compute.instances.setServiceAccount
-    , module Network.Google.Resource.Compute.Instances.SetServiceAccount
-
-    -- ** compute.instances.setShieldedInstanceIntegrityPolicy
-    , module Network.Google.Resource.Compute.Instances.SetShieldedInstanceIntegrityPolicy
-
-    -- ** compute.instances.setTags
-    , module Network.Google.Resource.Compute.Instances.SetTags
-
-    -- ** compute.instances.simulateMaintenanceEvent
-    , module Network.Google.Resource.Compute.Instances.SimulateMaintenanceEvent
-
-    -- ** compute.instances.start
-    , module Network.Google.Resource.Compute.Instances.Start
-
-    -- ** compute.instances.startWithEncryptionKey
-    , module Network.Google.Resource.Compute.Instances.StartWithEncryptionKey
-
-    -- ** compute.instances.stop
-    , module Network.Google.Resource.Compute.Instances.Stop
-
-    -- ** compute.instances.testIamPermissions
-    , module Network.Google.Resource.Compute.Instances.TestIAMPermissions
-
-    -- ** compute.instances.updateAccessConfig
-    , module Network.Google.Resource.Compute.Instances.UpdateAccessConfig
-
-    -- ** compute.instances.updateNetworkInterface
-    , module Network.Google.Resource.Compute.Instances.UpdateNetworkInterface
-
-    -- ** compute.instances.updateShieldedInstanceConfig
-    , module Network.Google.Resource.Compute.Instances.UpdateShieldedInstanceConfig
-
-    -- ** compute.interconnectAttachments.aggregatedList
-    , module Network.Google.Resource.Compute.InterconnectAttachments.AggregatedList
-
-    -- ** compute.interconnectAttachments.delete
-    , module Network.Google.Resource.Compute.InterconnectAttachments.Delete
-
-    -- ** compute.interconnectAttachments.get
-    , module Network.Google.Resource.Compute.InterconnectAttachments.Get
-
-    -- ** compute.interconnectAttachments.insert
-    , module Network.Google.Resource.Compute.InterconnectAttachments.Insert
-
-    -- ** compute.interconnectAttachments.list
-    , module Network.Google.Resource.Compute.InterconnectAttachments.List
-
-    -- ** compute.interconnectAttachments.patch
-    , module Network.Google.Resource.Compute.InterconnectAttachments.Patch
-
-    -- ** compute.interconnectLocations.get
-    , module Network.Google.Resource.Compute.InterconnectLocations.Get
-
-    -- ** compute.interconnectLocations.list
-    , module Network.Google.Resource.Compute.InterconnectLocations.List
-
-    -- ** compute.interconnects.delete
-    , module Network.Google.Resource.Compute.Interconnects.Delete
-
-    -- ** compute.interconnects.get
-    , module Network.Google.Resource.Compute.Interconnects.Get
-
-    -- ** compute.interconnects.getDiagnostics
-    , module Network.Google.Resource.Compute.Interconnects.GetDiagnostics
-
-    -- ** compute.interconnects.insert
-    , module Network.Google.Resource.Compute.Interconnects.Insert
-
-    -- ** compute.interconnects.list
-    , module Network.Google.Resource.Compute.Interconnects.List
-
-    -- ** compute.interconnects.patch
-    , module Network.Google.Resource.Compute.Interconnects.Patch
-
-    -- ** compute.licenseCodes.get
-    , module Network.Google.Resource.Compute.LicenseCodes.Get
-
-    -- ** compute.licenseCodes.testIamPermissions
-    , module Network.Google.Resource.Compute.LicenseCodes.TestIAMPermissions
-
-    -- ** compute.licenses.delete
-    , module Network.Google.Resource.Compute.Licenses.Delete
-
-    -- ** compute.licenses.get
-    , module Network.Google.Resource.Compute.Licenses.Get
-
-    -- ** compute.licenses.getIamPolicy
-    , module Network.Google.Resource.Compute.Licenses.GetIAMPolicy
-
-    -- ** compute.licenses.insert
-    , module Network.Google.Resource.Compute.Licenses.Insert
-
-    -- ** compute.licenses.list
-    , module Network.Google.Resource.Compute.Licenses.List
-
-    -- ** compute.licenses.setIamPolicy
-    , module Network.Google.Resource.Compute.Licenses.SetIAMPolicy
-
-    -- ** compute.licenses.testIamPermissions
-    , module Network.Google.Resource.Compute.Licenses.TestIAMPermissions
-
-    -- ** compute.machineTypes.aggregatedList
-    , module Network.Google.Resource.Compute.MachineTypes.AggregatedList
-
-    -- ** compute.machineTypes.get
-    , module Network.Google.Resource.Compute.MachineTypes.Get
-
-    -- ** compute.machineTypes.list
-    , module Network.Google.Resource.Compute.MachineTypes.List
-
-    -- ** compute.networkEndpointGroups.aggregatedList
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.AggregatedList
-
-    -- ** compute.networkEndpointGroups.attachNetworkEndpoints
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
-
-    -- ** compute.networkEndpointGroups.delete
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.Delete
-
-    -- ** compute.networkEndpointGroups.detachNetworkEndpoints
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
-
-    -- ** compute.networkEndpointGroups.get
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.Get
-
-    -- ** compute.networkEndpointGroups.insert
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.Insert
-
-    -- ** compute.networkEndpointGroups.list
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.List
-
-    -- ** compute.networkEndpointGroups.listNetworkEndpoints
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.ListNetworkEndpoints
-
-    -- ** compute.networkEndpointGroups.testIamPermissions
-    , module Network.Google.Resource.Compute.NetworkEndpointGroups.TestIAMPermissions
-
-    -- ** compute.networks.addPeering
-    , module Network.Google.Resource.Compute.Networks.AddPeering
-
-    -- ** compute.networks.delete
-    , module Network.Google.Resource.Compute.Networks.Delete
-
-    -- ** compute.networks.get
-    , module Network.Google.Resource.Compute.Networks.Get
-
-    -- ** compute.networks.insert
-    , module Network.Google.Resource.Compute.Networks.Insert
-
-    -- ** compute.networks.list
-    , module Network.Google.Resource.Compute.Networks.List
-
-    -- ** compute.networks.patch
-    , module Network.Google.Resource.Compute.Networks.Patch
-
-    -- ** compute.networks.removePeering
-    , module Network.Google.Resource.Compute.Networks.RemovePeering
-
-    -- ** compute.networks.switchToCustomMode
-    , module Network.Google.Resource.Compute.Networks.SwitchToCustomMode
-
-    -- ** compute.nodeGroups.addNodes
-    , module Network.Google.Resource.Compute.NodeGroups.AddNodes
-
-    -- ** compute.nodeGroups.aggregatedList
-    , module Network.Google.Resource.Compute.NodeGroups.AggregatedList
-
-    -- ** compute.nodeGroups.delete
-    , module Network.Google.Resource.Compute.NodeGroups.Delete
-
-    -- ** compute.nodeGroups.deleteNodes
-    , module Network.Google.Resource.Compute.NodeGroups.DeleteNodes
-
-    -- ** compute.nodeGroups.get
-    , module Network.Google.Resource.Compute.NodeGroups.Get
-
-    -- ** compute.nodeGroups.getIamPolicy
-    , module Network.Google.Resource.Compute.NodeGroups.GetIAMPolicy
-
-    -- ** compute.nodeGroups.insert
-    , module Network.Google.Resource.Compute.NodeGroups.Insert
-
-    -- ** compute.nodeGroups.list
-    , module Network.Google.Resource.Compute.NodeGroups.List
-
-    -- ** compute.nodeGroups.listNodes
-    , module Network.Google.Resource.Compute.NodeGroups.ListNodes
-
-    -- ** compute.nodeGroups.setIamPolicy
-    , module Network.Google.Resource.Compute.NodeGroups.SetIAMPolicy
-
-    -- ** compute.nodeGroups.setNodeTemplate
-    , module Network.Google.Resource.Compute.NodeGroups.SetNodeTemplate
-
-    -- ** compute.nodeGroups.testIamPermissions
-    , module Network.Google.Resource.Compute.NodeGroups.TestIAMPermissions
-
-    -- ** compute.nodeTemplates.aggregatedList
-    , module Network.Google.Resource.Compute.NodeTemplates.AggregatedList
-
-    -- ** compute.nodeTemplates.delete
-    , module Network.Google.Resource.Compute.NodeTemplates.Delete
-
-    -- ** compute.nodeTemplates.get
-    , module Network.Google.Resource.Compute.NodeTemplates.Get
-
-    -- ** compute.nodeTemplates.getIamPolicy
-    , module Network.Google.Resource.Compute.NodeTemplates.GetIAMPolicy
-
-    -- ** compute.nodeTemplates.insert
-    , module Network.Google.Resource.Compute.NodeTemplates.Insert
-
-    -- ** compute.nodeTemplates.list
-    , module Network.Google.Resource.Compute.NodeTemplates.List
-
-    -- ** compute.nodeTemplates.setIamPolicy
-    , module Network.Google.Resource.Compute.NodeTemplates.SetIAMPolicy
-
-    -- ** compute.nodeTemplates.testIamPermissions
-    , module Network.Google.Resource.Compute.NodeTemplates.TestIAMPermissions
-
-    -- ** compute.nodeTypes.aggregatedList
-    , module Network.Google.Resource.Compute.NodeTypes.AggregatedList
-
-    -- ** compute.nodeTypes.get
-    , module Network.Google.Resource.Compute.NodeTypes.Get
-
-    -- ** compute.nodeTypes.list
-    , module Network.Google.Resource.Compute.NodeTypes.List
-
-    -- ** compute.projects.disableXpnHost
-    , module Network.Google.Resource.Compute.Projects.DisableXpnHost
-
-    -- ** compute.projects.disableXpnResource
-    , module Network.Google.Resource.Compute.Projects.DisableXpnResource
-
-    -- ** compute.projects.enableXpnHost
-    , module Network.Google.Resource.Compute.Projects.EnableXpnHost
-
-    -- ** compute.projects.enableXpnResource
-    , module Network.Google.Resource.Compute.Projects.EnableXpnResource
-
-    -- ** compute.projects.get
-    , module Network.Google.Resource.Compute.Projects.Get
-
-    -- ** compute.projects.getXpnHost
-    , module Network.Google.Resource.Compute.Projects.GetXpnHost
-
-    -- ** compute.projects.getXpnResources
-    , module Network.Google.Resource.Compute.Projects.GetXpnResources
-
-    -- ** compute.projects.listXpnHosts
-    , module Network.Google.Resource.Compute.Projects.ListXpnHosts
-
-    -- ** compute.projects.moveDisk
-    , module Network.Google.Resource.Compute.Projects.MoveDisk
-
-    -- ** compute.projects.moveInstance
-    , module Network.Google.Resource.Compute.Projects.MoveInstance
-
-    -- ** compute.projects.setCommonInstanceMetadata
-    , module Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata
-
-    -- ** compute.projects.setDefaultNetworkTier
-    , module Network.Google.Resource.Compute.Projects.SetDefaultNetworkTier
-
-    -- ** compute.projects.setUsageExportBucket
-    , module Network.Google.Resource.Compute.Projects.SetUsageExportBucket
-
-    -- ** compute.regionAutoscalers.delete
-    , module Network.Google.Resource.Compute.RegionAutoscalers.Delete
-
-    -- ** compute.regionAutoscalers.get
-    , module Network.Google.Resource.Compute.RegionAutoscalers.Get
-
-    -- ** compute.regionAutoscalers.insert
-    , module Network.Google.Resource.Compute.RegionAutoscalers.Insert
-
-    -- ** compute.regionAutoscalers.list
-    , module Network.Google.Resource.Compute.RegionAutoscalers.List
-
-    -- ** compute.regionAutoscalers.patch
-    , module Network.Google.Resource.Compute.RegionAutoscalers.Patch
-
-    -- ** compute.regionAutoscalers.update
-    , module Network.Google.Resource.Compute.RegionAutoscalers.Update
-
-    -- ** compute.regionBackendServices.delete
-    , module Network.Google.Resource.Compute.RegionBackendServices.Delete
-
-    -- ** compute.regionBackendServices.get
-    , module Network.Google.Resource.Compute.RegionBackendServices.Get
-
-    -- ** compute.regionBackendServices.getHealth
-    , module Network.Google.Resource.Compute.RegionBackendServices.GetHealth
-
-    -- ** compute.regionBackendServices.insert
-    , module Network.Google.Resource.Compute.RegionBackendServices.Insert
-
-    -- ** compute.regionBackendServices.list
-    , module Network.Google.Resource.Compute.RegionBackendServices.List
-
-    -- ** compute.regionBackendServices.patch
-    , module Network.Google.Resource.Compute.RegionBackendServices.Patch
-
-    -- ** compute.regionBackendServices.update
-    , module Network.Google.Resource.Compute.RegionBackendServices.Update
-
-    -- ** compute.regionCommitments.aggregatedList
-    , module Network.Google.Resource.Compute.RegionCommitments.AggregatedList
-
-    -- ** compute.regionCommitments.get
-    , module Network.Google.Resource.Compute.RegionCommitments.Get
-
-    -- ** compute.regionCommitments.insert
-    , module Network.Google.Resource.Compute.RegionCommitments.Insert
-
-    -- ** compute.regionCommitments.list
-    , module Network.Google.Resource.Compute.RegionCommitments.List
-
-    -- ** compute.regionDiskTypes.get
-    , module Network.Google.Resource.Compute.RegionDiskTypes.Get
-
-    -- ** compute.regionDiskTypes.list
-    , module Network.Google.Resource.Compute.RegionDiskTypes.List
-
-    -- ** compute.regionDisks.createSnapshot
-    , module Network.Google.Resource.Compute.RegionDisks.CreateSnapshot
-
-    -- ** compute.regionDisks.delete
-    , module Network.Google.Resource.Compute.RegionDisks.Delete
-
-    -- ** compute.regionDisks.get
-    , module Network.Google.Resource.Compute.RegionDisks.Get
-
-    -- ** compute.regionDisks.insert
-    , module Network.Google.Resource.Compute.RegionDisks.Insert
-
-    -- ** compute.regionDisks.list
-    , module Network.Google.Resource.Compute.RegionDisks.List
-
-    -- ** compute.regionDisks.resize
-    , module Network.Google.Resource.Compute.RegionDisks.Resize
-
-    -- ** compute.regionDisks.setLabels
-    , module Network.Google.Resource.Compute.RegionDisks.SetLabels
-
-    -- ** compute.regionDisks.testIamPermissions
-    , module Network.Google.Resource.Compute.RegionDisks.TestIAMPermissions
-
-    -- ** compute.regionInstanceGroupManagers.abandonInstances
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.AbandonInstances
-
-    -- ** compute.regionInstanceGroupManagers.delete
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Delete
-
-    -- ** compute.regionInstanceGroupManagers.deleteInstances
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.DeleteInstances
-
-    -- ** compute.regionInstanceGroupManagers.get
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Get
-
-    -- ** compute.regionInstanceGroupManagers.insert
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Insert
-
-    -- ** compute.regionInstanceGroupManagers.list
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.List
-
-    -- ** compute.regionInstanceGroupManagers.listManagedInstances
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.ListManagedInstances
-
-    -- ** compute.regionInstanceGroupManagers.patch
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Patch
-
-    -- ** compute.regionInstanceGroupManagers.recreateInstances
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.RecreateInstances
-
-    -- ** compute.regionInstanceGroupManagers.resize
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Resize
-
-    -- ** compute.regionInstanceGroupManagers.setInstanceTemplate
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
-
-    -- ** compute.regionInstanceGroupManagers.setTargetPools
-    , module Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetTargetPools
-
-    -- ** compute.regionInstanceGroups.get
-    , module Network.Google.Resource.Compute.RegionInstanceGroups.Get
-
-    -- ** compute.regionInstanceGroups.list
-    , module Network.Google.Resource.Compute.RegionInstanceGroups.List
-
-    -- ** compute.regionInstanceGroups.listInstances
-    , module Network.Google.Resource.Compute.RegionInstanceGroups.ListInstances
-
-    -- ** compute.regionInstanceGroups.setNamedPorts
-    , module Network.Google.Resource.Compute.RegionInstanceGroups.SetNamedPorts
-
-    -- ** compute.regionOperations.delete
-    , module Network.Google.Resource.Compute.RegionOperations.Delete
-
-    -- ** compute.regionOperations.get
-    , module Network.Google.Resource.Compute.RegionOperations.Get
-
-    -- ** compute.regionOperations.list
-    , module Network.Google.Resource.Compute.RegionOperations.List
-
-    -- ** compute.regions.get
-    , module Network.Google.Resource.Compute.Regions.Get
-
-    -- ** compute.regions.list
-    , module Network.Google.Resource.Compute.Regions.List
-
-    -- ** compute.routers.aggregatedList
-    , module Network.Google.Resource.Compute.Routers.AggregatedList
-
-    -- ** compute.routers.delete
-    , module Network.Google.Resource.Compute.Routers.Delete
-
-    -- ** compute.routers.get
-    , module Network.Google.Resource.Compute.Routers.Get
-
-    -- ** compute.routers.getNatMappingInfo
-    , module Network.Google.Resource.Compute.Routers.GetNATMAppingInfo
-
-    -- ** compute.routers.getRouterStatus
-    , module Network.Google.Resource.Compute.Routers.GetRouterStatus
-
-    -- ** compute.routers.insert
-    , module Network.Google.Resource.Compute.Routers.Insert
-
-    -- ** compute.routers.list
-    , module Network.Google.Resource.Compute.Routers.List
-
-    -- ** compute.routers.patch
-    , module Network.Google.Resource.Compute.Routers.Patch
-
-    -- ** compute.routers.preview
-    , module Network.Google.Resource.Compute.Routers.Preview
-
-    -- ** compute.routers.update
-    , module Network.Google.Resource.Compute.Routers.Update
-
-    -- ** compute.routes.delete
-    , module Network.Google.Resource.Compute.Routes.Delete
-
-    -- ** compute.routes.get
-    , module Network.Google.Resource.Compute.Routes.Get
-
-    -- ** compute.routes.insert
-    , module Network.Google.Resource.Compute.Routes.Insert
-
-    -- ** compute.routes.list
-    , module Network.Google.Resource.Compute.Routes.List
-
-    -- ** compute.securityPolicies.addRule
-    , module Network.Google.Resource.Compute.SecurityPolicies.AddRule
-
-    -- ** compute.securityPolicies.delete
-    , module Network.Google.Resource.Compute.SecurityPolicies.Delete
-
-    -- ** compute.securityPolicies.get
-    , module Network.Google.Resource.Compute.SecurityPolicies.Get
-
-    -- ** compute.securityPolicies.getRule
-    , module Network.Google.Resource.Compute.SecurityPolicies.GetRule
-
-    -- ** compute.securityPolicies.insert
-    , module Network.Google.Resource.Compute.SecurityPolicies.Insert
-
-    -- ** compute.securityPolicies.list
-    , module Network.Google.Resource.Compute.SecurityPolicies.List
-
-    -- ** compute.securityPolicies.patch
-    , module Network.Google.Resource.Compute.SecurityPolicies.Patch
-
-    -- ** compute.securityPolicies.patchRule
-    , module Network.Google.Resource.Compute.SecurityPolicies.PatchRule
-
-    -- ** compute.securityPolicies.removeRule
-    , module Network.Google.Resource.Compute.SecurityPolicies.RemoveRule
-
-    -- ** compute.snapshots.delete
-    , module Network.Google.Resource.Compute.Snapshots.Delete
-
-    -- ** compute.snapshots.get
-    , module Network.Google.Resource.Compute.Snapshots.Get
-
-    -- ** compute.snapshots.getIamPolicy
-    , module Network.Google.Resource.Compute.Snapshots.GetIAMPolicy
-
-    -- ** compute.snapshots.list
-    , module Network.Google.Resource.Compute.Snapshots.List
-
-    -- ** compute.snapshots.setIamPolicy
-    , module Network.Google.Resource.Compute.Snapshots.SetIAMPolicy
-
-    -- ** compute.snapshots.setLabels
-    , module Network.Google.Resource.Compute.Snapshots.SetLabels
-
-    -- ** compute.snapshots.testIamPermissions
-    , module Network.Google.Resource.Compute.Snapshots.TestIAMPermissions
-
-    -- ** compute.sslCertificates.delete
-    , module Network.Google.Resource.Compute.SSLCertificates.Delete
-
-    -- ** compute.sslCertificates.get
-    , module Network.Google.Resource.Compute.SSLCertificates.Get
-
-    -- ** compute.sslCertificates.insert
-    , module Network.Google.Resource.Compute.SSLCertificates.Insert
-
-    -- ** compute.sslCertificates.list
-    , module Network.Google.Resource.Compute.SSLCertificates.List
-
-    -- ** compute.sslPolicies.delete
-    , module Network.Google.Resource.Compute.SSLPolicies.Delete
-
-    -- ** compute.sslPolicies.get
-    , module Network.Google.Resource.Compute.SSLPolicies.Get
-
-    -- ** compute.sslPolicies.insert
-    , module Network.Google.Resource.Compute.SSLPolicies.Insert
-
-    -- ** compute.sslPolicies.list
-    , module Network.Google.Resource.Compute.SSLPolicies.List
-
-    -- ** compute.sslPolicies.listAvailableFeatures
-    , module Network.Google.Resource.Compute.SSLPolicies.ListAvailableFeatures
-
-    -- ** compute.sslPolicies.patch
-    , module Network.Google.Resource.Compute.SSLPolicies.Patch
-
-    -- ** compute.subnetworks.aggregatedList
-    , module Network.Google.Resource.Compute.Subnetworks.AggregatedList
-
-    -- ** compute.subnetworks.delete
-    , module Network.Google.Resource.Compute.Subnetworks.Delete
-
-    -- ** compute.subnetworks.expandIpCidrRange
-    , module Network.Google.Resource.Compute.Subnetworks.ExpandIPCIdRRange
-
-    -- ** compute.subnetworks.get
-    , module Network.Google.Resource.Compute.Subnetworks.Get
-
-    -- ** compute.subnetworks.getIamPolicy
-    , module Network.Google.Resource.Compute.Subnetworks.GetIAMPolicy
-
-    -- ** compute.subnetworks.insert
-    , module Network.Google.Resource.Compute.Subnetworks.Insert
-
-    -- ** compute.subnetworks.list
-    , module Network.Google.Resource.Compute.Subnetworks.List
-
-    -- ** compute.subnetworks.listUsable
-    , module Network.Google.Resource.Compute.Subnetworks.ListUsable
-
-    -- ** compute.subnetworks.patch
-    , module Network.Google.Resource.Compute.Subnetworks.Patch
-
-    -- ** compute.subnetworks.setIamPolicy
-    , module Network.Google.Resource.Compute.Subnetworks.SetIAMPolicy
-
-    -- ** compute.subnetworks.setPrivateIpGoogleAccess
-    , module Network.Google.Resource.Compute.Subnetworks.SetPrivateIPGoogleAccess
-
-    -- ** compute.subnetworks.testIamPermissions
-    , module Network.Google.Resource.Compute.Subnetworks.TestIAMPermissions
-
-    -- ** compute.targetHttpProxies.delete
-    , module Network.Google.Resource.Compute.TargetHTTPProxies.Delete
-
-    -- ** compute.targetHttpProxies.get
-    , module Network.Google.Resource.Compute.TargetHTTPProxies.Get
-
-    -- ** compute.targetHttpProxies.insert
-    , module Network.Google.Resource.Compute.TargetHTTPProxies.Insert
-
-    -- ** compute.targetHttpProxies.list
-    , module Network.Google.Resource.Compute.TargetHTTPProxies.List
-
-    -- ** compute.targetHttpProxies.setUrlMap
-    , module Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap
-
-    -- ** compute.targetHttpsProxies.delete
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Delete
-
-    -- ** compute.targetHttpsProxies.get
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Get
-
-    -- ** compute.targetHttpsProxies.insert
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.Insert
-
-    -- ** compute.targetHttpsProxies.list
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.List
-
-    -- ** compute.targetHttpsProxies.setQuicOverride
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetQuicOverride
-
-    -- ** compute.targetHttpsProxies.setSslCertificates
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates
-
-    -- ** compute.targetHttpsProxies.setSslPolicy
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLPolicy
-
-    -- ** compute.targetHttpsProxies.setUrlMap
-    , module Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap
-
-    -- ** compute.targetInstances.aggregatedList
-    , module Network.Google.Resource.Compute.TargetInstances.AggregatedList
-
-    -- ** compute.targetInstances.delete
-    , module Network.Google.Resource.Compute.TargetInstances.Delete
-
-    -- ** compute.targetInstances.get
-    , module Network.Google.Resource.Compute.TargetInstances.Get
-
-    -- ** compute.targetInstances.insert
-    , module Network.Google.Resource.Compute.TargetInstances.Insert
-
-    -- ** compute.targetInstances.list
-    , module Network.Google.Resource.Compute.TargetInstances.List
-
-    -- ** compute.targetPools.addHealthCheck
-    , module Network.Google.Resource.Compute.TargetPools.AddHealthCheck
-
-    -- ** compute.targetPools.addInstance
-    , module Network.Google.Resource.Compute.TargetPools.AddInstance
-
-    -- ** compute.targetPools.aggregatedList
-    , module Network.Google.Resource.Compute.TargetPools.AggregatedList
-
-    -- ** compute.targetPools.delete
-    , module Network.Google.Resource.Compute.TargetPools.Delete
-
-    -- ** compute.targetPools.get
-    , module Network.Google.Resource.Compute.TargetPools.Get
-
-    -- ** compute.targetPools.getHealth
-    , module Network.Google.Resource.Compute.TargetPools.GetHealth
-
-    -- ** compute.targetPools.insert
-    , module Network.Google.Resource.Compute.TargetPools.Insert
-
-    -- ** compute.targetPools.list
-    , module Network.Google.Resource.Compute.TargetPools.List
-
-    -- ** compute.targetPools.removeHealthCheck
-    , module Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck
-
-    -- ** compute.targetPools.removeInstance
-    , module Network.Google.Resource.Compute.TargetPools.RemoveInstance
-
-    -- ** compute.targetPools.setBackup
-    , module Network.Google.Resource.Compute.TargetPools.SetBackup
-
-    -- ** compute.targetSslProxies.delete
-    , module Network.Google.Resource.Compute.TargetSSLProxies.Delete
-
-    -- ** compute.targetSslProxies.get
-    , module Network.Google.Resource.Compute.TargetSSLProxies.Get
-
-    -- ** compute.targetSslProxies.insert
-    , module Network.Google.Resource.Compute.TargetSSLProxies.Insert
-
-    -- ** compute.targetSslProxies.list
-    , module Network.Google.Resource.Compute.TargetSSLProxies.List
-
-    -- ** compute.targetSslProxies.setBackendService
-    , module Network.Google.Resource.Compute.TargetSSLProxies.SetBackendService
-
-    -- ** compute.targetSslProxies.setProxyHeader
-    , module Network.Google.Resource.Compute.TargetSSLProxies.SetProxyHeader
-
-    -- ** compute.targetSslProxies.setSslCertificates
-    , module Network.Google.Resource.Compute.TargetSSLProxies.SetSSLCertificates
-
-    -- ** compute.targetSslProxies.setSslPolicy
-    , module Network.Google.Resource.Compute.TargetSSLProxies.SetSSLPolicy
-
-    -- ** compute.targetTcpProxies.delete
-    , module Network.Google.Resource.Compute.TargetTCPProxies.Delete
-
-    -- ** compute.targetTcpProxies.get
-    , module Network.Google.Resource.Compute.TargetTCPProxies.Get
-
-    -- ** compute.targetTcpProxies.insert
-    , module Network.Google.Resource.Compute.TargetTCPProxies.Insert
-
-    -- ** compute.targetTcpProxies.list
-    , module Network.Google.Resource.Compute.TargetTCPProxies.List
-
-    -- ** compute.targetTcpProxies.setBackendService
-    , module Network.Google.Resource.Compute.TargetTCPProxies.SetBackendService
-
-    -- ** compute.targetTcpProxies.setProxyHeader
-    , module Network.Google.Resource.Compute.TargetTCPProxies.SetProxyHeader
-
-    -- ** compute.targetVpnGateways.aggregatedList
-    , module Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList
-
-    -- ** compute.targetVpnGateways.delete
-    , module Network.Google.Resource.Compute.TargetVPNGateways.Delete
-
-    -- ** compute.targetVpnGateways.get
-    , module Network.Google.Resource.Compute.TargetVPNGateways.Get
-
-    -- ** compute.targetVpnGateways.insert
-    , module Network.Google.Resource.Compute.TargetVPNGateways.Insert
-
-    -- ** compute.targetVpnGateways.list
-    , module Network.Google.Resource.Compute.TargetVPNGateways.List
-
-    -- ** compute.urlMaps.delete
-    , module Network.Google.Resource.Compute.URLMaps.Delete
-
-    -- ** compute.urlMaps.get
-    , module Network.Google.Resource.Compute.URLMaps.Get
-
-    -- ** compute.urlMaps.insert
-    , module Network.Google.Resource.Compute.URLMaps.Insert
-
-    -- ** compute.urlMaps.invalidateCache
-    , module Network.Google.Resource.Compute.URLMaps.InvalidateCache
-
-    -- ** compute.urlMaps.list
-    , module Network.Google.Resource.Compute.URLMaps.List
-
-    -- ** compute.urlMaps.patch
-    , module Network.Google.Resource.Compute.URLMaps.Patch
-
-    -- ** compute.urlMaps.update
-    , module Network.Google.Resource.Compute.URLMaps.Update
-
-    -- ** compute.urlMaps.validate
-    , module Network.Google.Resource.Compute.URLMaps.Validate
-
-    -- ** compute.vpnTunnels.aggregatedList
-    , module Network.Google.Resource.Compute.VPNTunnels.AggregatedList
-
-    -- ** compute.vpnTunnels.delete
-    , module Network.Google.Resource.Compute.VPNTunnels.Delete
-
-    -- ** compute.vpnTunnels.get
-    , module Network.Google.Resource.Compute.VPNTunnels.Get
-
-    -- ** compute.vpnTunnels.insert
-    , module Network.Google.Resource.Compute.VPNTunnels.Insert
-
-    -- ** compute.vpnTunnels.list
-    , module Network.Google.Resource.Compute.VPNTunnels.List
-
-    -- ** compute.zoneOperations.delete
-    , module Network.Google.Resource.Compute.ZoneOperations.Delete
-
-    -- ** compute.zoneOperations.get
-    , module Network.Google.Resource.Compute.ZoneOperations.Get
-
-    -- ** compute.zoneOperations.list
-    , module Network.Google.Resource.Compute.ZoneOperations.List
-
-    -- ** compute.zones.get
-    , module Network.Google.Resource.Compute.Zones.Get
-
-    -- ** compute.zones.list
-    , module Network.Google.Resource.Compute.Zones.List
-
-    -- * Types
-
-    -- ** HTTPSHealthCheckListWarningCode
-    , HTTPSHealthCheckListWarningCode (..)
-
-    -- ** InstanceAggregatedListWarning
-    , InstanceAggregatedListWarning
-    , instanceAggregatedListWarning
-    , ialwData
-    , ialwCode
-    , ialwMessage
-
-    -- ** TargetHTTPSProxyList
-    , TargetHTTPSProxyList
-    , targetHTTPSProxyList
-    , thplNextPageToken
-    , thplKind
-    , thplItems
-    , thplSelfLink
-    , thplWarning
-    , thplId
-
-    -- ** RoutersScopedList
-    , RoutersScopedList
-    , routersScopedList
-    , rslRouters
-    , rslWarning
-
-    -- ** RouterStatusResponse
-    , RouterStatusResponse
-    , routerStatusResponse
-    , rsrKind
-    , rsrResult
-
-    -- ** RegionInstanceGroupManagersDeleteInstancesRequest
-    , RegionInstanceGroupManagersDeleteInstancesRequest
-    , regionInstanceGroupManagersDeleteInstancesRequest
-    , rigmdirInstances
-
-    -- ** InterconnectDiagnosticsLinkLACPStatus
-    , InterconnectDiagnosticsLinkLACPStatus
-    , interconnectDiagnosticsLinkLACPStatus
-    , idllacpsState
-    , idllacpsNeighborSystemId
-    , idllacpsGoogleSystemId
-
-    -- ** InterconnectAttachmentState
-    , InterconnectAttachmentState (..)
-
-    -- ** AddressesScopedList
-    , AddressesScopedList
-    , addressesScopedList
-    , aslAddresses
-    , aslWarning
-
-    -- ** OperationWarningsItemDataItem
-    , OperationWarningsItemDataItem
-    , operationWarningsItemDataItem
-    , owidiValue
-    , owidiKey
-
-    -- ** SchedulingOnHostMaintenance
-    , SchedulingOnHostMaintenance (..)
-
-    -- ** InstanceGroupManagerUpdatePolicy
-    , InstanceGroupManagerUpdatePolicy
-    , instanceGroupManagerUpdatePolicy
-    , igmupMaxSurge
-    , igmupMaxUnavailable
-    , igmupMinimalAction
-    , igmupType
-
-    -- ** RegionInstanceGroupsListInstancesRequest
-    , RegionInstanceGroupsListInstancesRequest
-    , regionInstanceGroupsListInstancesRequest
-    , riglirInstanceState
-    , riglirPortName
-
-    -- ** BackendServiceAggregatedListWarning
-    , BackendServiceAggregatedListWarning
-    , backendServiceAggregatedListWarning
-    , bsalwData
-    , bsalwCode
-    , bsalwMessage
-
-    -- ** SSLPolicy
-    , SSLPolicy
-    , sslPolicy
-    , spKind
-    , spFingerprint
-    , spProFile
-    , spWarnings
-    , spCustomFeatures
-    , spSelfLink
-    , spName
-    , spCreationTimestamp
-    , spEnabledFeatures
-    , spId
-    , spMinTLSVersion
-    , spDescription
-
-    -- ** AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType
-    , AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType (..)
-
-    -- ** BackendServiceListWarningDataItem
-    , BackendServiceListWarningDataItem
-    , backendServiceListWarningDataItem
-    , bslwdiValue
-    , bslwdiKey
-
-    -- ** FirewallDeniedItem
-    , FirewallDeniedItem
-    , firewallDeniedItem
-    , fdiIPProtocol
-    , fdiPorts
-
-    -- ** InstanceGroupManagersAbandonInstancesRequest
-    , InstanceGroupManagersAbandonInstancesRequest
-    , instanceGroupManagersAbandonInstancesRequest
-    , igmairInstances
-
-    -- ** MachineTypeAggregatedListItems
-    , MachineTypeAggregatedListItems
-    , machineTypeAggregatedListItems
-    , mtaliAddtional
-
-    -- ** BackendServiceListWarningCode
-    , BackendServiceListWarningCode (..)
-
-    -- ** DiskTypeAggregatedListItems
-    , DiskTypeAggregatedListItems
-    , diskTypeAggregatedListItems
-    , dtaliAddtional
-
-    -- ** InstancesSetLabelsRequest
-    , InstancesSetLabelsRequest
-    , instancesSetLabelsRequest
-    , islrLabels
-    , islrLabelFingerprint
-
-    -- ** RouterAggregatedList
-    , RouterAggregatedList
-    , routerAggregatedList
-    , ralNextPageToken
-    , ralKind
-    , ralItems
-    , ralSelfLink
-    , ralWarning
-    , ralId
-
-    -- ** FirewallList
-    , FirewallList
-    , firewallList
-    , flNextPageToken
-    , flKind
-    , flItems
-    , flSelfLink
-    , flWarning
-    , flId
-
-    -- ** InstancesScopedListWarning
-    , InstancesScopedListWarning
-    , instancesScopedListWarning
-    , islwData
-    , islwCode
-    , islwMessage
-
-    -- ** RegionInstanceGroupManagersRecreateRequest
-    , RegionInstanceGroupManagersRecreateRequest
-    , regionInstanceGroupManagersRecreateRequest
-    , rigmrrInstances
-
-    -- ** InstanceLabels
-    , InstanceLabels
-    , instanceLabels
-    , ilAddtional
-
-    -- ** InstanceListWarningCode
-    , InstanceListWarningCode (..)
-
-    -- ** TargetHTTPSProxyQuicOverride
-    , TargetHTTPSProxyQuicOverride (..)
-
-    -- ** BackendServicesScopedListWarning
-    , BackendServicesScopedListWarning
-    , backendServicesScopedListWarning
-    , bsslwData
-    , bsslwCode
-    , bsslwMessage
-
-    -- ** SecurityPolicyRuleMatcher
-    , SecurityPolicyRuleMatcher
-    , securityPolicyRuleMatcher
-    , sprmVersionedExpr
-    , sprmConfig
-
-    -- ** InstanceGroupList
-    , InstanceGroupList
-    , instanceGroupList
-    , iglNextPageToken
-    , iglKind
-    , iglItems
-    , iglSelfLink
-    , iglWarning
-    , iglId
-
-    -- ** InstancesSetMachineTypeRequest
-    , InstancesSetMachineTypeRequest
-    , instancesSetMachineTypeRequest
-    , ismtrMachineType
-
-    -- ** VMEndpointNATMAppings
-    , VMEndpointNATMAppings
-    , vMEndpointNATMAppings
-    , vmenatmaInstanceName
-    , vmenatmaInterfaceNATMAppings
-
-    -- ** CustomerEncryptionKey
-    , CustomerEncryptionKey
-    , customerEncryptionKey
-    , cekKmsKeyName
-    , cekSha256
-    , cekRawKey
-
-    -- ** AutoscalerAggregatedListItems
-    , AutoscalerAggregatedListItems
-    , autoscalerAggregatedListItems
-    , aaliAddtional
-
-    -- ** InstanceListWarningDataItem
-    , InstanceListWarningDataItem
-    , instanceListWarningDataItem
-    , ilwdiValue
-    , ilwdiKey
-
-    -- ** InstanceGroupManagersSetInstanceTemplateRequest
-    , InstanceGroupManagersSetInstanceTemplateRequest
-    , instanceGroupManagersSetInstanceTemplateRequest
-    , igmsitrInstanceTemplate
-
-    -- ** RouterNATNATIPAllocateOption
-    , RouterNATNATIPAllocateOption (..)
-
-    -- ** DeprecationStatus
-    , DeprecationStatus
-    , deprecationStatus
-    , dsState
-    , dsDeleted
-    , dsReplacement
-    , dsObsolete
-    , dsDeprecated
-
-    -- ** HTTPSHealthCheckListWarningDataItem
-    , HTTPSHealthCheckListWarningDataItem
-    , httpsHealthCheckListWarningDataItem
-    , hhclwdiValue
-    , hhclwdiKey
-
-    -- ** OperationWarningsItemCode
-    , OperationWarningsItemCode (..)
-
-    -- ** Snapshot
-    , Snapshot
-    , snapshot
-    , sStorageBytesStatus
-    , sStatus
-    , sDiskSizeGb
-    , sSourceDiskId
-    , sKind
-    , sSourceDiskEncryptionKey
-    , sStorageBytes
-    , sSelfLink
-    , sSnapshotEncryptionKey
-    , sName
-    , sStorageLocations
-    , sCreationTimestamp
-    , sLicenseCodes
-    , sId
-    , sLabels
-    , sLicenses
-    , sSourceDisk
-    , sLabelFingerprint
-    , sDescription
-
-    -- ** RouterStatus
-    , RouterStatus
-    , routerStatus
-    , rsBestRoutesForRouter
-    , rsBGPPeerStatus
-    , rsNetwork
-    , rsNATStatus
-    , rsBestRoutes
-
-    -- ** AutoscalingPolicyCustomMetricUtilization
-    , AutoscalingPolicyCustomMetricUtilization
-    , autoscalingPolicyCustomMetricUtilization
-    , apcmuUtilizationTarget
-    , apcmuMetric
-    , apcmuUtilizationTargetType
-
-    -- ** NodeGroupAggregatedListWarningCode
-    , NodeGroupAggregatedListWarningCode (..)
-
-    -- ** ForwardingRuleList
-    , ForwardingRuleList
-    , forwardingRuleList
-    , frlNextPageToken
-    , frlKind
-    , frlItems
-    , frlSelfLink
-    , frlWarning
-    , frlId
-
-    -- ** NodeGroup
-    , NodeGroup
-    , nodeGroup
-    , ngStatus
-    , ngSize
-    , ngKind
-    , ngZone
-    , ngSelfLink
-    , ngName
-    , ngCreationTimestamp
-    , ngId
-    , ngNodeTemplate
-    , ngDescription
-
-    -- ** VPNTunnelsScopedList
-    , VPNTunnelsScopedList
-    , vpnTunnelsScopedList
-    , vtslVPNTunnels
-    , vtslWarning
-
-    -- ** SubnetworkSecondaryRange
-    , SubnetworkSecondaryRange
-    , subnetworkSecondaryRange
-    , ssrRangeName
-    , ssrIPCIdRRange
-
-    -- ** NodeTypesScopedList
-    , NodeTypesScopedList
-    , nodeTypesScopedList
-    , ntslNodeTypes
-    , ntslWarning
-
-    -- ** BackendServiceProtocol
-    , BackendServiceProtocol (..)
-
-    -- ** RegionInstanceGroupsListInstancesWarning
-    , RegionInstanceGroupsListInstancesWarning
-    , regionInstanceGroupsListInstancesWarning
-    , rigliwData
-    , rigliwCode
-    , rigliwMessage
-
-    -- ** NetworkEndpointGroupsDetachEndpointsRequest
-    , NetworkEndpointGroupsDetachEndpointsRequest
-    , networkEndpointGroupsDetachEndpointsRequest
-    , negderNetworkEndpoints
-
-    -- ** AuditConfig
-    , AuditConfig
-    , auditConfig
-    , acService
-    , acAuditLogConfigs
-    , acExemptedMembers
-
-    -- ** NetworkEndpointGroupNetworkEndpointType
-    , NetworkEndpointGroupNetworkEndpointType (..)
-
-    -- ** BackendBucketListWarningCode
-    , BackendBucketListWarningCode (..)
-
-    -- ** AcceleratorTypeAggregatedListWarningDataItem
-    , AcceleratorTypeAggregatedListWarningDataItem
-    , acceleratorTypeAggregatedListWarningDataItem
-    , atalwdiValue
-    , atalwdiKey
-
-    -- ** InstanceGroupsSetNamedPortsRequest
-    , InstanceGroupsSetNamedPortsRequest
-    , instanceGroupsSetNamedPortsRequest
-    , igsnprFingerprint
-    , igsnprNamedPorts
-
-    -- ** AcceleratorTypesScopedListWarningCode
-    , AcceleratorTypesScopedListWarningCode (..)
-
-    -- ** NodeTemplateNodeAffinityLabels
-    , NodeTemplateNodeAffinityLabels
-    , nodeTemplateNodeAffinityLabels
-    , ntnalAddtional
-
-    -- ** OperationList
-    , OperationList
-    , operationList
-    , olNextPageToken
-    , olKind
-    , olItems
-    , olSelfLink
-    , olWarning
-    , olId
-
-    -- ** NodeGroupListWarning
-    , NodeGroupListWarning
-    , nodeGroupListWarning
-    , nglwData
-    , nglwCode
-    , nglwMessage
-
-    -- ** DiskList
-    , DiskList
-    , diskList
-    , dlNextPageToken
-    , dlKind
-    , dlItems
-    , dlSelfLink
-    , dlWarning
-    , dlId
-
-    -- ** NetworkEndpointGroupsListNetworkEndpointsWarning
-    , NetworkEndpointGroupsListNetworkEndpointsWarning
-    , networkEndpointGroupsListNetworkEndpointsWarning
-    , neglnewData
-    , neglnewCode
-    , neglnewMessage
-
-    -- ** NodeGroupsScopedListWarningCode
-    , NodeGroupsScopedListWarningCode (..)
-
-    -- ** TargetPoolsAddInstanceRequest
-    , TargetPoolsAddInstanceRequest
-    , targetPoolsAddInstanceRequest
-    , tpairInstances
-
-    -- ** NodeGroupsDeleteNodesRequest
-    , NodeGroupsDeleteNodesRequest
-    , nodeGroupsDeleteNodesRequest
-    , ngdnrNodes
-
-    -- ** RegionAutoscalerList
-    , RegionAutoscalerList
-    , regionAutoscalerList
-    , rNextPageToken
-    , rKind
-    , rItems
-    , rSelfLink
-    , rWarning
-    , rId
-
-    -- ** HealthCheckListWarningDataItem
-    , HealthCheckListWarningDataItem
-    , healthCheckListWarningDataItem
-    , hclwdiValue
-    , hclwdiKey
-
-    -- ** NodeGroupAggregatedListWarningDataItem
-    , NodeGroupAggregatedListWarningDataItem
-    , nodeGroupAggregatedListWarningDataItem
-    , ngalwdiValue
-    , ngalwdiKey
-
-    -- ** InstanceGroupsAddInstancesRequest
-    , InstanceGroupsAddInstancesRequest
-    , instanceGroupsAddInstancesRequest
-    , igairInstances
-
-    -- ** NodeGroupNode
-    , NodeGroupNode
-    , nodeGroupNode
-    , ngnStatus
-    , ngnName
-    , ngnInstances
-    , ngnNodeType
-
-    -- ** TargetTCPProxiesSetProxyHeaderRequestProxyHeader
-    , TargetTCPProxiesSetProxyHeaderRequestProxyHeader (..)
-
-    -- ** InstanceGroupManagerList
-    , InstanceGroupManagerList
-    , instanceGroupManagerList
-    , igmlNextPageToken
-    , igmlKind
-    , igmlItems
-    , igmlSelfLink
-    , igmlWarning
-    , igmlId
-
-    -- ** InstanceGroupManagerVersion
-    , InstanceGroupManagerVersion
-    , instanceGroupManagerVersion
-    , igmvInstanceTemplate
-    , igmvTargetSize
-    , igmvName
-
-    -- ** NetworkEndpointGroupsScopedListWarning
-    , NetworkEndpointGroupsScopedListWarning
-    , networkEndpointGroupsScopedListWarning
-    , negslwData
-    , negslwCode
-    , negslwMessage
-
-    -- ** SubnetworksScopedListWarning
-    , SubnetworksScopedListWarning
-    , subnetworksScopedListWarning
-    , sslwData
-    , sslwCode
-    , sslwMessage
-
-    -- ** NodeGroupsSetNodeTemplateRequest
-    , NodeGroupsSetNodeTemplateRequest
-    , nodeGroupsSetNodeTemplateRequest
-    , ngsntrNodeTemplate
-
-    -- ** AcceleratorTypeListWarning
-    , AcceleratorTypeListWarning
-    , acceleratorTypeListWarning
-    , atlwData
-    , atlwCode
-    , atlwMessage
-
-    -- ** AttachedDiskType
-    , AttachedDiskType (..)
-
-    -- ** Image
-    , Image
-    , image
-    , iStatus
-    , iSourceSnapshotId
-    , iImageEncryptionKey
-    , iSourceImage
-    , iDiskSizeGb
-    , iSourceType
-    , iSourceDiskId
-    , iKind
-    , iSourceDiskEncryptionKey
-    , iGuestOSFeatures
-    , iArchiveSizeBytes
-    , iFamily
-    , iRawDisk
-    , iSelfLink
-    , iName
-    , iSourceImageId
-    , iCreationTimestamp
-    , iSourceImageEncryptionKey
-    , iLicenseCodes
-    , iId
-    , iLabels
-    , iLicenses
-    , iSourceDisk
-    , iLabelFingerprint
-    , iDescription
-    , iSourceSnapshotEncryptionKey
-    , iDeprecated
-    , iSourceSnapshot
-
-    -- ** RouterBGPPeerManagementType
-    , RouterBGPPeerManagementType (..)
-
-    -- ** RouterNATSubnetworkToNATSourceIPRangesToNATItem
-    , RouterNATSubnetworkToNATSourceIPRangesToNATItem (..)
-
-    -- ** AcceleratorTypeAggregatedListWarningCode
-    , AcceleratorTypeAggregatedListWarningCode (..)
-
-    -- ** NetworksAddPeeringRequest
-    , NetworksAddPeeringRequest
-    , networksAddPeeringRequest
-    , naprNetworkPeering
-    , naprPeerNetwork
-    , naprName
-    , naprAutoCreateRoutes
-
-    -- ** NodeTemplatesScopedList
-    , NodeTemplatesScopedList
-    , nodeTemplatesScopedList
-    , nNodeTemplates
-    , nWarning
-
-    -- ** URLMapListWarning
-    , URLMapListWarning
-    , urlMapListWarning
-    , umlwData
-    , umlwCode
-    , umlwMessage
-
-    -- ** NodeGroupsScopedListWarningDataItem
-    , NodeGroupsScopedListWarningDataItem
-    , nodeGroupsScopedListWarningDataItem
-    , ngslwdiValue
-    , ngslwdiKey
-
-    -- ** URLMap
-    , URLMap
-    , urlMap
-    , umTests
-    , umKind
-    , umFingerprint
-    , umDefaultService
-    , umSelfLink
-    , umName
-    , umCreationTimestamp
-    , umPathMatchers
-    , umId
-    , umHostRules
-    , umDescription
-
-    -- ** ImageListWarning
-    , ImageListWarning
-    , imageListWarning
-    , ilwData
-    , ilwCode
-    , ilwMessage
-
-    -- ** HealthCheckListWarningCode
-    , HealthCheckListWarningCode (..)
-
-    -- ** Expr
-    , Expr
-    , expr
-    , eLocation
-    , eExpression
-    , eTitle
-    , eDescription
-
-    -- ** SSLPolicyReference
-    , SSLPolicyReference
-    , sslPolicyReference
-    , sprSSLPolicy
-
-    -- ** InstanceGroupAggregatedListItems
-    , InstanceGroupAggregatedListItems
-    , instanceGroupAggregatedListItems
-    , igaliAddtional
-
-    -- ** TargetPoolList
-    , TargetPoolList
-    , targetPoolList
-    , tplNextPageToken
-    , tplKind
-    , tplItems
-    , tplSelfLink
-    , tplWarning
-    , tplId
-
-    -- ** SSLPolicyProFile
-    , SSLPolicyProFile (..)
-
-    -- ** AcceleratorType
-    , AcceleratorType
-    , acceleratorType
-    , atKind
-    , atZone
-    , atMaximumCardsPerInstance
-    , atSelfLink
-    , atName
-    , atCreationTimestamp
-    , atId
-    , atDescription
-    , atDeprecated
-
-    -- ** BackendBucketListWarningDataItem
-    , BackendBucketListWarningDataItem
-    , backendBucketListWarningDataItem
-    , bblwdiValue
-    , bblwdiKey
-
-    -- ** AcceleratorTypesScopedListWarningDataItem
-    , AcceleratorTypesScopedListWarningDataItem
-    , acceleratorTypesScopedListWarningDataItem
-    , atslwdiValue
-    , atslwdiKey
-
-    -- ** InterconnectOutageNotificationSource
-    , InterconnectOutageNotificationSource (..)
-
-    -- ** RegionDiskTypeList
-    , RegionDiskTypeList
-    , regionDiskTypeList
-    , rdtlNextPageToken
-    , rdtlKind
-    , rdtlItems
-    , rdtlSelfLink
-    , rdtlWarning
-    , rdtlId
-
-    -- ** TargetInstanceAggregatedList
-    , TargetInstanceAggregatedList
-    , targetInstanceAggregatedList
-    , tialNextPageToken
-    , tialKind
-    , tialItems
-    , tialSelfLink
-    , tialWarning
-    , tialId
-
-    -- ** NodeGroupsListNodesWarningDataItem
-    , NodeGroupsListNodesWarningDataItem
-    , nodeGroupsListNodesWarningDataItem
-    , nglnwdiValue
-    , nglnwdiKey
-
-    -- ** UsableSubnetworksAggregatedList
-    , UsableSubnetworksAggregatedList
-    , usableSubnetworksAggregatedList
-    , usalNextPageToken
-    , usalKind
-    , usalItems
-    , usalSelfLink
-    , usalWarning
-    , usalId
-
-    -- ** InterconnectLinkType
-    , InterconnectLinkType (..)
-
-    -- ** DisksScopedList
-    , DisksScopedList
-    , disksScopedList
-    , dslWarning
-    , dslDisks
-
-    -- ** InterconnectLocationListWarningDataItem
-    , InterconnectLocationListWarningDataItem
-    , interconnectLocationListWarningDataItem
-    , illwdiValue
-    , illwdiKey
-
-    -- ** InstanceGroupManagersScopedList
-    , InstanceGroupManagersScopedList
-    , instanceGroupManagersScopedList
-    , igmslWarning
-    , igmslInstanceGroupManagers
-
-    -- ** SubnetworkListWarning
-    , SubnetworkListWarning
-    , subnetworkListWarning
-    , slwData
-    , slwCode
-    , slwMessage
-
-    -- ** NetworkEndpointGroupListWarning
-    , NetworkEndpointGroupListWarning
-    , networkEndpointGroupListWarning
-    , neglwData
-    , neglwCode
-    , neglwMessage
-
-    -- ** HealthCheck
-    , HealthCheck
-    , healthCheck
-    , hcHealthyThreshold
-    , hcTCPHealthCheck
-    , hcHTTP2HealthCheck
-    , hcKind
-    , hcSSLHealthCheck
-    , hcSelfLink
-    , hcCheckIntervalSec
-    , hcName
-    , hcCreationTimestamp
-    , hcHTTPHealthCheck
-    , hcId
-    , hcType
-    , hcTimeoutSec
-    , hcDescription
-    , hcUnhealthyThreshold
-    , hcHTTPSHealthCheck
-
-    -- ** TargetSSLProxyProxyHeader
-    , TargetSSLProxyProxyHeader (..)
-
-    -- ** HTTPHealthCheckListWarning
-    , HTTPHealthCheckListWarning
-    , hTTPHealthCheckListWarning
-    , httphclwData
-    , httphclwCode
-    , httphclwMessage
-
-    -- ** SSLPoliciesListWarning
-    , SSLPoliciesListWarning
-    , sslPoliciesListWarning
-    , splwData
-    , splwCode
-    , splwMessage
-
-    -- ** CommitmentAggregatedListItems
-    , CommitmentAggregatedListItems
-    , commitmentAggregatedListItems
-    , caliAddtional
-
-    -- ** DiskAggregatedList
-    , DiskAggregatedList
-    , diskAggregatedList
-    , dalNextPageToken
-    , dalKind
-    , dalItems
-    , dalSelfLink
-    , dalWarning
-    , dalId
-
-    -- ** InstanceGroupsListInstancesWarningDataItem
-    , InstanceGroupsListInstancesWarningDataItem
-    , instanceGroupsListInstancesWarningDataItem
-    , igliwdiValue
-    , igliwdiKey
-
-    -- ** InstanceWithNamedPorts
-    , InstanceWithNamedPorts
-    , instanceWithNamedPorts
-    , iwnpStatus
-    , iwnpNamedPorts
-    , iwnpInstance
-
-    -- ** InterconnectListWarning
-    , InterconnectListWarning
-    , interconnectListWarning
-    , iData
-    , iCode
-    , iMessage
-
-    -- ** ForwardingRulesScopedList
-    , ForwardingRulesScopedList
-    , forwardingRulesScopedList
-    , frslWarning
-    , frslForwardingRules
-
-    -- ** RouterBGPAdvertiseMode
-    , RouterBGPAdvertiseMode (..)
-
-    -- ** NodeGroupsListNodesWarningCode
-    , NodeGroupsListNodesWarningCode (..)
-
-    -- ** InstanceReference
-    , InstanceReference
-    , instanceReference
-    , iInstance
-
-    -- ** InterconnectDiagnosticsLinkOpticalPowerState
-    , InterconnectDiagnosticsLinkOpticalPowerState (..)
-
-    -- ** OperationAggregatedList
-    , OperationAggregatedList
-    , operationAggregatedList
-    , oalNextPageToken
-    , oalKind
-    , oalItems
-    , oalSelfLink
-    , oalWarning
-    , oalId
-
-    -- ** OperationsScopedList
-    , OperationsScopedList
-    , operationsScopedList
-    , oslWarning
-    , oslOperations
-
-    -- ** NamedPort
-    , NamedPort
-    , namedPort
-    , npName
-    , npPort
-
-    -- ** NetworkEndpointGroupsListEndpointsRequest
-    , NetworkEndpointGroupsListEndpointsRequest
-    , networkEndpointGroupsListEndpointsRequest
-    , neglerHealthStatus
-
-    -- ** InterconnectLocationListWarningCode
-    , InterconnectLocationListWarningCode (..)
-
-    -- ** InstanceGroupsListInstancesWarningCode
-    , InstanceGroupsListInstancesWarningCode (..)
-
-    -- ** RegionInstanceGroupsListInstancesRequestInstanceState
-    , RegionInstanceGroupsListInstancesRequestInstanceState (..)
-
-    -- ** SubnetworkAggregatedListWarningDataItem
-    , SubnetworkAggregatedListWarningDataItem
-    , subnetworkAggregatedListWarningDataItem
-    , salwdiValue
-    , salwdiKey
-
-    -- ** ProjectXpnProjectStatus
-    , ProjectXpnProjectStatus (..)
-
-    -- ** InterconnectDiagnosticsLinkStatus
-    , InterconnectDiagnosticsLinkStatus
-    , interconnectDiagnosticsLinkStatus
-    , idlsLacpStatus
-    , idlsReceivingOpticalPower
-    , idlsGoogleDemarc
-    , idlsCircuitId
-    , idlsArpCaches
-    , idlsTransmittingOpticalPower
-
-    -- ** BackendServiceReference
-    , BackendServiceReference
-    , backendServiceReference
-    , bsrBackendService
-
-    -- ** NetworkEndpointGroupAggregatedListWarningDataItem
-    , NetworkEndpointGroupAggregatedListWarningDataItem
-    , networkEndpointGroupAggregatedListWarningDataItem
-    , negalwdiValue
-    , negalwdiKey
-
-    -- ** SSLHealthCheckPortSpecification
-    , SSLHealthCheckPortSpecification (..)
-
-    -- ** TargetInstanceList
-    , TargetInstanceList
-    , targetInstanceList
-    , tilNextPageToken
-    , tilKind
-    , tilItems
-    , tilSelfLink
-    , tilWarning
-    , tilId
-
-    -- ** TargetTCPProxyListWarning
-    , TargetTCPProxyListWarning
-    , targetTCPProxyListWarning
-    , ttplwData
-    , ttplwCode
-    , ttplwMessage
-
-    -- ** InstanceGroupManagerAggregatedList
-    , InstanceGroupManagerAggregatedList
-    , instanceGroupManagerAggregatedList
-    , igmalNextPageToken
-    , igmalKind
-    , igmalItems
-    , igmalSelfLink
-    , igmalWarning
-    , igmalId
-
-    -- ** BackendBucket
-    , BackendBucket
-    , backendBucket
-    , bbKind
-    , bbEnableCdn
-    , bbBucketName
-    , bbCdnPolicy
-    , bbSelfLink
-    , bbName
-    , bbCreationTimestamp
-    , bbId
-    , bbDescription
-
-    -- ** AccessConfigNetworkTier
-    , AccessConfigNetworkTier (..)
-
-    -- ** ProjectsEnableXpnResourceRequest
-    , ProjectsEnableXpnResourceRequest
-    , projectsEnableXpnResourceRequest
-    , pexrrXpnResource
-
-    -- ** ConditionSys
-    , ConditionSys (..)
-
-    -- ** ImageSourceType
-    , ImageSourceType (..)
-
-    -- ** TargetPoolsScopedList
-    , TargetPoolsScopedList
-    , targetPoolsScopedList
-    , tpslWarning
-    , tpslTargetPools
-
-    -- ** InterconnectAttachmentAggregatedListItems
-    , InterconnectAttachmentAggregatedListItems
-    , interconnectAttachmentAggregatedListItems
-    , iaaliAddtional
-
-    -- ** InstanceGroupManagerAutoHealingPolicy
-    , InstanceGroupManagerAutoHealingPolicy
-    , instanceGroupManagerAutoHealingPolicy
-    , igmahpHealthCheck
-    , igmahpInitialDelaySec
-
-    -- ** LogConfigCounterOptions
-    , LogConfigCounterOptions
-    , logConfigCounterOptions
-    , lccoField
-    , lccoMetric
-
-    -- ** SubnetworkAggregatedListWarningCode
-    , SubnetworkAggregatedListWarningCode (..)
-
-    -- ** InstancesSetMinCPUPlatformRequest
-    , InstancesSetMinCPUPlatformRequest
-    , instancesSetMinCPUPlatformRequest
-    , ismcprMinCPUPlatform
-
-    -- ** NetworkEndpointGroupAggregatedListWarningCode
-    , NetworkEndpointGroupAggregatedListWarningCode (..)
-
-    -- ** ForwardingRuleAggregatedList
-    , ForwardingRuleAggregatedList
-    , forwardingRuleAggregatedList
-    , fralNextPageToken
-    , fralKind
-    , fralItems
-    , fralSelfLink
-    , fralWarning
-    , fralId
-
-    -- ** TargetReference
-    , TargetReference
-    , targetReference
-    , trTarget
-
-    -- ** TargetPoolAggregatedList
-    , TargetPoolAggregatedList
-    , targetPoolAggregatedList
-    , tpalNextPageToken
-    , tpalKind
-    , tpalItems
-    , tpalSelfLink
-    , tpalWarning
-    , tpalId
-
-    -- ** OperationsScopedListWarningDataItem
-    , OperationsScopedListWarningDataItem
-    , operationsScopedListWarningDataItem
-    , oslwdiValue
-    , oslwdiKey
-
-    -- ** BackendServiceSessionAffinity
-    , BackendServiceSessionAffinity (..)
-
-    -- ** GlobalSetLabelsRequest
-    , GlobalSetLabelsRequest
-    , globalSetLabelsRequest
-    , gslrLabels
-    , gslrLabelFingerprint
-
-    -- ** TargetPool
-    , TargetPool
-    , targetPool
-    , tpSessionAffinity
-    , tpBackupPool
-    , tpKind
-    , tpSelfLink
-    , tpName
-    , tpCreationTimestamp
-    , tpInstances
-    , tpId
-    , tpFailoverRatio
-    , tpRegion
-    , tpDescription
-    , tpHealthChecks
-
-    -- ** ImageList
-    , ImageList
-    , imageList
-    , ilNextPageToken
-    , ilKind
-    , ilItems
-    , ilSelfLink
-    , ilWarning
-    , ilId
-
-    -- ** OperationAggregatedListWarningDataItem
-    , OperationAggregatedListWarningDataItem
-    , operationAggregatedListWarningDataItem
-    , oalwdiValue
-    , oalwdiKey
-
-    -- ** ForwardingRuleListWarning
-    , ForwardingRuleListWarning
-    , forwardingRuleListWarning
-    , frlwData
-    , frlwCode
-    , frlwMessage
-
-    -- ** VPNTunnelsScopedListWarning
-    , VPNTunnelsScopedListWarning
-    , vpnTunnelsScopedListWarning
-    , vtslwData
-    , vtslwCode
-    , vtslwMessage
-
-    -- ** RegionDisksResizeRequest
-    , RegionDisksResizeRequest
-    , regionDisksResizeRequest
-    , rdrrSizeGb
-
-    -- ** NodeTypesScopedListWarning
-    , NodeTypesScopedListWarning
-    , nodeTypesScopedListWarning
-    , ntslwData
-    , ntslwCode
-    , ntslwMessage
-
-    -- ** NodeTemplateNodeTypeFlexibility
-    , NodeTemplateNodeTypeFlexibility
-    , nodeTemplateNodeTypeFlexibility
-    , ntntfMemory
-    , ntntfCPUs
-    , ntntfLocalSsd
-
-    -- ** ForwardingRulesScopedListWarningCode
-    , ForwardingRulesScopedListWarningCode (..)
-
-    -- ** HealthStatusForNetworkEndpointHealthState
-    , HealthStatusForNetworkEndpointHealthState (..)
-
-    -- ** LicenseResourceRequirements
-    , LicenseResourceRequirements
-    , licenseResourceRequirements
-    , lrrMinMemoryMb
-    , lrrMinGuestCPUCount
-
-    -- ** RegionDiskTypeListWarning
-    , RegionDiskTypeListWarning
-    , regionDiskTypeListWarning
-    , rdtlwData
-    , rdtlwCode
-    , rdtlwMessage
-
-    -- ** OperationsScopedListWarningCode
-    , OperationsScopedListWarningCode (..)
-
-    -- ** OperationAggregatedListWarningCode
-    , OperationAggregatedListWarningCode (..)
-
-    -- ** TargetSSLProxiesSetBackendServiceRequest
-    , TargetSSLProxiesSetBackendServiceRequest
-    , targetSSLProxiesSetBackendServiceRequest
-    , tspsbsrService
-
-    -- ** ForwardingRule
-    , ForwardingRule
-    , forwardingRule
-    , frNetworkTier
-    , frIPAddress
-    , frLoadBalancingScheme
-    , frKind
-    , frIPVersion
-    , frAllPorts
-    , frNetwork
-    , frPortRange
-    , frSelfLink
-    , frName
-    , frIPProtocol
-    , frCreationTimestamp
-    , frServiceName
-    , frSubnetwork
-    , frPorts
-    , frId
-    , frRegion
-    , frServiceLabel
-    , frDescription
-    , frTarget
-    , frBackendService
-
-    -- ** URLMapList
-    , URLMapList
-    , urlMapList
-    , umlNextPageToken
-    , umlKind
-    , umlItems
-    , umlSelfLink
-    , umlWarning
-    , umlId
-
-    -- ** ForwardingRulesScopedListWarningDataItem
-    , ForwardingRulesScopedListWarningDataItem
-    , forwardingRulesScopedListWarningDataItem
-    , frslwdiValue
-    , frslwdiKey
-
-    -- ** TargetInstanceAggregatedListWarning
-    , TargetInstanceAggregatedListWarning
-    , targetInstanceAggregatedListWarning
-    , tialwData
-    , tialwCode
-    , tialwMessage
-
-    -- ** InstanceGroupManagersScopedListWarningDataItem
-    , InstanceGroupManagersScopedListWarningDataItem
-    , instanceGroupManagersScopedListWarningDataItem
-    , igmslwdiValue
-    , igmslwdiKey
-
-    -- ** SubnetworksScopedList
-    , SubnetworksScopedList
-    , subnetworksScopedList
-    , sslSubnetworks
-    , sslWarning
-
-    -- ** NetworkEndpointGroupsScopedList
-    , NetworkEndpointGroupsScopedList
-    , networkEndpointGroupsScopedList
-    , negslNetworkEndpointGroups
-    , negslWarning
-
-    -- ** DiskAggregatedListWarningCode
-    , DiskAggregatedListWarningCode (..)
-
-    -- ** AcceleratorTypeList
-    , AcceleratorTypeList
-    , acceleratorTypeList
-    , atlNextPageToken
-    , atlKind
-    , atlItems
-    , atlSelfLink
-    , atlWarning
-    , atlId
-
-    -- ** DiskAggregatedListWarningDataItem
-    , DiskAggregatedListWarningDataItem
-    , diskAggregatedListWarningDataItem
-    , dalwdiValue
-    , dalwdiKey
-
-    -- ** TargetPoolListWarning
-    , TargetPoolListWarning
-    , targetPoolListWarning
-    , tplwData
-    , tplwCode
-    , tplwMessage
-
-    -- ** UsableSubnetworksAggregatedListWarningCode
-    , UsableSubnetworksAggregatedListWarningCode (..)
-
-    -- ** NodeTemplatesScopedListWarning
-    , NodeTemplatesScopedListWarning
-    , nodeTemplatesScopedListWarning
-    , nData
-    , nCode
-    , nMessage
-
-    -- ** TargetPoolAggregatedListWarningDataItem
-    , TargetPoolAggregatedListWarningDataItem
-    , targetPoolAggregatedListWarningDataItem
-    , tpalwdiValue
-    , tpalwdiKey
-
-    -- ** DisksScopedListWarningCode
-    , DisksScopedListWarningCode (..)
-
-    -- ** Project
-    , Project
-    , project
-    , pXpnProjectStatus
-    , pKind
-    , pUsageExportLocation
-    , pSelfLink
-    , pName
-    , pDefaultServiceAccount
-    , pDefaultNetworkTier
-    , pCreationTimestamp
-    , pEnabledFeatures
-    , pQuotas
-    , pId
-    , pDescription
-    , pCommonInstanceMetadata
-
-    -- ** RegionInstanceGroupManagersListInstancesResponse
-    , RegionInstanceGroupManagersListInstancesResponse
-    , regionInstanceGroupManagersListInstancesResponse
-    , rigmlirManagedInstances
-
-    -- ** Operation
-    , Operation
-    , operation
-    , oTargetId
-    , oStatus
-    , oInsertTime
-    , oProgress
-    , oStartTime
-    , oKind
-    , oError
-    , oHTTPErrorMessage
-    , oZone
-    , oWarnings
-    , oHTTPErrorStatusCode
-    , oUser
-    , oSelfLink
-    , oName
-    , oStatusMessage
-    , oCreationTimestamp
-    , oEndTime
-    , oId
-    , oOperationType
-    , oRegion
-    , oDescription
-    , oTargetLink
-    , oClientOperationId
-
-    -- ** NetworkEndpoint
-    , NetworkEndpoint
-    , networkEndpoint
-    , neIPAddress
-    , nePort
-    , neInstance
-
-    -- ** DisksScopedListWarningDataItem
-    , DisksScopedListWarningDataItem
-    , disksScopedListWarningDataItem
-    , dslwdiValue
-    , dslwdiKey
-
-    -- ** InstanceGroupManagersScopedListWarningCode
-    , InstanceGroupManagersScopedListWarningCode (..)
-
-    -- ** Disk
-    , Disk
-    , disk
-    , dStatus
-    , dSourceSnapshotId
-    , dLastAttachTimestamp
-    , dUsers
-    , dSourceImage
-    , dReplicaZones
-    , dDiskEncryptionKey
-    , dSizeGb
-    , dKind
-    , dLastDetachTimestamp
-    , dGuestOSFeatures
-    , dZone
-    , dSelfLink
-    , dName
-    , dSourceImageId
-    , dCreationTimestamp
-    , dSourceImageEncryptionKey
-    , dLicenseCodes
-    , dId
-    , dLabels
-    , dLicenses
-    , dRegion
-    , dOptions
-    , dPhysicalBlockSizeBytes
-    , dType
-    , dLabelFingerprint
-    , dDescription
-    , dSourceSnapshotEncryptionKey
-    , dSourceSnapshot
-
-    -- ** UsableSubnetworksAggregatedListWarningDataItem
-    , UsableSubnetworksAggregatedListWarningDataItem
-    , usableSubnetworksAggregatedListWarningDataItem
-    , usalwdiValue
-    , usalwdiKey
-
-    -- ** NodeGroupList
-    , NodeGroupList
-    , nodeGroupList
-    , nglNextPageToken
-    , nglKind
-    , nglItems
-    , nglSelfLink
-    , nglWarning
-    , nglId
-
-    -- ** SSLPolicyWarningsItemCode
-    , SSLPolicyWarningsItemCode (..)
-
-    -- ** DiskMoveRequest
-    , DiskMoveRequest
-    , diskMoveRequest
-    , dmrTargetDisk
-    , dmrDestinationZone
-
-    -- ** ForwardingRuleAggregatedListWarningCode
-    , ForwardingRuleAggregatedListWarningCode (..)
-
-    -- ** SSLPolicyWarningsItemDataItem
-    , SSLPolicyWarningsItemDataItem
-    , sslPolicyWarningsItemDataItem
-    , spwidiValue
-    , spwidiKey
-
-    -- ** AutoscalingPolicyLoadBalancingUtilization
-    , AutoscalingPolicyLoadBalancingUtilization
-    , autoscalingPolicyLoadBalancingUtilization
-    , aplbuUtilizationTarget
-
-    -- ** TargetPoolAggregatedListWarningCode
-    , TargetPoolAggregatedListWarningCode (..)
-
-    -- ** NetworkEndpointGroupsListNetworkEndpoints
-    , NetworkEndpointGroupsListNetworkEndpoints
-    , networkEndpointGroupsListNetworkEndpoints
-    , neglneNextPageToken
-    , neglneKind
-    , neglneItems
-    , neglneWarning
-    , neglneId
-
-    -- ** ForwardingRuleAggregatedListWarningDataItem
-    , ForwardingRuleAggregatedListWarningDataItem
-    , forwardingRuleAggregatedListWarningDataItem
-    , fralwdiValue
-    , fralwdiKey
-
-    -- ** TargetPoolsScopedListWarningDataItem
-    , TargetPoolsScopedListWarningDataItem
-    , targetPoolsScopedListWarningDataItem
-    , tpslwdiValue
-    , tpslwdiKey
-
-    -- ** InstanceGroupManager
-    , InstanceGroupManager
-    , instanceGroupManager
-    , igmStatus
-    , igmKind
-    , igmFingerprint
-    , igmBaseInstanceName
-    , igmZone
-    , igmAutoHealingPolicies
-    , igmVersions
-    , igmInstanceTemplate
-    , igmUpdatePolicy
-    , igmTargetSize
-    , igmSelfLink
-    , igmCurrentActions
-    , igmName
-    , igmCreationTimestamp
-    , igmDistributionPolicy
-    , igmId
-    , igmRegion
-    , igmTargetPools
-    , igmDescription
-    , igmInstanceGroup
-    , igmNamedPorts
-
-    -- ** InstanceGroupManagerListWarning
-    , InstanceGroupManagerListWarning
-    , instanceGroupManagerListWarning
-    , igmlwData
-    , igmlwCode
-    , igmlwMessage
-
-    -- ** RegionInstanceGroupsListInstances
-    , RegionInstanceGroupsListInstances
-    , regionInstanceGroupsListInstances
-    , rigliNextPageToken
-    , rigliKind
-    , rigliItems
-    , rigliSelfLink
-    , rigliWarning
-    , rigliId
-
-    -- ** DiskListWarning
-    , DiskListWarning
-    , diskListWarning
-    , dlwData
-    , dlwCode
-    , dlwMessage
-
-    -- ** TCPHealthCheck
-    , TCPHealthCheck
-    , tcpHealthCheck
-    , thcResponse
-    , thcPortSpecification
-    , thcProxyHeader
-    , thcPortName
-    , thcPort
-    , thcRequest
-
-    -- ** InstanceGroupManagerAggregatedListWarningDataItem
-    , InstanceGroupManagerAggregatedListWarningDataItem
-    , instanceGroupManagerAggregatedListWarningDataItem
-    , igmalwdiValue
-    , igmalwdiKey
-
-    -- ** TestPermissionsResponse
-    , TestPermissionsResponse
-    , testPermissionsResponse
-    , tprPermissions
-
-    -- ** TargetPoolsScopedListWarningCode
-    , TargetPoolsScopedListWarningCode (..)
-
-    -- ** RegionAutoscalerListWarning
-    , RegionAutoscalerListWarning
-    , regionAutoscalerListWarning
-    , ralwData
-    , ralwCode
-    , ralwMessage
-
-    -- ** TargetInstanceListWarningCode
-    , TargetInstanceListWarningCode (..)
-
-    -- ** InterconnectLocationRegionInfoLocationPresence
-    , InterconnectLocationRegionInfoLocationPresence (..)
-
-    -- ** SSLHealthCheckProxyHeader
-    , SSLHealthCheckProxyHeader (..)
-
-    -- ** TargetVPNGatewayStatus
-    , TargetVPNGatewayStatus (..)
-
-    -- ** TargetInstanceListWarningDataItem
-    , TargetInstanceListWarningDataItem
-    , targetInstanceListWarningDataItem
-    , tilwdiValue
-    , tilwdiKey
-
-    -- ** InstanceGroupManagerAggregatedListWarningCode
-    , InstanceGroupManagerAggregatedListWarningCode (..)
-
-    -- ** OperationListWarning
-    , OperationListWarning
-    , operationListWarning
-    , olwData
-    , olwCode
-    , olwMessage
-
-    -- ** InstanceGroupsRemoveInstancesRequest
-    , InstanceGroupsRemoveInstancesRequest
-    , instanceGroupsRemoveInstancesRequest
-    , igrirInstances
-
-    -- ** InterconnectAttachmentPartnerMetadata
-    , InterconnectAttachmentPartnerMetadata
-    , interconnectAttachmentPartnerMetadata
-    , iapmPortalURL
-    , iapmInterconnectName
-    , iapmPartnerName
-
-    -- ** SnapshotStatus
-    , SnapshotStatus (..)
-
-    -- ** SecurityPolicyRuleMatcherVersionedExpr
-    , SecurityPolicyRuleMatcherVersionedExpr (..)
-
-    -- ** MachineTypeListWarningDataItem
-    , MachineTypeListWarningDataItem
-    , machineTypeListWarningDataItem
-    , mtlwdiValue
-    , mtlwdiKey
-
-    -- ** NetworksRemovePeeringRequest
-    , NetworksRemovePeeringRequest
-    , networksRemovePeeringRequest
-    , nrprName
-
-    -- ** TargetHTTPProxyListWarningDataItem
-    , TargetHTTPProxyListWarningDataItem
-    , targetHTTPProxyListWarningDataItem
-    , thttpplwdiValue
-    , thttpplwdiKey
-
-    -- ** MachineTypeAggregatedListWarning
-    , MachineTypeAggregatedListWarning
-    , machineTypeAggregatedListWarning
-    , mtalwData
-    , mtalwCode
-    , mtalwMessage
-
-    -- ** AutoscalerListWarningCode
-    , AutoscalerListWarningCode (..)
-
-    -- ** NodeTemplateAggregatedListWarningDataItem
-    , NodeTemplateAggregatedListWarningDataItem
-    , nodeTemplateAggregatedListWarningDataItem
-    , ntalwdiValue
-    , ntalwdiKey
-
-    -- ** BackendBucketList
-    , BackendBucketList
-    , backendBucketList
-    , bblNextPageToken
-    , bblKind
-    , bblItems
-    , bblSelfLink
-    , bblWarning
-    , bblId
-
-    -- ** InterconnectAttachmentPrivateInfo
-    , InterconnectAttachmentPrivateInfo
-    , interconnectAttachmentPrivateInfo
-    , iapiTag8021q
-
-    -- ** AcceleratorTypesScopedList
-    , AcceleratorTypesScopedList
-    , acceleratorTypesScopedList
-    , atslAcceleratorTypes
-    , atslWarning
-
-    -- ** BackendServiceCdnPolicy
-    , BackendServiceCdnPolicy
-    , backendServiceCdnPolicy
-    , bscpSignedURLCacheMaxAgeSec
-    , bscpSignedURLKeyNames
-    , bscpCacheKeyPolicy
-
-    -- ** DiskTypeListWarningCode
-    , DiskTypeListWarningCode (..)
-
-    -- ** RouteWarningsItemDataItem
-    , RouteWarningsItemDataItem
-    , routeWarningsItemDataItem
-    , rwidiValue
-    , rwidiKey
-
-    -- ** NodeGroupAggregatedList
-    , NodeGroupAggregatedList
-    , nodeGroupAggregatedList
-    , ngalNextPageToken
-    , ngalKind
-    , ngalItems
-    , ngalSelfLink
-    , ngalWarning
-    , ngalId
-
-    -- ** AddressPurpose
-    , AddressPurpose (..)
-
-    -- ** NodeTypeAggregatedListWarningCode
-    , NodeTypeAggregatedListWarningCode (..)
-
-    -- ** TargetInstancesScopedListWarningCode
-    , TargetInstancesScopedListWarningCode (..)
-
-    -- ** VPNTunnelListWarning
-    , VPNTunnelListWarning
-    , vpnTunnelListWarning
-    , vtlwData
-    , vtlwCode
-    , vtlwMessage
-
-    -- ** BackendServiceAggregatedListItems
-    , BackendServiceAggregatedListItems
-    , backendServiceAggregatedListItems
-    , bsaliAddtional
-
-    -- ** VPNTunnelAggregatedListWarningCode
-    , VPNTunnelAggregatedListWarningCode (..)
-
-    -- ** InstanceAggregatedListItems
-    , InstanceAggregatedListItems
-    , instanceAggregatedListItems
-    , ialiAddtional
-
-    -- ** AutoscalersScopedListWarning
-    , AutoscalersScopedListWarning
-    , autoscalersScopedListWarning
-    , aslwData
-    , aslwCode
-    , aslwMessage
-
-    -- ** DiskInstantiationConfig
-    , DiskInstantiationConfig
-    , diskInstantiationConfig
-    , dicAutoDelete
-    , dicInstantiateFrom
-    , dicCustomImage
-    , dicDeviceName
-
-    -- ** DiskTypeAggregatedListWarning
-    , DiskTypeAggregatedListWarning
-    , diskTypeAggregatedListWarning
-    , dtalwData
-    , dtalwCode
-    , dtalwMessage
-
-    -- ** DiskTypeListWarningDataItem
-    , DiskTypeListWarningDataItem
-    , diskTypeListWarningDataItem
-    , dtlwdiValue
-    , dtlwdiKey
-
-    -- ** SecurityPolicyRule
-    , SecurityPolicyRule
-    , securityPolicyRule
-    , sprPriority
-    , sprKind
-    , sprAction
-    , sprPreview
-    , sprMatch
-    , sprDescription
-
-    -- ** InterconnectsGetDiagnosticsResponse
-    , InterconnectsGetDiagnosticsResponse
-    , interconnectsGetDiagnosticsResponse
-    , igdrResult
-
-    -- ** VPNTunnelAggregatedListWarningDataItem
-    , VPNTunnelAggregatedListWarningDataItem
-    , vpnTunnelAggregatedListWarningDataItem
-    , vtalwdiValue
-    , vtalwdiKey
-
-    -- ** FixedOrPercent
-    , FixedOrPercent
-    , fixedOrPercent
-    , fopCalculated
-    , fopPercent
-    , fopFixed
-
-    -- ** FirewallLogConfig
-    , FirewallLogConfig
-    , firewallLogConfig
-    , flcEnable
-
-    -- ** ShieldedInstanceIntegrityPolicy
-    , ShieldedInstanceIntegrityPolicy
-    , shieldedInstanceIntegrityPolicy
-    , siipUpdateAutoLearnPolicy
-
-    -- ** TargetHTTPProxyListWarningCode
-    , TargetHTTPProxyListWarningCode (..)
-
-    -- ** RouterNAT
-    , RouterNAT
-    , routerNAT
-    , rnatNATIPAllocateOption
-    , rnatICMPIdleTimeoutSec
-    , rnatUdpIdleTimeoutSec
-    , rnatNATIPs
-    , rnatSubnetworks
-    , rnatMinPortsPerVM
-    , rnatName
-    , rnatSourceSubnetworkIPRangesToNAT
-    , rnatTCPEstablishedIdleTimeoutSec
-    , rnatTCPTransitoryIdleTimeoutSec
-
-    -- ** AutoscalerAggregatedListWarning
-    , AutoscalerAggregatedListWarning
-    , autoscalerAggregatedListWarning
-    , aalwData
-    , aalwCode
-    , aalwMessage
-
-    -- ** AutoscalerListWarningDataItem
-    , AutoscalerListWarningDataItem
-    , autoscalerListWarningDataItem
-    , alwdiValue
-    , alwdiKey
-
-    -- ** MachineTypeListWarningCode
-    , MachineTypeListWarningCode (..)
-
-    -- ** NodeTypeListWarning
-    , NodeTypeListWarning
-    , nodeTypeListWarning
-    , ntlwData
-    , ntlwCode
-    , ntlwMessage
-
-    -- ** HealthCheckList
-    , HealthCheckList
-    , healthCheckList
-    , hclNextPageToken
-    , hclKind
-    , hclItems
-    , hclSelfLink
-    , hclWarning
-    , hclId
-
-    -- ** ManagedInstanceLastAttemptErrors
-    , ManagedInstanceLastAttemptErrors
-    , managedInstanceLastAttemptErrors
-    , milaeErrors
-
-    -- ** GuestOSFeatureType
-    , GuestOSFeatureType (..)
-
-    -- ** RouteWarningsItemCode
-    , RouteWarningsItemCode (..)
-
-    -- ** RouterStatusNATStatus
-    , RouterStatusNATStatus
-    , routerStatusNATStatus
-    , rsnatsUserAllocatedNATIPResources
-    , rsnatsName
-    , rsnatsAutoAllocatedNATIPs
-    , rsnatsMinExtraNATIPsNeeded
-    , rsnatsNumVMEndpointsWithNATMAppings
-    , rsnatsUserAllocatedNATIPs
-
-    -- ** TargetPoolsRemoveInstanceRequest
-    , TargetPoolsRemoveInstanceRequest
-    , targetPoolsRemoveInstanceRequest
-    , tprirInstances
-
-    -- ** NodeTypeAggregatedListWarningDataItem
-    , NodeTypeAggregatedListWarningDataItem
-    , nodeTypeAggregatedListWarningDataItem
-    , nValue
-    , nKey
-
-    -- ** TargetInstancesScopedListWarningDataItem
-    , TargetInstancesScopedListWarningDataItem
-    , targetInstancesScopedListWarningDataItem
-    , tislwdiValue
-    , tislwdiKey
-
-    -- ** MachineTypesScopedListWarning
-    , MachineTypesScopedListWarning
-    , machineTypesScopedListWarning
-    , mtslwData
-    , mtslwCode
-    , mtslwMessage
-
-    -- ** ZoneSetLabelsRequest
-    , ZoneSetLabelsRequest
-    , zoneSetLabelsRequest
-    , zslrLabels
-    , zslrLabelFingerprint
-
-    -- ** TargetInstance
-    , TargetInstance
-    , targetInstance
-    , tiKind
-    , tiNATPolicy
-    , tiZone
-    , tiSelfLink
-    , tiName
-    , tiCreationTimestamp
-    , tiId
-    , tiDescription
-    , tiInstance
-
-    -- ** TargetPoolInstanceHealth
-    , TargetPoolInstanceHealth
-    , targetPoolInstanceHealth
-    , tpihKind
-    , tpihHealthStatus
-
-    -- ** RouterBGPPeerAdvertiseMode
-    , RouterBGPPeerAdvertiseMode (..)
-
-    -- ** RegionInstanceGroupManagerListWarningCode
-    , RegionInstanceGroupManagerListWarningCode (..)
-
-    -- ** AcceleratorTypeAggregatedList
-    , AcceleratorTypeAggregatedList
-    , acceleratorTypeAggregatedList
-    , atalNextPageToken
-    , atalKind
-    , atalItems
-    , atalSelfLink
-    , atalWarning
-    , atalId
-
-    -- ** SnapshotStorageBytesStatus
-    , SnapshotStorageBytesStatus (..)
-
-    -- ** NetworkRoutingConfig
-    , NetworkRoutingConfig
-    , networkRoutingConfig
-    , nrcRoutingMode
-
-    -- ** NodeTemplateListWarning
-    , NodeTemplateListWarning
-    , nodeTemplateListWarning
-    , nodData
-    , nodCode
-    , nodMessage
-
-    -- ** InstanceGroupManagersListManagedInstancesResponse
-    , InstanceGroupManagersListManagedInstancesResponse
-    , instanceGroupManagersListManagedInstancesResponse
-    , igmlmirManagedInstances
-
-    -- ** InstanceProperties
-    , InstanceProperties
-    , instanceProperties
-    , ipServiceAccounts
-    , ipNetworkInterfaces
-    , ipGuestAccelerators
-    , ipMachineType
-    , ipMetadata
-    , ipShieldedInstanceConfig
-    , ipLabels
-    , ipScheduling
-    , ipMinCPUPlatform
-    , ipDisks
-    , ipCanIPForward
-    , ipDescription
-    , ipTags
-
-    -- ** ProjectsListXpnHostsRequest
-    , ProjectsListXpnHostsRequest
-    , projectsListXpnHostsRequest
-    , plxhrOrganization
-
-    -- ** RegionListWarning
-    , RegionListWarning
-    , regionListWarning
-    , rlwData
-    , rlwCode
-    , rlwMessage
-
-    -- ** HTTP2HealthCheck
-    , HTTP2HealthCheck
-    , hTTP2HealthCheck
-    , httphcResponse
-    , httphcPortSpecification
-    , httphcRequestPath
-    , httphcHost
-    , httphcProxyHeader
-    , httphcPortName
-    , httphcPort
-
-    -- ** NodeTemplateAggregatedListWarningCode
-    , NodeTemplateAggregatedListWarningCode (..)
-
-    -- ** NodeGroupsScopedList
-    , NodeGroupsScopedList
-    , nodeGroupsScopedList
-    , ngslNodeGroups
-    , ngslWarning
-
-    -- ** DiskTypesScopedListWarning
-    , DiskTypesScopedListWarning
-    , diskTypesScopedListWarning
-    , dtslwData
-    , dtslwCode
-    , dtslwMessage
-
-    -- ** RegionInstanceGroupManagerListWarningDataItem
-    , RegionInstanceGroupManagerListWarningDataItem
-    , regionInstanceGroupManagerListWarningDataItem
-    , rigmlwdiValue
-    , rigmlwdiKey
-
-    -- ** RuleAction
-    , RuleAction (..)
-
-    -- ** AddressesScopedListWarningCode
-    , AddressesScopedListWarningCode (..)
-
-    -- ** AttachedDiskInitializeParams
-    , AttachedDiskInitializeParams
-    , attachedDiskInitializeParams
-    , adipSourceImage
-    , adipDiskSizeGb
-    , adipDiskName
-    , adipSourceImageEncryptionKey
-    , adipDiskType
-    , adipLabels
-    , adipDescription
-
-    -- ** UsableSubnetworkSecondaryRange
-    , UsableSubnetworkSecondaryRange
-    , usableSubnetworkSecondaryRange
-    , ussrRangeName
-    , ussrIPCIdRRange
-
-    -- ** NetworkEndpointGroupsAttachEndpointsRequest
-    , NetworkEndpointGroupsAttachEndpointsRequest
-    , networkEndpointGroupsAttachEndpointsRequest
-    , negaerNetworkEndpoints
-
-    -- ** AddressesScopedListWarningDataItem
-    , AddressesScopedListWarningDataItem
-    , addressesScopedListWarningDataItem
-    , aslwdiValue
-    , aslwdiKey
-
-    -- ** ImageStatus
-    , ImageStatus (..)
-
-    -- ** InstanceGroupListWarningCode
-    , InstanceGroupListWarningCode (..)
-
-    -- ** InstanceGroupListWarningDataItem
-    , InstanceGroupListWarningDataItem
-    , instanceGroupListWarningDataItem
-    , iglwdiValue
-    , iglwdiKey
-
-    -- ** NetworkInterface
-    , NetworkInterface
-    , networkInterface
-    , niKind
-    , niFingerprint
-    , niAliasIPRanges
-    , niNetwork
-    , niName
-    , niNetworkIP
-    , niSubnetwork
-    , niAccessConfigs
-
-    -- ** FirewallListWarningCode
-    , FirewallListWarningCode (..)
-
-    -- ** RouterListWarning
-    , RouterListWarning
-    , routerListWarning
-    , rData
-    , rCode
-    , rMessage
-
-    -- ** FirewallListWarningDataItem
-    , FirewallListWarningDataItem
-    , firewallListWarningDataItem
-    , flwdiValue
-    , flwdiKey
-
-    -- ** InterconnectAttachmentType
-    , InterconnectAttachmentType (..)
-
-    -- ** TargetPoolsRemoveHealthCheckRequest
-    , TargetPoolsRemoveHealthCheckRequest
-    , targetPoolsRemoveHealthCheckRequest
-    , tprhcrHealthChecks
-
-    -- ** AutoscalerStatusDetailsType
-    , AutoscalerStatusDetailsType (..)
-
-    -- ** FirewallDirection
-    , FirewallDirection (..)
-
-    -- ** NodeGroupNodeStatus
-    , NodeGroupNodeStatus (..)
-
-    -- ** TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride
-    , TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride (..)
-
-    -- ** RegionInstanceGroupManagersSetTargetPoolsRequest
-    , RegionInstanceGroupManagersSetTargetPoolsRequest
-    , regionInstanceGroupManagersSetTargetPoolsRequest
-    , rigmstprFingerprint
-    , rigmstprTargetPools
-
-    -- ** BackendBucketCdnPolicy
-    , BackendBucketCdnPolicy
-    , backendBucketCdnPolicy
-    , bbcpSignedURLCacheMaxAgeSec
-    , bbcpSignedURLKeyNames
-
-    -- ** TargetSSLProxyList
-    , TargetSSLProxyList
-    , targetSSLProxyList
-    , tsplNextPageToken
-    , tsplKind
-    , tsplItems
-    , tsplSelfLink
-    , tsplWarning
-    , tsplId
-
-    -- ** CustomerEncryptionKeyProtectedDisk
-    , CustomerEncryptionKeyProtectedDisk
-    , customerEncryptionKeyProtectedDisk
-    , cekpdDiskEncryptionKey
-    , cekpdSource
-
-    -- ** HealthStatusHealthState
-    , HealthStatusHealthState (..)
-
-    -- ** InstanceTemplateList
-    , InstanceTemplateList
-    , instanceTemplateList
-    , itlNextPageToken
-    , itlKind
-    , itlItems
-    , itlSelfLink
-    , itlWarning
-    , itlId
-
-    -- ** Reference
-    , Reference
-    , reference
-    , refKind
-    , refReferrer
-    , refReferenceType
-    , refTarget
-
-    -- ** InstanceGroupAggregatedListWarning
-    , InstanceGroupAggregatedListWarning
-    , instanceGroupAggregatedListWarning
-    , igalwData
-    , igalwCode
-    , igalwMessage
-
-    -- ** RouteList
-    , RouteList
-    , routeList
-    , rlNextPageToken
-    , rlKind
-    , rlItems
-    , rlSelfLink
-    , rlWarning
-    , rlId
-
-    -- ** DeprecationStatusState
-    , DeprecationStatusState (..)
-
-    -- ** InstanceListReferrers
-    , InstanceListReferrers
-    , instanceListReferrers
-    , ilrNextPageToken
-    , ilrKind
-    , ilrItems
-    , ilrSelfLink
-    , ilrWarning
-    , ilrId
-
-    -- ** NodeGroupStatus
-    , NodeGroupStatus (..)
-
-    -- ** Router
-    , Router
-    , router
-    , rouBGPPeers
-    , rouBGP
-    , rouKind
-    , rouNetwork
-    , rouInterfaces
-    , rouSelfLink
-    , rouName
-    , rouCreationTimestamp
-    , rouId
-    , rouRegion
-    , rouNATs
-    , rouDescription
-
-    -- ** RouterAggregatedListWarningCode
-    , RouterAggregatedListWarningCode (..)
-
-    -- ** RoutersScopedListWarningCode
-    , RoutersScopedListWarningCode (..)
-
-    -- ** RouterAggregatedListWarningDataItem
-    , RouterAggregatedListWarningDataItem
-    , routerAggregatedListWarningDataItem
-    , ralwdiValue
-    , ralwdiKey
-
-    -- ** TargetHTTPSProxyListWarningCode
-    , TargetHTTPSProxyListWarningCode (..)
-
-    -- ** RoutersScopedListWarningDataItem
-    , RoutersScopedListWarningDataItem
-    , routersScopedListWarningDataItem
-    , rslwdiValue
-    , rslwdiKey
-
-    -- ** SubnetworksSetPrivateIPGoogleAccessRequest
-    , SubnetworksSetPrivateIPGoogleAccessRequest
-    , subnetworksSetPrivateIPGoogleAccessRequest
-    , sspigarPrivateIPGoogleAccess
-
-    -- ** TargetHTTPSProxyListWarningDataItem
-    , TargetHTTPSProxyListWarningDataItem
-    , targetHTTPSProxyListWarningDataItem
-    , thplwdiValue
-    , thplwdiKey
-
-    -- ** InterconnectDiagnosticsLinkLACPStatusState
-    , InterconnectDiagnosticsLinkLACPStatusState (..)
-
-    -- ** ManagedInstanceCurrentAction
-    , ManagedInstanceCurrentAction (..)
-
-    -- ** TargetVPNGatewayList
-    , TargetVPNGatewayList
-    , targetVPNGatewayList
-    , tvglNextPageToken
-    , tvglKind
-    , tvglItems
-    , tvglSelfLink
-    , tvglWarning
-    , tvglId
-
-    -- ** TargetInstanceNATPolicy
-    , TargetInstanceNATPolicy (..)
-
-    -- ** SSLCertificateList
-    , SSLCertificateList
-    , sslCertificateList
-    , sclNextPageToken
-    , sclKind
-    , sclItems
-    , sclSelfLink
-    , sclWarning
-    , sclId
-
-    -- ** FirewallAllowedItem
-    , FirewallAllowedItem
-    , firewallAllowedItem
-    , faiIPProtocol
-    , faiPorts
-
-    -- ** RouterAdvertisedIPRange
-    , RouterAdvertisedIPRange
-    , routerAdvertisedIPRange
-    , rairRange
-    , rairDescription
-
-    -- ** RouterListWarningDataItem
-    , RouterListWarningDataItem
-    , routerListWarningDataItem
-    , rlwdiValue
-    , rlwdiKey
-
-    -- ** Rule
-    , Rule
-    , rule
-    , rAction
-    , rNotIns
-    , rIns
-    , rLogConfigs
-    , rConditions
-    , rPermissions
-    , rDescription
-
-    -- ** BackendServiceAggregatedList
-    , BackendServiceAggregatedList
-    , backendServiceAggregatedList
-    , bsalNextPageToken
-    , bsalKind
-    , bsalItems
-    , bsalSelfLink
-    , bsalWarning
-    , bsalId
-
-    -- ** Network
-    , Network
-    , network
-    , nAutoCreateSubnetworks
-    , nKind
-    , nRoutingConfig
-    , nSubnetworks
-    , nIPv4Range
-    , nSelfLink
-    , nName
-    , nCreationTimestamp
-    , nId
-    , nGatewayIPv4
-    , nDescription
-    , nPeerings
-
-    -- ** RoutersScopedListWarning
-    , RoutersScopedListWarning
-    , routersScopedListWarning
-    , rslwData
-    , rslwCode
-    , rslwMessage
-
-    -- ** UsableSubnetwork
-    , UsableSubnetwork
-    , usableSubnetwork
-    , usNetwork
-    , usSecondaryIPRanges
-    , usIPCIdRRange
-    , usSubnetwork
-
-    -- ** RouterBGPPeerAdvertisedGroupsItem
-    , RouterBGPPeerAdvertisedGroupsItem (..)
-
-    -- ** AccessConfigType
-    , AccessConfigType (..)
-
-    -- ** TargetHTTPSProxyListWarning
-    , TargetHTTPSProxyListWarning
-    , targetHTTPSProxyListWarning
-    , thplwData
-    , thplwCode
-    , thplwMessage
-
-    -- ** AddressesScopedListWarning
-    , AddressesScopedListWarning
-    , addressesScopedListWarning
-    , aData
-    , aCode
-    , aMessage
-
-    -- ** SecurityPolicy
-    , SecurityPolicy
-    , securityPolicy
-    , secRules
-    , secKind
-    , secFingerprint
-    , secSelfLink
-    , secName
-    , secCreationTimestamp
-    , secId
-    , secDescription
-
-    -- ** InstanceGroupAggregatedListWarningDataItem
-    , InstanceGroupAggregatedListWarningDataItem
-    , instanceGroupAggregatedListWarningDataItem
-    , igalwdiValue
-    , igalwdiKey
-
-    -- ** ForwardingRuleIPVersion
-    , ForwardingRuleIPVersion (..)
-
-    -- ** RouterListWarningCode
-    , RouterListWarningCode (..)
-
-    -- ** ImageRawDisk
-    , ImageRawDisk
-    , imageRawDisk
-    , irdContainerType
-    , irdSource
-    , irdSha1Checksum
-
-    -- ** InstanceAggregatedList
-    , InstanceAggregatedList
-    , instanceAggregatedList
-    , ialNextPageToken
-    , ialKind
-    , ialItems
-    , ialSelfLink
-    , ialWarning
-    , ialId
-
-    -- ** ForwardingRuleReference
-    , ForwardingRuleReference
-    , forwardingRuleReference
-    , frrForwardingRule
-
-    -- ** TargetTCPProxiesSetBackendServiceRequest
-    , TargetTCPProxiesSetBackendServiceRequest
-    , targetTCPProxiesSetBackendServiceRequest
-    , ttpsbsrService
-
-    -- ** SSLHealthCheck
-    , SSLHealthCheck
-    , sslHealthCheck
-    , shcResponse
-    , shcPortSpecification
-    , shcProxyHeader
-    , shcPortName
-    , shcPort
-    , shcRequest
-
-    -- ** Address
-    , Address
-    , address
-    , aPrefixLength
-    , aNetworkTier
-    , aStatus
-    , aUsers
-    , aKind
-    , aIPVersion
-    , aNetwork
-    , aAddress
-    , aPurpose
-    , aSelfLink
-    , aName
-    , aCreationTimestamp
-    , aSubnetwork
-    , aId
-    , aRegion
-    , aDescription
-    , aAddressType
-
-    -- ** NodeGroupAggregatedListItems
-    , NodeGroupAggregatedListItems
-    , nodeGroupAggregatedListItems
-    , ngaliAddtional
-
-    -- ** InstanceGroupAggregatedListWarningCode
-    , InstanceGroupAggregatedListWarningCode (..)
-
-    -- ** InstanceGroupListWarning
-    , InstanceGroupListWarning
-    , instanceGroupListWarning
-    , iglwData
-    , iglwCode
-    , iglwMessage
-
-    -- ** AttachedDiskInitializeParamsLabels
-    , AttachedDiskInitializeParamsLabels
-    , attachedDiskInitializeParamsLabels
-    , adiplAddtional
-
-    -- ** Zone
-    , Zone
-    , zone
-    , zStatus
-    , zKind
-    , zSelfLink
-    , zName
-    , zCreationTimestamp
-    , zId
-    , zRegion
-    , zAvailableCPUPlatforms
-    , zDescription
-    , zDeprecated
-
-    -- ** RouterBGP
-    , RouterBGP
-    , routerBGP
-    , rbASN
-    , rbAdvertiseMode
-    , rbAdvertisedGroups
-    , rbAdvertisedIPRanges
-
-    -- ** ProjectsSetDefaultNetworkTierRequestNetworkTier
-    , ProjectsSetDefaultNetworkTierRequestNetworkTier (..)
-
-    -- ** FirewallListWarning
-    , FirewallListWarning
-    , firewallListWarning
-    , flwData
-    , flwCode
-    , flwMessage
-
-    -- ** BackendServicesScopedList
-    , BackendServicesScopedList
-    , backendServicesScopedList
-    , bsslWarning
-    , bsslBackendServices
-
-    -- ** InstanceGroupManagersRecreateInstancesRequest
-    , InstanceGroupManagersRecreateInstancesRequest
-    , instanceGroupManagersRecreateInstancesRequest
-    , igmrirInstances
-
-    -- ** TargetSSLProxiesSetSSLCertificatesRequest
-    , TargetSSLProxiesSetSSLCertificatesRequest
-    , targetSSLProxiesSetSSLCertificatesRequest
-    , tspsscrSSLCertificates
-
-    -- ** HealthStatusForNetworkEndpoint
-    , HealthStatusForNetworkEndpoint
-    , healthStatusForNetworkEndpoint
-    , hsfneHealthCheck
-    , hsfneForwardingRule
-    , hsfneHealthState
-    , hsfneBackendService
-
-    -- ** RouterAggregatedListWarning
-    , RouterAggregatedListWarning
-    , routerAggregatedListWarning
-    , rouData
-    , rouCode
-    , rouMessage
-
-    -- ** InstancesScopedList
-    , InstancesScopedList
-    , instancesScopedList
-    , islWarning
-    , islInstances
-
-    -- ** AcceleratorTypeAggregatedListItems
-    , AcceleratorTypeAggregatedListItems
-    , acceleratorTypeAggregatedListItems
-    , ataliAddtional
-
-    -- ** TargetVPNGatewayAggregatedListWarningDataItem
-    , TargetVPNGatewayAggregatedListWarningDataItem
-    , targetVPNGatewayAggregatedListWarningDataItem
-    , tvgalwdiValue
-    , tvgalwdiKey
-
-    -- ** BackendServiceLoadBalancingScheme
-    , BackendServiceLoadBalancingScheme (..)
-
-    -- ** HealthCheckReference
-    , HealthCheckReference
-    , healthCheckReference
-    , hcrHealthCheck
-
-    -- ** TargetInstanceAggregatedListItems
-    , TargetInstanceAggregatedListItems
-    , targetInstanceAggregatedListItems
-    , tialiAddtional
-
-    -- ** TargetHTTPSProxiesSetQuicOverrideRequest
-    , TargetHTTPSProxiesSetQuicOverrideRequest
-    , targetHTTPSProxiesSetQuicOverrideRequest
-    , thpsqorQuicOverride
-
-    -- ** TargetSSLProxyListWarning
-    , TargetSSLProxyListWarning
-    , targetSSLProxyListWarning
-    , tsplwData
-    , tsplwCode
-    , tsplwMessage
-
-    -- ** InstanceTemplateListWarning
-    , InstanceTemplateListWarning
-    , instanceTemplateListWarning
-    , itlwData
-    , itlwCode
-    , itlwMessage
-
-    -- ** InstanceListReferrersWarning
-    , InstanceListReferrersWarning
-    , instanceListReferrersWarning
-    , ilrwData
-    , ilrwCode
-    , ilrwMessage
-
-    -- ** RouteListWarning
-    , RouteListWarning
-    , routeListWarning
-    , rlwlData
-    , rlwlCode
-    , rlwlMessage
-
-    -- ** TargetTCPProxyProxyHeader
-    , TargetTCPProxyProxyHeader (..)
-
-    -- ** InstanceGroupAggregatedList
-    , InstanceGroupAggregatedList
-    , instanceGroupAggregatedList
-    , igalNextPageToken
-    , igalKind
-    , igalItems
-    , igalSelfLink
-    , igalWarning
-    , igalId
-
-    -- ** TargetVPNGatewayAggregatedListWarningCode
-    , TargetVPNGatewayAggregatedListWarningCode (..)
-
-    -- ** OperationStatus
-    , OperationStatus (..)
-
-    -- ** Route
-    , Route
-    , route
-    , rrNextHopPeering
-    , rrPriority
-    , rrKind
-    , rrNextHopGateway
-    , rrNextHopNetwork
-    , rrNetwork
-    , rrWarnings
-    , rrNextHopIP
-    , rrDestRange
-    , rrSelfLink
-    , rrName
-    , rrCreationTimestamp
-    , rrId
-    , rrNextHopVPNTunnel
-    , rrDescription
-    , rrTags
-    , rrNextHopInstance
-
-    -- ** TargetVPNGatewaysScopedListWarningDataItem
-    , TargetVPNGatewaysScopedListWarningDataItem
-    , targetVPNGatewaysScopedListWarningDataItem
-    , tvgslwdiValue
-    , tvgslwdiKey
-
-    -- ** LogConfigCloudAuditOptionsLogName
-    , LogConfigCloudAuditOptionsLogName (..)
-
-    -- ** LicenseCodeState
-    , LicenseCodeState (..)
-
-    -- ** InterconnectLocationRegionInfo
-    , InterconnectLocationRegionInfo
-    , interconnectLocationRegionInfo
-    , ilriLocationPresence
-    , ilriExpectedRttMs
-    , ilriRegion
-
-    -- ** TCPHealthCheckPortSpecification
-    , TCPHealthCheckPortSpecification (..)
-
-    -- ** TargetVPNGatewaysScopedListWarningCode
-    , TargetVPNGatewaysScopedListWarningCode (..)
-
-    -- ** TargetHTTPSProxiesSetSSLCertificatesRequest
-    , TargetHTTPSProxiesSetSSLCertificatesRequest
-    , targetHTTPSProxiesSetSSLCertificatesRequest
-    , thpsscrSSLCertificates
-
-    -- ** InstanceTemplate
-    , InstanceTemplate
-    , instanceTemplate
-    , itSourceInstance
-    , itKind
-    , itSelfLink
-    , itName
-    , itCreationTimestamp
-    , itId
-    , itSourceInstanceParams
-    , itDescription
-    , itProperties
-
-    -- ** XpnResourceId
-    , XpnResourceId
-    , xpnResourceId
-    , xriId
-    , xriType
-
-    -- ** RouterList
-    , RouterList
-    , routerList
-    , rllNextPageToken
-    , rllKind
-    , rllItems
-    , rllSelfLink
-    , rllWarning
-    , rllId
-
-    -- ** TargetSSLProxy
-    , TargetSSLProxy
-    , targetSSLProxy
-    , tspSSLPolicy
-    , tspSSLCertificates
-    , tspService
-    , tspKind
-    , tspSelfLink
-    , tspName
-    , tspCreationTimestamp
-    , tspId
-    , tspProxyHeader
-    , tspDescription
-
-    -- ** InstanceGroupManagerStatus
-    , InstanceGroupManagerStatus
-    , instanceGroupManagerStatus
-    , igmsIsStable
-
-    -- ** SSLCertificateListWarning
-    , SSLCertificateListWarning
-    , sslCertificateListWarning
-    , sclwData
-    , sclwCode
-    , sclwMessage
-
-    -- ** SnapshotListWarningDataItem
-    , SnapshotListWarningDataItem
-    , snapshotListWarningDataItem
-    , slwdiValue
-    , slwdiKey
-
-    -- ** TargetVPNGateway
-    , TargetVPNGateway
-    , targetVPNGateway
-    , tvgStatus
-    , tvgKind
-    , tvgNetwork
-    , tvgSelfLink
-    , tvgName
-    , tvgCreationTimestamp
-    , tvgId
-    , tvgRegion
-    , tvgTunnels
-    , tvgDescription
-    , tvgForwardingRules
-
-    -- ** DiskStatus
-    , DiskStatus (..)
-
-    -- ** ResourceCommitment
-    , ResourceCommitment
-    , resourceCommitment
-    , rcAmount
-    , rcType
-
-    -- ** SnapshotListWarningCode
-    , SnapshotListWarningCode (..)
-
-    -- ** BackendServiceIAP
-    , BackendServiceIAP
-    , backendServiceIAP
-    , bsiapEnabled
-    , bsiapOAuth2ClientSecretSha256
-    , bsiapOAuth2ClientSecret
-    , bsiapOAuth2ClientId
-
-    -- ** TargetVPNGatewayListWarning
-    , TargetVPNGatewayListWarning
-    , targetVPNGatewayListWarning
-    , tvglwData
-    , tvglwCode
-    , tvglwMessage
-
-    -- ** InterconnectAttachmentEdgeAvailabilityDomain
-    , InterconnectAttachmentEdgeAvailabilityDomain (..)
-
-    -- ** ManagedInstanceInstanceStatus
-    , ManagedInstanceInstanceStatus (..)
-
-    -- ** HTTPHealthCheckProxyHeader
-    , HTTPHealthCheckProxyHeader (..)
-
-    -- ** VMEndpointNATMAppingsListWarningDataItem
-    , VMEndpointNATMAppingsListWarningDataItem
-    , vMEndpointNATMAppingsListWarningDataItem
-    , vmenatmalwdiValue
-    , vmenatmalwdiKey
-
-    -- ** InterconnectLocationContinent
-    , InterconnectLocationContinent (..)
-
-    -- ** URLMapsValidateResponse
-    , URLMapsValidateResponse
-    , urlMapsValidateResponse
-    , umvrResult
-
-    -- ** SSLCertificate
-    , SSLCertificate
-    , sslCertificate
-    , scPrivateKey
-    , scKind
-    , scSelfLink
-    , scName
-    , scCreationTimestamp
-    , scId
-    , scCertificate
-    , scDescription
-
-    -- ** VMEndpointNATMAppingsListWarningCode
-    , VMEndpointNATMAppingsListWarningCode (..)
-
-    -- ** RouterStatusBGPPeerStatus
-    , RouterStatusBGPPeerStatus
-    , routerStatusBGPPeerStatus
-    , rsbpsStatus
-    , rsbpsIPAddress
-    , rsbpsState
-    , rsbpsPeerIPAddress
-    , rsbpsUptime
-    , rsbpsNumLearnedRoutes
-    , rsbpsName
-    , rsbpsUptimeSeconds
-    , rsbpsAdvertisedRoutes
-    , rsbpsLinkedVPNTunnel
-
-    -- ** NodeTemplateStatus
-    , NodeTemplateStatus (..)
-
-    -- ** URLMapReference
-    , URLMapReference
-    , urlMapReference
-    , umrURLMap
-
-    -- ** AttachedDiskMode
-    , AttachedDiskMode (..)
-
-    -- ** TargetPoolsAddHealthCheckRequest
-    , TargetPoolsAddHealthCheckRequest
-    , targetPoolsAddHealthCheckRequest
-    , tpahcrHealthChecks
-
-    -- ** InstanceGroupManagerUpdatePolicyType
-    , InstanceGroupManagerUpdatePolicyType (..)
-
-    -- ** CommitmentsScopedList
-    , CommitmentsScopedList
-    , commitmentsScopedList
-    , cslWarning
-    , cslCommitments
-
-    -- ** TargetVPNGatewayListWarningCode
-    , TargetVPNGatewayListWarningCode (..)
-
-    -- ** DiskAggregatedListItems
-    , DiskAggregatedListItems
-    , diskAggregatedListItems
-    , daliAddtional
-
-    -- ** TargetVPNGatewayAggregatedListWarning
-    , TargetVPNGatewayAggregatedListWarning
-    , targetVPNGatewayAggregatedListWarning
-    , tvgalwData
-    , tvgalwCode
-    , tvgalwMessage
-
-    -- ** UsageExportLocation
-    , UsageExportLocation
-    , usageExportLocation
-    , uelReportNamePrefix
-    , uelBucketName
-
-    -- ** InstanceTemplateListWarningCode
-    , InstanceTemplateListWarningCode (..)
-
-    -- ** ZoneList
-    , ZoneList
-    , zoneList
-    , zlNextPageToken
-    , zlKind
-    , zlItems
-    , zlSelfLink
-    , zlWarning
-    , zlId
-
-    -- ** SSLCertificateListWarningDataItem
-    , SSLCertificateListWarningDataItem
-    , sslCertificateListWarningDataItem
-    , sclwdiValue
-    , sclwdiKey
-
-    -- ** TargetSSLProxyListWarningCode
-    , TargetSSLProxyListWarningCode (..)
-
-    -- ** DistributionPolicyZoneConfiguration
-    , DistributionPolicyZoneConfiguration
-    , distributionPolicyZoneConfiguration
-    , dpzcZone
-
-    -- ** RegionStatus
-    , RegionStatus (..)
-
-    -- ** TargetTCPProxiesSetProxyHeaderRequest
-    , TargetTCPProxiesSetProxyHeaderRequest
-    , targetTCPProxiesSetProxyHeaderRequest
-    , ttpsphrProxyHeader
-
-    -- ** InterconnectAttachmentBandwidth
-    , InterconnectAttachmentBandwidth (..)
-
-    -- ** RouterBGPPeer
-    , RouterBGPPeer
-    , routerBGPPeer
-    , rbpIPAddress
-    , rbpInterfaceName
-    , rbpPeerIPAddress
-    , rbpAdvertisedRoutePriority
-    , rbpPeerASN
-    , rbpAdvertiseMode
-    , rbpName
-    , rbpAdvertisedGroups
-    , rbpManagementType
-    , rbpAdvertisedIPRanges
-
-    -- ** SubnetworksExpandIPCIdRRangeRequest
-    , SubnetworksExpandIPCIdRRangeRequest
-    , subnetworksExpandIPCIdRRangeRequest
-    , seicirrrIPCIdRRange
-
-    -- ** ManagedInstance
-    , ManagedInstance
-    , managedInstance
-    , miLastAttempt
-    , miCurrentAction
-    , miVersion
-    , miId
-    , miInstanceStatus
-    , miInstance
-
-    -- ** InstanceGroupManagerAggregatedListItems
-    , InstanceGroupManagerAggregatedListItems
-    , instanceGroupManagerAggregatedListItems
-    , igmaliAddtional
-
-    -- ** InstanceGroupManagersDeleteInstancesRequest
-    , InstanceGroupManagersDeleteInstancesRequest
-    , instanceGroupManagersDeleteInstancesRequest
-    , igmdirInstances
-
-    -- ** Backend
-    , Backend
-    , backend
-    , bGroup
-    , bBalancingMode
-    , bMaxUtilization
-    , bMaxRate
-    , bMaxConnections
-    , bMaxConnectionsPerInstance
-    , bMaxRatePerEndpoint
-    , bMaxConnectionsPerEndpoint
-    , bMaxRatePerInstance
-    , bDescription
-    , bCapacityScaler
-
-    -- ** TargetVPNGatewaysScopedListWarning
-    , TargetVPNGatewaysScopedListWarning
-    , targetVPNGatewaysScopedListWarning
-    , tvgslwData
-    , tvgslwCode
-    , tvgslwMessage
-
-    -- ** TargetSSLProxiesSetProxyHeaderRequestProxyHeader
-    , TargetSSLProxiesSetProxyHeaderRequestProxyHeader (..)
-
-    -- ** AddressList
-    , AddressList
-    , addressList
-    , alNextPageToken
-    , alKind
-    , alItems
-    , alSelfLink
-    , alWarning
-    , alId
-
-    -- ** TargetVPNGatewayListWarningDataItem
-    , TargetVPNGatewayListWarningDataItem
-    , targetVPNGatewayListWarningDataItem
-    , tvglwdiValue
-    , tvglwdiKey
-
-    -- ** ForwardingRuleAggregatedListItems
-    , ForwardingRuleAggregatedListItems
-    , forwardingRuleAggregatedListItems
-    , fraliAddtional
-
-    -- ** HTTP2HealthCheckPortSpecification
-    , HTTP2HealthCheckPortSpecification (..)
-
-    -- ** InterconnectAttachmentAggregatedList
-    , InterconnectAttachmentAggregatedList
-    , interconnectAttachmentAggregatedList
-    , iaalNextPageToken
-    , iaalKind
-    , iaalItems
-    , iaalSelfLink
-    , iaalWarning
-    , iaalId
-
-    -- ** InstanceListReferrersWarningCode
-    , InstanceListReferrersWarningCode (..)
-
-    -- ** ConditionOp
-    , ConditionOp (..)
-
-    -- ** RouteListWarningCode
-    , RouteListWarningCode (..)
-
-    -- ** OperationAggregatedListItems
-    , OperationAggregatedListItems
-    , operationAggregatedListItems
-    , oaliAddtional
-
-    -- ** InstanceGroupManagerActionsSummary
-    , InstanceGroupManagerActionsSummary
-    , instanceGroupManagerActionsSummary
-    , igmasDeleting
-    , igmasRestarting
-    , igmasNone
-    , igmasCreating
-    , igmasVerifying
-    , igmasRefreshing
-    , igmasCreatingWithoutRetries
-    , igmasRecreating
-    , igmasAbandoning
-
-    -- ** XpnHostList
-    , XpnHostList
-    , xpnHostList
-    , xhlNextPageToken
-    , xhlKind
-    , xhlItems
-    , xhlSelfLink
-    , xhlWarning
-    , xhlId
-
-    -- ** VPNTunnelStatus
-    , VPNTunnelStatus (..)
-
-    -- ** InstanceTemplateListWarningDataItem
-    , InstanceTemplateListWarningDataItem
-    , instanceTemplateListWarningDataItem
-    , itlwdiValue
-    , itlwdiKey
-
-    -- ** SSLCertificateListWarningCode
-    , SSLCertificateListWarningCode (..)
-
-    -- ** ServiceAccount
-    , ServiceAccount
-    , serviceAccount
-    , saEmail
-    , saScopes
-
-    -- ** SnapshotListWarning
-    , SnapshotListWarning
-    , snapshotListWarning
-    , sData
-    , sCode
-    , sMessage
-
-    -- ** RegionInstanceGroupManagersAbandonInstancesRequest
-    , RegionInstanceGroupManagersAbandonInstancesRequest
-    , regionInstanceGroupManagersAbandonInstancesRequest
-    , rigmairInstances
-
-    -- ** NetworkList
-    , NetworkList
-    , networkList
-    , nlNextPageToken
-    , nlKind
-    , nlItems
-    , nlSelfLink
-    , nlWarning
-    , nlId
-
-    -- ** NetworkPeering
-    , NetworkPeering
-    , networkPeering
-    , netState
-    , netExchangeSubnetRoutes
-    , netStateDetails
-    , netNetwork
-    , netName
-    , netAutoCreateRoutes
-
-    -- ** TargetSSLProxyListWarningDataItem
-    , TargetSSLProxyListWarningDataItem
-    , targetSSLProxyListWarningDataItem
-    , tsplwdiValue
-    , tsplwdiKey
-
-    -- ** InstanceGroupsListInstancesRequest
-    , InstanceGroupsListInstancesRequest
-    , instanceGroupsListInstancesRequest
-    , iglirInstanceState
-
-    -- ** DiskInstantiationConfigInstantiateFrom
-    , DiskInstantiationConfigInstantiateFrom (..)
-
-    -- ** InstanceListReferrersWarningDataItem
-    , InstanceListReferrersWarningDataItem
-    , instanceListReferrersWarningDataItem
-    , ilrwdiValue
-    , ilrwdiKey
-
-    -- ** RouteListWarningDataItem
-    , RouteListWarningDataItem
-    , routeListWarningDataItem
-    , rValue
-    , rKey
-
-    -- ** InterconnectAttachmentsScopedList
-    , InterconnectAttachmentsScopedList
-    , interconnectAttachmentsScopedList
-    , iaslWarning
-    , iaslInterconnectAttachments
-
-    -- ** SecurityPolicyList
-    , SecurityPolicyList
-    , securityPolicyList
-    , splNextPageToken
-    , splKind
-    , splItems
-    , splWarning
-    , splId
-
-    -- ** BackendBalancingMode
-    , BackendBalancingMode (..)
-
-    -- ** RouterBGPAdvertisedGroupsItem
-    , RouterBGPAdvertisedGroupsItem (..)
-
-    -- ** CommitmentAggregatedList
-    , CommitmentAggregatedList
-    , commitmentAggregatedList
-    , calNextPageToken
-    , calKind
-    , calItems
-    , calSelfLink
-    , calWarning
-    , calId
-
-    -- ** RegionInstanceGroupList
-    , RegionInstanceGroupList
-    , regionInstanceGroupList
-    , riglNextPageToken
-    , riglKind
-    , riglItems
-    , riglSelfLink
-    , riglWarning
-    , riglId
-
-    -- ** VMEndpointNATMAppingsListWarning
-    , VMEndpointNATMAppingsListWarning
-    , vMEndpointNATMAppingsListWarning
-    , vmenatmalwData
-    , vmenatmalwCode
-    , vmenatmalwMessage
-
-    -- ** TargetPoolAggregatedListItems
-    , TargetPoolAggregatedListItems
-    , targetPoolAggregatedListItems
-    , tpaliAddtional
-
-    -- ** NodeGroupsAddNodesRequest
-    , NodeGroupsAddNodesRequest
-    , nodeGroupsAddNodesRequest
-    , nganrAdditionalNodeCount
-
-    -- ** NodeTypeAggregatedList
-    , NodeTypeAggregatedList
-    , nodeTypeAggregatedList
-    , ntalNextPageToken
-    , ntalKind
-    , ntalItems
-    , ntalSelfLink
-    , ntalWarning
-    , ntalId
-
-    -- ** TargetInstancesScopedList
-    , TargetInstancesScopedList
-    , targetInstancesScopedList
-    , tislWarning
-    , tislTargetInstances
-
-    -- ** NetworkEndpointGroupListWarningCode
-    , NetworkEndpointGroupListWarningCode (..)
-
-    -- ** NetworkRoutingConfigRoutingMode
-    , NetworkRoutingConfigRoutingMode (..)
-
-    -- ** SubnetworkListWarningCode
-    , SubnetworkListWarningCode (..)
-
-    -- ** SubnetworkListWarningDataItem
-    , SubnetworkListWarningDataItem
-    , subnetworkListWarningDataItem
-    , sValue
-    , sKey
-
-    -- ** NetworkEndpointGroupListWarningDataItem
-    , NetworkEndpointGroupListWarningDataItem
-    , networkEndpointGroupListWarningDataItem
-    , neglwdiValue
-    , neglwdiKey
-
-    -- ** ProjectsDisableXpnResourceRequest
-    , ProjectsDisableXpnResourceRequest
-    , projectsDisableXpnResourceRequest
-    , pdxrrXpnResource
-
-    -- ** CommitmentStatus
-    , CommitmentStatus (..)
-
-    -- ** AddressAggregatedListItems
-    , AddressAggregatedListItems
-    , addressAggregatedListItems
-    , aAddtional
-
-    -- ** InterconnectListWarningCode
-    , InterconnectListWarningCode (..)
-
-    -- ** AutoscalerList
-    , AutoscalerList
-    , autoscalerList
-    , autNextPageToken
-    , autKind
-    , autItems
-    , autSelfLink
-    , autWarning
-    , autId
-
-    -- ** NetworkEndpointGroupAggregatedListWarning
-    , NetworkEndpointGroupAggregatedListWarning
-    , networkEndpointGroupAggregatedListWarning
-    , negalwData
-    , negalwCode
-    , negalwMessage
-
-    -- ** SSLPolicyMinTLSVersion
-    , SSLPolicyMinTLSVersion (..)
-
-    -- ** InterconnectListWarningDataItem
-    , InterconnectListWarningDataItem
-    , interconnectListWarningDataItem
-    , iValue
-    , iKey
-
-    -- ** SubnetworkAggregatedListWarning
-    , SubnetworkAggregatedListWarning
-    , subnetworkAggregatedListWarning
-    , salwData
-    , salwCode
-    , salwMessage
-
-    -- ** InterconnectLocation
-    , InterconnectLocation
-    , interconnectLocation
-    , intFacilityProviderFacilityId
-    , intStatus
-    , intRegionInfos
-    , intKind
-    , intAddress
-    , intFacilityProvider
-    , intSelfLink
-    , intPeeringdbFacilityId
-    , intName
-    , intCity
-    , intAvailabilityZone
-    , intCreationTimestamp
-    , intId
-    , intContinent
-    , intDescription
-
-    -- ** TargetSSLProxiesSetProxyHeaderRequest
-    , TargetSSLProxiesSetProxyHeaderRequest
-    , targetSSLProxiesSetProxyHeaderRequest
-    , tspsphrProxyHeader
-
-    -- ** HTTPHealthCheckListWarningCode
-    , HTTPHealthCheckListWarningCode (..)
-
-    -- ** SSLPoliciesListWarningCode
-    , SSLPoliciesListWarningCode (..)
-
-    -- ** VPNTunnelAggregatedList
-    , VPNTunnelAggregatedList
-    , vpnTunnelAggregatedList
-    , vtalNextPageToken
-    , vtalKind
-    , vtalItems
-    , vtalSelfLink
-    , vtalWarning
-    , vtalId
-
-    -- ** SSLPoliciesListWarningDataItem
-    , SSLPoliciesListWarningDataItem
-    , sslPoliciesListWarningDataItem
-    , splwdiValue
-    , splwdiKey
-
-    -- ** InterconnectCircuitInfo
-    , InterconnectCircuitInfo
-    , interconnectCircuitInfo
-    , iciGoogleCircuitId
-    , iciCustomerDemarcId
-    , iciGoogleDemarcId
-
-    -- ** AttachedDisk
-    , AttachedDisk
-    , attachedDisk
-    , adDiskEncryptionKey
-    , adKind
-    , adMode
-    , adGuestOSFeatures
-    , adBoot
-    , adAutoDelete
-    , adInitializeParams
-    , adDeviceName
-    , adInterface
-    , adSource
-    , adLicenses
-    , adType
-    , adIndex
-
-    -- ** HTTPHealthCheckListWarningDataItem
-    , HTTPHealthCheckListWarningDataItem
-    , hTTPHealthCheckListWarningDataItem
-    , httphclwdiValue
-    , httphclwdiKey
-
-    -- ** InterconnectAttachmentOperationalStatus
-    , InterconnectAttachmentOperationalStatus (..)
-
-    -- ** DiskTypeList
-    , DiskTypeList
-    , diskTypeList
-    , dtlNextPageToken
-    , dtlKind
-    , dtlItems
-    , dtlSelfLink
-    , dtlWarning
-    , dtlId
-
-    -- ** TargetTCPProxyListWarningCode
-    , TargetTCPProxyListWarningCode (..)
-
-    -- ** RegionInstanceGroupsSetNamedPortsRequest
-    , RegionInstanceGroupsSetNamedPortsRequest
-    , regionInstanceGroupsSetNamedPortsRequest
-    , rigsnprFingerprint
-    , rigsnprNamedPorts
-
-    -- ** TestPermissionsRequest
-    , TestPermissionsRequest
-    , testPermissionsRequest
-    , tPermissions
-
-    -- ** TargetTCPProxyListWarningDataItem
-    , TargetTCPProxyListWarningDataItem
-    , targetTCPProxyListWarningDataItem
-    , ttplwdiValue
-    , ttplwdiKey
-
-    -- ** ProjectsGetXpnResources
-    , ProjectsGetXpnResources
-    , projectsGetXpnResources
-    , pgxrNextPageToken
-    , pgxrKind
-    , pgxrResources
-
-    -- ** NetworkEndpointWithHealthStatus
-    , NetworkEndpointWithHealthStatus
-    , networkEndpointWithHealthStatus
-    , newhsHealths
-    , newhsNetworkEndpoint
-
-    -- ** MachineTypeList
-    , MachineTypeList
-    , machineTypeList
-    , mtlNextPageToken
-    , mtlKind
-    , mtlItems
-    , mtlSelfLink
-    , mtlWarning
-    , mtlId
-
-    -- ** TargetHTTPProxyList
-    , TargetHTTPProxyList
-    , targetHTTPProxyList
-    , thttpplNextPageToken
-    , thttpplKind
-    , thttpplItems
-    , thttpplSelfLink
-    , thttpplWarning
-    , thttpplId
-
-    -- ** NodeGroupsListNodesWarning
-    , NodeGroupsListNodesWarning
-    , nodeGroupsListNodesWarning
-    , nglnwData
-    , nglnwCode
-    , nglnwMessage
-
-    -- ** NodeTemplateAggregatedList
-    , NodeTemplateAggregatedList
-    , nodeTemplateAggregatedList
-    , nodNextPageToken
-    , nodKind
-    , nodItems
-    , nodSelfLink
-    , nodWarning
-    , nodId
-
-    -- ** InterconnectLocationListWarning
-    , InterconnectLocationListWarning
-    , interconnectLocationListWarning
-    , illwData
-    , illwCode
-    , illwMessage
-
-    -- ** InstanceGroupsListInstancesWarning
-    , InstanceGroupsListInstancesWarning
-    , instanceGroupsListInstancesWarning
-    , igliwData
-    , igliwCode
-    , igliwMessage
-
-    -- ** RegionInstanceGroupManagerList
-    , RegionInstanceGroupManagerList
-    , regionInstanceGroupManagerList
-    , rigmlNextPageToken
-    , rigmlKind
-    , rigmlItems
-    , rigmlSelfLink
-    , rigmlWarning
-    , rigmlId
-
-    -- ** AuditLogConfigLogType
-    , AuditLogConfigLogType (..)
-
-    -- ** ForwardingRuleIPProtocol
-    , ForwardingRuleIPProtocol (..)
-
-    -- ** DiskTypesScopedList
-    , DiskTypesScopedList
-    , diskTypesScopedList
-    , dtslDiskTypes
-    , dtslWarning
-
-    -- ** NetworkEndpointGroupsListEndpointsRequestHealthStatus
-    , NetworkEndpointGroupsListEndpointsRequestHealthStatus (..)
-
-    -- ** LogConfigCloudAuditOptions
-    , LogConfigCloudAuditOptions
-    , logConfigCloudAuditOptions
-    , lccaoAuthorizationLoggingOptions
-    , lccaoLogName
-
-    -- ** ImageListWarningCode
-    , ImageListWarningCode (..)
-
-    -- ** AddressStatus
-    , AddressStatus (..)
-
-    -- ** ProjectsSetDefaultNetworkTierRequest
-    , ProjectsSetDefaultNetworkTierRequest
-    , projectsSetDefaultNetworkTierRequest
-    , psdntrNetworkTier
-
-    -- ** ImageListWarningDataItem
-    , ImageListWarningDataItem
-    , imageListWarningDataItem
-    , imaValue
-    , imaKey
-
-    -- ** AcceleratorTypeListWarningDataItem
-    , AcceleratorTypeListWarningDataItem
-    , acceleratorTypeListWarningDataItem
-    , atlwdiValue
-    , atlwdiKey
-
-    -- ** InterconnectOutageNotification
-    , InterconnectOutageNotification
-    , interconnectOutageNotification
-    , ionState
-    , ionAffectedCircuits
-    , ionStartTime
-    , ionIssueType
-    , ionName
-    , ionEndTime
-    , ionSource
-    , ionDescription
-
-    -- ** NodeTemplateList
-    , NodeTemplateList
-    , nodeTemplateList
-    , ntlNextPageToken
-    , ntlKind
-    , ntlItems
-    , ntlSelfLink
-    , ntlWarning
-    , ntlId
-
-    -- ** AcceleratorTypeListWarningCode
-    , AcceleratorTypeListWarningCode (..)
-
-    -- ** DiskTypeAggregatedList
-    , DiskTypeAggregatedList
-    , diskTypeAggregatedList
-    , dtalNextPageToken
-    , dtalKind
-    , dtalItems
-    , dtalSelfLink
-    , dtalWarning
-    , dtalId
-
-    -- ** HTTPHealthCheck
-    , HTTPHealthCheck
-    , hTTPHealthCheck
-    , hResponse
-    , hPortSpecification
-    , hRequestPath
-    , hHost
-    , hProxyHeader
-    , hPortName
-    , hPort
-
-    -- ** URLMapListWarningDataItem
-    , URLMapListWarningDataItem
-    , urlMapListWarningDataItem
-    , umlwdiValue
-    , umlwdiKey
-
-    -- ** AddressNetworkTier
-    , AddressNetworkTier (..)
-
-    -- ** RouterNATSubnetworkToNAT
-    , RouterNATSubnetworkToNAT
-    , routerNATSubnetworkToNAT
-    , rnatstnatSourceIPRangesToNAT
-    , rnatstnatName
-    , rnatstnatSecondaryIPRangeNames
-
-    -- ** BackendServiceGroupHealth
-    , BackendServiceGroupHealth
-    , backendServiceGroupHealth
-    , bsghKind
-    , bsghHealthStatus
-
-    -- ** URLMapListWarningCode
-    , URLMapListWarningCode (..)
-
-    -- ** InstanceGroupsListInstancesRequestInstanceState
-    , InstanceGroupsListInstancesRequestInstanceState (..)
-
-    -- ** AutoscalersScopedList
-    , AutoscalersScopedList
-    , autoscalersScopedList
-    , aAutoscalers
-    , aWarning
-
-    -- ** LogConfigDataAccessOptions
-    , LogConfigDataAccessOptions
-    , logConfigDataAccessOptions
-    , lcdaoLogMode
-
-    -- ** AutoscalerAggregatedList
-    , AutoscalerAggregatedList
-    , autoscalerAggregatedList
-    , aalNextPageToken
-    , aalKind
-    , aalItems
-    , aalSelfLink
-    , aalWarning
-    , aalId
-
-    -- ** RouterAggregatedListItems
-    , RouterAggregatedListItems
-    , routerAggregatedListItems
-    , raliAddtional
-
-    -- ** AcceleratorTypesScopedListWarning
-    , AcceleratorTypesScopedListWarning
-    , acceleratorTypesScopedListWarning
-    , atslwData
-    , atslwCode
-    , atslwMessage
-
-    -- ** TargetTCPProxy
-    , TargetTCPProxy
-    , targetTCPProxy
-    , ttpService
-    , ttpKind
-    , ttpSelfLink
-    , ttpName
-    , ttpCreationTimestamp
-    , ttpId
-    , ttpProxyHeader
-    , ttpDescription
-
-    -- ** SchedulingNodeAffinityOperator
-    , SchedulingNodeAffinityOperator (..)
-
-    -- ** BackendBucketListWarning
-    , BackendBucketListWarning
-    , backendBucketListWarning
-    , bblwData
-    , bblwCode
-    , bblwMessage
-
-    -- ** ProjectDefaultNetworkTier
-    , ProjectDefaultNetworkTier (..)
-
-    -- ** ImageLabels
-    , ImageLabels
-    , imageLabels
-    , iAddtional
-
-    -- ** NodeGroupListWarningCode
-    , NodeGroupListWarningCode (..)
-
-    -- ** DistributionPolicy
-    , DistributionPolicy
-    , distributionPolicy
-    , dpZones
-
-    -- ** RouterNATSourceSubnetworkIPRangesToNAT
-    , RouterNATSourceSubnetworkIPRangesToNAT (..)
-
-    -- ** NodeGroupListWarningDataItem
-    , NodeGroupListWarningDataItem
-    , nodeGroupListWarningDataItem
-    , nglwdiValue
-    , nglwdiKey
-
-    -- ** HTTPSHealthCheckProxyHeader
-    , HTTPSHealthCheckProxyHeader (..)
-
-    -- ** AutoscalingPolicy
-    , AutoscalingPolicy
-    , autoscalingPolicy
-    , apCustomMetricUtilizations
-    , apMaxNumReplicas
-    , apCPUUtilization
-    , apLoadBalancingUtilization
-    , apMinNumReplicas
-    , apCoolDownPeriodSec
-
-    -- ** NodeGroupAggregatedListWarning
-    , NodeGroupAggregatedListWarning
-    , nodeGroupAggregatedListWarning
-    , ngalwData
-    , ngalwCode
-    , ngalwMessage
-
-    -- ** RegionList
-    , RegionList
-    , regionList
-    , regNextPageToken
-    , regKind
-    , regItems
-    , regSelfLink
-    , regWarning
-    , regId
-
-    -- ** AttachedDiskInterface
-    , AttachedDiskInterface (..)
-
-    -- ** SchedulingNodeAffinity
-    , SchedulingNodeAffinity
-    , schedulingNodeAffinity
-    , snaOperator
-    , snaValues
-    , snaKey
-
-    -- ** HealthCheckType
-    , HealthCheckType (..)
-
-    -- ** RegionInstanceGroupsListInstancesWarningCode
-    , RegionInstanceGroupsListInstancesWarningCode (..)
-
-    -- ** ZoneStatus
-    , ZoneStatus (..)
-
-    -- ** VPNTunnelList
-    , VPNTunnelList
-    , vpnTunnelList
-    , vtlNextPageToken
-    , vtlKind
-    , vtlItems
-    , vtlSelfLink
-    , vtlWarning
-    , vtlId
-
-    -- ** AcceleratorTypeAggregatedListWarning
-    , AcceleratorTypeAggregatedListWarning
-    , acceleratorTypeAggregatedListWarning
-    , atalwData
-    , atalwCode
-    , atalwMessage
-
-    -- ** RegionInstanceGroupsListInstancesWarningDataItem
-    , RegionInstanceGroupsListInstancesWarningDataItem
-    , regionInstanceGroupsListInstancesWarningDataItem
-    , rigliwdiValue
-    , rigliwdiKey
-
-    -- ** Interconnect
-    , Interconnect
-    , interconnect
-    , iiState
-    , iiInterconnectType
-    , iiLocation
-    , iiPeerIPAddress
-    , iiKind
-    , iiExpectedOutages
-    , iiProvisionedLinkCount
-    , iiCustomerName
-    , iiRequestedLinkCount
-    , iiOperationalStatus
-    , iiSelfLink
-    , iiName
-    , iiGoogleReferenceId
-    , iiCreationTimestamp
-    , iiAdminEnabled
-    , iiId
-    , iiInterconnectAttachments
-    , iiLinkType
-    , iiGoogleIPAddress
-    , iiDescription
-    , iiNocContactEmail
-    , iiCircuitInfos
-
-    -- ** MachineTypeScratchDisksItem
-    , MachineTypeScratchDisksItem
-    , machineTypeScratchDisksItem
-    , mtsdiDiskGb
-
-    -- ** NetworkEndpointGroupsScopedListWarningDataItem
-    , NetworkEndpointGroupsScopedListWarningDataItem
-    , networkEndpointGroupsScopedListWarningDataItem
-    , negslwdiValue
-    , negslwdiKey
-
-    -- ** SubnetworksScopedListWarningDataItem
-    , SubnetworksScopedListWarningDataItem
-    , subnetworksScopedListWarningDataItem
-    , sslwdiValue
-    , sslwdiKey
-
-    -- ** NetworkEndpointGroupsScopedListWarningCode
-    , NetworkEndpointGroupsScopedListWarningCode (..)
-
-    -- ** MachineTypesScopedList
-    , MachineTypesScopedList
-    , machineTypesScopedList
-    , mtslMachineTypes
-    , mtslWarning
-
-    -- ** SubnetworksScopedListWarningCode
-    , SubnetworksScopedListWarningCode (..)
-
-    -- ** NetworkEndpointGroup
-    , NetworkEndpointGroup
-    , networkEndpointGroup
-    , negSize
-    , negKind
-    , negNetwork
-    , negZone
-    , negSelfLink
-    , negName
-    , negCreationTimestamp
-    , negDefaultPort
-    , negSubnetwork
-    , negNetworkEndpointType
-    , negId
-    , negDescription
-
-    -- ** NetworkEndpointGroupsListNetworkEndpointsWarningCode
-    , NetworkEndpointGroupsListNetworkEndpointsWarningCode (..)
-
-    -- ** Subnetwork
-    , Subnetwork
-    , subnetwork
-    , subKind
-    , subFingerprint
-    , subNetwork
-    , subGatewayAddress
-    , subSelfLink
-    , subEnableFlowLogs
-    , subName
-    , subSecondaryIPRanges
-    , subCreationTimestamp
-    , subIPCIdRRange
-    , subId
-    , subRegion
-    , subDescription
-    , subPrivateIPGoogleAccess
-
-    -- ** HealthCheckListWarning
-    , HealthCheckListWarning
-    , healthCheckListWarning
-    , hclwData
-    , hclwCode
-    , hclwMessage
-
-    -- ** MachineTypeAggregatedList
-    , MachineTypeAggregatedList
-    , machineTypeAggregatedList
-    , mtalNextPageToken
-    , mtalKind
-    , mtalItems
-    , mtalSelfLink
-    , mtalWarning
-    , mtalId
-
-    -- ** NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , networkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , neglnewdiValue
-    , neglnewdiKey
-
-    -- ** NodeGroupsScopedListWarning
-    , NodeGroupsScopedListWarning
-    , nodeGroupsScopedListWarning
-    , ngslwData
-    , ngslwCode
-    , ngslwMessage
-
-    -- ** NodeTypeList
-    , NodeTypeList
-    , nodeTypeList
-    , ntltNextPageToken
-    , ntltKind
-    , ntltItems
-    , ntltSelfLink
-    , ntltWarning
-    , ntltId
-
-    -- ** QuotaMetric
-    , QuotaMetric (..)
-
-    -- ** DiskType
-    , DiskType
-    , diskType
-    , dtKind
-    , dtZone
-    , dtSelfLink
-    , dtName
-    , dtCreationTimestamp
-    , dtId
-    , dtRegion
-    , dtValidDiskSize
-    , dtDescription
-    , dtDefaultDiskSizeGb
-    , dtDeprecated
-
-    -- ** NodeTemplateAggregatedListWarning
-    , NodeTemplateAggregatedListWarning
-    , nodeTemplateAggregatedListWarning
-    , ntalwData
-    , ntalwCode
-    , ntalwMessage
-
-    -- ** AutoscalerAggregatedListWarningDataItem
-    , AutoscalerAggregatedListWarningDataItem
-    , autoscalerAggregatedListWarningDataItem
-    , aalwdiValue
-    , aalwdiKey
-
-    -- ** ZoneSetLabelsRequestLabels
-    , ZoneSetLabelsRequestLabels
-    , zoneSetLabelsRequestLabels
-    , zslrlAddtional
-
-    -- ** InterconnectState
-    , InterconnectState (..)
-
-    -- ** NodeTypeListWarningDataItem
-    , NodeTypeListWarningDataItem
-    , nodeTypeListWarningDataItem
-    , ntlwdiValue
-    , ntlwdiKey
-
-    -- ** URLMapValidationResult
-    , URLMapValidationResult
-    , urlMapValidationResult
-    , umvrLoadErrors
-    , umvrLoadSucceeded
-    , umvrTestPassed
-    , umvrTestFailures
-
-    -- ** Metadata
-    , Metadata
-    , metadata
-    , mKind
-    , mFingerprint
-    , mItems
-
-    -- ** RouteWarningsItem
-    , RouteWarningsItem
-    , routeWarningsItem
-    , rwiData
-    , rwiCode
-    , rwiMessage
-
-    -- ** NodeGroupsListNodes
-    , NodeGroupsListNodes
-    , nodeGroupsListNodes
-    , nglnNextPageToken
-    , nglnKind
-    , nglnItems
-    , nglnSelfLink
-    , nglnWarning
-    , nglnId
-
-    -- ** InterconnectLocationList
-    , InterconnectLocationList
-    , interconnectLocationList
-    , illNextPageToken
-    , illKind
-    , illItems
-    , illSelfLink
-    , illWarning
-    , illId
-
-    -- ** SSLPoliciesListAvailableFeaturesResponse
-    , SSLPoliciesListAvailableFeaturesResponse
-    , sslPoliciesListAvailableFeaturesResponse
-    , splafrFeatures
-
-    -- ** InstancePropertiesLabels
-    , InstancePropertiesLabels
-    , instancePropertiesLabels
-    , iplAddtional
-
-    -- ** AutoscalerAggregatedListWarningCode
-    , AutoscalerAggregatedListWarningCode (..)
-
-    -- ** AddressIPVersion
-    , AddressIPVersion (..)
-
-    -- ** MachineTypesScopedListWarningDataItem
-    , MachineTypesScopedListWarningDataItem
-    , machineTypesScopedListWarningDataItem
-    , mtslwdiValue
-    , mtslwdiKey
-
-    -- ** InstanceStatus
-    , InstanceStatus (..)
-
-    -- ** NodeTypeListWarningCode
-    , NodeTypeListWarningCode (..)
-
-    -- ** DiskTypeListWarning
-    , DiskTypeListWarning
-    , diskTypeListWarning
-    , dtlwData
-    , dtlwCode
-    , dtlwMessage
-
-    -- ** NodeTemplateListWarningDataItem
-    , NodeTemplateListWarningDataItem
-    , nodeTemplateListWarningDataItem
-    , nodValue
-    , nodKey
-
-    -- ** RegionListWarningDataItem
-    , RegionListWarningDataItem
-    , regionListWarningDataItem
-    , regValue
-    , regKey
-
-    -- ** MachineTypesScopedListWarningCode
-    , MachineTypesScopedListWarningCode (..)
-
-    -- ** InstancesSetMachineResourcesRequest
-    , InstancesSetMachineResourcesRequest
-    , instancesSetMachineResourcesRequest
-    , ismrrGuestAccelerators
-
-    -- ** InstancesSetServiceAccountRequest
-    , InstancesSetServiceAccountRequest
-    , instancesSetServiceAccountRequest
-    , issarEmail
-    , issarScopes
-
-    -- ** SecurityPolicyReference
-    , SecurityPolicyReference
-    , securityPolicyReference
-    , sprSecurityPolicy
-
-    -- ** DiskTypesScopedListWarningDataItem
-    , DiskTypesScopedListWarningDataItem
-    , diskTypesScopedListWarningDataItem
-    , dtslwdiValue
-    , dtslwdiKey
-
-    -- ** NodeTemplateListWarningCode
-    , NodeTemplateListWarningCode (..)
-
-    -- ** VMEndpointNATMAppingsInterfaceNATMAppings
-    , VMEndpointNATMAppingsInterfaceNATMAppings
-    , vMEndpointNATMAppingsInterfaceNATMAppings
-    , vmenatmainatmaSourceAliasIPRange
-    , vmenatmainatmaSourceVirtualIP
-    , vmenatmainatmaNATIPPortRanges
-    , vmenatmainatmaNumTotalNATPorts
-
-    -- ** VPNTunnelAggregatedListWarning
-    , VPNTunnelAggregatedListWarning
-    , vpnTunnelAggregatedListWarning
-    , vtalwData
-    , vtalwCode
-    , vtalwMessage
-
-    -- ** TargetHTTPProxy
-    , TargetHTTPProxy
-    , targetHTTPProxy
-    , thttppURLMap
-    , thttppKind
-    , thttppSelfLink
-    , thttppName
-    , thttppCreationTimestamp
-    , thttppId
-    , thttppDescription
-
-    -- ** ShieldedInstanceConfig
-    , ShieldedInstanceConfig
-    , shieldedInstanceConfig
-    , sicEnableVtpm
-    , sicEnableIntegrityMonitoring
-    , sicEnableSecureBoot
-
-    -- ** MachineType
-    , MachineType
-    , machineType
-    , mtIsSharedCPU
-    , mtKind
-    , mtImageSpaceGb
-    , mtZone
-    , mtSelfLink
-    , mtName
-    , mtCreationTimestamp
-    , mtScratchDisks
-    , mtId
-    , mtGuestCPUs
-    , mtMaximumPersistentDisksSizeGb
-    , mtMaximumPersistentDisks
-    , mtMemoryMb
-    , mtDescription
-    , mtDeprecated
-
-    -- ** AcceleratorConfig
-    , AcceleratorConfig
-    , acceleratorConfig
-    , acAcceleratorCount
-    , acAcceleratorType
-
-    -- ** AutoscalerListWarning
-    , AutoscalerListWarning
-    , autoscalerListWarning
-    , alwData
-    , alwCode
-    , alwMessage
-
-    -- ** RegionListWarningCode
-    , RegionListWarningCode (..)
-
-    -- ** RouterInterfaceManagementType
-    , RouterInterfaceManagementType (..)
-
-    -- ** DiskTypesScopedListWarningCode
-    , DiskTypesScopedListWarningCode (..)
-
-    -- ** MachineTypeAggregatedListWarningDataItem
-    , MachineTypeAggregatedListWarningDataItem
-    , machineTypeAggregatedListWarningDataItem
-    , mtalwdiValue
-    , mtalwdiKey
-
-    -- ** OperationError
-    , OperationError
-    , operationError
-    , oeErrors
-
-    -- ** NodeTypeAggregatedListWarning
-    , NodeTypeAggregatedListWarning
-    , nodeTypeAggregatedListWarning
-    , ntalwtData
-    , ntalwtCode
-    , ntalwtMessage
-
-    -- ** TargetInstancesScopedListWarning
-    , TargetInstancesScopedListWarning
-    , targetInstancesScopedListWarning
-    , tislwData
-    , tislwCode
-    , tislwMessage
-
-    -- ** NetworkEndpointGroupAggregatedList
-    , NetworkEndpointGroupAggregatedList
-    , networkEndpointGroupAggregatedList
-    , negalNextPageToken
-    , negalKind
-    , negalItems
-    , negalSelfLink
-    , negalWarning
-    , negalId
-
-    -- ** SubnetworkAggregatedList
-    , SubnetworkAggregatedList
-    , subnetworkAggregatedList
-    , salNextPageToken
-    , salKind
-    , salItems
-    , salSelfLink
-    , salWarning
-    , salId
-
-    -- ** MachineTypeAggregatedListWarningCode
-    , MachineTypeAggregatedListWarningCode (..)
-
-    -- ** VPNTunnelListWarningDataItem
-    , VPNTunnelListWarningDataItem
-    , vpnTunnelListWarningDataItem
-    , vtlwdiValue
-    , vtlwdiKey
-
-    -- ** InterconnectDiagnosticsLinkOpticalPower
-    , InterconnectDiagnosticsLinkOpticalPower
-    , interconnectDiagnosticsLinkOpticalPower
-    , idlopState
-    , idlopValue
-
-    -- ** DisksResizeRequest
-    , DisksResizeRequest
-    , disksResizeRequest
-    , drrSizeGb
-
-    -- ** AutoscalersScopedListWarningDataItem
-    , AutoscalersScopedListWarningDataItem
-    , autoscalersScopedListWarningDataItem
-    , aValue
-    , aKey
-
-    -- ** LogConfigDataAccessOptionsLogMode
-    , LogConfigDataAccessOptionsLogMode (..)
-
-    -- ** InterconnectOutageNotificationState
-    , InterconnectOutageNotificationState (..)
-
-    -- ** ZoneSetPolicyRequest
-    , ZoneSetPolicyRequest
-    , zoneSetPolicyRequest
-    , zsprEtag
-    , zsprBindings
-    , zsprPolicy
-
-    -- ** VPNTunnelListWarningCode
-    , VPNTunnelListWarningCode (..)
-
-    -- ** AutoscalersScopedListWarningCode
-    , AutoscalersScopedListWarningCode (..)
-
-    -- ** HTTPSHealthCheckPortSpecification
-    , HTTPSHealthCheckPortSpecification (..)
-
-    -- ** DiskTypeAggregatedListWarningDataItem
-    , DiskTypeAggregatedListWarningDataItem
-    , diskTypeAggregatedListWarningDataItem
-    , dtalwdiValue
-    , dtalwdiKey
-
-    -- ** ShieldedInstanceIdentityEntry
-    , ShieldedInstanceIdentityEntry
-    , shieldedInstanceIdentityEntry
-    , siieEkCert
-    , siieEkPub
-
-    -- ** ForwardingRuleLoadBalancingScheme
-    , ForwardingRuleLoadBalancingScheme (..)
-
-    -- ** RegionInstanceGroupManagerListWarning
-    , RegionInstanceGroupManagerListWarning
-    , regionInstanceGroupManagerListWarning
-    , rigmlwData
-    , rigmlwCode
-    , rigmlwMessage
-
-    -- ** RegionInstanceGroupManagersSetTemplateRequest
-    , RegionInstanceGroupManagersSetTemplateRequest
-    , regionInstanceGroupManagersSetTemplateRequest
-    , rigmstrInstanceTemplate
-
-    -- ** InstanceGroupsListInstances
-    , InstanceGroupsListInstances
-    , instanceGroupsListInstances
-    , igliNextPageToken
-    , igliKind
-    , igliItems
-    , igliSelfLink
-    , igliWarning
-    , igliId
-
-    -- ** DiskTypeAggregatedListWarningCode
-    , DiskTypeAggregatedListWarningCode (..)
-
-    -- ** Autoscaler
-    , Autoscaler
-    , autoscaler
-    , aaStatus
-    , aaKind
-    , aaZone
-    , aaStatusDetails
-    , aaSelfLink
-    , aaName
-    , aaCreationTimestamp
-    , aaAutoscalingPolicy
-    , aaId
-    , aaRegion
-    , aaDescription
-    , aaTarget
-
-    -- ** MachineTypeListWarning
-    , MachineTypeListWarning
-    , machineTypeListWarning
-    , mtlwData
-    , mtlwCode
-    , mtlwMessage
-
-    -- ** TargetHTTPProxyListWarning
-    , TargetHTTPProxyListWarning
-    , targetHTTPProxyListWarning
-    , thttpplwData
-    , thttpplwCode
-    , thttpplwMessage
-
-    -- ** DiskAggregatedListWarning
-    , DiskAggregatedListWarning
-    , diskAggregatedListWarning
-    , dalwData
-    , dalwCode
-    , dalwMessage
-
-    -- ** TargetPoolAggregatedListWarning
-    , TargetPoolAggregatedListWarning
-    , targetPoolAggregatedListWarning
-    , tpalwData
-    , tpalwCode
-    , tpalwMessage
-
-    -- ** UsableSubnetworksAggregatedListWarning
-    , UsableSubnetworksAggregatedListWarning
-    , usableSubnetworksAggregatedListWarning
-    , usalwData
-    , usalwCode
-    , usalwMessage
-
-    -- ** DisksScopedListWarning
-    , DisksScopedListWarning
-    , disksScopedListWarning
-    , dslwData
-    , dslwCode
-    , dslwMessage
-
-    -- ** NodeTemplatesScopedListWarningDataItem
-    , NodeTemplatesScopedListWarningDataItem
-    , nodeTemplatesScopedListWarningDataItem
-    , ntslwdiValue
-    , ntslwdiKey
-
-    -- ** TargetVPNGatewayAggregatedListItems
-    , TargetVPNGatewayAggregatedListItems
-    , targetVPNGatewayAggregatedListItems
-    , tvgaliAddtional
-
-    -- ** DiskLabels
-    , DiskLabels
-    , diskLabels
-    , dlAddtional
-
-    -- ** InstanceGroupManagerListWarningDataItem
-    , InstanceGroupManagerListWarningDataItem
-    , instanceGroupManagerListWarningDataItem
-    , igmlwdiValue
-    , igmlwdiKey
-
-    -- ** InterconnectInterconnectType
-    , InterconnectInterconnectType (..)
-
-    -- ** ForwardingRuleAggregatedListWarning
-    , ForwardingRuleAggregatedListWarning
-    , forwardingRuleAggregatedListWarning
-    , fralwData
-    , fralwCode
-    , fralwMessage
-
-    -- ** InstanceGroupManagerListWarningCode
-    , InstanceGroupManagerListWarningCode (..)
-
-    -- ** SSLPolicyWarningsItem
-    , SSLPolicyWarningsItem
-    , sslPolicyWarningsItem
-    , spwiData
-    , spwiCode
-    , spwiMessage
-
-    -- ** RouterStatusBGPPeerStatusStatus
-    , RouterStatusBGPPeerStatusStatus (..)
-
-    -- ** GlobalSetPolicyRequest
-    , GlobalSetPolicyRequest
-    , globalSetPolicyRequest
-    , gsprEtag
-    , gsprBindings
-    , gsprPolicy
-
-    -- ** RegionAutoscalerListWarningDataItem
-    , RegionAutoscalerListWarningDataItem
-    , regionAutoscalerListWarningDataItem
-    , ralwdiaValue
-    , ralwdiaKey
-
-    -- ** DiskListWarningCode
-    , DiskListWarningCode (..)
-
-    -- ** GlobalSetLabelsRequestLabels
-    , GlobalSetLabelsRequestLabels
-    , globalSetLabelsRequestLabels
-    , gslrlAddtional
-
-    -- ** TargetPoolsScopedListWarning
-    , TargetPoolsScopedListWarning
-    , targetPoolsScopedListWarning
-    , tpslwData
-    , tpslwCode
-    , tpslwMessage
-
-    -- ** HealthStatus
-    , HealthStatus
-    , healthStatus
-    , hsIPAddress
-    , hsHealthState
-    , hsPort
-    , hsInstance
-
-    -- ** TargetTCPProxyList
-    , TargetTCPProxyList
-    , targetTCPProxyList
-    , ttplNextPageToken
-    , ttplKind
-    , ttplItems
-    , ttplSelfLink
-    , ttplWarning
-    , ttplId
-
-    -- ** Region
-    , Region
-    , region
-    , regeStatus
-    , regeZones
-    , regeKind
-    , regeSelfLink
-    , regeName
-    , regeCreationTimestamp
-    , regeQuotas
-    , regeId
-    , regeDescription
-    , regeDeprecated
-
-    -- ** RegionAutoscalerListWarningCode
-    , RegionAutoscalerListWarningCode (..)
-
-    -- ** OperationListWarningDataItem
-    , OperationListWarningDataItem
-    , operationListWarningDataItem
-    , olwdiValue
-    , olwdiKey
-
-    -- ** GuestOSFeature
-    , GuestOSFeature
-    , guestOSFeature
-    , gofType
-
-    -- ** VPNTunnel
-    , VPNTunnel
-    , vpnTunnel
-    , vtDetailedStatus
-    , vtStatus
-    , vtLocalTrafficSelector
-    , vtKind
-    , vtPeerIP
-    , vtRouter
-    , vtTargetVPNGateway
-    , vtRemoteTrafficSelector
-    , vtSelfLink
-    , vtSharedSecret
-    , vtName
-    , vtCreationTimestamp
-    , vtSharedSecretHash
-    , vtId
-    , vtIkeVersion
-    , vtRegion
-    , vtDescription
-
-    -- ** InstanceGroupManagerAggregatedListWarning
-    , InstanceGroupManagerAggregatedListWarning
-    , instanceGroupManagerAggregatedListWarning
-    , igmalwData
-    , igmalwCode
-    , igmalwMessage
-
-    -- ** DiskListWarningDataItem
-    , DiskListWarningDataItem
-    , diskListWarningDataItem
-    , dlwdiValue
-    , dlwdiKey
-
-    -- ** CommitmentPlan
-    , CommitmentPlan (..)
-
-    -- ** OperationListWarningCode
-    , OperationListWarningCode (..)
-
-    -- ** SourceInstanceParams
-    , SourceInstanceParams
-    , sourceInstanceParams
-    , sipDiskConfigs
-
-    -- ** AliasIPRange
-    , AliasIPRange
-    , aliasIPRange
-    , airIPCIdRRange
-    , airSubnetworkRangeName
-
-    -- ** ForwardingRuleListWarningCode
-    , ForwardingRuleListWarningCode (..)
-
-    -- ** NodeTypesScopedListWarningDataItem
-    , NodeTypesScopedListWarningDataItem
-    , nodeTypesScopedListWarningDataItem
-    , ntslwditValue
-    , ntslwditKey
-
-    -- ** VPNTunnelsScopedListWarningCode
-    , VPNTunnelsScopedListWarningCode (..)
-
-    -- ** TargetInstanceListWarning
-    , TargetInstanceListWarning
-    , targetInstanceListWarning
-    , tilwData
-    , tilwCode
-    , tilwMessage
-
-    -- ** NodeTypesScopedListWarningCode
-    , NodeTypesScopedListWarningCode (..)
-
-    -- ** NodeType
-    , NodeType
-    , nodeType
-    , ntKind
-    , ntZone
-    , ntCPUPlatform
-    , ntLocalSsdGb
-    , ntSelfLink
-    , ntName
-    , ntCreationTimestamp
-    , ntId
-    , ntGuestCPUs
-    , ntMemoryMb
-    , ntDescription
-    , ntDeprecated
-
-    -- ** AuthorizationLoggingOptions
-    , AuthorizationLoggingOptions
-    , authorizationLoggingOptions
-    , aloPermissionType
-
-    -- ** Policy
-    , Policy
-    , policy
-    , pAuditConfigs
-    , pEtag
-    , pRules
-    , pVersion
-    , pBindings
-    , pIAMOwned
-
-    -- ** OperationAggregatedListWarning
-    , OperationAggregatedListWarning
-    , operationAggregatedListWarning
-    , oalwData
-    , oalwCode
-    , oalwMessage
-
-    -- ** TargetInstanceAggregatedListWarningDataItem
-    , TargetInstanceAggregatedListWarningDataItem
-    , targetInstanceAggregatedListWarningDataItem
-    , tialwdiValue
-    , tialwdiKey
-
-    -- ** OperationsScopedListWarning
-    , OperationsScopedListWarning
-    , operationsScopedListWarning
-    , oslwData
-    , oslwCode
-    , oslwMessage
-
-    -- ** RegionDiskTypeListWarningDataItem
-    , RegionDiskTypeListWarningDataItem
-    , regionDiskTypeListWarningDataItem
-    , rdtlwdiValue
-    , rdtlwdiKey
-
-    -- ** ForwardingRuleListWarningDataItem
-    , ForwardingRuleListWarningDataItem
-    , forwardingRuleListWarningDataItem
-    , frlwdiValue
-    , frlwdiKey
-
-    -- ** Scheduling
-    , Scheduling
-    , scheduling
-    , sAutomaticRestart
-    , sNodeAffinities
-    , sOnHostMaintenance
-    , sPreemptible
-
-    -- ** TargetInstanceAggregatedListWarningCode
-    , TargetInstanceAggregatedListWarningCode (..)
-
-    -- ** RegionDiskTypeListWarningCode
-    , RegionDiskTypeListWarningCode (..)
-
-    -- ** VPNTunnelsScopedListWarningDataItem
-    , VPNTunnelsScopedListWarningDataItem
-    , vpnTunnelsScopedListWarningDataItem
-    , vtslwdiValue
-    , vtslwdiKey
-
-    -- ** InterconnectList
-    , InterconnectList
-    , interconnectList
-    , intnNextPageToken
-    , intnKind
-    , intnItems
-    , intnSelfLink
-    , intnWarning
-    , intnId
-
-    -- ** TargetPoolListWarningDataItem
-    , TargetPoolListWarningDataItem
-    , targetPoolListWarningDataItem
-    , tplwdiValue
-    , tplwdiKey
-
-    -- ** NodeTemplate
-    , NodeTemplate
-    , nodeTemplate
-    , nttStatus
-    , nttKind
-    , nttSelfLink
-    , nttName
-    , nttStatusMessage
-    , nttCreationTimestamp
-    , nttNodeAffinityLabels
-    , nttId
-    , nttNodeTypeFlexibility
-    , nttNodeType
-    , nttRegion
-    , nttDescription
-
-    -- ** NetworkEndpointGroupList
-    , NetworkEndpointGroupList
-    , networkEndpointGroupList
-    , neglNextPageToken
-    , neglKind
-    , neglItems
-    , neglSelfLink
-    , neglWarning
-    , neglId
-
-    -- ** SubnetworkList
-    , SubnetworkList
-    , subnetworkList
-    , slNextPageToken
-    , slKind
-    , slItems
-    , slSelfLink
-    , slWarning
-    , slId
-
-    -- ** AddressAddressType
-    , AddressAddressType (..)
-
-    -- ** TargetPoolListWarningCode
-    , TargetPoolListWarningCode (..)
-
-    -- ** ForwardingRulesScopedListWarning
-    , ForwardingRulesScopedListWarning
-    , forwardingRulesScopedListWarning
-    , frslwData
-    , frslwCode
-    , frslwMessage
-
-    -- ** HTTPHealthCheckList
-    , HTTPHealthCheckList
-    , hTTPHealthCheckList
-    , httphclNextPageToken
-    , httphclKind
-    , httphclItems
-    , httphclSelfLink
-    , httphclWarning
-    , httphclId
-
-    -- ** InstanceGroupManagersScopedListWarning
-    , InstanceGroupManagersScopedListWarning
-    , instanceGroupManagersScopedListWarning
-    , igmslwData
-    , igmslwCode
-    , igmslwMessage
-
-    -- ** SSLPoliciesList
-    , SSLPoliciesList
-    , sslPoliciesList
-    , sslplNextPageToken
-    , sslplKind
-    , sslplItems
-    , sslplSelfLink
-    , sslplWarning
-    , sslplId
-
-    -- ** NodeTemplatesScopedListWarningCode
-    , NodeTemplatesScopedListWarningCode (..)
-
-    -- ** URLMapsValidateRequest
-    , URLMapsValidateRequest
-    , urlMapsValidateRequest
-    , umvrResource
-
-    -- ** InstanceGroupManagersSetTargetPoolsRequest
-    , InstanceGroupManagersSetTargetPoolsRequest
-    , instanceGroupManagersSetTargetPoolsRequest
-    , igmstprFingerprint
-    , igmstprTargetPools
-
-    -- ** NetworkListWarningCode
-    , NetworkListWarningCode (..)
-
-    -- ** Commitment
-    , Commitment
-    , commitment
-    , cStatus
-    , cKind
-    , cPlan
-    , cResources
-    , cEndTimestamp
-    , cSelfLink
-    , cName
-    , cStatusMessage
-    , cCreationTimestamp
-    , cId
-    , cRegion
-    , cStartTimestamp
-    , cDescription
-
-    -- ** HTTPSHealthCheckList
-    , HTTPSHealthCheckList
-    , httpsHealthCheckList
-    , hhclNextPageToken
-    , hhclKind
-    , hhclItems
-    , hhclSelfLink
-    , hhclWarning
-    , hhclId
-
-    -- ** AddressListWarningDataItem
-    , AddressListWarningDataItem
-    , addressListWarningDataItem
-    , addValue
-    , addKey
-
-    -- ** OperationErrorErrorsItem
-    , OperationErrorErrorsItem
-    , operationErrorErrorsItem
-    , oeeiLocation
-    , oeeiCode
-    , oeeiMessage
-
-    -- ** CommitmentListWarning
-    , CommitmentListWarning
-    , commitmentListWarning
-    , clwData
-    , clwCode
-    , clwMessage
-
-    -- ** License
-    , License
-    , license
-    , lChargesUseFee
-    , lKind
-    , lResourceRequirements
-    , lTransferable
-    , lSelfLink
-    , lName
-    , lCreationTimestamp
-    , lId
-    , lDescription
-    , lLicenseCode
-
-    -- ** PathRule
-    , PathRule
-    , pathRule
-    , prService
-    , prPaths
-
-    -- ** LicenseCodeLicenseAlias
-    , LicenseCodeLicenseAlias
-    , licenseCodeLicenseAlias
-    , lclaSelfLink
-    , lclaDescription
-
-    -- ** XpnHostListWarningCode
-    , XpnHostListWarningCode (..)
-
-    -- ** InterconnectAttachmentsScopedListWarningDataItem
-    , InterconnectAttachmentsScopedListWarningDataItem
-    , interconnectAttachmentsScopedListWarningDataItem
-    , iaslwdiValue
-    , iaslwdiKey
-
-    -- ** SecurityPolicyListWarningDataItem
-    , SecurityPolicyListWarningDataItem
-    , securityPolicyListWarningDataItem
-    , secValue
-    , secKey
-
-    -- ** InterconnectAttachmentAggregatedListWarningCode
-    , InterconnectAttachmentAggregatedListWarningCode (..)
-
-    -- ** AuditLogConfig
-    , AuditLogConfig
-    , auditLogConfig
-    , alcLogType
-    , alcExemptedMembers
-
-    -- ** CommitmentsScopedListWarningDataItem
-    , CommitmentsScopedListWarningDataItem
-    , commitmentsScopedListWarningDataItem
-    , cslwdiValue
-    , cslwdiKey
-
-    -- ** InterconnectAttachment
-    , InterconnectAttachment
-    , interconnectAttachment
-    , iaState
-    , iaPartnerASN
-    , iaPairingKey
-    , iaKind
-    , iaCustomerRouterIPAddress
-    , iaPartnerMetadata
-    , iaRouter
-    , iaOperationalStatus
-    , iaSelfLink
-    , iaName
-    , iaBandwidth
-    , iaGoogleReferenceId
-    , iaCreationTimestamp
-    , iaEdgeAvailabilityDomain
-    , iaInterconnect
-    , iaAdminEnabled
-    , iaVLANTag8021q
-    , iaCloudRouterIPAddress
-    , iaId
-    , iaCandidateSubnets
-    , iaRegion
-    , iaType
-    , iaDescription
-    , iaPrivateInterconnectInfo
-
-    -- ** InstanceList
-    , InstanceList
-    , instanceList
-    , insNextPageToken
-    , insKind
-    , insItems
-    , insSelfLink
-    , insWarning
-    , insId
-
-    -- ** RegionSetLabelsRequestLabels
-    , RegionSetLabelsRequestLabels
-    , regionSetLabelsRequestLabels
-    , rslrlAddtional
-
-    -- ** NetworkListWarningDataItem
-    , NetworkListWarningDataItem
-    , networkListWarningDataItem
-    , nlwdiValue
-    , nlwdiKey
-
-    -- ** AddressListWarningCode
-    , AddressListWarningCode (..)
-
-    -- ** NetworkPeeringState
-    , NetworkPeeringState (..)
-
-    -- ** CacheKeyPolicy
-    , CacheKeyPolicy
-    , cacheKeyPolicy
-    , ckpQueryStringWhiteList
-    , ckpIncludeHost
-    , ckpIncludeProtocol
-    , ckpQueryStringBlackList
-    , ckpIncludeQueryString
-
-    -- ** ZoneListWarningCode
-    , ZoneListWarningCode (..)
-
-    -- ** CommitmentAggregatedListWarningDataItem
-    , CommitmentAggregatedListWarningDataItem
-    , commitmentAggregatedListWarningDataItem
-    , calwdiValue
-    , calwdiKey
-
-    -- ** RegionInstanceGroupListWarningDataItem
-    , RegionInstanceGroupListWarningDataItem
-    , regionInstanceGroupListWarningDataItem
-    , riglwdiValue
-    , riglwdiKey
-
-    -- ** SubnetworkAggregatedListItems
-    , SubnetworkAggregatedListItems
-    , subnetworkAggregatedListItems
-    , saliAddtional
-
-    -- ** NetworkEndpointGroupAggregatedListItems
-    , NetworkEndpointGroupAggregatedListItems
-    , networkEndpointGroupAggregatedListItems
-    , negaliAddtional
-
-    -- ** InterconnectAttachmentAggregatedListWarningDataItem
-    , InterconnectAttachmentAggregatedListWarningDataItem
-    , interconnectAttachmentAggregatedListWarningDataItem
-    , iaalwdiValue
-    , iaalwdiKey
-
-    -- ** AuthorizationLoggingOptionsPermissionType
-    , AuthorizationLoggingOptionsPermissionType (..)
-
-    -- ** InterconnectAttachmentListWarning
-    , InterconnectAttachmentListWarning
-    , interconnectAttachmentListWarning
-    , intData
-    , intCode
-    , intMessage
-
-    -- ** InterconnectOutageNotificationIssueType
-    , InterconnectOutageNotificationIssueType (..)
-
-    -- ** CommitmentsScopedListWarningCode
-    , CommitmentsScopedListWarningCode (..)
-
-    -- ** Condition
-    , Condition
-    , condition
-    , cOp
-    , cIAM
-    , cValues
-    , cSys
-    , cSvc
-
-    -- ** AddressAggregatedListWarning
-    , AddressAggregatedListWarning
-    , addressAggregatedListWarning
-    , addData
-    , addCode
-    , addMessage
-
-    -- ** ManagedInstanceLastAttempt
-    , ManagedInstanceLastAttempt
-    , managedInstanceLastAttempt
-    , milaErrors
-
-    -- ** LicensesListResponseWarning
-    , LicensesListResponseWarning
-    , licensesListResponseWarning
-    , llrwData
-    , llrwCode
-    , llrwMessage
-
-    -- ** AutoscalerStatusDetails
-    , AutoscalerStatusDetails
-    , autoscalerStatusDetails
-    , asdType
-    , asdMessage
-
-    -- ** HTTP2HealthCheckProxyHeader
-    , HTTP2HealthCheckProxyHeader (..)
-
-    -- ** BackendServiceList
-    , BackendServiceList
-    , backendServiceList
-    , bslNextPageToken
-    , bslKind
-    , bslItems
-    , bslSelfLink
-    , bslWarning
-    , bslId
-
-    -- ** XpnHostListWarningDataItem
-    , XpnHostListWarningDataItem
-    , xpnHostListWarningDataItem
-    , xhlwdiValue
-    , xhlwdiKey
-
-    -- ** InterconnectAttachmentsScopedListWarningCode
-    , InterconnectAttachmentsScopedListWarningCode (..)
-
-    -- ** SecurityPolicyListWarningCode
-    , SecurityPolicyListWarningCode (..)
-
-    -- ** ZoneListWarningDataItem
-    , ZoneListWarningDataItem
-    , zoneListWarningDataItem
-    , zlwdiValue
-    , zlwdiKey
-
-    -- ** RegionSetPolicyRequest
-    , RegionSetPolicyRequest
-    , regionSetPolicyRequest
-    , rsprEtag
-    , rsprBindings
-    , rsprPolicy
-
-    -- ** CommitmentAggregatedListWarningCode
-    , CommitmentAggregatedListWarningCode (..)
-
-    -- ** RegionInstanceGroupListWarningCode
-    , RegionInstanceGroupListWarningCode (..)
-
-    -- ** InstanceGroupsScopedListWarning
-    , InstanceGroupsScopedListWarning
-    , instanceGroupsScopedListWarning
-    , igslwData
-    , igslwCode
-    , igslwMessage
-
-    -- ** InterconnectLocationStatus
-    , InterconnectLocationStatus (..)
-
-    -- ** AutoscalingPolicyCPUUtilization
-    , AutoscalingPolicyCPUUtilization
-    , autoscalingPolicyCPUUtilization
-    , apcuUtilizationTarget
-
-    -- ** InstanceGroupsScopedListWarningCode
-    , InstanceGroupsScopedListWarningCode (..)
-
-    -- ** InterconnectOperationalStatus
-    , InterconnectOperationalStatus (..)
-
-    -- ** InstanceGroupsScopedListWarningDataItem
-    , InstanceGroupsScopedListWarningDataItem
-    , instanceGroupsScopedListWarningDataItem
-    , igslwdiValue
-    , igslwdiKey
-
-    -- ** SecurityPolicyRuleMatcherConfig
-    , SecurityPolicyRuleMatcherConfig
-    , securityPolicyRuleMatcherConfig
-    , sprmcSrcIPRanges
-
-    -- ** LicensesListResponseWarningDataItem
-    , LicensesListResponseWarningDataItem
-    , licensesListResponseWarningDataItem
-    , llrwdiValue
-    , llrwdiKey
-
-    -- ** LicensesListResponseWarningCode
-    , LicensesListResponseWarningCode (..)
-
-    -- ** XpnHostListWarning
-    , XpnHostListWarning
-    , xpnHostListWarning
-    , xhlwData
-    , xhlwCode
-    , xhlwMessage
-
-    -- ** ResourceGroupReference
-    , ResourceGroupReference
-    , resourceGroupReference
-    , rgrGroup
-
-    -- ** VMEndpointNATMAppingsList
-    , VMEndpointNATMAppingsList
-    , vMEndpointNATMAppingsList
-    , vmenatmalNextPageToken
-    , vmenatmalKind
-    , vmenatmalResult
-    , vmenatmalSelfLink
-    , vmenatmalWarning
-    , vmenatmalId
-
-    -- ** Firewall
-    , Firewall
-    , firewall
-    , fSourceTags
-    , fSourceServiceAccounts
-    , fPriority
-    , fDirection
-    , fKind
-    , fDisabled
-    , fTargetTags
-    , fNetwork
-    , fSourceRanges
-    , fSelfLink
-    , fName
-    , fDenied
-    , fCreationTimestamp
-    , fId
-    , fAllowed
-    , fDestinationRanges
-    , fLogConfig
-    , fTargetServiceAccounts
-    , fDescription
-
-    -- ** InterconnectAttachmentsScopedListWarning
-    , InterconnectAttachmentsScopedListWarning
-    , interconnectAttachmentsScopedListWarning
-    , iaslwData
-    , iaslwCode
-    , iaslwMessage
-
-    -- ** HostRule
-    , HostRule
-    , hostRule
-    , hrHosts
-    , hrDescription
-    , hrPathMatcher
-
-    -- ** SecurityPolicyListWarning
-    , SecurityPolicyListWarning
-    , securityPolicyListWarning
-    , secData
-    , secCode
-    , secMessage
-
-    -- ** Quota
-    , Quota
-    , quota
-    , qOwner
-    , qMetric
-    , qLimit
-    , qUsage
-
-    -- ** InstanceGroup
-    , InstanceGroup
-    , instanceGroup
-    , ig1Size
-    , ig1Kind
-    , ig1Fingerprint
-    , ig1Network
-    , ig1Zone
-    , ig1SelfLink
-    , ig1Name
-    , ig1CreationTimestamp
-    , ig1Subnetwork
-    , ig1Id
-    , ig1Region
-    , ig1Description
-    , ig1NamedPorts
-
-    -- ** AddressListWarning
-    , AddressListWarning
-    , addressListWarning
-    , alwlData
-    , alwlCode
-    , alwlMessage
-
-    -- ** RegionSetLabelsRequest
-    , RegionSetLabelsRequest
-    , regionSetLabelsRequest
-    , rslrLabels
-    , rslrLabelFingerprint
-
-    -- ** RouterInterface
-    , RouterInterface
-    , routerInterface
-    , riLinkedInterconnectAttachment
-    , riName
-    , riManagementType
-    , riIPRange
-    , riLinkedVPNTunnel
-
-    -- ** InstanceWithNamedPortsStatus
-    , InstanceWithNamedPortsStatus (..)
-
-    -- ** NetworkListWarning
-    , NetworkListWarning
-    , networkListWarning
-    , nlwData
-    , nlwCode
-    , nlwMessage
-
-    -- ** TCPHealthCheckProxyHeader
-    , TCPHealthCheckProxyHeader (..)
-
-    -- ** SnapshotList
-    , SnapshotList
-    , snapshotList
-    , snaNextPageToken
-    , snaKind
-    , snaItems
-    , snaSelfLink
-    , snaWarning
-    , snaId
-
-    -- ** InterconnectDiagnostics
-    , InterconnectDiagnostics
-    , interconnectDiagnostics
-    , idMACAddress
-    , idArpCaches
-    , idLinks
-
-    -- ** CommitmentListWarningCode
-    , CommitmentListWarningCode (..)
-
-    -- ** HTTPHealthCheckPortSpecification
-    , HTTPHealthCheckPortSpecification (..)
-
-    -- ** LicenseCode
-    , LicenseCode
-    , licenseCode
-    , lcState
-    , lcKind
-    , lcTransferable
-    , lcSelfLink
-    , lcName
-    , lcCreationTimestamp
-    , lcId
-    , lcLicenseAlias
-    , lcDescription
-
-    -- ** TestFailure
-    , TestFailure
-    , testFailure
-    , tfPath
-    , tfExpectedService
-    , tfHost
-    , tfActualService
-
-    -- ** CommitmentListWarningDataItem
-    , CommitmentListWarningDataItem
-    , commitmentListWarningDataItem
-    , clwdiValue
-    , clwdiKey
-
-    -- ** ConditionIAM
-    , ConditionIAM (..)
-
-    -- ** ManagedInstanceVersion
-    , ManagedInstanceVersion
-    , managedInstanceVersion
-    , mivInstanceTemplate
-    , mivName
-
-    -- ** CommitmentsScopedListWarning
-    , CommitmentsScopedListWarning
-    , commitmentsScopedListWarning
-    , cslwData
-    , cslwCode
-    , cslwMessage
-
-    -- ** SerialPortOutput
-    , SerialPortOutput
-    , serialPortOutput
-    , spoNext
-    , spoContents
-    , spoKind
-    , spoStart
-    , spoSelfLink
-
-    -- ** TargetVPNGatewayAggregatedList
-    , TargetVPNGatewayAggregatedList
-    , targetVPNGatewayAggregatedList
-    , tvgalNextPageToken
-    , tvgalKind
-    , tvgalItems
-    , tvgalSelfLink
-    , tvgalWarning
-    , tvgalId
-
-    -- ** InterconnectAttachmentAggregatedListWarning
-    , InterconnectAttachmentAggregatedListWarning
-    , interconnectAttachmentAggregatedListWarning
-    , iaalwData
-    , iaalwCode
-    , iaalwMessage
-
-    -- ** MetadataItemsItem
-    , MetadataItemsItem
-    , metadataItemsItem
-    , miiValue
-    , miiKey
-
-    -- ** SignedURLKey
-    , SignedURLKey
-    , signedURLKey
-    , sukKeyValue
-    , sukKeyName
-
-    -- ** TargetHTTPSProxy
-    , TargetHTTPSProxy
-    , targetHTTPSProxy
-    , thpSSLPolicy
-    , thpURLMap
-    , thpSSLCertificates
-    , thpQuicOverride
-    , thpKind
-    , thpSelfLink
-    , thpName
-    , thpCreationTimestamp
-    , thpId
-    , thpDescription
-
-    -- ** ConnectionDraining
-    , ConnectionDraining
-    , connectionDraining
-    , cdDrainingTimeoutSec
-
-    -- ** InterconnectAttachmentListWarningDataItem
-    , InterconnectAttachmentListWarningDataItem
-    , interconnectAttachmentListWarningDataItem
-    , ialwdiValue
-    , ialwdiKey
-
-    -- ** AddressAggregatedListWarningCode
-    , AddressAggregatedListWarningCode (..)
-
-    -- ** CacheInvalidationRule
-    , CacheInvalidationRule
-    , cacheInvalidationRule
-    , cirPath
-    , cirHost
-
-    -- ** AddressAggregatedListWarningDataItem
-    , AddressAggregatedListWarningDataItem
-    , addressAggregatedListWarningDataItem
-    , aalwdiaValue
-    , aalwdiaKey
-
-    -- ** InterconnectAttachmentListWarningCode
-    , InterconnectAttachmentListWarningCode (..)
-
-    -- ** TargetVPNGatewaysScopedList
-    , TargetVPNGatewaysScopedList
-    , targetVPNGatewaysScopedList
-    , tvgslTargetVPNGateways
-    , tvgslWarning
-
-    -- ** CommitmentAggregatedListWarning
-    , CommitmentAggregatedListWarning
-    , commitmentAggregatedListWarning
-    , calwData
-    , calwCode
-    , calwMessage
-
-    -- ** RegionInstanceGroupListWarning
-    , RegionInstanceGroupListWarning
-    , regionInstanceGroupListWarning
-    , riglwData
-    , riglwCode
-    , riglwMessage
-
-    -- ** AccessConfig
-    , AccessConfig
-    , accessConfig
-    , acNetworkTier
-    , acSetPublicPtr
-    , acKind
-    , acName
-    , acNATIP
-    , acPublicPtrDomainName
-    , acType
-
-    -- ** LogConfig
-    , LogConfig
-    , logConfig
-    , lcCloudAudit
-    , lcDataAccess
-    , lcCounter
-
-    -- ** ZoneListWarning
-    , ZoneListWarning
-    , zoneListWarning
-    , zlwData
-    , zlwCode
-    , zlwMessage
-
-    -- ** ManagedInstanceLastAttemptErrorsErrorsItem
-    , ManagedInstanceLastAttemptErrorsErrorsItem
-    , managedInstanceLastAttemptErrorsErrorsItem
-    , milaeeiLocation
-    , milaeeiCode
-    , milaeeiMessage
-
-    -- ** InstancesScopedListWarningCode
-    , InstancesScopedListWarningCode (..)
-
-    -- ** InstancesScopedListWarningDataItem
-    , InstancesScopedListWarningDataItem
-    , instancesScopedListWarningDataItem
-    , islwdiValue
-    , islwdiKey
-
-    -- ** SnapshotLabels
-    , SnapshotLabels
-    , snapshotLabels
-    , slAddtional
-
-    -- ** BackendServicesScopedListWarningDataItem
-    , BackendServicesScopedListWarningDataItem
-    , backendServicesScopedListWarningDataItem
-    , bsslwdiValue
-    , bsslwdiKey
-
-    -- ** NodeTemplateAggregatedListItems
-    , NodeTemplateAggregatedListItems
-    , nodeTemplateAggregatedListItems
-    , ntaliAddtional
-
-    -- ** BackendService
-    , BackendService
-    , backendService
-    , bsSessionAffinity
-    , bsBackends
-    , bsAffinityCookieTtlSec
-    , bsIap
-    , bsLoadBalancingScheme
-    , bsKind
-    , bsEnableCDN
-    , bsFingerprint
-    , bsProtocol
-    , bsCustomRequestHeaders
-    , bsSecurityPolicy
-    , bsCdnPolicy
-    , bsSelfLink
-    , bsName
-    , bsCreationTimestamp
-    , bsId
-    , bsRegion
-    , bsConnectionDraining
-    , bsTimeoutSec
-    , bsDescription
-    , bsPortName
-    , bsHealthChecks
-    , bsPort
-
-    -- ** InstanceListWarning
-    , InstanceListWarning
-    , instanceListWarning
-    , insData
-    , insCode
-    , insMessage
-
-    -- ** InstanceMoveRequest
-    , InstanceMoveRequest
-    , instanceMoveRequest
-    , imrTargetInstance
-    , imrDestinationZone
-
-    -- ** XpnResourceIdType
-    , XpnResourceIdType (..)
-
-    -- ** InterconnectDiagnosticsARPEntry
-    , InterconnectDiagnosticsARPEntry
-    , interconnectDiagnosticsARPEntry
-    , idarpeIPAddress
-    , idarpeMACAddress
-
-    -- ** ShieldedInstanceIdentity
-    , ShieldedInstanceIdentity
-    , shieldedInstanceIdentity
-    , siiSigningKey
-    , siiKind
-    , siiEncryptionKey
-
-    -- ** BackendServicesScopedListWarningCode
-    , BackendServicesScopedListWarningCode (..)
-
-    -- ** CommitmentList
-    , CommitmentList
-    , commitmentList
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clSelfLink
-    , clWarning
-    , clId
-
-    -- ** TargetPoolSessionAffinity
-    , TargetPoolSessionAffinity (..)
-
-    -- ** InstancesSetLabelsRequestLabels
-    , InstancesSetLabelsRequestLabels
-    , instancesSetLabelsRequestLabels
-    , islrlAddtional
-
-    -- ** InstanceGroupsScopedList
-    , InstanceGroupsScopedList
-    , instanceGroupsScopedList
-    , igslWarning
-    , igslInstanceGroups
-
-    -- ** InstancesStartWithEncryptionKeyRequest
-    , InstancesStartWithEncryptionKeyRequest
-    , instancesStartWithEncryptionKeyRequest
-    , iswekrDisks
-
-    -- ** HTTPSHealthCheck
-    , HTTPSHealthCheck
-    , httpsHealthCheck
-    , hhcResponse
-    , hhcPortSpecification
-    , hhcRequestPath
-    , hhcHost
-    , hhcProxyHeader
-    , hhcPortName
-    , hhcPort
-
-    -- ** AutoscalerStatus
-    , AutoscalerStatus (..)
-
-    -- ** ImageRawDiskContainerType
-    , ImageRawDiskContainerType (..)
-
-    -- ** InstanceAggregatedListWarningCode
-    , InstanceAggregatedListWarningCode (..)
-
-    -- ** VPNTunnelAggregatedListItems
-    , VPNTunnelAggregatedListItems
-    , vpnTunnelAggregatedListItems
-    , vtaliAddtional
-
-    -- ** ResourceCommitmentType
-    , ResourceCommitmentType (..)
-
-    -- ** InstanceAggregatedListWarningDataItem
-    , InstanceAggregatedListWarningDataItem
-    , instanceAggregatedListWarningDataItem
-    , insValue
-    , insKey
-
-    -- ** Tags
-    , Tags
-    , tags
-    , tFingerprint
-    , tItems
-
-    -- ** AddressAggregatedList
-    , AddressAggregatedList
-    , addressAggregatedList
-    , addNextPageToken
-    , addKind
-    , addItems
-    , addSelfLink
-    , addWarning
-    , addId
-
-    -- ** InterconnectAttachmentList
-    , InterconnectAttachmentList
-    , interconnectAttachmentList
-    , ialaNextPageToken
-    , ialaKind
-    , ialaItems
-    , ialaSelfLink
-    , ialaWarning
-    , ialaId
-
-    -- ** OperationWarningsItem
-    , OperationWarningsItem
-    , operationWarningsItem
-    , owiData
-    , owiCode
-    , owiMessage
-
-    -- ** Binding
-    , Binding
-    , binding
-    , bMembers
-    , bRole
-    , bCondition
-
-    -- ** ForwardingRuleNetworkTier
-    , ForwardingRuleNetworkTier (..)
-
-    -- ** URLMapTest
-    , URLMapTest
-    , urlMapTest
-    , umtPath
-    , umtService
-    , umtHost
-    , umtDescription
-
-    -- ** HTTPSHealthCheckListWarning
-    , HTTPSHealthCheckListWarning
-    , httpsHealthCheckListWarning
-    , hhclwData
-    , hhclwCode
-    , hhclwMessage
-
-    -- ** NodeTypeAggregatedListItems
-    , NodeTypeAggregatedListItems
-    , nodeTypeAggregatedListItems
-    , nAddtional
-
-    -- ** RoutersPreviewResponse
-    , RoutersPreviewResponse
-    , routersPreviewResponse
-    , rprResource
-
-    -- ** LicensesListResponse
-    , LicensesListResponse
-    , licensesListResponse
-    , llrNextPageToken
-    , llrItems
-    , llrSelfLink
-    , llrWarning
-    , llrId
-
-    -- ** BackendServiceAggregatedListWarningDataItem
-    , BackendServiceAggregatedListWarningDataItem
-    , backendServiceAggregatedListWarningDataItem
-    , bsalwdiValue
-    , bsalwdiKey
-
-    -- ** Instance
-    , Instance
-    , instance'
-    , i1Status
-    , i1ServiceAccounts
-    , i1DeletionProtection
-    , i1Hostname
-    , i1NetworkInterfaces
-    , i1ShieldedInstanceIntegrityPolicy
-    , i1Kind
-    , i1Zone
-    , i1CPUPlatform
-    , i1SelfLink
-    , i1GuestAccelerators
-    , i1Name
-    , i1StatusMessage
-    , i1CreationTimestamp
-    , i1MachineType
-    , i1Metadata
-    , i1ShieldedInstanceConfig
-    , i1Id
-    , i1Labels
-    , i1StartRestricted
-    , i1Scheduling
-    , i1MinCPUPlatform
-    , i1Disks
-    , i1CanIPForward
-    , i1LabelFingerprint
-    , i1Description
-    , i1Tags
-
-    -- ** PathMatcher
-    , PathMatcher
-    , pathMatcher
-    , pmDefaultService
-    , pmName
-    , pmPathRules
-    , pmDescription
-
-    -- ** InstanceGroupManagerUpdatePolicyMinimalAction
-    , InstanceGroupManagerUpdatePolicyMinimalAction (..)
-
-    -- ** BackendServiceListWarning
-    , BackendServiceListWarning
-    , backendServiceListWarning
-    , bslwData
-    , bslwCode
-    , bslwMessage
-
-    -- ** BackendServiceAggregatedListWarningCode
-    , BackendServiceAggregatedListWarningCode (..)
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-import           Network.Google.Resource.Compute.AcceleratorTypes.AggregatedList
-import           Network.Google.Resource.Compute.AcceleratorTypes.Get
-import           Network.Google.Resource.Compute.AcceleratorTypes.List
-import           Network.Google.Resource.Compute.Addresses.AggregatedList
-import           Network.Google.Resource.Compute.Addresses.Delete
-import           Network.Google.Resource.Compute.Addresses.Get
-import           Network.Google.Resource.Compute.Addresses.Insert
-import           Network.Google.Resource.Compute.Addresses.List
-import           Network.Google.Resource.Compute.Autoscalers.AggregatedList
-import           Network.Google.Resource.Compute.Autoscalers.Delete
-import           Network.Google.Resource.Compute.Autoscalers.Get
-import           Network.Google.Resource.Compute.Autoscalers.Insert
-import           Network.Google.Resource.Compute.Autoscalers.List
-import           Network.Google.Resource.Compute.Autoscalers.Patch
-import           Network.Google.Resource.Compute.Autoscalers.Update
-import           Network.Google.Resource.Compute.BackendBuckets.AddSignedURLKey
-import           Network.Google.Resource.Compute.BackendBuckets.Delete
-import           Network.Google.Resource.Compute.BackendBuckets.DeleteSignedURLKey
-import           Network.Google.Resource.Compute.BackendBuckets.Get
-import           Network.Google.Resource.Compute.BackendBuckets.Insert
-import           Network.Google.Resource.Compute.BackendBuckets.List
-import           Network.Google.Resource.Compute.BackendBuckets.Patch
-import           Network.Google.Resource.Compute.BackendBuckets.Update
-import           Network.Google.Resource.Compute.BackendServices.AddSignedURLKey
-import           Network.Google.Resource.Compute.BackendServices.AggregatedList
-import           Network.Google.Resource.Compute.BackendServices.Delete
-import           Network.Google.Resource.Compute.BackendServices.DeleteSignedURLKey
-import           Network.Google.Resource.Compute.BackendServices.Get
-import           Network.Google.Resource.Compute.BackendServices.GetHealth
-import           Network.Google.Resource.Compute.BackendServices.Insert
-import           Network.Google.Resource.Compute.BackendServices.List
-import           Network.Google.Resource.Compute.BackendServices.Patch
-import           Network.Google.Resource.Compute.BackendServices.SetSecurityPolicy
-import           Network.Google.Resource.Compute.BackendServices.Update
-import           Network.Google.Resource.Compute.Disks.AggregatedList
-import           Network.Google.Resource.Compute.Disks.CreateSnapshot
-import           Network.Google.Resource.Compute.Disks.Delete
-import           Network.Google.Resource.Compute.Disks.Get
-import           Network.Google.Resource.Compute.Disks.GetIAMPolicy
-import           Network.Google.Resource.Compute.Disks.Insert
-import           Network.Google.Resource.Compute.Disks.List
-import           Network.Google.Resource.Compute.Disks.Resize
-import           Network.Google.Resource.Compute.Disks.SetIAMPolicy
-import           Network.Google.Resource.Compute.Disks.SetLabels
-import           Network.Google.Resource.Compute.Disks.TestIAMPermissions
-import           Network.Google.Resource.Compute.DiskTypes.AggregatedList
-import           Network.Google.Resource.Compute.DiskTypes.Get
-import           Network.Google.Resource.Compute.DiskTypes.List
-import           Network.Google.Resource.Compute.Firewalls.Delete
-import           Network.Google.Resource.Compute.Firewalls.Get
-import           Network.Google.Resource.Compute.Firewalls.Insert
-import           Network.Google.Resource.Compute.Firewalls.List
-import           Network.Google.Resource.Compute.Firewalls.Patch
-import           Network.Google.Resource.Compute.Firewalls.Update
-import           Network.Google.Resource.Compute.ForwardingRules.AggregatedList
-import           Network.Google.Resource.Compute.ForwardingRules.Delete
-import           Network.Google.Resource.Compute.ForwardingRules.Get
-import           Network.Google.Resource.Compute.ForwardingRules.Insert
-import           Network.Google.Resource.Compute.ForwardingRules.List
-import           Network.Google.Resource.Compute.ForwardingRules.SetTarget
-import           Network.Google.Resource.Compute.GlobalAddresses.Delete
-import           Network.Google.Resource.Compute.GlobalAddresses.Get
-import           Network.Google.Resource.Compute.GlobalAddresses.Insert
-import           Network.Google.Resource.Compute.GlobalAddresses.List
-import           Network.Google.Resource.Compute.GlobalForwardingRules.Delete
-import           Network.Google.Resource.Compute.GlobalForwardingRules.Get
-import           Network.Google.Resource.Compute.GlobalForwardingRules.Insert
-import           Network.Google.Resource.Compute.GlobalForwardingRules.List
-import           Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget
-import           Network.Google.Resource.Compute.GlobalOperations.AggregatedList
-import           Network.Google.Resource.Compute.GlobalOperations.Delete
-import           Network.Google.Resource.Compute.GlobalOperations.Get
-import           Network.Google.Resource.Compute.GlobalOperations.List
-import           Network.Google.Resource.Compute.HealthChecks.Delete
-import           Network.Google.Resource.Compute.HealthChecks.Get
-import           Network.Google.Resource.Compute.HealthChecks.Insert
-import           Network.Google.Resource.Compute.HealthChecks.List
-import           Network.Google.Resource.Compute.HealthChecks.Patch
-import           Network.Google.Resource.Compute.HealthChecks.Update
-import           Network.Google.Resource.Compute.HTTPHealthChecks.Delete
-import           Network.Google.Resource.Compute.HTTPHealthChecks.Get
-import           Network.Google.Resource.Compute.HTTPHealthChecks.Insert
-import           Network.Google.Resource.Compute.HTTPHealthChecks.List
-import           Network.Google.Resource.Compute.HTTPHealthChecks.Patch
-import           Network.Google.Resource.Compute.HTTPHealthChecks.Update
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.Delete
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.Get
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.Insert
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.List
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.Patch
-import           Network.Google.Resource.Compute.HTTPSHealthChecks.Update
-import           Network.Google.Resource.Compute.Images.Delete
-import           Network.Google.Resource.Compute.Images.Deprecate
-import           Network.Google.Resource.Compute.Images.Get
-import           Network.Google.Resource.Compute.Images.GetFromFamily
-import           Network.Google.Resource.Compute.Images.GetIAMPolicy
-import           Network.Google.Resource.Compute.Images.Insert
-import           Network.Google.Resource.Compute.Images.List
-import           Network.Google.Resource.Compute.Images.SetIAMPolicy
-import           Network.Google.Resource.Compute.Images.SetLabels
-import           Network.Google.Resource.Compute.Images.TestIAMPermissions
-import           Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances
-import           Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList
-import           Network.Google.Resource.Compute.InstanceGroupManagers.Delete
-import           Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances
-import           Network.Google.Resource.Compute.InstanceGroupManagers.Get
-import           Network.Google.Resource.Compute.InstanceGroupManagers.Insert
-import           Network.Google.Resource.Compute.InstanceGroupManagers.List
-import           Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances
-import           Network.Google.Resource.Compute.InstanceGroupManagers.Patch
-import           Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances
-import           Network.Google.Resource.Compute.InstanceGroupManagers.Resize
-import           Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate
-import           Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools
-import           Network.Google.Resource.Compute.InstanceGroups.AddInstances
-import           Network.Google.Resource.Compute.InstanceGroups.AggregatedList
-import           Network.Google.Resource.Compute.InstanceGroups.Delete
-import           Network.Google.Resource.Compute.InstanceGroups.Get
-import           Network.Google.Resource.Compute.InstanceGroups.Insert
-import           Network.Google.Resource.Compute.InstanceGroups.List
-import           Network.Google.Resource.Compute.InstanceGroups.ListInstances
-import           Network.Google.Resource.Compute.InstanceGroups.RemoveInstances
-import           Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts
-import           Network.Google.Resource.Compute.Instances.AddAccessConfig
-import           Network.Google.Resource.Compute.Instances.AggregatedList
-import           Network.Google.Resource.Compute.Instances.AttachDisk
-import           Network.Google.Resource.Compute.Instances.Delete
-import           Network.Google.Resource.Compute.Instances.DeleteAccessConfig
-import           Network.Google.Resource.Compute.Instances.DetachDisk
-import           Network.Google.Resource.Compute.Instances.Get
-import           Network.Google.Resource.Compute.Instances.GetIAMPolicy
-import           Network.Google.Resource.Compute.Instances.GetSerialPortOutput
-import           Network.Google.Resource.Compute.Instances.GetShieldedInstanceIdentity
-import           Network.Google.Resource.Compute.Instances.Insert
-import           Network.Google.Resource.Compute.Instances.List
-import           Network.Google.Resource.Compute.Instances.ListReferrers
-import           Network.Google.Resource.Compute.Instances.Reset
-import           Network.Google.Resource.Compute.Instances.SetDeletionProtection
-import           Network.Google.Resource.Compute.Instances.SetDiskAutoDelete
-import           Network.Google.Resource.Compute.Instances.SetIAMPolicy
-import           Network.Google.Resource.Compute.Instances.SetLabels
-import           Network.Google.Resource.Compute.Instances.SetMachineResources
-import           Network.Google.Resource.Compute.Instances.SetMachineType
-import           Network.Google.Resource.Compute.Instances.SetMetadata
-import           Network.Google.Resource.Compute.Instances.SetMinCPUPlatform
-import           Network.Google.Resource.Compute.Instances.SetScheduling
-import           Network.Google.Resource.Compute.Instances.SetServiceAccount
-import           Network.Google.Resource.Compute.Instances.SetShieldedInstanceIntegrityPolicy
-import           Network.Google.Resource.Compute.Instances.SetTags
-import           Network.Google.Resource.Compute.Instances.SimulateMaintenanceEvent
-import           Network.Google.Resource.Compute.Instances.Start
-import           Network.Google.Resource.Compute.Instances.StartWithEncryptionKey
-import           Network.Google.Resource.Compute.Instances.Stop
-import           Network.Google.Resource.Compute.Instances.TestIAMPermissions
-import           Network.Google.Resource.Compute.Instances.UpdateAccessConfig
-import           Network.Google.Resource.Compute.Instances.UpdateNetworkInterface
-import           Network.Google.Resource.Compute.Instances.UpdateShieldedInstanceConfig
-import           Network.Google.Resource.Compute.InstanceTemplates.Delete
-import           Network.Google.Resource.Compute.InstanceTemplates.Get
-import           Network.Google.Resource.Compute.InstanceTemplates.GetIAMPolicy
-import           Network.Google.Resource.Compute.InstanceTemplates.Insert
-import           Network.Google.Resource.Compute.InstanceTemplates.List
-import           Network.Google.Resource.Compute.InstanceTemplates.SetIAMPolicy
-import           Network.Google.Resource.Compute.InstanceTemplates.TestIAMPermissions
-import           Network.Google.Resource.Compute.InterconnectAttachments.AggregatedList
-import           Network.Google.Resource.Compute.InterconnectAttachments.Delete
-import           Network.Google.Resource.Compute.InterconnectAttachments.Get
-import           Network.Google.Resource.Compute.InterconnectAttachments.Insert
-import           Network.Google.Resource.Compute.InterconnectAttachments.List
-import           Network.Google.Resource.Compute.InterconnectAttachments.Patch
-import           Network.Google.Resource.Compute.InterconnectLocations.Get
-import           Network.Google.Resource.Compute.InterconnectLocations.List
-import           Network.Google.Resource.Compute.Interconnects.Delete
-import           Network.Google.Resource.Compute.Interconnects.Get
-import           Network.Google.Resource.Compute.Interconnects.GetDiagnostics
-import           Network.Google.Resource.Compute.Interconnects.Insert
-import           Network.Google.Resource.Compute.Interconnects.List
-import           Network.Google.Resource.Compute.Interconnects.Patch
-import           Network.Google.Resource.Compute.LicenseCodes.Get
-import           Network.Google.Resource.Compute.LicenseCodes.TestIAMPermissions
-import           Network.Google.Resource.Compute.Licenses.Delete
-import           Network.Google.Resource.Compute.Licenses.Get
-import           Network.Google.Resource.Compute.Licenses.GetIAMPolicy
-import           Network.Google.Resource.Compute.Licenses.Insert
-import           Network.Google.Resource.Compute.Licenses.List
-import           Network.Google.Resource.Compute.Licenses.SetIAMPolicy
-import           Network.Google.Resource.Compute.Licenses.TestIAMPermissions
-import           Network.Google.Resource.Compute.MachineTypes.AggregatedList
-import           Network.Google.Resource.Compute.MachineTypes.Get
-import           Network.Google.Resource.Compute.MachineTypes.List
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.AggregatedList
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.Delete
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.Get
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.Insert
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.List
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.ListNetworkEndpoints
-import           Network.Google.Resource.Compute.NetworkEndpointGroups.TestIAMPermissions
-import           Network.Google.Resource.Compute.Networks.AddPeering
-import           Network.Google.Resource.Compute.Networks.Delete
-import           Network.Google.Resource.Compute.Networks.Get
-import           Network.Google.Resource.Compute.Networks.Insert
-import           Network.Google.Resource.Compute.Networks.List
-import           Network.Google.Resource.Compute.Networks.Patch
-import           Network.Google.Resource.Compute.Networks.RemovePeering
-import           Network.Google.Resource.Compute.Networks.SwitchToCustomMode
-import           Network.Google.Resource.Compute.NodeGroups.AddNodes
-import           Network.Google.Resource.Compute.NodeGroups.AggregatedList
-import           Network.Google.Resource.Compute.NodeGroups.Delete
-import           Network.Google.Resource.Compute.NodeGroups.DeleteNodes
-import           Network.Google.Resource.Compute.NodeGroups.Get
-import           Network.Google.Resource.Compute.NodeGroups.GetIAMPolicy
-import           Network.Google.Resource.Compute.NodeGroups.Insert
-import           Network.Google.Resource.Compute.NodeGroups.List
-import           Network.Google.Resource.Compute.NodeGroups.ListNodes
-import           Network.Google.Resource.Compute.NodeGroups.SetIAMPolicy
-import           Network.Google.Resource.Compute.NodeGroups.SetNodeTemplate
-import           Network.Google.Resource.Compute.NodeGroups.TestIAMPermissions
-import           Network.Google.Resource.Compute.NodeTemplates.AggregatedList
-import           Network.Google.Resource.Compute.NodeTemplates.Delete
-import           Network.Google.Resource.Compute.NodeTemplates.Get
-import           Network.Google.Resource.Compute.NodeTemplates.GetIAMPolicy
-import           Network.Google.Resource.Compute.NodeTemplates.Insert
-import           Network.Google.Resource.Compute.NodeTemplates.List
-import           Network.Google.Resource.Compute.NodeTemplates.SetIAMPolicy
-import           Network.Google.Resource.Compute.NodeTemplates.TestIAMPermissions
-import           Network.Google.Resource.Compute.NodeTypes.AggregatedList
-import           Network.Google.Resource.Compute.NodeTypes.Get
-import           Network.Google.Resource.Compute.NodeTypes.List
-import           Network.Google.Resource.Compute.Projects.DisableXpnHost
-import           Network.Google.Resource.Compute.Projects.DisableXpnResource
-import           Network.Google.Resource.Compute.Projects.EnableXpnHost
-import           Network.Google.Resource.Compute.Projects.EnableXpnResource
-import           Network.Google.Resource.Compute.Projects.Get
-import           Network.Google.Resource.Compute.Projects.GetXpnHost
-import           Network.Google.Resource.Compute.Projects.GetXpnResources
-import           Network.Google.Resource.Compute.Projects.ListXpnHosts
-import           Network.Google.Resource.Compute.Projects.MoveDisk
-import           Network.Google.Resource.Compute.Projects.MoveInstance
-import           Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata
-import           Network.Google.Resource.Compute.Projects.SetDefaultNetworkTier
-import           Network.Google.Resource.Compute.Projects.SetUsageExportBucket
-import           Network.Google.Resource.Compute.RegionAutoscalers.Delete
-import           Network.Google.Resource.Compute.RegionAutoscalers.Get
-import           Network.Google.Resource.Compute.RegionAutoscalers.Insert
-import           Network.Google.Resource.Compute.RegionAutoscalers.List
-import           Network.Google.Resource.Compute.RegionAutoscalers.Patch
-import           Network.Google.Resource.Compute.RegionAutoscalers.Update
-import           Network.Google.Resource.Compute.RegionBackendServices.Delete
-import           Network.Google.Resource.Compute.RegionBackendServices.Get
-import           Network.Google.Resource.Compute.RegionBackendServices.GetHealth
-import           Network.Google.Resource.Compute.RegionBackendServices.Insert
-import           Network.Google.Resource.Compute.RegionBackendServices.List
-import           Network.Google.Resource.Compute.RegionBackendServices.Patch
-import           Network.Google.Resource.Compute.RegionBackendServices.Update
-import           Network.Google.Resource.Compute.RegionCommitments.AggregatedList
-import           Network.Google.Resource.Compute.RegionCommitments.Get
-import           Network.Google.Resource.Compute.RegionCommitments.Insert
-import           Network.Google.Resource.Compute.RegionCommitments.List
-import           Network.Google.Resource.Compute.RegionDisks.CreateSnapshot
-import           Network.Google.Resource.Compute.RegionDisks.Delete
-import           Network.Google.Resource.Compute.RegionDisks.Get
-import           Network.Google.Resource.Compute.RegionDisks.Insert
-import           Network.Google.Resource.Compute.RegionDisks.List
-import           Network.Google.Resource.Compute.RegionDisks.Resize
-import           Network.Google.Resource.Compute.RegionDisks.SetLabels
-import           Network.Google.Resource.Compute.RegionDisks.TestIAMPermissions
-import           Network.Google.Resource.Compute.RegionDiskTypes.Get
-import           Network.Google.Resource.Compute.RegionDiskTypes.List
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.AbandonInstances
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.Delete
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.DeleteInstances
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.Get
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.Insert
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.List
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.ListManagedInstances
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.Patch
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.RecreateInstances
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.Resize
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
-import           Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetTargetPools
-import           Network.Google.Resource.Compute.RegionInstanceGroups.Get
-import           Network.Google.Resource.Compute.RegionInstanceGroups.List
-import           Network.Google.Resource.Compute.RegionInstanceGroups.ListInstances
-import           Network.Google.Resource.Compute.RegionInstanceGroups.SetNamedPorts
-import           Network.Google.Resource.Compute.RegionOperations.Delete
-import           Network.Google.Resource.Compute.RegionOperations.Get
-import           Network.Google.Resource.Compute.RegionOperations.List
-import           Network.Google.Resource.Compute.Regions.Get
-import           Network.Google.Resource.Compute.Regions.List
-import           Network.Google.Resource.Compute.Routers.AggregatedList
-import           Network.Google.Resource.Compute.Routers.Delete
-import           Network.Google.Resource.Compute.Routers.Get
-import           Network.Google.Resource.Compute.Routers.GetNATMAppingInfo
-import           Network.Google.Resource.Compute.Routers.GetRouterStatus
-import           Network.Google.Resource.Compute.Routers.Insert
-import           Network.Google.Resource.Compute.Routers.List
-import           Network.Google.Resource.Compute.Routers.Patch
-import           Network.Google.Resource.Compute.Routers.Preview
-import           Network.Google.Resource.Compute.Routers.Update
-import           Network.Google.Resource.Compute.Routes.Delete
-import           Network.Google.Resource.Compute.Routes.Get
-import           Network.Google.Resource.Compute.Routes.Insert
-import           Network.Google.Resource.Compute.Routes.List
-import           Network.Google.Resource.Compute.SecurityPolicies.AddRule
-import           Network.Google.Resource.Compute.SecurityPolicies.Delete
-import           Network.Google.Resource.Compute.SecurityPolicies.Get
-import           Network.Google.Resource.Compute.SecurityPolicies.GetRule
-import           Network.Google.Resource.Compute.SecurityPolicies.Insert
-import           Network.Google.Resource.Compute.SecurityPolicies.List
-import           Network.Google.Resource.Compute.SecurityPolicies.Patch
-import           Network.Google.Resource.Compute.SecurityPolicies.PatchRule
-import           Network.Google.Resource.Compute.SecurityPolicies.RemoveRule
-import           Network.Google.Resource.Compute.Snapshots.Delete
-import           Network.Google.Resource.Compute.Snapshots.Get
-import           Network.Google.Resource.Compute.Snapshots.GetIAMPolicy
-import           Network.Google.Resource.Compute.Snapshots.List
-import           Network.Google.Resource.Compute.Snapshots.SetIAMPolicy
-import           Network.Google.Resource.Compute.Snapshots.SetLabels
-import           Network.Google.Resource.Compute.Snapshots.TestIAMPermissions
-import           Network.Google.Resource.Compute.SSLCertificates.Delete
-import           Network.Google.Resource.Compute.SSLCertificates.Get
-import           Network.Google.Resource.Compute.SSLCertificates.Insert
-import           Network.Google.Resource.Compute.SSLCertificates.List
-import           Network.Google.Resource.Compute.SSLPolicies.Delete
-import           Network.Google.Resource.Compute.SSLPolicies.Get
-import           Network.Google.Resource.Compute.SSLPolicies.Insert
-import           Network.Google.Resource.Compute.SSLPolicies.List
-import           Network.Google.Resource.Compute.SSLPolicies.ListAvailableFeatures
-import           Network.Google.Resource.Compute.SSLPolicies.Patch
-import           Network.Google.Resource.Compute.Subnetworks.AggregatedList
-import           Network.Google.Resource.Compute.Subnetworks.Delete
-import           Network.Google.Resource.Compute.Subnetworks.ExpandIPCIdRRange
-import           Network.Google.Resource.Compute.Subnetworks.Get
-import           Network.Google.Resource.Compute.Subnetworks.GetIAMPolicy
-import           Network.Google.Resource.Compute.Subnetworks.Insert
-import           Network.Google.Resource.Compute.Subnetworks.List
-import           Network.Google.Resource.Compute.Subnetworks.ListUsable
-import           Network.Google.Resource.Compute.Subnetworks.Patch
-import           Network.Google.Resource.Compute.Subnetworks.SetIAMPolicy
-import           Network.Google.Resource.Compute.Subnetworks.SetPrivateIPGoogleAccess
-import           Network.Google.Resource.Compute.Subnetworks.TestIAMPermissions
-import           Network.Google.Resource.Compute.TargetHTTPProxies.Delete
-import           Network.Google.Resource.Compute.TargetHTTPProxies.Get
-import           Network.Google.Resource.Compute.TargetHTTPProxies.Insert
-import           Network.Google.Resource.Compute.TargetHTTPProxies.List
-import           Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.Delete
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.Get
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.Insert
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.List
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetQuicOverride
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLPolicy
-import           Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap
-import           Network.Google.Resource.Compute.TargetInstances.AggregatedList
-import           Network.Google.Resource.Compute.TargetInstances.Delete
-import           Network.Google.Resource.Compute.TargetInstances.Get
-import           Network.Google.Resource.Compute.TargetInstances.Insert
-import           Network.Google.Resource.Compute.TargetInstances.List
-import           Network.Google.Resource.Compute.TargetPools.AddHealthCheck
-import           Network.Google.Resource.Compute.TargetPools.AddInstance
-import           Network.Google.Resource.Compute.TargetPools.AggregatedList
-import           Network.Google.Resource.Compute.TargetPools.Delete
-import           Network.Google.Resource.Compute.TargetPools.Get
-import           Network.Google.Resource.Compute.TargetPools.GetHealth
-import           Network.Google.Resource.Compute.TargetPools.Insert
-import           Network.Google.Resource.Compute.TargetPools.List
-import           Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck
-import           Network.Google.Resource.Compute.TargetPools.RemoveInstance
-import           Network.Google.Resource.Compute.TargetPools.SetBackup
-import           Network.Google.Resource.Compute.TargetSSLProxies.Delete
-import           Network.Google.Resource.Compute.TargetSSLProxies.Get
-import           Network.Google.Resource.Compute.TargetSSLProxies.Insert
-import           Network.Google.Resource.Compute.TargetSSLProxies.List
-import           Network.Google.Resource.Compute.TargetSSLProxies.SetBackendService
-import           Network.Google.Resource.Compute.TargetSSLProxies.SetProxyHeader
-import           Network.Google.Resource.Compute.TargetSSLProxies.SetSSLCertificates
-import           Network.Google.Resource.Compute.TargetSSLProxies.SetSSLPolicy
-import           Network.Google.Resource.Compute.TargetTCPProxies.Delete
-import           Network.Google.Resource.Compute.TargetTCPProxies.Get
-import           Network.Google.Resource.Compute.TargetTCPProxies.Insert
-import           Network.Google.Resource.Compute.TargetTCPProxies.List
-import           Network.Google.Resource.Compute.TargetTCPProxies.SetBackendService
-import           Network.Google.Resource.Compute.TargetTCPProxies.SetProxyHeader
-import           Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList
-import           Network.Google.Resource.Compute.TargetVPNGateways.Delete
-import           Network.Google.Resource.Compute.TargetVPNGateways.Get
-import           Network.Google.Resource.Compute.TargetVPNGateways.Insert
-import           Network.Google.Resource.Compute.TargetVPNGateways.List
-import           Network.Google.Resource.Compute.URLMaps.Delete
-import           Network.Google.Resource.Compute.URLMaps.Get
-import           Network.Google.Resource.Compute.URLMaps.Insert
-import           Network.Google.Resource.Compute.URLMaps.InvalidateCache
-import           Network.Google.Resource.Compute.URLMaps.List
-import           Network.Google.Resource.Compute.URLMaps.Patch
-import           Network.Google.Resource.Compute.URLMaps.Update
-import           Network.Google.Resource.Compute.URLMaps.Validate
-import           Network.Google.Resource.Compute.VPNTunnels.AggregatedList
-import           Network.Google.Resource.Compute.VPNTunnels.Delete
-import           Network.Google.Resource.Compute.VPNTunnels.Get
-import           Network.Google.Resource.Compute.VPNTunnels.Insert
-import           Network.Google.Resource.Compute.VPNTunnels.List
-import           Network.Google.Resource.Compute.ZoneOperations.Delete
-import           Network.Google.Resource.Compute.ZoneOperations.Get
-import           Network.Google.Resource.Compute.ZoneOperations.List
-import           Network.Google.Resource.Compute.Zones.Get
-import           Network.Google.Resource.Compute.Zones.List
-
-{- $resources
-TODO
--}
-
--- | Represents the entirety of the methods and resources available for the Compute Engine API service.
-type ComputeAPI =
-     ImagesInsertResource :<|> ImagesListResource :<|>
-       ImagesGetIAMPolicyResource
-       :<|> ImagesGetResource
-       :<|> ImagesGetFromFamilyResource
-       :<|> ImagesSetIAMPolicyResource
-       :<|> ImagesSetLabelsResource
-       :<|> ImagesDeprecateResource
-       :<|> ImagesTestIAMPermissionsResource
-       :<|> ImagesDeleteResource
-       :<|> AcceleratorTypesAggregatedListResource
-       :<|> AcceleratorTypesListResource
-       :<|> AcceleratorTypesGetResource
-       :<|> URLMapsInsertResource
-       :<|> URLMapsListResource
-       :<|> URLMapsPatchResource
-       :<|> URLMapsGetResource
-       :<|> URLMapsInvalidateCacheResource
-       :<|> URLMapsValidateResource
-       :<|> URLMapsDeleteResource
-       :<|> URLMapsUpdateResource
-       :<|> NodeGroupsAggregatedListResource
-       :<|> NodeGroupsInsertResource
-       :<|> NodeGroupsListResource
-       :<|> NodeGroupsAddNodesResource
-       :<|> NodeGroupsGetIAMPolicyResource
-       :<|> NodeGroupsGetResource
-       :<|> NodeGroupsSetIAMPolicyResource
-       :<|> NodeGroupsDeleteNodesResource
-       :<|> NodeGroupsSetNodeTemplateResource
-       :<|> NodeGroupsTestIAMPermissionsResource
-       :<|> NodeGroupsDeleteResource
-       :<|> NodeGroupsListNodesResource
-       :<|> TargetTCPProxiesInsertResource
-       :<|> TargetTCPProxiesListResource
-       :<|> TargetTCPProxiesGetResource
-       :<|> TargetTCPProxiesSetBackendServiceResource
-       :<|> TargetTCPProxiesDeleteResource
-       :<|> TargetTCPProxiesSetProxyHeaderResource
-       :<|> RoutesInsertResource
-       :<|> RoutesListResource
-       :<|> RoutesGetResource
-       :<|> RoutesDeleteResource
-       :<|> RegionBackendServicesInsertResource
-       :<|> RegionBackendServicesListResource
-       :<|> RegionBackendServicesGetHealthResource
-       :<|> RegionBackendServicesPatchResource
-       :<|> RegionBackendServicesGetResource
-       :<|> RegionBackendServicesDeleteResource
-       :<|> RegionBackendServicesUpdateResource
-       :<|> InstanceTemplatesInsertResource
-       :<|> InstanceTemplatesListResource
-       :<|> InstanceTemplatesGetIAMPolicyResource
-       :<|> InstanceTemplatesGetResource
-       :<|> InstanceTemplatesSetIAMPolicyResource
-       :<|> InstanceTemplatesTestIAMPermissionsResource
-       :<|> InstanceTemplatesDeleteResource
-       :<|> TargetVPNGatewaysAggregatedListResource
-       :<|> TargetVPNGatewaysInsertResource
-       :<|> TargetVPNGatewaysListResource
-       :<|> TargetVPNGatewaysGetResource
-       :<|> TargetVPNGatewaysDeleteResource
-       :<|> SSLCertificatesInsertResource
-       :<|> SSLCertificatesListResource
-       :<|> SSLCertificatesGetResource
-       :<|> SSLCertificatesDeleteResource
-       :<|> ZonesListResource
-       :<|> ZonesGetResource
-       :<|> RegionInstanceGroupsListResource
-       :<|> RegionInstanceGroupsGetResource
-       :<|> RegionInstanceGroupsListInstancesResource
-       :<|> RegionInstanceGroupsSetNamedPortsResource
-       :<|> GlobalForwardingRulesInsertResource
-       :<|> GlobalForwardingRulesListResource
-       :<|> GlobalForwardingRulesGetResource
-       :<|> GlobalForwardingRulesSetTargetResource
-       :<|> GlobalForwardingRulesDeleteResource
-       :<|> NetworksInsertResource
-       :<|> NetworksListResource
-       :<|> NetworksPatchResource
-       :<|> NetworksGetResource
-       :<|> NetworksSwitchToCustomModeResource
-       :<|> NetworksRemovePeeringResource
-       :<|> NetworksAddPeeringResource
-       :<|> NetworksDeleteResource
-       :<|> RoutersGetNATMAppingInfoResource
-       :<|> RoutersAggregatedListResource
-       :<|> RoutersInsertResource
-       :<|> RoutersListResource
-       :<|> RoutersPatchResource
-       :<|> RoutersGetResource
-       :<|> RoutersPreviewResource
-       :<|> RoutersDeleteResource
-       :<|> RoutersUpdateResource
-       :<|> RoutersGetRouterStatusResource
-       :<|> SecurityPoliciesInsertResource
-       :<|> SecurityPoliciesListResource
-       :<|> SecurityPoliciesRemoveRuleResource
-       :<|> SecurityPoliciesPatchRuleResource
-       :<|> SecurityPoliciesGetRuleResource
-       :<|> SecurityPoliciesPatchResource
-       :<|> SecurityPoliciesGetResource
-       :<|> SecurityPoliciesAddRuleResource
-       :<|> SecurityPoliciesDeleteResource
-       :<|> AddressesAggregatedListResource
-       :<|> AddressesInsertResource
-       :<|> AddressesListResource
-       :<|> AddressesGetResource
-       :<|> AddressesDeleteResource
-       :<|> RegionCommitmentsAggregatedListResource
-       :<|> RegionCommitmentsInsertResource
-       :<|> RegionCommitmentsListResource
-       :<|> RegionCommitmentsGetResource
-       :<|> NodeTypesAggregatedListResource
-       :<|> NodeTypesListResource
-       :<|> NodeTypesGetResource
-       :<|> GlobalAddressesInsertResource
-       :<|> GlobalAddressesListResource
-       :<|> GlobalAddressesGetResource
-       :<|> GlobalAddressesDeleteResource
-       :<|> RegionsListResource
-       :<|> RegionsGetResource
-       :<|> NodeTemplatesAggregatedListResource
-       :<|> NodeTemplatesInsertResource
-       :<|> NodeTemplatesListResource
-       :<|> NodeTemplatesGetIAMPolicyResource
-       :<|> NodeTemplatesGetResource
-       :<|> NodeTemplatesSetIAMPolicyResource
-       :<|> NodeTemplatesTestIAMPermissionsResource
-       :<|> NodeTemplatesDeleteResource
-       :<|> TargetHTTPProxiesInsertResource
-       :<|> TargetHTTPProxiesListResource
-       :<|> TargetHTTPProxiesSetURLMapResource
-       :<|> TargetHTTPProxiesGetResource
-       :<|> TargetHTTPProxiesDeleteResource
-       :<|> VPNTunnelsAggregatedListResource
-       :<|> VPNTunnelsInsertResource
-       :<|> VPNTunnelsListResource
-       :<|> VPNTunnelsGetResource
-       :<|> VPNTunnelsDeleteResource
-       :<|> RegionDisksInsertResource
-       :<|> RegionDisksResizeResource
-       :<|> RegionDisksListResource
-       :<|> RegionDisksGetResource
-       :<|> RegionDisksSetLabelsResource
-       :<|> RegionDisksCreateSnapshotResource
-       :<|> RegionDisksTestIAMPermissionsResource
-       :<|> RegionDisksDeleteResource
-       :<|> AutoscalersAggregatedListResource
-       :<|> AutoscalersInsertResource
-       :<|> AutoscalersListResource
-       :<|> AutoscalersPatchResource
-       :<|> AutoscalersGetResource
-       :<|> AutoscalersDeleteResource
-       :<|> AutoscalersUpdateResource
-       :<|>
-       RegionInstanceGroupManagersSetTargetPoolsResource
-       :<|> RegionInstanceGroupManagersInsertResource
-       :<|> RegionInstanceGroupManagersResizeResource
-       :<|> RegionInstanceGroupManagersListResource
-       :<|>
-       RegionInstanceGroupManagersListManagedInstancesResource
-       :<|>
-       RegionInstanceGroupManagersAbandonInstancesResource
-       :<|>
-       RegionInstanceGroupManagersSetInstanceTemplateResource
-       :<|> RegionInstanceGroupManagersPatchResource
-       :<|> RegionInstanceGroupManagersGetResource
-       :<|>
-       RegionInstanceGroupManagersDeleteInstancesResource
-       :<|> RegionInstanceGroupManagersDeleteResource
-       :<|>
-       RegionInstanceGroupManagersRecreateInstancesResource
-       :<|> DiskTypesAggregatedListResource
-       :<|> DiskTypesListResource
-       :<|> DiskTypesGetResource
-       :<|> RegionOperationsListResource
-       :<|> RegionOperationsGetResource
-       :<|> RegionOperationsDeleteResource
-       :<|> MachineTypesAggregatedListResource
-       :<|> MachineTypesListResource
-       :<|> MachineTypesGetResource
-       :<|> HTTPHealthChecksInsertResource
-       :<|> HTTPHealthChecksListResource
-       :<|> HTTPHealthChecksPatchResource
-       :<|> HTTPHealthChecksGetResource
-       :<|> HTTPHealthChecksDeleteResource
-       :<|> HTTPHealthChecksUpdateResource
-       :<|> SubnetworksExpandIPCIdRRangeResource
-       :<|> SubnetworksAggregatedListResource
-       :<|> SubnetworksInsertResource
-       :<|> SubnetworksListResource
-       :<|> SubnetworksGetIAMPolicyResource
-       :<|> SubnetworksPatchResource
-       :<|> SubnetworksGetResource
-       :<|> SubnetworksSetIAMPolicyResource
-       :<|> SubnetworksTestIAMPermissionsResource
-       :<|> SubnetworksSetPrivateIPGoogleAccessResource
-       :<|> SubnetworksListUsableResource
-       :<|> SubnetworksDeleteResource
-       :<|>
-       NetworkEndpointGroupsListNetworkEndpointsResource
-       :<|> NetworkEndpointGroupsAggregatedListResource
-       :<|> NetworkEndpointGroupsInsertResource
-       :<|> NetworkEndpointGroupsListResource
-       :<|>
-       NetworkEndpointGroupsAttachNetworkEndpointsResource
-       :<|> NetworkEndpointGroupsGetResource
-       :<|>
-       NetworkEndpointGroupsDetachNetworkEndpointsResource
-       :<|> NetworkEndpointGroupsTestIAMPermissionsResource
-       :<|> NetworkEndpointGroupsDeleteResource
-       :<|> InterconnectsInsertResource
-       :<|> InterconnectsGetDiagnosticsResource
-       :<|> InterconnectsListResource
-       :<|> InterconnectsPatchResource
-       :<|> InterconnectsGetResource
-       :<|> InterconnectsDeleteResource
-       :<|> InterconnectLocationsListResource
-       :<|> InterconnectLocationsGetResource
-       :<|> SnapshotsListResource
-       :<|> SnapshotsGetIAMPolicyResource
-       :<|> SnapshotsGetResource
-       :<|> SnapshotsSetIAMPolicyResource
-       :<|> SnapshotsSetLabelsResource
-       :<|> SnapshotsTestIAMPermissionsResource
-       :<|> SnapshotsDeleteResource
-       :<|> TargetSSLProxiesInsertResource
-       :<|> TargetSSLProxiesListResource
-       :<|> TargetSSLProxiesSetSSLCertificatesResource
-       :<|> TargetSSLProxiesGetResource
-       :<|> TargetSSLProxiesSetBackendServiceResource
-       :<|> TargetSSLProxiesSetSSLPolicyResource
-       :<|> TargetSSLProxiesDeleteResource
-       :<|> TargetSSLProxiesSetProxyHeaderResource
-       :<|> HTTPSHealthChecksInsertResource
-       :<|> HTTPSHealthChecksListResource
-       :<|> HTTPSHealthChecksPatchResource
-       :<|> HTTPSHealthChecksGetResource
-       :<|> HTTPSHealthChecksDeleteResource
-       :<|> HTTPSHealthChecksUpdateResource
-       :<|> SSLPoliciesListAvailableFeaturesResource
-       :<|> SSLPoliciesInsertResource
-       :<|> SSLPoliciesListResource
-       :<|> SSLPoliciesPatchResource
-       :<|> SSLPoliciesGetResource
-       :<|> SSLPoliciesDeleteResource
-       :<|> InstancesUpdateShieldedInstanceConfigResource
-       :<|> InstancesGetShieldedInstanceIdentityResource
-       :<|> InstancesAddAccessConfigResource
-       :<|> InstancesSimulateMaintenanceEventResource
-       :<|> InstancesAggregatedListResource
-       :<|> InstancesInsertResource
-       :<|> InstancesListReferrersResource
-       :<|> InstancesDetachDiskResource
-       :<|> InstancesListResource
-       :<|>
-       InstancesSetShieldedInstanceIntegrityPolicyResource
-       :<|> InstancesSetDeletionProtectionResource
-       :<|> InstancesStartResource
-       :<|> InstancesGetIAMPolicyResource
-       :<|> InstancesSetServiceAccountResource
-       :<|> InstancesGetResource
-       :<|> InstancesSetMachineResourcesResource
-       :<|> InstancesSetIAMPolicyResource
-       :<|> InstancesSetLabelsResource
-       :<|> InstancesSetMachineTypeResource
-       :<|> InstancesUpdateAccessConfigResource
-       :<|> InstancesDeleteAccessConfigResource
-       :<|> InstancesSetMetadataResource
-       :<|> InstancesSetSchedulingResource
-       :<|> InstancesStartWithEncryptionKeyResource
-       :<|> InstancesUpdateNetworkInterfaceResource
-       :<|> InstancesResetResource
-       :<|> InstancesStopResource
-       :<|> InstancesGetSerialPortOutputResource
-       :<|> InstancesTestIAMPermissionsResource
-       :<|> InstancesSetTagsResource
-       :<|> InstancesAttachDiskResource
-       :<|> InstancesDeleteResource
-       :<|> InstancesSetDiskAutoDeleteResource
-       :<|> InstancesSetMinCPUPlatformResource
-       :<|> BackendServicesAddSignedURLKeyResource
-       :<|> BackendServicesAggregatedListResource
-       :<|> BackendServicesInsertResource
-       :<|> BackendServicesListResource
-       :<|> BackendServicesGetHealthResource
-       :<|> BackendServicesPatchResource
-       :<|> BackendServicesGetResource
-       :<|> BackendServicesSetSecurityPolicyResource
-       :<|> BackendServicesDeleteSignedURLKeyResource
-       :<|> BackendServicesDeleteResource
-       :<|> BackendServicesUpdateResource
-       :<|> LicenseCodesGetResource
-       :<|> LicenseCodesTestIAMPermissionsResource
-       :<|> InstanceGroupsRemoveInstancesResource
-       :<|> InstanceGroupsAggregatedListResource
-       :<|> InstanceGroupsInsertResource
-       :<|> InstanceGroupsListResource
-       :<|> InstanceGroupsAddInstancesResource
-       :<|> InstanceGroupsGetResource
-       :<|> InstanceGroupsListInstancesResource
-       :<|> InstanceGroupsSetNamedPortsResource
-       :<|> InstanceGroupsDeleteResource
-       :<|> FirewallsInsertResource
-       :<|> FirewallsListResource
-       :<|> FirewallsPatchResource
-       :<|> FirewallsGetResource
-       :<|> FirewallsDeleteResource
-       :<|> FirewallsUpdateResource
-       :<|> GlobalOperationsAggregatedListResource
-       :<|> GlobalOperationsListResource
-       :<|> GlobalOperationsGetResource
-       :<|> GlobalOperationsDeleteResource
-       :<|> LicensesInsertResource
-       :<|> LicensesListResource
-       :<|> LicensesGetIAMPolicyResource
-       :<|> LicensesGetResource
-       :<|> LicensesSetIAMPolicyResource
-       :<|> LicensesTestIAMPermissionsResource
-       :<|> LicensesDeleteResource
-       :<|> ZoneOperationsListResource
-       :<|> ZoneOperationsGetResource
-       :<|> ZoneOperationsDeleteResource
-       :<|> InterconnectAttachmentsAggregatedListResource
-       :<|> InterconnectAttachmentsInsertResource
-       :<|> InterconnectAttachmentsListResource
-       :<|> InterconnectAttachmentsPatchResource
-       :<|> InterconnectAttachmentsGetResource
-       :<|> InterconnectAttachmentsDeleteResource
-       :<|> TargetHTTPSProxiesInsertResource
-       :<|> TargetHTTPSProxiesListResource
-       :<|> TargetHTTPSProxiesSetURLMapResource
-       :<|> TargetHTTPSProxiesSetSSLCertificatesResource
-       :<|> TargetHTTPSProxiesSetQuicOverrideResource
-       :<|> TargetHTTPSProxiesGetResource
-       :<|> TargetHTTPSProxiesSetSSLPolicyResource
-       :<|> TargetHTTPSProxiesDeleteResource
-       :<|> TargetInstancesAggregatedListResource
-       :<|> TargetInstancesInsertResource
-       :<|> TargetInstancesListResource
-       :<|> TargetInstancesGetResource
-       :<|> TargetInstancesDeleteResource
-       :<|> DisksAggregatedListResource
-       :<|> DisksInsertResource
-       :<|> DisksResizeResource
-       :<|> DisksListResource
-       :<|> DisksGetIAMPolicyResource
-       :<|> DisksGetResource
-       :<|> DisksSetIAMPolicyResource
-       :<|> DisksSetLabelsResource
-       :<|> DisksCreateSnapshotResource
-       :<|> DisksTestIAMPermissionsResource
-       :<|> DisksDeleteResource
-       :<|> ForwardingRulesAggregatedListResource
-       :<|> ForwardingRulesInsertResource
-       :<|> ForwardingRulesListResource
-       :<|> ForwardingRulesGetResource
-       :<|> ForwardingRulesSetTargetResource
-       :<|> ForwardingRulesDeleteResource
-       :<|> InstanceGroupManagersSetTargetPoolsResource
-       :<|> InstanceGroupManagersAggregatedListResource
-       :<|> InstanceGroupManagersInsertResource
-       :<|> InstanceGroupManagersResizeResource
-       :<|> InstanceGroupManagersListResource
-       :<|>
-       InstanceGroupManagersListManagedInstancesResource
-       :<|> InstanceGroupManagersAbandonInstancesResource
-       :<|> InstanceGroupManagersSetInstanceTemplateResource
-       :<|> InstanceGroupManagersPatchResource
-       :<|> InstanceGroupManagersGetResource
-       :<|> InstanceGroupManagersDeleteInstancesResource
-       :<|> InstanceGroupManagersDeleteResource
-       :<|> InstanceGroupManagersRecreateInstancesResource
-       :<|> RegionAutoscalersInsertResource
-       :<|> RegionAutoscalersListResource
-       :<|> RegionAutoscalersPatchResource
-       :<|> RegionAutoscalersGetResource
-       :<|> RegionAutoscalersDeleteResource
-       :<|> RegionAutoscalersUpdateResource
-       :<|> ProjectsEnableXpnHostResource
-       :<|> ProjectsListXpnHostsResource
-       :<|> ProjectsDisableXpnHostResource
-       :<|> ProjectsEnableXpnResourceResource
-       :<|> ProjectsSetUsageExportBucketResource
-       :<|> ProjectsMoveInstanceResource
-       :<|> ProjectsDisableXpnResourceResource
-       :<|> ProjectsGetXpnHostResource
-       :<|> ProjectsGetResource
-       :<|> ProjectsMoveDiskResource
-       :<|> ProjectsSetDefaultNetworkTierResource
-       :<|> ProjectsSetCommonInstanceMetadataResource
-       :<|> ProjectsGetXpnResourcesResource
-       :<|> RegionDiskTypesListResource
-       :<|> RegionDiskTypesGetResource
-       :<|> TargetPoolsAggregatedListResource
-       :<|> TargetPoolsRemoveInstanceResource
-       :<|> TargetPoolsInsertResource
-       :<|> TargetPoolsListResource
-       :<|> TargetPoolsGetHealthResource
-       :<|> TargetPoolsGetResource
-       :<|> TargetPoolsRemoveHealthCheckResource
-       :<|> TargetPoolsSetBackupResource
-       :<|> TargetPoolsAddInstanceResource
-       :<|> TargetPoolsAddHealthCheckResource
-       :<|> TargetPoolsDeleteResource
-       :<|> HealthChecksInsertResource
-       :<|> HealthChecksListResource
-       :<|> HealthChecksPatchResource
-       :<|> HealthChecksGetResource
-       :<|> HealthChecksDeleteResource
-       :<|> HealthChecksUpdateResource
-       :<|> BackendBucketsAddSignedURLKeyResource
-       :<|> BackendBucketsInsertResource
-       :<|> BackendBucketsListResource
-       :<|> BackendBucketsPatchResource
-       :<|> BackendBucketsGetResource
-       :<|> BackendBucketsDeleteSignedURLKeyResource
-       :<|> BackendBucketsDeleteResource
-       :<|> BackendBucketsUpdateResource
diff --git a/gen/Network/Google/Compute/Types.hs b/gen/Network/Google/Compute/Types.hs
deleted file mode 100644
--- a/gen/Network/Google/Compute/Types.hs
+++ /dev/null
@@ -1,5554 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.Compute.Types
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.Compute.Types
-    (
-    -- * Service Configuration
-      computeService
-
-    -- * OAuth Scopes
-    , computeScope
-    , cloudPlatformScope
-    , storageReadOnlyScope
-    , storageReadWriteScope
-    , computeReadOnlyScope
-    , storageFullControlScope
-
-    -- * HTTPSHealthCheckListWarningCode
-    , HTTPSHealthCheckListWarningCode (..)
-
-    -- * InstanceAggregatedListWarning
-    , InstanceAggregatedListWarning
-    , instanceAggregatedListWarning
-    , ialwData
-    , ialwCode
-    , ialwMessage
-
-    -- * TargetHTTPSProxyList
-    , TargetHTTPSProxyList
-    , targetHTTPSProxyList
-    , thplNextPageToken
-    , thplKind
-    , thplItems
-    , thplSelfLink
-    , thplWarning
-    , thplId
-
-    -- * RoutersScopedList
-    , RoutersScopedList
-    , routersScopedList
-    , rslRouters
-    , rslWarning
-
-    -- * RouterStatusResponse
-    , RouterStatusResponse
-    , routerStatusResponse
-    , rsrKind
-    , rsrResult
-
-    -- * RegionInstanceGroupManagersDeleteInstancesRequest
-    , RegionInstanceGroupManagersDeleteInstancesRequest
-    , regionInstanceGroupManagersDeleteInstancesRequest
-    , rigmdirInstances
-
-    -- * InterconnectDiagnosticsLinkLACPStatus
-    , InterconnectDiagnosticsLinkLACPStatus
-    , interconnectDiagnosticsLinkLACPStatus
-    , idllacpsState
-    , idllacpsNeighborSystemId
-    , idllacpsGoogleSystemId
-
-    -- * InterconnectAttachmentState
-    , InterconnectAttachmentState (..)
-
-    -- * AddressesScopedList
-    , AddressesScopedList
-    , addressesScopedList
-    , aslAddresses
-    , aslWarning
-
-    -- * OperationWarningsItemDataItem
-    , OperationWarningsItemDataItem
-    , operationWarningsItemDataItem
-    , owidiValue
-    , owidiKey
-
-    -- * SchedulingOnHostMaintenance
-    , SchedulingOnHostMaintenance (..)
-
-    -- * InstanceGroupManagerUpdatePolicy
-    , InstanceGroupManagerUpdatePolicy
-    , instanceGroupManagerUpdatePolicy
-    , igmupMaxSurge
-    , igmupMaxUnavailable
-    , igmupMinimalAction
-    , igmupType
-
-    -- * RegionInstanceGroupsListInstancesRequest
-    , RegionInstanceGroupsListInstancesRequest
-    , regionInstanceGroupsListInstancesRequest
-    , riglirInstanceState
-    , riglirPortName
-
-    -- * BackendServiceAggregatedListWarning
-    , BackendServiceAggregatedListWarning
-    , backendServiceAggregatedListWarning
-    , bsalwData
-    , bsalwCode
-    , bsalwMessage
-
-    -- * SSLPolicy
-    , SSLPolicy
-    , sslPolicy
-    , spKind
-    , spFingerprint
-    , spProFile
-    , spWarnings
-    , spCustomFeatures
-    , spSelfLink
-    , spName
-    , spCreationTimestamp
-    , spEnabledFeatures
-    , spId
-    , spMinTLSVersion
-    , spDescription
-
-    -- * AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType
-    , AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType (..)
-
-    -- * BackendServiceListWarningDataItem
-    , BackendServiceListWarningDataItem
-    , backendServiceListWarningDataItem
-    , bslwdiValue
-    , bslwdiKey
-
-    -- * FirewallDeniedItem
-    , FirewallDeniedItem
-    , firewallDeniedItem
-    , fdiIPProtocol
-    , fdiPorts
-
-    -- * InstanceGroupManagersAbandonInstancesRequest
-    , InstanceGroupManagersAbandonInstancesRequest
-    , instanceGroupManagersAbandonInstancesRequest
-    , igmairInstances
-
-    -- * MachineTypeAggregatedListItems
-    , MachineTypeAggregatedListItems
-    , machineTypeAggregatedListItems
-    , mtaliAddtional
-
-    -- * BackendServiceListWarningCode
-    , BackendServiceListWarningCode (..)
-
-    -- * DiskTypeAggregatedListItems
-    , DiskTypeAggregatedListItems
-    , diskTypeAggregatedListItems
-    , dtaliAddtional
-
-    -- * InstancesSetLabelsRequest
-    , InstancesSetLabelsRequest
-    , instancesSetLabelsRequest
-    , islrLabels
-    , islrLabelFingerprint
-
-    -- * RouterAggregatedList
-    , RouterAggregatedList
-    , routerAggregatedList
-    , ralNextPageToken
-    , ralKind
-    , ralItems
-    , ralSelfLink
-    , ralWarning
-    , ralId
-
-    -- * FirewallList
-    , FirewallList
-    , firewallList
-    , flNextPageToken
-    , flKind
-    , flItems
-    , flSelfLink
-    , flWarning
-    , flId
-
-    -- * InstancesScopedListWarning
-    , InstancesScopedListWarning
-    , instancesScopedListWarning
-    , islwData
-    , islwCode
-    , islwMessage
-
-    -- * RegionInstanceGroupManagersRecreateRequest
-    , RegionInstanceGroupManagersRecreateRequest
-    , regionInstanceGroupManagersRecreateRequest
-    , rigmrrInstances
-
-    -- * InstanceLabels
-    , InstanceLabels
-    , instanceLabels
-    , ilAddtional
-
-    -- * InstanceListWarningCode
-    , InstanceListWarningCode (..)
-
-    -- * TargetHTTPSProxyQuicOverride
-    , TargetHTTPSProxyQuicOverride (..)
-
-    -- * BackendServicesScopedListWarning
-    , BackendServicesScopedListWarning
-    , backendServicesScopedListWarning
-    , bsslwData
-    , bsslwCode
-    , bsslwMessage
-
-    -- * SecurityPolicyRuleMatcher
-    , SecurityPolicyRuleMatcher
-    , securityPolicyRuleMatcher
-    , sprmVersionedExpr
-    , sprmConfig
-
-    -- * InstanceGroupList
-    , InstanceGroupList
-    , instanceGroupList
-    , iglNextPageToken
-    , iglKind
-    , iglItems
-    , iglSelfLink
-    , iglWarning
-    , iglId
-
-    -- * InstancesSetMachineTypeRequest
-    , InstancesSetMachineTypeRequest
-    , instancesSetMachineTypeRequest
-    , ismtrMachineType
-
-    -- * VMEndpointNATMAppings
-    , VMEndpointNATMAppings
-    , vMEndpointNATMAppings
-    , vmenatmaInstanceName
-    , vmenatmaInterfaceNATMAppings
-
-    -- * CustomerEncryptionKey
-    , CustomerEncryptionKey
-    , customerEncryptionKey
-    , cekKmsKeyName
-    , cekSha256
-    , cekRawKey
-
-    -- * AutoscalerAggregatedListItems
-    , AutoscalerAggregatedListItems
-    , autoscalerAggregatedListItems
-    , aaliAddtional
-
-    -- * InstanceListWarningDataItem
-    , InstanceListWarningDataItem
-    , instanceListWarningDataItem
-    , ilwdiValue
-    , ilwdiKey
-
-    -- * InstanceGroupManagersSetInstanceTemplateRequest
-    , InstanceGroupManagersSetInstanceTemplateRequest
-    , instanceGroupManagersSetInstanceTemplateRequest
-    , igmsitrInstanceTemplate
-
-    -- * RouterNATNATIPAllocateOption
-    , RouterNATNATIPAllocateOption (..)
-
-    -- * DeprecationStatus
-    , DeprecationStatus
-    , deprecationStatus
-    , dsState
-    , dsDeleted
-    , dsReplacement
-    , dsObsolete
-    , dsDeprecated
-
-    -- * HTTPSHealthCheckListWarningDataItem
-    , HTTPSHealthCheckListWarningDataItem
-    , httpsHealthCheckListWarningDataItem
-    , hhclwdiValue
-    , hhclwdiKey
-
-    -- * OperationWarningsItemCode
-    , OperationWarningsItemCode (..)
-
-    -- * Snapshot
-    , Snapshot
-    , snapshot
-    , sStorageBytesStatus
-    , sStatus
-    , sDiskSizeGb
-    , sSourceDiskId
-    , sKind
-    , sSourceDiskEncryptionKey
-    , sStorageBytes
-    , sSelfLink
-    , sSnapshotEncryptionKey
-    , sName
-    , sStorageLocations
-    , sCreationTimestamp
-    , sLicenseCodes
-    , sId
-    , sLabels
-    , sLicenses
-    , sSourceDisk
-    , sLabelFingerprint
-    , sDescription
-
-    -- * RouterStatus
-    , RouterStatus
-    , routerStatus
-    , rsBestRoutesForRouter
-    , rsBGPPeerStatus
-    , rsNetwork
-    , rsNATStatus
-    , rsBestRoutes
-
-    -- * AutoscalingPolicyCustomMetricUtilization
-    , AutoscalingPolicyCustomMetricUtilization
-    , autoscalingPolicyCustomMetricUtilization
-    , apcmuUtilizationTarget
-    , apcmuMetric
-    , apcmuUtilizationTargetType
-
-    -- * NodeGroupAggregatedListWarningCode
-    , NodeGroupAggregatedListWarningCode (..)
-
-    -- * ForwardingRuleList
-    , ForwardingRuleList
-    , forwardingRuleList
-    , frlNextPageToken
-    , frlKind
-    , frlItems
-    , frlSelfLink
-    , frlWarning
-    , frlId
-
-    -- * NodeGroup
-    , NodeGroup
-    , nodeGroup
-    , ngStatus
-    , ngSize
-    , ngKind
-    , ngZone
-    , ngSelfLink
-    , ngName
-    , ngCreationTimestamp
-    , ngId
-    , ngNodeTemplate
-    , ngDescription
-
-    -- * VPNTunnelsScopedList
-    , VPNTunnelsScopedList
-    , vpnTunnelsScopedList
-    , vtslVPNTunnels
-    , vtslWarning
-
-    -- * SubnetworkSecondaryRange
-    , SubnetworkSecondaryRange
-    , subnetworkSecondaryRange
-    , ssrRangeName
-    , ssrIPCIdRRange
-
-    -- * NodeTypesScopedList
-    , NodeTypesScopedList
-    , nodeTypesScopedList
-    , ntslNodeTypes
-    , ntslWarning
-
-    -- * BackendServiceProtocol
-    , BackendServiceProtocol (..)
-
-    -- * RegionInstanceGroupsListInstancesWarning
-    , RegionInstanceGroupsListInstancesWarning
-    , regionInstanceGroupsListInstancesWarning
-    , rigliwData
-    , rigliwCode
-    , rigliwMessage
-
-    -- * NetworkEndpointGroupsDetachEndpointsRequest
-    , NetworkEndpointGroupsDetachEndpointsRequest
-    , networkEndpointGroupsDetachEndpointsRequest
-    , negderNetworkEndpoints
-
-    -- * AuditConfig
-    , AuditConfig
-    , auditConfig
-    , acService
-    , acAuditLogConfigs
-    , acExemptedMembers
-
-    -- * NetworkEndpointGroupNetworkEndpointType
-    , NetworkEndpointGroupNetworkEndpointType (..)
-
-    -- * BackendBucketListWarningCode
-    , BackendBucketListWarningCode (..)
-
-    -- * AcceleratorTypeAggregatedListWarningDataItem
-    , AcceleratorTypeAggregatedListWarningDataItem
-    , acceleratorTypeAggregatedListWarningDataItem
-    , atalwdiValue
-    , atalwdiKey
-
-    -- * InstanceGroupsSetNamedPortsRequest
-    , InstanceGroupsSetNamedPortsRequest
-    , instanceGroupsSetNamedPortsRequest
-    , igsnprFingerprint
-    , igsnprNamedPorts
-
-    -- * AcceleratorTypesScopedListWarningCode
-    , AcceleratorTypesScopedListWarningCode (..)
-
-    -- * NodeTemplateNodeAffinityLabels
-    , NodeTemplateNodeAffinityLabels
-    , nodeTemplateNodeAffinityLabels
-    , ntnalAddtional
-
-    -- * OperationList
-    , OperationList
-    , operationList
-    , olNextPageToken
-    , olKind
-    , olItems
-    , olSelfLink
-    , olWarning
-    , olId
-
-    -- * NodeGroupListWarning
-    , NodeGroupListWarning
-    , nodeGroupListWarning
-    , nglwData
-    , nglwCode
-    , nglwMessage
-
-    -- * DiskList
-    , DiskList
-    , diskList
-    , dlNextPageToken
-    , dlKind
-    , dlItems
-    , dlSelfLink
-    , dlWarning
-    , dlId
-
-    -- * NetworkEndpointGroupsListNetworkEndpointsWarning
-    , NetworkEndpointGroupsListNetworkEndpointsWarning
-    , networkEndpointGroupsListNetworkEndpointsWarning
-    , neglnewData
-    , neglnewCode
-    , neglnewMessage
-
-    -- * NodeGroupsScopedListWarningCode
-    , NodeGroupsScopedListWarningCode (..)
-
-    -- * TargetPoolsAddInstanceRequest
-    , TargetPoolsAddInstanceRequest
-    , targetPoolsAddInstanceRequest
-    , tpairInstances
-
-    -- * NodeGroupsDeleteNodesRequest
-    , NodeGroupsDeleteNodesRequest
-    , nodeGroupsDeleteNodesRequest
-    , ngdnrNodes
-
-    -- * RegionAutoscalerList
-    , RegionAutoscalerList
-    , regionAutoscalerList
-    , rNextPageToken
-    , rKind
-    , rItems
-    , rSelfLink
-    , rWarning
-    , rId
-
-    -- * HealthCheckListWarningDataItem
-    , HealthCheckListWarningDataItem
-    , healthCheckListWarningDataItem
-    , hclwdiValue
-    , hclwdiKey
-
-    -- * NodeGroupAggregatedListWarningDataItem
-    , NodeGroupAggregatedListWarningDataItem
-    , nodeGroupAggregatedListWarningDataItem
-    , ngalwdiValue
-    , ngalwdiKey
-
-    -- * InstanceGroupsAddInstancesRequest
-    , InstanceGroupsAddInstancesRequest
-    , instanceGroupsAddInstancesRequest
-    , igairInstances
-
-    -- * NodeGroupNode
-    , NodeGroupNode
-    , nodeGroupNode
-    , ngnStatus
-    , ngnName
-    , ngnInstances
-    , ngnNodeType
-
-    -- * TargetTCPProxiesSetProxyHeaderRequestProxyHeader
-    , TargetTCPProxiesSetProxyHeaderRequestProxyHeader (..)
-
-    -- * InstanceGroupManagerList
-    , InstanceGroupManagerList
-    , instanceGroupManagerList
-    , igmlNextPageToken
-    , igmlKind
-    , igmlItems
-    , igmlSelfLink
-    , igmlWarning
-    , igmlId
-
-    -- * InstanceGroupManagerVersion
-    , InstanceGroupManagerVersion
-    , instanceGroupManagerVersion
-    , igmvInstanceTemplate
-    , igmvTargetSize
-    , igmvName
-
-    -- * NetworkEndpointGroupsScopedListWarning
-    , NetworkEndpointGroupsScopedListWarning
-    , networkEndpointGroupsScopedListWarning
-    , negslwData
-    , negslwCode
-    , negslwMessage
-
-    -- * SubnetworksScopedListWarning
-    , SubnetworksScopedListWarning
-    , subnetworksScopedListWarning
-    , sslwData
-    , sslwCode
-    , sslwMessage
-
-    -- * NodeGroupsSetNodeTemplateRequest
-    , NodeGroupsSetNodeTemplateRequest
-    , nodeGroupsSetNodeTemplateRequest
-    , ngsntrNodeTemplate
-
-    -- * AcceleratorTypeListWarning
-    , AcceleratorTypeListWarning
-    , acceleratorTypeListWarning
-    , atlwData
-    , atlwCode
-    , atlwMessage
-
-    -- * AttachedDiskType
-    , AttachedDiskType (..)
-
-    -- * Image
-    , Image
-    , image
-    , iStatus
-    , iSourceSnapshotId
-    , iImageEncryptionKey
-    , iSourceImage
-    , iDiskSizeGb
-    , iSourceType
-    , iSourceDiskId
-    , iKind
-    , iSourceDiskEncryptionKey
-    , iGuestOSFeatures
-    , iArchiveSizeBytes
-    , iFamily
-    , iRawDisk
-    , iSelfLink
-    , iName
-    , iSourceImageId
-    , iCreationTimestamp
-    , iSourceImageEncryptionKey
-    , iLicenseCodes
-    , iId
-    , iLabels
-    , iLicenses
-    , iSourceDisk
-    , iLabelFingerprint
-    , iDescription
-    , iSourceSnapshotEncryptionKey
-    , iDeprecated
-    , iSourceSnapshot
-
-    -- * RouterBGPPeerManagementType
-    , RouterBGPPeerManagementType (..)
-
-    -- * RouterNATSubnetworkToNATSourceIPRangesToNATItem
-    , RouterNATSubnetworkToNATSourceIPRangesToNATItem (..)
-
-    -- * AcceleratorTypeAggregatedListWarningCode
-    , AcceleratorTypeAggregatedListWarningCode (..)
-
-    -- * NetworksAddPeeringRequest
-    , NetworksAddPeeringRequest
-    , networksAddPeeringRequest
-    , naprNetworkPeering
-    , naprPeerNetwork
-    , naprName
-    , naprAutoCreateRoutes
-
-    -- * NodeTemplatesScopedList
-    , NodeTemplatesScopedList
-    , nodeTemplatesScopedList
-    , nNodeTemplates
-    , nWarning
-
-    -- * URLMapListWarning
-    , URLMapListWarning
-    , urlMapListWarning
-    , umlwData
-    , umlwCode
-    , umlwMessage
-
-    -- * NodeGroupsScopedListWarningDataItem
-    , NodeGroupsScopedListWarningDataItem
-    , nodeGroupsScopedListWarningDataItem
-    , ngslwdiValue
-    , ngslwdiKey
-
-    -- * URLMap
-    , URLMap
-    , urlMap
-    , umTests
-    , umKind
-    , umFingerprint
-    , umDefaultService
-    , umSelfLink
-    , umName
-    , umCreationTimestamp
-    , umPathMatchers
-    , umId
-    , umHostRules
-    , umDescription
-
-    -- * ImageListWarning
-    , ImageListWarning
-    , imageListWarning
-    , ilwData
-    , ilwCode
-    , ilwMessage
-
-    -- * HealthCheckListWarningCode
-    , HealthCheckListWarningCode (..)
-
-    -- * Expr
-    , Expr
-    , expr
-    , eLocation
-    , eExpression
-    , eTitle
-    , eDescription
-
-    -- * SSLPolicyReference
-    , SSLPolicyReference
-    , sslPolicyReference
-    , sprSSLPolicy
-
-    -- * InstanceGroupAggregatedListItems
-    , InstanceGroupAggregatedListItems
-    , instanceGroupAggregatedListItems
-    , igaliAddtional
-
-    -- * TargetPoolList
-    , TargetPoolList
-    , targetPoolList
-    , tplNextPageToken
-    , tplKind
-    , tplItems
-    , tplSelfLink
-    , tplWarning
-    , tplId
-
-    -- * SSLPolicyProFile
-    , SSLPolicyProFile (..)
-
-    -- * AcceleratorType
-    , AcceleratorType
-    , acceleratorType
-    , atKind
-    , atZone
-    , atMaximumCardsPerInstance
-    , atSelfLink
-    , atName
-    , atCreationTimestamp
-    , atId
-    , atDescription
-    , atDeprecated
-
-    -- * BackendBucketListWarningDataItem
-    , BackendBucketListWarningDataItem
-    , backendBucketListWarningDataItem
-    , bblwdiValue
-    , bblwdiKey
-
-    -- * AcceleratorTypesScopedListWarningDataItem
-    , AcceleratorTypesScopedListWarningDataItem
-    , acceleratorTypesScopedListWarningDataItem
-    , atslwdiValue
-    , atslwdiKey
-
-    -- * InterconnectOutageNotificationSource
-    , InterconnectOutageNotificationSource (..)
-
-    -- * RegionDiskTypeList
-    , RegionDiskTypeList
-    , regionDiskTypeList
-    , rdtlNextPageToken
-    , rdtlKind
-    , rdtlItems
-    , rdtlSelfLink
-    , rdtlWarning
-    , rdtlId
-
-    -- * TargetInstanceAggregatedList
-    , TargetInstanceAggregatedList
-    , targetInstanceAggregatedList
-    , tialNextPageToken
-    , tialKind
-    , tialItems
-    , tialSelfLink
-    , tialWarning
-    , tialId
-
-    -- * NodeGroupsListNodesWarningDataItem
-    , NodeGroupsListNodesWarningDataItem
-    , nodeGroupsListNodesWarningDataItem
-    , nglnwdiValue
-    , nglnwdiKey
-
-    -- * UsableSubnetworksAggregatedList
-    , UsableSubnetworksAggregatedList
-    , usableSubnetworksAggregatedList
-    , usalNextPageToken
-    , usalKind
-    , usalItems
-    , usalSelfLink
-    , usalWarning
-    , usalId
-
-    -- * InterconnectLinkType
-    , InterconnectLinkType (..)
-
-    -- * DisksScopedList
-    , DisksScopedList
-    , disksScopedList
-    , dslWarning
-    , dslDisks
-
-    -- * InterconnectLocationListWarningDataItem
-    , InterconnectLocationListWarningDataItem
-    , interconnectLocationListWarningDataItem
-    , illwdiValue
-    , illwdiKey
-
-    -- * InstanceGroupManagersScopedList
-    , InstanceGroupManagersScopedList
-    , instanceGroupManagersScopedList
-    , igmslWarning
-    , igmslInstanceGroupManagers
-
-    -- * SubnetworkListWarning
-    , SubnetworkListWarning
-    , subnetworkListWarning
-    , slwData
-    , slwCode
-    , slwMessage
-
-    -- * NetworkEndpointGroupListWarning
-    , NetworkEndpointGroupListWarning
-    , networkEndpointGroupListWarning
-    , neglwData
-    , neglwCode
-    , neglwMessage
-
-    -- * HealthCheck
-    , HealthCheck
-    , healthCheck
-    , hcHealthyThreshold
-    , hcTCPHealthCheck
-    , hcHTTP2HealthCheck
-    , hcKind
-    , hcSSLHealthCheck
-    , hcSelfLink
-    , hcCheckIntervalSec
-    , hcName
-    , hcCreationTimestamp
-    , hcHTTPHealthCheck
-    , hcId
-    , hcType
-    , hcTimeoutSec
-    , hcDescription
-    , hcUnhealthyThreshold
-    , hcHTTPSHealthCheck
-
-    -- * TargetSSLProxyProxyHeader
-    , TargetSSLProxyProxyHeader (..)
-
-    -- * HTTPHealthCheckListWarning
-    , HTTPHealthCheckListWarning
-    , hTTPHealthCheckListWarning
-    , httphclwData
-    , httphclwCode
-    , httphclwMessage
-
-    -- * SSLPoliciesListWarning
-    , SSLPoliciesListWarning
-    , sslPoliciesListWarning
-    , splwData
-    , splwCode
-    , splwMessage
-
-    -- * CommitmentAggregatedListItems
-    , CommitmentAggregatedListItems
-    , commitmentAggregatedListItems
-    , caliAddtional
-
-    -- * DiskAggregatedList
-    , DiskAggregatedList
-    , diskAggregatedList
-    , dalNextPageToken
-    , dalKind
-    , dalItems
-    , dalSelfLink
-    , dalWarning
-    , dalId
-
-    -- * InstanceGroupsListInstancesWarningDataItem
-    , InstanceGroupsListInstancesWarningDataItem
-    , instanceGroupsListInstancesWarningDataItem
-    , igliwdiValue
-    , igliwdiKey
-
-    -- * InstanceWithNamedPorts
-    , InstanceWithNamedPorts
-    , instanceWithNamedPorts
-    , iwnpStatus
-    , iwnpNamedPorts
-    , iwnpInstance
-
-    -- * InterconnectListWarning
-    , InterconnectListWarning
-    , interconnectListWarning
-    , iData
-    , iCode
-    , iMessage
-
-    -- * ForwardingRulesScopedList
-    , ForwardingRulesScopedList
-    , forwardingRulesScopedList
-    , frslWarning
-    , frslForwardingRules
-
-    -- * RouterBGPAdvertiseMode
-    , RouterBGPAdvertiseMode (..)
-
-    -- * NodeGroupsListNodesWarningCode
-    , NodeGroupsListNodesWarningCode (..)
-
-    -- * InstanceReference
-    , InstanceReference
-    , instanceReference
-    , iInstance
-
-    -- * InterconnectDiagnosticsLinkOpticalPowerState
-    , InterconnectDiagnosticsLinkOpticalPowerState (..)
-
-    -- * OperationAggregatedList
-    , OperationAggregatedList
-    , operationAggregatedList
-    , oalNextPageToken
-    , oalKind
-    , oalItems
-    , oalSelfLink
-    , oalWarning
-    , oalId
-
-    -- * OperationsScopedList
-    , OperationsScopedList
-    , operationsScopedList
-    , oslWarning
-    , oslOperations
-
-    -- * NamedPort
-    , NamedPort
-    , namedPort
-    , npName
-    , npPort
-
-    -- * NetworkEndpointGroupsListEndpointsRequest
-    , NetworkEndpointGroupsListEndpointsRequest
-    , networkEndpointGroupsListEndpointsRequest
-    , neglerHealthStatus
-
-    -- * InterconnectLocationListWarningCode
-    , InterconnectLocationListWarningCode (..)
-
-    -- * InstanceGroupsListInstancesWarningCode
-    , InstanceGroupsListInstancesWarningCode (..)
-
-    -- * RegionInstanceGroupsListInstancesRequestInstanceState
-    , RegionInstanceGroupsListInstancesRequestInstanceState (..)
-
-    -- * SubnetworkAggregatedListWarningDataItem
-    , SubnetworkAggregatedListWarningDataItem
-    , subnetworkAggregatedListWarningDataItem
-    , salwdiValue
-    , salwdiKey
-
-    -- * ProjectXpnProjectStatus
-    , ProjectXpnProjectStatus (..)
-
-    -- * InterconnectDiagnosticsLinkStatus
-    , InterconnectDiagnosticsLinkStatus
-    , interconnectDiagnosticsLinkStatus
-    , idlsLacpStatus
-    , idlsReceivingOpticalPower
-    , idlsGoogleDemarc
-    , idlsCircuitId
-    , idlsArpCaches
-    , idlsTransmittingOpticalPower
-
-    -- * BackendServiceReference
-    , BackendServiceReference
-    , backendServiceReference
-    , bsrBackendService
-
-    -- * NetworkEndpointGroupAggregatedListWarningDataItem
-    , NetworkEndpointGroupAggregatedListWarningDataItem
-    , networkEndpointGroupAggregatedListWarningDataItem
-    , negalwdiValue
-    , negalwdiKey
-
-    -- * SSLHealthCheckPortSpecification
-    , SSLHealthCheckPortSpecification (..)
-
-    -- * TargetInstanceList
-    , TargetInstanceList
-    , targetInstanceList
-    , tilNextPageToken
-    , tilKind
-    , tilItems
-    , tilSelfLink
-    , tilWarning
-    , tilId
-
-    -- * TargetTCPProxyListWarning
-    , TargetTCPProxyListWarning
-    , targetTCPProxyListWarning
-    , ttplwData
-    , ttplwCode
-    , ttplwMessage
-
-    -- * InstanceGroupManagerAggregatedList
-    , InstanceGroupManagerAggregatedList
-    , instanceGroupManagerAggregatedList
-    , igmalNextPageToken
-    , igmalKind
-    , igmalItems
-    , igmalSelfLink
-    , igmalWarning
-    , igmalId
-
-    -- * BackendBucket
-    , BackendBucket
-    , backendBucket
-    , bbKind
-    , bbEnableCdn
-    , bbBucketName
-    , bbCdnPolicy
-    , bbSelfLink
-    , bbName
-    , bbCreationTimestamp
-    , bbId
-    , bbDescription
-
-    -- * AccessConfigNetworkTier
-    , AccessConfigNetworkTier (..)
-
-    -- * ProjectsEnableXpnResourceRequest
-    , ProjectsEnableXpnResourceRequest
-    , projectsEnableXpnResourceRequest
-    , pexrrXpnResource
-
-    -- * ConditionSys
-    , ConditionSys (..)
-
-    -- * ImageSourceType
-    , ImageSourceType (..)
-
-    -- * TargetPoolsScopedList
-    , TargetPoolsScopedList
-    , targetPoolsScopedList
-    , tpslWarning
-    , tpslTargetPools
-
-    -- * InterconnectAttachmentAggregatedListItems
-    , InterconnectAttachmentAggregatedListItems
-    , interconnectAttachmentAggregatedListItems
-    , iaaliAddtional
-
-    -- * InstanceGroupManagerAutoHealingPolicy
-    , InstanceGroupManagerAutoHealingPolicy
-    , instanceGroupManagerAutoHealingPolicy
-    , igmahpHealthCheck
-    , igmahpInitialDelaySec
-
-    -- * LogConfigCounterOptions
-    , LogConfigCounterOptions
-    , logConfigCounterOptions
-    , lccoField
-    , lccoMetric
-
-    -- * SubnetworkAggregatedListWarningCode
-    , SubnetworkAggregatedListWarningCode (..)
-
-    -- * InstancesSetMinCPUPlatformRequest
-    , InstancesSetMinCPUPlatformRequest
-    , instancesSetMinCPUPlatformRequest
-    , ismcprMinCPUPlatform
-
-    -- * NetworkEndpointGroupAggregatedListWarningCode
-    , NetworkEndpointGroupAggregatedListWarningCode (..)
-
-    -- * ForwardingRuleAggregatedList
-    , ForwardingRuleAggregatedList
-    , forwardingRuleAggregatedList
-    , fralNextPageToken
-    , fralKind
-    , fralItems
-    , fralSelfLink
-    , fralWarning
-    , fralId
-
-    -- * TargetReference
-    , TargetReference
-    , targetReference
-    , trTarget
-
-    -- * TargetPoolAggregatedList
-    , TargetPoolAggregatedList
-    , targetPoolAggregatedList
-    , tpalNextPageToken
-    , tpalKind
-    , tpalItems
-    , tpalSelfLink
-    , tpalWarning
-    , tpalId
-
-    -- * OperationsScopedListWarningDataItem
-    , OperationsScopedListWarningDataItem
-    , operationsScopedListWarningDataItem
-    , oslwdiValue
-    , oslwdiKey
-
-    -- * BackendServiceSessionAffinity
-    , BackendServiceSessionAffinity (..)
-
-    -- * GlobalSetLabelsRequest
-    , GlobalSetLabelsRequest
-    , globalSetLabelsRequest
-    , gslrLabels
-    , gslrLabelFingerprint
-
-    -- * TargetPool
-    , TargetPool
-    , targetPool
-    , tpSessionAffinity
-    , tpBackupPool
-    , tpKind
-    , tpSelfLink
-    , tpName
-    , tpCreationTimestamp
-    , tpInstances
-    , tpId
-    , tpFailoverRatio
-    , tpRegion
-    , tpDescription
-    , tpHealthChecks
-
-    -- * ImageList
-    , ImageList
-    , imageList
-    , ilNextPageToken
-    , ilKind
-    , ilItems
-    , ilSelfLink
-    , ilWarning
-    , ilId
-
-    -- * OperationAggregatedListWarningDataItem
-    , OperationAggregatedListWarningDataItem
-    , operationAggregatedListWarningDataItem
-    , oalwdiValue
-    , oalwdiKey
-
-    -- * ForwardingRuleListWarning
-    , ForwardingRuleListWarning
-    , forwardingRuleListWarning
-    , frlwData
-    , frlwCode
-    , frlwMessage
-
-    -- * VPNTunnelsScopedListWarning
-    , VPNTunnelsScopedListWarning
-    , vpnTunnelsScopedListWarning
-    , vtslwData
-    , vtslwCode
-    , vtslwMessage
-
-    -- * RegionDisksResizeRequest
-    , RegionDisksResizeRequest
-    , regionDisksResizeRequest
-    , rdrrSizeGb
-
-    -- * NodeTypesScopedListWarning
-    , NodeTypesScopedListWarning
-    , nodeTypesScopedListWarning
-    , ntslwData
-    , ntslwCode
-    , ntslwMessage
-
-    -- * NodeTemplateNodeTypeFlexibility
-    , NodeTemplateNodeTypeFlexibility
-    , nodeTemplateNodeTypeFlexibility
-    , ntntfMemory
-    , ntntfCPUs
-    , ntntfLocalSsd
-
-    -- * ForwardingRulesScopedListWarningCode
-    , ForwardingRulesScopedListWarningCode (..)
-
-    -- * HealthStatusForNetworkEndpointHealthState
-    , HealthStatusForNetworkEndpointHealthState (..)
-
-    -- * LicenseResourceRequirements
-    , LicenseResourceRequirements
-    , licenseResourceRequirements
-    , lrrMinMemoryMb
-    , lrrMinGuestCPUCount
-
-    -- * RegionDiskTypeListWarning
-    , RegionDiskTypeListWarning
-    , regionDiskTypeListWarning
-    , rdtlwData
-    , rdtlwCode
-    , rdtlwMessage
-
-    -- * OperationsScopedListWarningCode
-    , OperationsScopedListWarningCode (..)
-
-    -- * OperationAggregatedListWarningCode
-    , OperationAggregatedListWarningCode (..)
-
-    -- * TargetSSLProxiesSetBackendServiceRequest
-    , TargetSSLProxiesSetBackendServiceRequest
-    , targetSSLProxiesSetBackendServiceRequest
-    , tspsbsrService
-
-    -- * ForwardingRule
-    , ForwardingRule
-    , forwardingRule
-    , frNetworkTier
-    , frIPAddress
-    , frLoadBalancingScheme
-    , frKind
-    , frIPVersion
-    , frAllPorts
-    , frNetwork
-    , frPortRange
-    , frSelfLink
-    , frName
-    , frIPProtocol
-    , frCreationTimestamp
-    , frServiceName
-    , frSubnetwork
-    , frPorts
-    , frId
-    , frRegion
-    , frServiceLabel
-    , frDescription
-    , frTarget
-    , frBackendService
-
-    -- * URLMapList
-    , URLMapList
-    , urlMapList
-    , umlNextPageToken
-    , umlKind
-    , umlItems
-    , umlSelfLink
-    , umlWarning
-    , umlId
-
-    -- * ForwardingRulesScopedListWarningDataItem
-    , ForwardingRulesScopedListWarningDataItem
-    , forwardingRulesScopedListWarningDataItem
-    , frslwdiValue
-    , frslwdiKey
-
-    -- * TargetInstanceAggregatedListWarning
-    , TargetInstanceAggregatedListWarning
-    , targetInstanceAggregatedListWarning
-    , tialwData
-    , tialwCode
-    , tialwMessage
-
-    -- * InstanceGroupManagersScopedListWarningDataItem
-    , InstanceGroupManagersScopedListWarningDataItem
-    , instanceGroupManagersScopedListWarningDataItem
-    , igmslwdiValue
-    , igmslwdiKey
-
-    -- * SubnetworksScopedList
-    , SubnetworksScopedList
-    , subnetworksScopedList
-    , sslSubnetworks
-    , sslWarning
-
-    -- * NetworkEndpointGroupsScopedList
-    , NetworkEndpointGroupsScopedList
-    , networkEndpointGroupsScopedList
-    , negslNetworkEndpointGroups
-    , negslWarning
-
-    -- * DiskAggregatedListWarningCode
-    , DiskAggregatedListWarningCode (..)
-
-    -- * AcceleratorTypeList
-    , AcceleratorTypeList
-    , acceleratorTypeList
-    , atlNextPageToken
-    , atlKind
-    , atlItems
-    , atlSelfLink
-    , atlWarning
-    , atlId
-
-    -- * DiskAggregatedListWarningDataItem
-    , DiskAggregatedListWarningDataItem
-    , diskAggregatedListWarningDataItem
-    , dalwdiValue
-    , dalwdiKey
-
-    -- * TargetPoolListWarning
-    , TargetPoolListWarning
-    , targetPoolListWarning
-    , tplwData
-    , tplwCode
-    , tplwMessage
-
-    -- * UsableSubnetworksAggregatedListWarningCode
-    , UsableSubnetworksAggregatedListWarningCode (..)
-
-    -- * NodeTemplatesScopedListWarning
-    , NodeTemplatesScopedListWarning
-    , nodeTemplatesScopedListWarning
-    , nData
-    , nCode
-    , nMessage
-
-    -- * TargetPoolAggregatedListWarningDataItem
-    , TargetPoolAggregatedListWarningDataItem
-    , targetPoolAggregatedListWarningDataItem
-    , tpalwdiValue
-    , tpalwdiKey
-
-    -- * DisksScopedListWarningCode
-    , DisksScopedListWarningCode (..)
-
-    -- * Project
-    , Project
-    , project
-    , pXpnProjectStatus
-    , pKind
-    , pUsageExportLocation
-    , pSelfLink
-    , pName
-    , pDefaultServiceAccount
-    , pDefaultNetworkTier
-    , pCreationTimestamp
-    , pEnabledFeatures
-    , pQuotas
-    , pId
-    , pDescription
-    , pCommonInstanceMetadata
-
-    -- * RegionInstanceGroupManagersListInstancesResponse
-    , RegionInstanceGroupManagersListInstancesResponse
-    , regionInstanceGroupManagersListInstancesResponse
-    , rigmlirManagedInstances
-
-    -- * Operation
-    , Operation
-    , operation
-    , oTargetId
-    , oStatus
-    , oInsertTime
-    , oProgress
-    , oStartTime
-    , oKind
-    , oError
-    , oHTTPErrorMessage
-    , oZone
-    , oWarnings
-    , oHTTPErrorStatusCode
-    , oUser
-    , oSelfLink
-    , oName
-    , oStatusMessage
-    , oCreationTimestamp
-    , oEndTime
-    , oId
-    , oOperationType
-    , oRegion
-    , oDescription
-    , oTargetLink
-    , oClientOperationId
-
-    -- * NetworkEndpoint
-    , NetworkEndpoint
-    , networkEndpoint
-    , neIPAddress
-    , nePort
-    , neInstance
-
-    -- * DisksScopedListWarningDataItem
-    , DisksScopedListWarningDataItem
-    , disksScopedListWarningDataItem
-    , dslwdiValue
-    , dslwdiKey
-
-    -- * InstanceGroupManagersScopedListWarningCode
-    , InstanceGroupManagersScopedListWarningCode (..)
-
-    -- * Disk
-    , Disk
-    , disk
-    , dStatus
-    , dSourceSnapshotId
-    , dLastAttachTimestamp
-    , dUsers
-    , dSourceImage
-    , dReplicaZones
-    , dDiskEncryptionKey
-    , dSizeGb
-    , dKind
-    , dLastDetachTimestamp
-    , dGuestOSFeatures
-    , dZone
-    , dSelfLink
-    , dName
-    , dSourceImageId
-    , dCreationTimestamp
-    , dSourceImageEncryptionKey
-    , dLicenseCodes
-    , dId
-    , dLabels
-    , dLicenses
-    , dRegion
-    , dOptions
-    , dPhysicalBlockSizeBytes
-    , dType
-    , dLabelFingerprint
-    , dDescription
-    , dSourceSnapshotEncryptionKey
-    , dSourceSnapshot
-
-    -- * UsableSubnetworksAggregatedListWarningDataItem
-    , UsableSubnetworksAggregatedListWarningDataItem
-    , usableSubnetworksAggregatedListWarningDataItem
-    , usalwdiValue
-    , usalwdiKey
-
-    -- * NodeGroupList
-    , NodeGroupList
-    , nodeGroupList
-    , nglNextPageToken
-    , nglKind
-    , nglItems
-    , nglSelfLink
-    , nglWarning
-    , nglId
-
-    -- * SSLPolicyWarningsItemCode
-    , SSLPolicyWarningsItemCode (..)
-
-    -- * DiskMoveRequest
-    , DiskMoveRequest
-    , diskMoveRequest
-    , dmrTargetDisk
-    , dmrDestinationZone
-
-    -- * ForwardingRuleAggregatedListWarningCode
-    , ForwardingRuleAggregatedListWarningCode (..)
-
-    -- * SSLPolicyWarningsItemDataItem
-    , SSLPolicyWarningsItemDataItem
-    , sslPolicyWarningsItemDataItem
-    , spwidiValue
-    , spwidiKey
-
-    -- * AutoscalingPolicyLoadBalancingUtilization
-    , AutoscalingPolicyLoadBalancingUtilization
-    , autoscalingPolicyLoadBalancingUtilization
-    , aplbuUtilizationTarget
-
-    -- * TargetPoolAggregatedListWarningCode
-    , TargetPoolAggregatedListWarningCode (..)
-
-    -- * NetworkEndpointGroupsListNetworkEndpoints
-    , NetworkEndpointGroupsListNetworkEndpoints
-    , networkEndpointGroupsListNetworkEndpoints
-    , neglneNextPageToken
-    , neglneKind
-    , neglneItems
-    , neglneWarning
-    , neglneId
-
-    -- * ForwardingRuleAggregatedListWarningDataItem
-    , ForwardingRuleAggregatedListWarningDataItem
-    , forwardingRuleAggregatedListWarningDataItem
-    , fralwdiValue
-    , fralwdiKey
-
-    -- * TargetPoolsScopedListWarningDataItem
-    , TargetPoolsScopedListWarningDataItem
-    , targetPoolsScopedListWarningDataItem
-    , tpslwdiValue
-    , tpslwdiKey
-
-    -- * InstanceGroupManager
-    , InstanceGroupManager
-    , instanceGroupManager
-    , igmStatus
-    , igmKind
-    , igmFingerprint
-    , igmBaseInstanceName
-    , igmZone
-    , igmAutoHealingPolicies
-    , igmVersions
-    , igmInstanceTemplate
-    , igmUpdatePolicy
-    , igmTargetSize
-    , igmSelfLink
-    , igmCurrentActions
-    , igmName
-    , igmCreationTimestamp
-    , igmDistributionPolicy
-    , igmId
-    , igmRegion
-    , igmTargetPools
-    , igmDescription
-    , igmInstanceGroup
-    , igmNamedPorts
-
-    -- * InstanceGroupManagerListWarning
-    , InstanceGroupManagerListWarning
-    , instanceGroupManagerListWarning
-    , igmlwData
-    , igmlwCode
-    , igmlwMessage
-
-    -- * RegionInstanceGroupsListInstances
-    , RegionInstanceGroupsListInstances
-    , regionInstanceGroupsListInstances
-    , rigliNextPageToken
-    , rigliKind
-    , rigliItems
-    , rigliSelfLink
-    , rigliWarning
-    , rigliId
-
-    -- * DiskListWarning
-    , DiskListWarning
-    , diskListWarning
-    , dlwData
-    , dlwCode
-    , dlwMessage
-
-    -- * TCPHealthCheck
-    , TCPHealthCheck
-    , tcpHealthCheck
-    , thcResponse
-    , thcPortSpecification
-    , thcProxyHeader
-    , thcPortName
-    , thcPort
-    , thcRequest
-
-    -- * InstanceGroupManagerAggregatedListWarningDataItem
-    , InstanceGroupManagerAggregatedListWarningDataItem
-    , instanceGroupManagerAggregatedListWarningDataItem
-    , igmalwdiValue
-    , igmalwdiKey
-
-    -- * TestPermissionsResponse
-    , TestPermissionsResponse
-    , testPermissionsResponse
-    , tprPermissions
-
-    -- * TargetPoolsScopedListWarningCode
-    , TargetPoolsScopedListWarningCode (..)
-
-    -- * RegionAutoscalerListWarning
-    , RegionAutoscalerListWarning
-    , regionAutoscalerListWarning
-    , ralwData
-    , ralwCode
-    , ralwMessage
-
-    -- * TargetInstanceListWarningCode
-    , TargetInstanceListWarningCode (..)
-
-    -- * InterconnectLocationRegionInfoLocationPresence
-    , InterconnectLocationRegionInfoLocationPresence (..)
-
-    -- * SSLHealthCheckProxyHeader
-    , SSLHealthCheckProxyHeader (..)
-
-    -- * TargetVPNGatewayStatus
-    , TargetVPNGatewayStatus (..)
-
-    -- * TargetInstanceListWarningDataItem
-    , TargetInstanceListWarningDataItem
-    , targetInstanceListWarningDataItem
-    , tilwdiValue
-    , tilwdiKey
-
-    -- * InstanceGroupManagerAggregatedListWarningCode
-    , InstanceGroupManagerAggregatedListWarningCode (..)
-
-    -- * OperationListWarning
-    , OperationListWarning
-    , operationListWarning
-    , olwData
-    , olwCode
-    , olwMessage
-
-    -- * InstanceGroupsRemoveInstancesRequest
-    , InstanceGroupsRemoveInstancesRequest
-    , instanceGroupsRemoveInstancesRequest
-    , igrirInstances
-
-    -- * InterconnectAttachmentPartnerMetadata
-    , InterconnectAttachmentPartnerMetadata
-    , interconnectAttachmentPartnerMetadata
-    , iapmPortalURL
-    , iapmInterconnectName
-    , iapmPartnerName
-
-    -- * SnapshotStatus
-    , SnapshotStatus (..)
-
-    -- * SecurityPolicyRuleMatcherVersionedExpr
-    , SecurityPolicyRuleMatcherVersionedExpr (..)
-
-    -- * MachineTypeListWarningDataItem
-    , MachineTypeListWarningDataItem
-    , machineTypeListWarningDataItem
-    , mtlwdiValue
-    , mtlwdiKey
-
-    -- * NetworksRemovePeeringRequest
-    , NetworksRemovePeeringRequest
-    , networksRemovePeeringRequest
-    , nrprName
-
-    -- * TargetHTTPProxyListWarningDataItem
-    , TargetHTTPProxyListWarningDataItem
-    , targetHTTPProxyListWarningDataItem
-    , thttpplwdiValue
-    , thttpplwdiKey
-
-    -- * MachineTypeAggregatedListWarning
-    , MachineTypeAggregatedListWarning
-    , machineTypeAggregatedListWarning
-    , mtalwData
-    , mtalwCode
-    , mtalwMessage
-
-    -- * AutoscalerListWarningCode
-    , AutoscalerListWarningCode (..)
-
-    -- * NodeTemplateAggregatedListWarningDataItem
-    , NodeTemplateAggregatedListWarningDataItem
-    , nodeTemplateAggregatedListWarningDataItem
-    , ntalwdiValue
-    , ntalwdiKey
-
-    -- * BackendBucketList
-    , BackendBucketList
-    , backendBucketList
-    , bblNextPageToken
-    , bblKind
-    , bblItems
-    , bblSelfLink
-    , bblWarning
-    , bblId
-
-    -- * InterconnectAttachmentPrivateInfo
-    , InterconnectAttachmentPrivateInfo
-    , interconnectAttachmentPrivateInfo
-    , iapiTag8021q
-
-    -- * AcceleratorTypesScopedList
-    , AcceleratorTypesScopedList
-    , acceleratorTypesScopedList
-    , atslAcceleratorTypes
-    , atslWarning
-
-    -- * BackendServiceCdnPolicy
-    , BackendServiceCdnPolicy
-    , backendServiceCdnPolicy
-    , bscpSignedURLCacheMaxAgeSec
-    , bscpSignedURLKeyNames
-    , bscpCacheKeyPolicy
-
-    -- * DiskTypeListWarningCode
-    , DiskTypeListWarningCode (..)
-
-    -- * RouteWarningsItemDataItem
-    , RouteWarningsItemDataItem
-    , routeWarningsItemDataItem
-    , rwidiValue
-    , rwidiKey
-
-    -- * NodeGroupAggregatedList
-    , NodeGroupAggregatedList
-    , nodeGroupAggregatedList
-    , ngalNextPageToken
-    , ngalKind
-    , ngalItems
-    , ngalSelfLink
-    , ngalWarning
-    , ngalId
-
-    -- * AddressPurpose
-    , AddressPurpose (..)
-
-    -- * NodeTypeAggregatedListWarningCode
-    , NodeTypeAggregatedListWarningCode (..)
-
-    -- * TargetInstancesScopedListWarningCode
-    , TargetInstancesScopedListWarningCode (..)
-
-    -- * VPNTunnelListWarning
-    , VPNTunnelListWarning
-    , vpnTunnelListWarning
-    , vtlwData
-    , vtlwCode
-    , vtlwMessage
-
-    -- * BackendServiceAggregatedListItems
-    , BackendServiceAggregatedListItems
-    , backendServiceAggregatedListItems
-    , bsaliAddtional
-
-    -- * VPNTunnelAggregatedListWarningCode
-    , VPNTunnelAggregatedListWarningCode (..)
-
-    -- * InstanceAggregatedListItems
-    , InstanceAggregatedListItems
-    , instanceAggregatedListItems
-    , ialiAddtional
-
-    -- * AutoscalersScopedListWarning
-    , AutoscalersScopedListWarning
-    , autoscalersScopedListWarning
-    , aslwData
-    , aslwCode
-    , aslwMessage
-
-    -- * DiskInstantiationConfig
-    , DiskInstantiationConfig
-    , diskInstantiationConfig
-    , dicAutoDelete
-    , dicInstantiateFrom
-    , dicCustomImage
-    , dicDeviceName
-
-    -- * DiskTypeAggregatedListWarning
-    , DiskTypeAggregatedListWarning
-    , diskTypeAggregatedListWarning
-    , dtalwData
-    , dtalwCode
-    , dtalwMessage
-
-    -- * DiskTypeListWarningDataItem
-    , DiskTypeListWarningDataItem
-    , diskTypeListWarningDataItem
-    , dtlwdiValue
-    , dtlwdiKey
-
-    -- * SecurityPolicyRule
-    , SecurityPolicyRule
-    , securityPolicyRule
-    , sprPriority
-    , sprKind
-    , sprAction
-    , sprPreview
-    , sprMatch
-    , sprDescription
-
-    -- * InterconnectsGetDiagnosticsResponse
-    , InterconnectsGetDiagnosticsResponse
-    , interconnectsGetDiagnosticsResponse
-    , igdrResult
-
-    -- * VPNTunnelAggregatedListWarningDataItem
-    , VPNTunnelAggregatedListWarningDataItem
-    , vpnTunnelAggregatedListWarningDataItem
-    , vtalwdiValue
-    , vtalwdiKey
-
-    -- * FixedOrPercent
-    , FixedOrPercent
-    , fixedOrPercent
-    , fopCalculated
-    , fopPercent
-    , fopFixed
-
-    -- * FirewallLogConfig
-    , FirewallLogConfig
-    , firewallLogConfig
-    , flcEnable
-
-    -- * ShieldedInstanceIntegrityPolicy
-    , ShieldedInstanceIntegrityPolicy
-    , shieldedInstanceIntegrityPolicy
-    , siipUpdateAutoLearnPolicy
-
-    -- * TargetHTTPProxyListWarningCode
-    , TargetHTTPProxyListWarningCode (..)
-
-    -- * RouterNAT
-    , RouterNAT
-    , routerNAT
-    , rnatNATIPAllocateOption
-    , rnatICMPIdleTimeoutSec
-    , rnatUdpIdleTimeoutSec
-    , rnatNATIPs
-    , rnatSubnetworks
-    , rnatMinPortsPerVM
-    , rnatName
-    , rnatSourceSubnetworkIPRangesToNAT
-    , rnatTCPEstablishedIdleTimeoutSec
-    , rnatTCPTransitoryIdleTimeoutSec
-
-    -- * AutoscalerAggregatedListWarning
-    , AutoscalerAggregatedListWarning
-    , autoscalerAggregatedListWarning
-    , aalwData
-    , aalwCode
-    , aalwMessage
-
-    -- * AutoscalerListWarningDataItem
-    , AutoscalerListWarningDataItem
-    , autoscalerListWarningDataItem
-    , alwdiValue
-    , alwdiKey
-
-    -- * MachineTypeListWarningCode
-    , MachineTypeListWarningCode (..)
-
-    -- * NodeTypeListWarning
-    , NodeTypeListWarning
-    , nodeTypeListWarning
-    , ntlwData
-    , ntlwCode
-    , ntlwMessage
-
-    -- * HealthCheckList
-    , HealthCheckList
-    , healthCheckList
-    , hclNextPageToken
-    , hclKind
-    , hclItems
-    , hclSelfLink
-    , hclWarning
-    , hclId
-
-    -- * ManagedInstanceLastAttemptErrors
-    , ManagedInstanceLastAttemptErrors
-    , managedInstanceLastAttemptErrors
-    , milaeErrors
-
-    -- * GuestOSFeatureType
-    , GuestOSFeatureType (..)
-
-    -- * RouteWarningsItemCode
-    , RouteWarningsItemCode (..)
-
-    -- * RouterStatusNATStatus
-    , RouterStatusNATStatus
-    , routerStatusNATStatus
-    , rsnatsUserAllocatedNATIPResources
-    , rsnatsName
-    , rsnatsAutoAllocatedNATIPs
-    , rsnatsMinExtraNATIPsNeeded
-    , rsnatsNumVMEndpointsWithNATMAppings
-    , rsnatsUserAllocatedNATIPs
-
-    -- * TargetPoolsRemoveInstanceRequest
-    , TargetPoolsRemoveInstanceRequest
-    , targetPoolsRemoveInstanceRequest
-    , tprirInstances
-
-    -- * NodeTypeAggregatedListWarningDataItem
-    , NodeTypeAggregatedListWarningDataItem
-    , nodeTypeAggregatedListWarningDataItem
-    , nValue
-    , nKey
-
-    -- * TargetInstancesScopedListWarningDataItem
-    , TargetInstancesScopedListWarningDataItem
-    , targetInstancesScopedListWarningDataItem
-    , tislwdiValue
-    , tislwdiKey
-
-    -- * MachineTypesScopedListWarning
-    , MachineTypesScopedListWarning
-    , machineTypesScopedListWarning
-    , mtslwData
-    , mtslwCode
-    , mtslwMessage
-
-    -- * ZoneSetLabelsRequest
-    , ZoneSetLabelsRequest
-    , zoneSetLabelsRequest
-    , zslrLabels
-    , zslrLabelFingerprint
-
-    -- * TargetInstance
-    , TargetInstance
-    , targetInstance
-    , tiKind
-    , tiNATPolicy
-    , tiZone
-    , tiSelfLink
-    , tiName
-    , tiCreationTimestamp
-    , tiId
-    , tiDescription
-    , tiInstance
-
-    -- * TargetPoolInstanceHealth
-    , TargetPoolInstanceHealth
-    , targetPoolInstanceHealth
-    , tpihKind
-    , tpihHealthStatus
-
-    -- * RouterBGPPeerAdvertiseMode
-    , RouterBGPPeerAdvertiseMode (..)
-
-    -- * RegionInstanceGroupManagerListWarningCode
-    , RegionInstanceGroupManagerListWarningCode (..)
-
-    -- * AcceleratorTypeAggregatedList
-    , AcceleratorTypeAggregatedList
-    , acceleratorTypeAggregatedList
-    , atalNextPageToken
-    , atalKind
-    , atalItems
-    , atalSelfLink
-    , atalWarning
-    , atalId
-
-    -- * SnapshotStorageBytesStatus
-    , SnapshotStorageBytesStatus (..)
-
-    -- * NetworkRoutingConfig
-    , NetworkRoutingConfig
-    , networkRoutingConfig
-    , nrcRoutingMode
-
-    -- * NodeTemplateListWarning
-    , NodeTemplateListWarning
-    , nodeTemplateListWarning
-    , nodData
-    , nodCode
-    , nodMessage
-
-    -- * InstanceGroupManagersListManagedInstancesResponse
-    , InstanceGroupManagersListManagedInstancesResponse
-    , instanceGroupManagersListManagedInstancesResponse
-    , igmlmirManagedInstances
-
-    -- * InstanceProperties
-    , InstanceProperties
-    , instanceProperties
-    , ipServiceAccounts
-    , ipNetworkInterfaces
-    , ipGuestAccelerators
-    , ipMachineType
-    , ipMetadata
-    , ipShieldedInstanceConfig
-    , ipLabels
-    , ipScheduling
-    , ipMinCPUPlatform
-    , ipDisks
-    , ipCanIPForward
-    , ipDescription
-    , ipTags
-
-    -- * ProjectsListXpnHostsRequest
-    , ProjectsListXpnHostsRequest
-    , projectsListXpnHostsRequest
-    , plxhrOrganization
-
-    -- * RegionListWarning
-    , RegionListWarning
-    , regionListWarning
-    , rlwData
-    , rlwCode
-    , rlwMessage
-
-    -- * HTTP2HealthCheck
-    , HTTP2HealthCheck
-    , hTTP2HealthCheck
-    , httphcResponse
-    , httphcPortSpecification
-    , httphcRequestPath
-    , httphcHost
-    , httphcProxyHeader
-    , httphcPortName
-    , httphcPort
-
-    -- * NodeTemplateAggregatedListWarningCode
-    , NodeTemplateAggregatedListWarningCode (..)
-
-    -- * NodeGroupsScopedList
-    , NodeGroupsScopedList
-    , nodeGroupsScopedList
-    , ngslNodeGroups
-    , ngslWarning
-
-    -- * DiskTypesScopedListWarning
-    , DiskTypesScopedListWarning
-    , diskTypesScopedListWarning
-    , dtslwData
-    , dtslwCode
-    , dtslwMessage
-
-    -- * RegionInstanceGroupManagerListWarningDataItem
-    , RegionInstanceGroupManagerListWarningDataItem
-    , regionInstanceGroupManagerListWarningDataItem
-    , rigmlwdiValue
-    , rigmlwdiKey
-
-    -- * RuleAction
-    , RuleAction (..)
-
-    -- * AddressesScopedListWarningCode
-    , AddressesScopedListWarningCode (..)
-
-    -- * AttachedDiskInitializeParams
-    , AttachedDiskInitializeParams
-    , attachedDiskInitializeParams
-    , adipSourceImage
-    , adipDiskSizeGb
-    , adipDiskName
-    , adipSourceImageEncryptionKey
-    , adipDiskType
-    , adipLabels
-    , adipDescription
-
-    -- * UsableSubnetworkSecondaryRange
-    , UsableSubnetworkSecondaryRange
-    , usableSubnetworkSecondaryRange
-    , ussrRangeName
-    , ussrIPCIdRRange
-
-    -- * NetworkEndpointGroupsAttachEndpointsRequest
-    , NetworkEndpointGroupsAttachEndpointsRequest
-    , networkEndpointGroupsAttachEndpointsRequest
-    , negaerNetworkEndpoints
-
-    -- * AddressesScopedListWarningDataItem
-    , AddressesScopedListWarningDataItem
-    , addressesScopedListWarningDataItem
-    , aslwdiValue
-    , aslwdiKey
-
-    -- * ImageStatus
-    , ImageStatus (..)
-
-    -- * InstanceGroupListWarningCode
-    , InstanceGroupListWarningCode (..)
-
-    -- * InstanceGroupListWarningDataItem
-    , InstanceGroupListWarningDataItem
-    , instanceGroupListWarningDataItem
-    , iglwdiValue
-    , iglwdiKey
-
-    -- * NetworkInterface
-    , NetworkInterface
-    , networkInterface
-    , niKind
-    , niFingerprint
-    , niAliasIPRanges
-    , niNetwork
-    , niName
-    , niNetworkIP
-    , niSubnetwork
-    , niAccessConfigs
-
-    -- * FirewallListWarningCode
-    , FirewallListWarningCode (..)
-
-    -- * RouterListWarning
-    , RouterListWarning
-    , routerListWarning
-    , rData
-    , rCode
-    , rMessage
-
-    -- * FirewallListWarningDataItem
-    , FirewallListWarningDataItem
-    , firewallListWarningDataItem
-    , flwdiValue
-    , flwdiKey
-
-    -- * InterconnectAttachmentType
-    , InterconnectAttachmentType (..)
-
-    -- * TargetPoolsRemoveHealthCheckRequest
-    , TargetPoolsRemoveHealthCheckRequest
-    , targetPoolsRemoveHealthCheckRequest
-    , tprhcrHealthChecks
-
-    -- * AutoscalerStatusDetailsType
-    , AutoscalerStatusDetailsType (..)
-
-    -- * FirewallDirection
-    , FirewallDirection (..)
-
-    -- * NodeGroupNodeStatus
-    , NodeGroupNodeStatus (..)
-
-    -- * TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride
-    , TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride (..)
-
-    -- * RegionInstanceGroupManagersSetTargetPoolsRequest
-    , RegionInstanceGroupManagersSetTargetPoolsRequest
-    , regionInstanceGroupManagersSetTargetPoolsRequest
-    , rigmstprFingerprint
-    , rigmstprTargetPools
-
-    -- * BackendBucketCdnPolicy
-    , BackendBucketCdnPolicy
-    , backendBucketCdnPolicy
-    , bbcpSignedURLCacheMaxAgeSec
-    , bbcpSignedURLKeyNames
-
-    -- * TargetSSLProxyList
-    , TargetSSLProxyList
-    , targetSSLProxyList
-    , tsplNextPageToken
-    , tsplKind
-    , tsplItems
-    , tsplSelfLink
-    , tsplWarning
-    , tsplId
-
-    -- * CustomerEncryptionKeyProtectedDisk
-    , CustomerEncryptionKeyProtectedDisk
-    , customerEncryptionKeyProtectedDisk
-    , cekpdDiskEncryptionKey
-    , cekpdSource
-
-    -- * HealthStatusHealthState
-    , HealthStatusHealthState (..)
-
-    -- * InstanceTemplateList
-    , InstanceTemplateList
-    , instanceTemplateList
-    , itlNextPageToken
-    , itlKind
-    , itlItems
-    , itlSelfLink
-    , itlWarning
-    , itlId
-
-    -- * Reference
-    , Reference
-    , reference
-    , refKind
-    , refReferrer
-    , refReferenceType
-    , refTarget
-
-    -- * InstanceGroupAggregatedListWarning
-    , InstanceGroupAggregatedListWarning
-    , instanceGroupAggregatedListWarning
-    , igalwData
-    , igalwCode
-    , igalwMessage
-
-    -- * RouteList
-    , RouteList
-    , routeList
-    , rlNextPageToken
-    , rlKind
-    , rlItems
-    , rlSelfLink
-    , rlWarning
-    , rlId
-
-    -- * DeprecationStatusState
-    , DeprecationStatusState (..)
-
-    -- * InstanceListReferrers
-    , InstanceListReferrers
-    , instanceListReferrers
-    , ilrNextPageToken
-    , ilrKind
-    , ilrItems
-    , ilrSelfLink
-    , ilrWarning
-    , ilrId
-
-    -- * NodeGroupStatus
-    , NodeGroupStatus (..)
-
-    -- * Router
-    , Router
-    , router
-    , rouBGPPeers
-    , rouBGP
-    , rouKind
-    , rouNetwork
-    , rouInterfaces
-    , rouSelfLink
-    , rouName
-    , rouCreationTimestamp
-    , rouId
-    , rouRegion
-    , rouNATs
-    , rouDescription
-
-    -- * RouterAggregatedListWarningCode
-    , RouterAggregatedListWarningCode (..)
-
-    -- * RoutersScopedListWarningCode
-    , RoutersScopedListWarningCode (..)
-
-    -- * RouterAggregatedListWarningDataItem
-    , RouterAggregatedListWarningDataItem
-    , routerAggregatedListWarningDataItem
-    , ralwdiValue
-    , ralwdiKey
-
-    -- * TargetHTTPSProxyListWarningCode
-    , TargetHTTPSProxyListWarningCode (..)
-
-    -- * RoutersScopedListWarningDataItem
-    , RoutersScopedListWarningDataItem
-    , routersScopedListWarningDataItem
-    , rslwdiValue
-    , rslwdiKey
-
-    -- * SubnetworksSetPrivateIPGoogleAccessRequest
-    , SubnetworksSetPrivateIPGoogleAccessRequest
-    , subnetworksSetPrivateIPGoogleAccessRequest
-    , sspigarPrivateIPGoogleAccess
-
-    -- * TargetHTTPSProxyListWarningDataItem
-    , TargetHTTPSProxyListWarningDataItem
-    , targetHTTPSProxyListWarningDataItem
-    , thplwdiValue
-    , thplwdiKey
-
-    -- * InterconnectDiagnosticsLinkLACPStatusState
-    , InterconnectDiagnosticsLinkLACPStatusState (..)
-
-    -- * ManagedInstanceCurrentAction
-    , ManagedInstanceCurrentAction (..)
-
-    -- * TargetVPNGatewayList
-    , TargetVPNGatewayList
-    , targetVPNGatewayList
-    , tvglNextPageToken
-    , tvglKind
-    , tvglItems
-    , tvglSelfLink
-    , tvglWarning
-    , tvglId
-
-    -- * TargetInstanceNATPolicy
-    , TargetInstanceNATPolicy (..)
-
-    -- * SSLCertificateList
-    , SSLCertificateList
-    , sslCertificateList
-    , sclNextPageToken
-    , sclKind
-    , sclItems
-    , sclSelfLink
-    , sclWarning
-    , sclId
-
-    -- * FirewallAllowedItem
-    , FirewallAllowedItem
-    , firewallAllowedItem
-    , faiIPProtocol
-    , faiPorts
-
-    -- * RouterAdvertisedIPRange
-    , RouterAdvertisedIPRange
-    , routerAdvertisedIPRange
-    , rairRange
-    , rairDescription
-
-    -- * RouterListWarningDataItem
-    , RouterListWarningDataItem
-    , routerListWarningDataItem
-    , rlwdiValue
-    , rlwdiKey
-
-    -- * Rule
-    , Rule
-    , rule
-    , rAction
-    , rNotIns
-    , rIns
-    , rLogConfigs
-    , rConditions
-    , rPermissions
-    , rDescription
-
-    -- * BackendServiceAggregatedList
-    , BackendServiceAggregatedList
-    , backendServiceAggregatedList
-    , bsalNextPageToken
-    , bsalKind
-    , bsalItems
-    , bsalSelfLink
-    , bsalWarning
-    , bsalId
-
-    -- * Network
-    , Network
-    , network
-    , nAutoCreateSubnetworks
-    , nKind
-    , nRoutingConfig
-    , nSubnetworks
-    , nIPv4Range
-    , nSelfLink
-    , nName
-    , nCreationTimestamp
-    , nId
-    , nGatewayIPv4
-    , nDescription
-    , nPeerings
-
-    -- * RoutersScopedListWarning
-    , RoutersScopedListWarning
-    , routersScopedListWarning
-    , rslwData
-    , rslwCode
-    , rslwMessage
-
-    -- * UsableSubnetwork
-    , UsableSubnetwork
-    , usableSubnetwork
-    , usNetwork
-    , usSecondaryIPRanges
-    , usIPCIdRRange
-    , usSubnetwork
-
-    -- * RouterBGPPeerAdvertisedGroupsItem
-    , RouterBGPPeerAdvertisedGroupsItem (..)
-
-    -- * AccessConfigType
-    , AccessConfigType (..)
-
-    -- * TargetHTTPSProxyListWarning
-    , TargetHTTPSProxyListWarning
-    , targetHTTPSProxyListWarning
-    , thplwData
-    , thplwCode
-    , thplwMessage
-
-    -- * AddressesScopedListWarning
-    , AddressesScopedListWarning
-    , addressesScopedListWarning
-    , aData
-    , aCode
-    , aMessage
-
-    -- * SecurityPolicy
-    , SecurityPolicy
-    , securityPolicy
-    , secRules
-    , secKind
-    , secFingerprint
-    , secSelfLink
-    , secName
-    , secCreationTimestamp
-    , secId
-    , secDescription
-
-    -- * InstanceGroupAggregatedListWarningDataItem
-    , InstanceGroupAggregatedListWarningDataItem
-    , instanceGroupAggregatedListWarningDataItem
-    , igalwdiValue
-    , igalwdiKey
-
-    -- * ForwardingRuleIPVersion
-    , ForwardingRuleIPVersion (..)
-
-    -- * RouterListWarningCode
-    , RouterListWarningCode (..)
-
-    -- * ImageRawDisk
-    , ImageRawDisk
-    , imageRawDisk
-    , irdContainerType
-    , irdSource
-    , irdSha1Checksum
-
-    -- * InstanceAggregatedList
-    , InstanceAggregatedList
-    , instanceAggregatedList
-    , ialNextPageToken
-    , ialKind
-    , ialItems
-    , ialSelfLink
-    , ialWarning
-    , ialId
-
-    -- * ForwardingRuleReference
-    , ForwardingRuleReference
-    , forwardingRuleReference
-    , frrForwardingRule
-
-    -- * TargetTCPProxiesSetBackendServiceRequest
-    , TargetTCPProxiesSetBackendServiceRequest
-    , targetTCPProxiesSetBackendServiceRequest
-    , ttpsbsrService
-
-    -- * SSLHealthCheck
-    , SSLHealthCheck
-    , sslHealthCheck
-    , shcResponse
-    , shcPortSpecification
-    , shcProxyHeader
-    , shcPortName
-    , shcPort
-    , shcRequest
-
-    -- * Address
-    , Address
-    , address
-    , aPrefixLength
-    , aNetworkTier
-    , aStatus
-    , aUsers
-    , aKind
-    , aIPVersion
-    , aNetwork
-    , aAddress
-    , aPurpose
-    , aSelfLink
-    , aName
-    , aCreationTimestamp
-    , aSubnetwork
-    , aId
-    , aRegion
-    , aDescription
-    , aAddressType
-
-    -- * NodeGroupAggregatedListItems
-    , NodeGroupAggregatedListItems
-    , nodeGroupAggregatedListItems
-    , ngaliAddtional
-
-    -- * InstanceGroupAggregatedListWarningCode
-    , InstanceGroupAggregatedListWarningCode (..)
-
-    -- * InstanceGroupListWarning
-    , InstanceGroupListWarning
-    , instanceGroupListWarning
-    , iglwData
-    , iglwCode
-    , iglwMessage
-
-    -- * AttachedDiskInitializeParamsLabels
-    , AttachedDiskInitializeParamsLabels
-    , attachedDiskInitializeParamsLabels
-    , adiplAddtional
-
-    -- * Zone
-    , Zone
-    , zone
-    , zStatus
-    , zKind
-    , zSelfLink
-    , zName
-    , zCreationTimestamp
-    , zId
-    , zRegion
-    , zAvailableCPUPlatforms
-    , zDescription
-    , zDeprecated
-
-    -- * RouterBGP
-    , RouterBGP
-    , routerBGP
-    , rbASN
-    , rbAdvertiseMode
-    , rbAdvertisedGroups
-    , rbAdvertisedIPRanges
-
-    -- * ProjectsSetDefaultNetworkTierRequestNetworkTier
-    , ProjectsSetDefaultNetworkTierRequestNetworkTier (..)
-
-    -- * FirewallListWarning
-    , FirewallListWarning
-    , firewallListWarning
-    , flwData
-    , flwCode
-    , flwMessage
-
-    -- * BackendServicesScopedList
-    , BackendServicesScopedList
-    , backendServicesScopedList
-    , bsslWarning
-    , bsslBackendServices
-
-    -- * InstanceGroupManagersRecreateInstancesRequest
-    , InstanceGroupManagersRecreateInstancesRequest
-    , instanceGroupManagersRecreateInstancesRequest
-    , igmrirInstances
-
-    -- * TargetSSLProxiesSetSSLCertificatesRequest
-    , TargetSSLProxiesSetSSLCertificatesRequest
-    , targetSSLProxiesSetSSLCertificatesRequest
-    , tspsscrSSLCertificates
-
-    -- * HealthStatusForNetworkEndpoint
-    , HealthStatusForNetworkEndpoint
-    , healthStatusForNetworkEndpoint
-    , hsfneHealthCheck
-    , hsfneForwardingRule
-    , hsfneHealthState
-    , hsfneBackendService
-
-    -- * RouterAggregatedListWarning
-    , RouterAggregatedListWarning
-    , routerAggregatedListWarning
-    , rouData
-    , rouCode
-    , rouMessage
-
-    -- * InstancesScopedList
-    , InstancesScopedList
-    , instancesScopedList
-    , islWarning
-    , islInstances
-
-    -- * AcceleratorTypeAggregatedListItems
-    , AcceleratorTypeAggregatedListItems
-    , acceleratorTypeAggregatedListItems
-    , ataliAddtional
-
-    -- * TargetVPNGatewayAggregatedListWarningDataItem
-    , TargetVPNGatewayAggregatedListWarningDataItem
-    , targetVPNGatewayAggregatedListWarningDataItem
-    , tvgalwdiValue
-    , tvgalwdiKey
-
-    -- * BackendServiceLoadBalancingScheme
-    , BackendServiceLoadBalancingScheme (..)
-
-    -- * HealthCheckReference
-    , HealthCheckReference
-    , healthCheckReference
-    , hcrHealthCheck
-
-    -- * TargetInstanceAggregatedListItems
-    , TargetInstanceAggregatedListItems
-    , targetInstanceAggregatedListItems
-    , tialiAddtional
-
-    -- * TargetHTTPSProxiesSetQuicOverrideRequest
-    , TargetHTTPSProxiesSetQuicOverrideRequest
-    , targetHTTPSProxiesSetQuicOverrideRequest
-    , thpsqorQuicOverride
-
-    -- * TargetSSLProxyListWarning
-    , TargetSSLProxyListWarning
-    , targetSSLProxyListWarning
-    , tsplwData
-    , tsplwCode
-    , tsplwMessage
-
-    -- * InstanceTemplateListWarning
-    , InstanceTemplateListWarning
-    , instanceTemplateListWarning
-    , itlwData
-    , itlwCode
-    , itlwMessage
-
-    -- * InstanceListReferrersWarning
-    , InstanceListReferrersWarning
-    , instanceListReferrersWarning
-    , ilrwData
-    , ilrwCode
-    , ilrwMessage
-
-    -- * RouteListWarning
-    , RouteListWarning
-    , routeListWarning
-    , rlwlData
-    , rlwlCode
-    , rlwlMessage
-
-    -- * TargetTCPProxyProxyHeader
-    , TargetTCPProxyProxyHeader (..)
-
-    -- * InstanceGroupAggregatedList
-    , InstanceGroupAggregatedList
-    , instanceGroupAggregatedList
-    , igalNextPageToken
-    , igalKind
-    , igalItems
-    , igalSelfLink
-    , igalWarning
-    , igalId
-
-    -- * TargetVPNGatewayAggregatedListWarningCode
-    , TargetVPNGatewayAggregatedListWarningCode (..)
-
-    -- * OperationStatus
-    , OperationStatus (..)
-
-    -- * Route
-    , Route
-    , route
-    , rrNextHopPeering
-    , rrPriority
-    , rrKind
-    , rrNextHopGateway
-    , rrNextHopNetwork
-    , rrNetwork
-    , rrWarnings
-    , rrNextHopIP
-    , rrDestRange
-    , rrSelfLink
-    , rrName
-    , rrCreationTimestamp
-    , rrId
-    , rrNextHopVPNTunnel
-    , rrDescription
-    , rrTags
-    , rrNextHopInstance
-
-    -- * TargetVPNGatewaysScopedListWarningDataItem
-    , TargetVPNGatewaysScopedListWarningDataItem
-    , targetVPNGatewaysScopedListWarningDataItem
-    , tvgslwdiValue
-    , tvgslwdiKey
-
-    -- * LogConfigCloudAuditOptionsLogName
-    , LogConfigCloudAuditOptionsLogName (..)
-
-    -- * LicenseCodeState
-    , LicenseCodeState (..)
-
-    -- * InterconnectLocationRegionInfo
-    , InterconnectLocationRegionInfo
-    , interconnectLocationRegionInfo
-    , ilriLocationPresence
-    , ilriExpectedRttMs
-    , ilriRegion
-
-    -- * TCPHealthCheckPortSpecification
-    , TCPHealthCheckPortSpecification (..)
-
-    -- * TargetVPNGatewaysScopedListWarningCode
-    , TargetVPNGatewaysScopedListWarningCode (..)
-
-    -- * TargetHTTPSProxiesSetSSLCertificatesRequest
-    , TargetHTTPSProxiesSetSSLCertificatesRequest
-    , targetHTTPSProxiesSetSSLCertificatesRequest
-    , thpsscrSSLCertificates
-
-    -- * InstanceTemplate
-    , InstanceTemplate
-    , instanceTemplate
-    , itSourceInstance
-    , itKind
-    , itSelfLink
-    , itName
-    , itCreationTimestamp
-    , itId
-    , itSourceInstanceParams
-    , itDescription
-    , itProperties
-
-    -- * XpnResourceId
-    , XpnResourceId
-    , xpnResourceId
-    , xriId
-    , xriType
-
-    -- * RouterList
-    , RouterList
-    , routerList
-    , rllNextPageToken
-    , rllKind
-    , rllItems
-    , rllSelfLink
-    , rllWarning
-    , rllId
-
-    -- * TargetSSLProxy
-    , TargetSSLProxy
-    , targetSSLProxy
-    , tspSSLPolicy
-    , tspSSLCertificates
-    , tspService
-    , tspKind
-    , tspSelfLink
-    , tspName
-    , tspCreationTimestamp
-    , tspId
-    , tspProxyHeader
-    , tspDescription
-
-    -- * InstanceGroupManagerStatus
-    , InstanceGroupManagerStatus
-    , instanceGroupManagerStatus
-    , igmsIsStable
-
-    -- * SSLCertificateListWarning
-    , SSLCertificateListWarning
-    , sslCertificateListWarning
-    , sclwData
-    , sclwCode
-    , sclwMessage
-
-    -- * SnapshotListWarningDataItem
-    , SnapshotListWarningDataItem
-    , snapshotListWarningDataItem
-    , slwdiValue
-    , slwdiKey
-
-    -- * TargetVPNGateway
-    , TargetVPNGateway
-    , targetVPNGateway
-    , tvgStatus
-    , tvgKind
-    , tvgNetwork
-    , tvgSelfLink
-    , tvgName
-    , tvgCreationTimestamp
-    , tvgId
-    , tvgRegion
-    , tvgTunnels
-    , tvgDescription
-    , tvgForwardingRules
-
-    -- * DiskStatus
-    , DiskStatus (..)
-
-    -- * ResourceCommitment
-    , ResourceCommitment
-    , resourceCommitment
-    , rcAmount
-    , rcType
-
-    -- * SnapshotListWarningCode
-    , SnapshotListWarningCode (..)
-
-    -- * BackendServiceIAP
-    , BackendServiceIAP
-    , backendServiceIAP
-    , bsiapEnabled
-    , bsiapOAuth2ClientSecretSha256
-    , bsiapOAuth2ClientSecret
-    , bsiapOAuth2ClientId
-
-    -- * TargetVPNGatewayListWarning
-    , TargetVPNGatewayListWarning
-    , targetVPNGatewayListWarning
-    , tvglwData
-    , tvglwCode
-    , tvglwMessage
-
-    -- * InterconnectAttachmentEdgeAvailabilityDomain
-    , InterconnectAttachmentEdgeAvailabilityDomain (..)
-
-    -- * ManagedInstanceInstanceStatus
-    , ManagedInstanceInstanceStatus (..)
-
-    -- * HTTPHealthCheckProxyHeader
-    , HTTPHealthCheckProxyHeader (..)
-
-    -- * VMEndpointNATMAppingsListWarningDataItem
-    , VMEndpointNATMAppingsListWarningDataItem
-    , vMEndpointNATMAppingsListWarningDataItem
-    , vmenatmalwdiValue
-    , vmenatmalwdiKey
-
-    -- * InterconnectLocationContinent
-    , InterconnectLocationContinent (..)
-
-    -- * URLMapsValidateResponse
-    , URLMapsValidateResponse
-    , urlMapsValidateResponse
-    , umvrResult
-
-    -- * SSLCertificate
-    , SSLCertificate
-    , sslCertificate
-    , scPrivateKey
-    , scKind
-    , scSelfLink
-    , scName
-    , scCreationTimestamp
-    , scId
-    , scCertificate
-    , scDescription
-
-    -- * VMEndpointNATMAppingsListWarningCode
-    , VMEndpointNATMAppingsListWarningCode (..)
-
-    -- * RouterStatusBGPPeerStatus
-    , RouterStatusBGPPeerStatus
-    , routerStatusBGPPeerStatus
-    , rsbpsStatus
-    , rsbpsIPAddress
-    , rsbpsState
-    , rsbpsPeerIPAddress
-    , rsbpsUptime
-    , rsbpsNumLearnedRoutes
-    , rsbpsName
-    , rsbpsUptimeSeconds
-    , rsbpsAdvertisedRoutes
-    , rsbpsLinkedVPNTunnel
-
-    -- * NodeTemplateStatus
-    , NodeTemplateStatus (..)
-
-    -- * URLMapReference
-    , URLMapReference
-    , urlMapReference
-    , umrURLMap
-
-    -- * AttachedDiskMode
-    , AttachedDiskMode (..)
-
-    -- * TargetPoolsAddHealthCheckRequest
-    , TargetPoolsAddHealthCheckRequest
-    , targetPoolsAddHealthCheckRequest
-    , tpahcrHealthChecks
-
-    -- * InstanceGroupManagerUpdatePolicyType
-    , InstanceGroupManagerUpdatePolicyType (..)
-
-    -- * CommitmentsScopedList
-    , CommitmentsScopedList
-    , commitmentsScopedList
-    , cslWarning
-    , cslCommitments
-
-    -- * TargetVPNGatewayListWarningCode
-    , TargetVPNGatewayListWarningCode (..)
-
-    -- * DiskAggregatedListItems
-    , DiskAggregatedListItems
-    , diskAggregatedListItems
-    , daliAddtional
-
-    -- * TargetVPNGatewayAggregatedListWarning
-    , TargetVPNGatewayAggregatedListWarning
-    , targetVPNGatewayAggregatedListWarning
-    , tvgalwData
-    , tvgalwCode
-    , tvgalwMessage
-
-    -- * UsageExportLocation
-    , UsageExportLocation
-    , usageExportLocation
-    , uelReportNamePrefix
-    , uelBucketName
-
-    -- * InstanceTemplateListWarningCode
-    , InstanceTemplateListWarningCode (..)
-
-    -- * ZoneList
-    , ZoneList
-    , zoneList
-    , zlNextPageToken
-    , zlKind
-    , zlItems
-    , zlSelfLink
-    , zlWarning
-    , zlId
-
-    -- * SSLCertificateListWarningDataItem
-    , SSLCertificateListWarningDataItem
-    , sslCertificateListWarningDataItem
-    , sclwdiValue
-    , sclwdiKey
-
-    -- * TargetSSLProxyListWarningCode
-    , TargetSSLProxyListWarningCode (..)
-
-    -- * DistributionPolicyZoneConfiguration
-    , DistributionPolicyZoneConfiguration
-    , distributionPolicyZoneConfiguration
-    , dpzcZone
-
-    -- * RegionStatus
-    , RegionStatus (..)
-
-    -- * TargetTCPProxiesSetProxyHeaderRequest
-    , TargetTCPProxiesSetProxyHeaderRequest
-    , targetTCPProxiesSetProxyHeaderRequest
-    , ttpsphrProxyHeader
-
-    -- * InterconnectAttachmentBandwidth
-    , InterconnectAttachmentBandwidth (..)
-
-    -- * RouterBGPPeer
-    , RouterBGPPeer
-    , routerBGPPeer
-    , rbpIPAddress
-    , rbpInterfaceName
-    , rbpPeerIPAddress
-    , rbpAdvertisedRoutePriority
-    , rbpPeerASN
-    , rbpAdvertiseMode
-    , rbpName
-    , rbpAdvertisedGroups
-    , rbpManagementType
-    , rbpAdvertisedIPRanges
-
-    -- * SubnetworksExpandIPCIdRRangeRequest
-    , SubnetworksExpandIPCIdRRangeRequest
-    , subnetworksExpandIPCIdRRangeRequest
-    , seicirrrIPCIdRRange
-
-    -- * ManagedInstance
-    , ManagedInstance
-    , managedInstance
-    , miLastAttempt
-    , miCurrentAction
-    , miVersion
-    , miId
-    , miInstanceStatus
-    , miInstance
-
-    -- * InstanceGroupManagerAggregatedListItems
-    , InstanceGroupManagerAggregatedListItems
-    , instanceGroupManagerAggregatedListItems
-    , igmaliAddtional
-
-    -- * InstanceGroupManagersDeleteInstancesRequest
-    , InstanceGroupManagersDeleteInstancesRequest
-    , instanceGroupManagersDeleteInstancesRequest
-    , igmdirInstances
-
-    -- * Backend
-    , Backend
-    , backend
-    , bGroup
-    , bBalancingMode
-    , bMaxUtilization
-    , bMaxRate
-    , bMaxConnections
-    , bMaxConnectionsPerInstance
-    , bMaxRatePerEndpoint
-    , bMaxConnectionsPerEndpoint
-    , bMaxRatePerInstance
-    , bDescription
-    , bCapacityScaler
-
-    -- * TargetVPNGatewaysScopedListWarning
-    , TargetVPNGatewaysScopedListWarning
-    , targetVPNGatewaysScopedListWarning
-    , tvgslwData
-    , tvgslwCode
-    , tvgslwMessage
-
-    -- * TargetSSLProxiesSetProxyHeaderRequestProxyHeader
-    , TargetSSLProxiesSetProxyHeaderRequestProxyHeader (..)
-
-    -- * AddressList
-    , AddressList
-    , addressList
-    , alNextPageToken
-    , alKind
-    , alItems
-    , alSelfLink
-    , alWarning
-    , alId
-
-    -- * TargetVPNGatewayListWarningDataItem
-    , TargetVPNGatewayListWarningDataItem
-    , targetVPNGatewayListWarningDataItem
-    , tvglwdiValue
-    , tvglwdiKey
-
-    -- * ForwardingRuleAggregatedListItems
-    , ForwardingRuleAggregatedListItems
-    , forwardingRuleAggregatedListItems
-    , fraliAddtional
-
-    -- * HTTP2HealthCheckPortSpecification
-    , HTTP2HealthCheckPortSpecification (..)
-
-    -- * InterconnectAttachmentAggregatedList
-    , InterconnectAttachmentAggregatedList
-    , interconnectAttachmentAggregatedList
-    , iaalNextPageToken
-    , iaalKind
-    , iaalItems
-    , iaalSelfLink
-    , iaalWarning
-    , iaalId
-
-    -- * InstanceListReferrersWarningCode
-    , InstanceListReferrersWarningCode (..)
-
-    -- * ConditionOp
-    , ConditionOp (..)
-
-    -- * RouteListWarningCode
-    , RouteListWarningCode (..)
-
-    -- * OperationAggregatedListItems
-    , OperationAggregatedListItems
-    , operationAggregatedListItems
-    , oaliAddtional
-
-    -- * InstanceGroupManagerActionsSummary
-    , InstanceGroupManagerActionsSummary
-    , instanceGroupManagerActionsSummary
-    , igmasDeleting
-    , igmasRestarting
-    , igmasNone
-    , igmasCreating
-    , igmasVerifying
-    , igmasRefreshing
-    , igmasCreatingWithoutRetries
-    , igmasRecreating
-    , igmasAbandoning
-
-    -- * XpnHostList
-    , XpnHostList
-    , xpnHostList
-    , xhlNextPageToken
-    , xhlKind
-    , xhlItems
-    , xhlSelfLink
-    , xhlWarning
-    , xhlId
-
-    -- * VPNTunnelStatus
-    , VPNTunnelStatus (..)
-
-    -- * InstanceTemplateListWarningDataItem
-    , InstanceTemplateListWarningDataItem
-    , instanceTemplateListWarningDataItem
-    , itlwdiValue
-    , itlwdiKey
-
-    -- * SSLCertificateListWarningCode
-    , SSLCertificateListWarningCode (..)
-
-    -- * ServiceAccount
-    , ServiceAccount
-    , serviceAccount
-    , saEmail
-    , saScopes
-
-    -- * SnapshotListWarning
-    , SnapshotListWarning
-    , snapshotListWarning
-    , sData
-    , sCode
-    , sMessage
-
-    -- * RegionInstanceGroupManagersAbandonInstancesRequest
-    , RegionInstanceGroupManagersAbandonInstancesRequest
-    , regionInstanceGroupManagersAbandonInstancesRequest
-    , rigmairInstances
-
-    -- * NetworkList
-    , NetworkList
-    , networkList
-    , nlNextPageToken
-    , nlKind
-    , nlItems
-    , nlSelfLink
-    , nlWarning
-    , nlId
-
-    -- * NetworkPeering
-    , NetworkPeering
-    , networkPeering
-    , netState
-    , netExchangeSubnetRoutes
-    , netStateDetails
-    , netNetwork
-    , netName
-    , netAutoCreateRoutes
-
-    -- * TargetSSLProxyListWarningDataItem
-    , TargetSSLProxyListWarningDataItem
-    , targetSSLProxyListWarningDataItem
-    , tsplwdiValue
-    , tsplwdiKey
-
-    -- * InstanceGroupsListInstancesRequest
-    , InstanceGroupsListInstancesRequest
-    , instanceGroupsListInstancesRequest
-    , iglirInstanceState
-
-    -- * DiskInstantiationConfigInstantiateFrom
-    , DiskInstantiationConfigInstantiateFrom (..)
-
-    -- * InstanceListReferrersWarningDataItem
-    , InstanceListReferrersWarningDataItem
-    , instanceListReferrersWarningDataItem
-    , ilrwdiValue
-    , ilrwdiKey
-
-    -- * RouteListWarningDataItem
-    , RouteListWarningDataItem
-    , routeListWarningDataItem
-    , rValue
-    , rKey
-
-    -- * InterconnectAttachmentsScopedList
-    , InterconnectAttachmentsScopedList
-    , interconnectAttachmentsScopedList
-    , iaslWarning
-    , iaslInterconnectAttachments
-
-    -- * SecurityPolicyList
-    , SecurityPolicyList
-    , securityPolicyList
-    , splNextPageToken
-    , splKind
-    , splItems
-    , splWarning
-    , splId
-
-    -- * BackendBalancingMode
-    , BackendBalancingMode (..)
-
-    -- * RouterBGPAdvertisedGroupsItem
-    , RouterBGPAdvertisedGroupsItem (..)
-
-    -- * CommitmentAggregatedList
-    , CommitmentAggregatedList
-    , commitmentAggregatedList
-    , calNextPageToken
-    , calKind
-    , calItems
-    , calSelfLink
-    , calWarning
-    , calId
-
-    -- * RegionInstanceGroupList
-    , RegionInstanceGroupList
-    , regionInstanceGroupList
-    , riglNextPageToken
-    , riglKind
-    , riglItems
-    , riglSelfLink
-    , riglWarning
-    , riglId
-
-    -- * VMEndpointNATMAppingsListWarning
-    , VMEndpointNATMAppingsListWarning
-    , vMEndpointNATMAppingsListWarning
-    , vmenatmalwData
-    , vmenatmalwCode
-    , vmenatmalwMessage
-
-    -- * TargetPoolAggregatedListItems
-    , TargetPoolAggregatedListItems
-    , targetPoolAggregatedListItems
-    , tpaliAddtional
-
-    -- * NodeGroupsAddNodesRequest
-    , NodeGroupsAddNodesRequest
-    , nodeGroupsAddNodesRequest
-    , nganrAdditionalNodeCount
-
-    -- * NodeTypeAggregatedList
-    , NodeTypeAggregatedList
-    , nodeTypeAggregatedList
-    , ntalNextPageToken
-    , ntalKind
-    , ntalItems
-    , ntalSelfLink
-    , ntalWarning
-    , ntalId
-
-    -- * TargetInstancesScopedList
-    , TargetInstancesScopedList
-    , targetInstancesScopedList
-    , tislWarning
-    , tislTargetInstances
-
-    -- * NetworkEndpointGroupListWarningCode
-    , NetworkEndpointGroupListWarningCode (..)
-
-    -- * NetworkRoutingConfigRoutingMode
-    , NetworkRoutingConfigRoutingMode (..)
-
-    -- * SubnetworkListWarningCode
-    , SubnetworkListWarningCode (..)
-
-    -- * SubnetworkListWarningDataItem
-    , SubnetworkListWarningDataItem
-    , subnetworkListWarningDataItem
-    , sValue
-    , sKey
-
-    -- * NetworkEndpointGroupListWarningDataItem
-    , NetworkEndpointGroupListWarningDataItem
-    , networkEndpointGroupListWarningDataItem
-    , neglwdiValue
-    , neglwdiKey
-
-    -- * ProjectsDisableXpnResourceRequest
-    , ProjectsDisableXpnResourceRequest
-    , projectsDisableXpnResourceRequest
-    , pdxrrXpnResource
-
-    -- * CommitmentStatus
-    , CommitmentStatus (..)
-
-    -- * AddressAggregatedListItems
-    , AddressAggregatedListItems
-    , addressAggregatedListItems
-    , aAddtional
-
-    -- * InterconnectListWarningCode
-    , InterconnectListWarningCode (..)
-
-    -- * AutoscalerList
-    , AutoscalerList
-    , autoscalerList
-    , autNextPageToken
-    , autKind
-    , autItems
-    , autSelfLink
-    , autWarning
-    , autId
-
-    -- * NetworkEndpointGroupAggregatedListWarning
-    , NetworkEndpointGroupAggregatedListWarning
-    , networkEndpointGroupAggregatedListWarning
-    , negalwData
-    , negalwCode
-    , negalwMessage
-
-    -- * SSLPolicyMinTLSVersion
-    , SSLPolicyMinTLSVersion (..)
-
-    -- * InterconnectListWarningDataItem
-    , InterconnectListWarningDataItem
-    , interconnectListWarningDataItem
-    , iValue
-    , iKey
-
-    -- * SubnetworkAggregatedListWarning
-    , SubnetworkAggregatedListWarning
-    , subnetworkAggregatedListWarning
-    , salwData
-    , salwCode
-    , salwMessage
-
-    -- * InterconnectLocation
-    , InterconnectLocation
-    , interconnectLocation
-    , intFacilityProviderFacilityId
-    , intStatus
-    , intRegionInfos
-    , intKind
-    , intAddress
-    , intFacilityProvider
-    , intSelfLink
-    , intPeeringdbFacilityId
-    , intName
-    , intCity
-    , intAvailabilityZone
-    , intCreationTimestamp
-    , intId
-    , intContinent
-    , intDescription
-
-    -- * TargetSSLProxiesSetProxyHeaderRequest
-    , TargetSSLProxiesSetProxyHeaderRequest
-    , targetSSLProxiesSetProxyHeaderRequest
-    , tspsphrProxyHeader
-
-    -- * HTTPHealthCheckListWarningCode
-    , HTTPHealthCheckListWarningCode (..)
-
-    -- * SSLPoliciesListWarningCode
-    , SSLPoliciesListWarningCode (..)
-
-    -- * VPNTunnelAggregatedList
-    , VPNTunnelAggregatedList
-    , vpnTunnelAggregatedList
-    , vtalNextPageToken
-    , vtalKind
-    , vtalItems
-    , vtalSelfLink
-    , vtalWarning
-    , vtalId
-
-    -- * SSLPoliciesListWarningDataItem
-    , SSLPoliciesListWarningDataItem
-    , sslPoliciesListWarningDataItem
-    , splwdiValue
-    , splwdiKey
-
-    -- * InterconnectCircuitInfo
-    , InterconnectCircuitInfo
-    , interconnectCircuitInfo
-    , iciGoogleCircuitId
-    , iciCustomerDemarcId
-    , iciGoogleDemarcId
-
-    -- * AttachedDisk
-    , AttachedDisk
-    , attachedDisk
-    , adDiskEncryptionKey
-    , adKind
-    , adMode
-    , adGuestOSFeatures
-    , adBoot
-    , adAutoDelete
-    , adInitializeParams
-    , adDeviceName
-    , adInterface
-    , adSource
-    , adLicenses
-    , adType
-    , adIndex
-
-    -- * HTTPHealthCheckListWarningDataItem
-    , HTTPHealthCheckListWarningDataItem
-    , hTTPHealthCheckListWarningDataItem
-    , httphclwdiValue
-    , httphclwdiKey
-
-    -- * InterconnectAttachmentOperationalStatus
-    , InterconnectAttachmentOperationalStatus (..)
-
-    -- * DiskTypeList
-    , DiskTypeList
-    , diskTypeList
-    , dtlNextPageToken
-    , dtlKind
-    , dtlItems
-    , dtlSelfLink
-    , dtlWarning
-    , dtlId
-
-    -- * TargetTCPProxyListWarningCode
-    , TargetTCPProxyListWarningCode (..)
-
-    -- * RegionInstanceGroupsSetNamedPortsRequest
-    , RegionInstanceGroupsSetNamedPortsRequest
-    , regionInstanceGroupsSetNamedPortsRequest
-    , rigsnprFingerprint
-    , rigsnprNamedPorts
-
-    -- * TestPermissionsRequest
-    , TestPermissionsRequest
-    , testPermissionsRequest
-    , tPermissions
-
-    -- * TargetTCPProxyListWarningDataItem
-    , TargetTCPProxyListWarningDataItem
-    , targetTCPProxyListWarningDataItem
-    , ttplwdiValue
-    , ttplwdiKey
-
-    -- * ProjectsGetXpnResources
-    , ProjectsGetXpnResources
-    , projectsGetXpnResources
-    , pgxrNextPageToken
-    , pgxrKind
-    , pgxrResources
-
-    -- * NetworkEndpointWithHealthStatus
-    , NetworkEndpointWithHealthStatus
-    , networkEndpointWithHealthStatus
-    , newhsHealths
-    , newhsNetworkEndpoint
-
-    -- * MachineTypeList
-    , MachineTypeList
-    , machineTypeList
-    , mtlNextPageToken
-    , mtlKind
-    , mtlItems
-    , mtlSelfLink
-    , mtlWarning
-    , mtlId
-
-    -- * TargetHTTPProxyList
-    , TargetHTTPProxyList
-    , targetHTTPProxyList
-    , thttpplNextPageToken
-    , thttpplKind
-    , thttpplItems
-    , thttpplSelfLink
-    , thttpplWarning
-    , thttpplId
-
-    -- * NodeGroupsListNodesWarning
-    , NodeGroupsListNodesWarning
-    , nodeGroupsListNodesWarning
-    , nglnwData
-    , nglnwCode
-    , nglnwMessage
-
-    -- * NodeTemplateAggregatedList
-    , NodeTemplateAggregatedList
-    , nodeTemplateAggregatedList
-    , nodNextPageToken
-    , nodKind
-    , nodItems
-    , nodSelfLink
-    , nodWarning
-    , nodId
-
-    -- * InterconnectLocationListWarning
-    , InterconnectLocationListWarning
-    , interconnectLocationListWarning
-    , illwData
-    , illwCode
-    , illwMessage
-
-    -- * InstanceGroupsListInstancesWarning
-    , InstanceGroupsListInstancesWarning
-    , instanceGroupsListInstancesWarning
-    , igliwData
-    , igliwCode
-    , igliwMessage
-
-    -- * RegionInstanceGroupManagerList
-    , RegionInstanceGroupManagerList
-    , regionInstanceGroupManagerList
-    , rigmlNextPageToken
-    , rigmlKind
-    , rigmlItems
-    , rigmlSelfLink
-    , rigmlWarning
-    , rigmlId
-
-    -- * AuditLogConfigLogType
-    , AuditLogConfigLogType (..)
-
-    -- * ForwardingRuleIPProtocol
-    , ForwardingRuleIPProtocol (..)
-
-    -- * DiskTypesScopedList
-    , DiskTypesScopedList
-    , diskTypesScopedList
-    , dtslDiskTypes
-    , dtslWarning
-
-    -- * NetworkEndpointGroupsListEndpointsRequestHealthStatus
-    , NetworkEndpointGroupsListEndpointsRequestHealthStatus (..)
-
-    -- * LogConfigCloudAuditOptions
-    , LogConfigCloudAuditOptions
-    , logConfigCloudAuditOptions
-    , lccaoAuthorizationLoggingOptions
-    , lccaoLogName
-
-    -- * ImageListWarningCode
-    , ImageListWarningCode (..)
-
-    -- * AddressStatus
-    , AddressStatus (..)
-
-    -- * ProjectsSetDefaultNetworkTierRequest
-    , ProjectsSetDefaultNetworkTierRequest
-    , projectsSetDefaultNetworkTierRequest
-    , psdntrNetworkTier
-
-    -- * ImageListWarningDataItem
-    , ImageListWarningDataItem
-    , imageListWarningDataItem
-    , imaValue
-    , imaKey
-
-    -- * AcceleratorTypeListWarningDataItem
-    , AcceleratorTypeListWarningDataItem
-    , acceleratorTypeListWarningDataItem
-    , atlwdiValue
-    , atlwdiKey
-
-    -- * InterconnectOutageNotification
-    , InterconnectOutageNotification
-    , interconnectOutageNotification
-    , ionState
-    , ionAffectedCircuits
-    , ionStartTime
-    , ionIssueType
-    , ionName
-    , ionEndTime
-    , ionSource
-    , ionDescription
-
-    -- * NodeTemplateList
-    , NodeTemplateList
-    , nodeTemplateList
-    , ntlNextPageToken
-    , ntlKind
-    , ntlItems
-    , ntlSelfLink
-    , ntlWarning
-    , ntlId
-
-    -- * AcceleratorTypeListWarningCode
-    , AcceleratorTypeListWarningCode (..)
-
-    -- * DiskTypeAggregatedList
-    , DiskTypeAggregatedList
-    , diskTypeAggregatedList
-    , dtalNextPageToken
-    , dtalKind
-    , dtalItems
-    , dtalSelfLink
-    , dtalWarning
-    , dtalId
-
-    -- * HTTPHealthCheck
-    , HTTPHealthCheck
-    , hTTPHealthCheck
-    , hResponse
-    , hPortSpecification
-    , hRequestPath
-    , hHost
-    , hProxyHeader
-    , hPortName
-    , hPort
-
-    -- * URLMapListWarningDataItem
-    , URLMapListWarningDataItem
-    , urlMapListWarningDataItem
-    , umlwdiValue
-    , umlwdiKey
-
-    -- * AddressNetworkTier
-    , AddressNetworkTier (..)
-
-    -- * RouterNATSubnetworkToNAT
-    , RouterNATSubnetworkToNAT
-    , routerNATSubnetworkToNAT
-    , rnatstnatSourceIPRangesToNAT
-    , rnatstnatName
-    , rnatstnatSecondaryIPRangeNames
-
-    -- * BackendServiceGroupHealth
-    , BackendServiceGroupHealth
-    , backendServiceGroupHealth
-    , bsghKind
-    , bsghHealthStatus
-
-    -- * URLMapListWarningCode
-    , URLMapListWarningCode (..)
-
-    -- * InstanceGroupsListInstancesRequestInstanceState
-    , InstanceGroupsListInstancesRequestInstanceState (..)
-
-    -- * AutoscalersScopedList
-    , AutoscalersScopedList
-    , autoscalersScopedList
-    , aAutoscalers
-    , aWarning
-
-    -- * LogConfigDataAccessOptions
-    , LogConfigDataAccessOptions
-    , logConfigDataAccessOptions
-    , lcdaoLogMode
-
-    -- * AutoscalerAggregatedList
-    , AutoscalerAggregatedList
-    , autoscalerAggregatedList
-    , aalNextPageToken
-    , aalKind
-    , aalItems
-    , aalSelfLink
-    , aalWarning
-    , aalId
-
-    -- * RouterAggregatedListItems
-    , RouterAggregatedListItems
-    , routerAggregatedListItems
-    , raliAddtional
-
-    -- * AcceleratorTypesScopedListWarning
-    , AcceleratorTypesScopedListWarning
-    , acceleratorTypesScopedListWarning
-    , atslwData
-    , atslwCode
-    , atslwMessage
-
-    -- * TargetTCPProxy
-    , TargetTCPProxy
-    , targetTCPProxy
-    , ttpService
-    , ttpKind
-    , ttpSelfLink
-    , ttpName
-    , ttpCreationTimestamp
-    , ttpId
-    , ttpProxyHeader
-    , ttpDescription
-
-    -- * SchedulingNodeAffinityOperator
-    , SchedulingNodeAffinityOperator (..)
-
-    -- * BackendBucketListWarning
-    , BackendBucketListWarning
-    , backendBucketListWarning
-    , bblwData
-    , bblwCode
-    , bblwMessage
-
-    -- * ProjectDefaultNetworkTier
-    , ProjectDefaultNetworkTier (..)
-
-    -- * ImageLabels
-    , ImageLabels
-    , imageLabels
-    , iAddtional
-
-    -- * NodeGroupListWarningCode
-    , NodeGroupListWarningCode (..)
-
-    -- * DistributionPolicy
-    , DistributionPolicy
-    , distributionPolicy
-    , dpZones
-
-    -- * RouterNATSourceSubnetworkIPRangesToNAT
-    , RouterNATSourceSubnetworkIPRangesToNAT (..)
-
-    -- * NodeGroupListWarningDataItem
-    , NodeGroupListWarningDataItem
-    , nodeGroupListWarningDataItem
-    , nglwdiValue
-    , nglwdiKey
-
-    -- * HTTPSHealthCheckProxyHeader
-    , HTTPSHealthCheckProxyHeader (..)
-
-    -- * AutoscalingPolicy
-    , AutoscalingPolicy
-    , autoscalingPolicy
-    , apCustomMetricUtilizations
-    , apMaxNumReplicas
-    , apCPUUtilization
-    , apLoadBalancingUtilization
-    , apMinNumReplicas
-    , apCoolDownPeriodSec
-
-    -- * NodeGroupAggregatedListWarning
-    , NodeGroupAggregatedListWarning
-    , nodeGroupAggregatedListWarning
-    , ngalwData
-    , ngalwCode
-    , ngalwMessage
-
-    -- * RegionList
-    , RegionList
-    , regionList
-    , regNextPageToken
-    , regKind
-    , regItems
-    , regSelfLink
-    , regWarning
-    , regId
-
-    -- * AttachedDiskInterface
-    , AttachedDiskInterface (..)
-
-    -- * SchedulingNodeAffinity
-    , SchedulingNodeAffinity
-    , schedulingNodeAffinity
-    , snaOperator
-    , snaValues
-    , snaKey
-
-    -- * HealthCheckType
-    , HealthCheckType (..)
-
-    -- * RegionInstanceGroupsListInstancesWarningCode
-    , RegionInstanceGroupsListInstancesWarningCode (..)
-
-    -- * ZoneStatus
-    , ZoneStatus (..)
-
-    -- * VPNTunnelList
-    , VPNTunnelList
-    , vpnTunnelList
-    , vtlNextPageToken
-    , vtlKind
-    , vtlItems
-    , vtlSelfLink
-    , vtlWarning
-    , vtlId
-
-    -- * AcceleratorTypeAggregatedListWarning
-    , AcceleratorTypeAggregatedListWarning
-    , acceleratorTypeAggregatedListWarning
-    , atalwData
-    , atalwCode
-    , atalwMessage
-
-    -- * RegionInstanceGroupsListInstancesWarningDataItem
-    , RegionInstanceGroupsListInstancesWarningDataItem
-    , regionInstanceGroupsListInstancesWarningDataItem
-    , rigliwdiValue
-    , rigliwdiKey
-
-    -- * Interconnect
-    , Interconnect
-    , interconnect
-    , iiState
-    , iiInterconnectType
-    , iiLocation
-    , iiPeerIPAddress
-    , iiKind
-    , iiExpectedOutages
-    , iiProvisionedLinkCount
-    , iiCustomerName
-    , iiRequestedLinkCount
-    , iiOperationalStatus
-    , iiSelfLink
-    , iiName
-    , iiGoogleReferenceId
-    , iiCreationTimestamp
-    , iiAdminEnabled
-    , iiId
-    , iiInterconnectAttachments
-    , iiLinkType
-    , iiGoogleIPAddress
-    , iiDescription
-    , iiNocContactEmail
-    , iiCircuitInfos
-
-    -- * MachineTypeScratchDisksItem
-    , MachineTypeScratchDisksItem
-    , machineTypeScratchDisksItem
-    , mtsdiDiskGb
-
-    -- * NetworkEndpointGroupsScopedListWarningDataItem
-    , NetworkEndpointGroupsScopedListWarningDataItem
-    , networkEndpointGroupsScopedListWarningDataItem
-    , negslwdiValue
-    , negslwdiKey
-
-    -- * SubnetworksScopedListWarningDataItem
-    , SubnetworksScopedListWarningDataItem
-    , subnetworksScopedListWarningDataItem
-    , sslwdiValue
-    , sslwdiKey
-
-    -- * NetworkEndpointGroupsScopedListWarningCode
-    , NetworkEndpointGroupsScopedListWarningCode (..)
-
-    -- * MachineTypesScopedList
-    , MachineTypesScopedList
-    , machineTypesScopedList
-    , mtslMachineTypes
-    , mtslWarning
-
-    -- * SubnetworksScopedListWarningCode
-    , SubnetworksScopedListWarningCode (..)
-
-    -- * NetworkEndpointGroup
-    , NetworkEndpointGroup
-    , networkEndpointGroup
-    , negSize
-    , negKind
-    , negNetwork
-    , negZone
-    , negSelfLink
-    , negName
-    , negCreationTimestamp
-    , negDefaultPort
-    , negSubnetwork
-    , negNetworkEndpointType
-    , negId
-    , negDescription
-
-    -- * NetworkEndpointGroupsListNetworkEndpointsWarningCode
-    , NetworkEndpointGroupsListNetworkEndpointsWarningCode (..)
-
-    -- * Subnetwork
-    , Subnetwork
-    , subnetwork
-    , subKind
-    , subFingerprint
-    , subNetwork
-    , subGatewayAddress
-    , subSelfLink
-    , subEnableFlowLogs
-    , subName
-    , subSecondaryIPRanges
-    , subCreationTimestamp
-    , subIPCIdRRange
-    , subId
-    , subRegion
-    , subDescription
-    , subPrivateIPGoogleAccess
-
-    -- * HealthCheckListWarning
-    , HealthCheckListWarning
-    , healthCheckListWarning
-    , hclwData
-    , hclwCode
-    , hclwMessage
-
-    -- * MachineTypeAggregatedList
-    , MachineTypeAggregatedList
-    , machineTypeAggregatedList
-    , mtalNextPageToken
-    , mtalKind
-    , mtalItems
-    , mtalSelfLink
-    , mtalWarning
-    , mtalId
-
-    -- * NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , networkEndpointGroupsListNetworkEndpointsWarningDataItem
-    , neglnewdiValue
-    , neglnewdiKey
-
-    -- * NodeGroupsScopedListWarning
-    , NodeGroupsScopedListWarning
-    , nodeGroupsScopedListWarning
-    , ngslwData
-    , ngslwCode
-    , ngslwMessage
-
-    -- * NodeTypeList
-    , NodeTypeList
-    , nodeTypeList
-    , ntltNextPageToken
-    , ntltKind
-    , ntltItems
-    , ntltSelfLink
-    , ntltWarning
-    , ntltId
-
-    -- * QuotaMetric
-    , QuotaMetric (..)
-
-    -- * DiskType
-    , DiskType
-    , diskType
-    , dtKind
-    , dtZone
-    , dtSelfLink
-    , dtName
-    , dtCreationTimestamp
-    , dtId
-    , dtRegion
-    , dtValidDiskSize
-    , dtDescription
-    , dtDefaultDiskSizeGb
-    , dtDeprecated
-
-    -- * NodeTemplateAggregatedListWarning
-    , NodeTemplateAggregatedListWarning
-    , nodeTemplateAggregatedListWarning
-    , ntalwData
-    , ntalwCode
-    , ntalwMessage
-
-    -- * AutoscalerAggregatedListWarningDataItem
-    , AutoscalerAggregatedListWarningDataItem
-    , autoscalerAggregatedListWarningDataItem
-    , aalwdiValue
-    , aalwdiKey
-
-    -- * ZoneSetLabelsRequestLabels
-    , ZoneSetLabelsRequestLabels
-    , zoneSetLabelsRequestLabels
-    , zslrlAddtional
-
-    -- * InterconnectState
-    , InterconnectState (..)
-
-    -- * NodeTypeListWarningDataItem
-    , NodeTypeListWarningDataItem
-    , nodeTypeListWarningDataItem
-    , ntlwdiValue
-    , ntlwdiKey
-
-    -- * URLMapValidationResult
-    , URLMapValidationResult
-    , urlMapValidationResult
-    , umvrLoadErrors
-    , umvrLoadSucceeded
-    , umvrTestPassed
-    , umvrTestFailures
-
-    -- * Metadata
-    , Metadata
-    , metadata
-    , mKind
-    , mFingerprint
-    , mItems
-
-    -- * RouteWarningsItem
-    , RouteWarningsItem
-    , routeWarningsItem
-    , rwiData
-    , rwiCode
-    , rwiMessage
-
-    -- * NodeGroupsListNodes
-    , NodeGroupsListNodes
-    , nodeGroupsListNodes
-    , nglnNextPageToken
-    , nglnKind
-    , nglnItems
-    , nglnSelfLink
-    , nglnWarning
-    , nglnId
-
-    -- * InterconnectLocationList
-    , InterconnectLocationList
-    , interconnectLocationList
-    , illNextPageToken
-    , illKind
-    , illItems
-    , illSelfLink
-    , illWarning
-    , illId
-
-    -- * SSLPoliciesListAvailableFeaturesResponse
-    , SSLPoliciesListAvailableFeaturesResponse
-    , sslPoliciesListAvailableFeaturesResponse
-    , splafrFeatures
-
-    -- * InstancePropertiesLabels
-    , InstancePropertiesLabels
-    , instancePropertiesLabels
-    , iplAddtional
-
-    -- * AutoscalerAggregatedListWarningCode
-    , AutoscalerAggregatedListWarningCode (..)
-
-    -- * AddressIPVersion
-    , AddressIPVersion (..)
-
-    -- * MachineTypesScopedListWarningDataItem
-    , MachineTypesScopedListWarningDataItem
-    , machineTypesScopedListWarningDataItem
-    , mtslwdiValue
-    , mtslwdiKey
-
-    -- * InstanceStatus
-    , InstanceStatus (..)
-
-    -- * NodeTypeListWarningCode
-    , NodeTypeListWarningCode (..)
-
-    -- * DiskTypeListWarning
-    , DiskTypeListWarning
-    , diskTypeListWarning
-    , dtlwData
-    , dtlwCode
-    , dtlwMessage
-
-    -- * NodeTemplateListWarningDataItem
-    , NodeTemplateListWarningDataItem
-    , nodeTemplateListWarningDataItem
-    , nodValue
-    , nodKey
-
-    -- * RegionListWarningDataItem
-    , RegionListWarningDataItem
-    , regionListWarningDataItem
-    , regValue
-    , regKey
-
-    -- * MachineTypesScopedListWarningCode
-    , MachineTypesScopedListWarningCode (..)
-
-    -- * InstancesSetMachineResourcesRequest
-    , InstancesSetMachineResourcesRequest
-    , instancesSetMachineResourcesRequest
-    , ismrrGuestAccelerators
-
-    -- * InstancesSetServiceAccountRequest
-    , InstancesSetServiceAccountRequest
-    , instancesSetServiceAccountRequest
-    , issarEmail
-    , issarScopes
-
-    -- * SecurityPolicyReference
-    , SecurityPolicyReference
-    , securityPolicyReference
-    , sprSecurityPolicy
-
-    -- * DiskTypesScopedListWarningDataItem
-    , DiskTypesScopedListWarningDataItem
-    , diskTypesScopedListWarningDataItem
-    , dtslwdiValue
-    , dtslwdiKey
-
-    -- * NodeTemplateListWarningCode
-    , NodeTemplateListWarningCode (..)
-
-    -- * VMEndpointNATMAppingsInterfaceNATMAppings
-    , VMEndpointNATMAppingsInterfaceNATMAppings
-    , vMEndpointNATMAppingsInterfaceNATMAppings
-    , vmenatmainatmaSourceAliasIPRange
-    , vmenatmainatmaSourceVirtualIP
-    , vmenatmainatmaNATIPPortRanges
-    , vmenatmainatmaNumTotalNATPorts
-
-    -- * VPNTunnelAggregatedListWarning
-    , VPNTunnelAggregatedListWarning
-    , vpnTunnelAggregatedListWarning
-    , vtalwData
-    , vtalwCode
-    , vtalwMessage
-
-    -- * TargetHTTPProxy
-    , TargetHTTPProxy
-    , targetHTTPProxy
-    , thttppURLMap
-    , thttppKind
-    , thttppSelfLink
-    , thttppName
-    , thttppCreationTimestamp
-    , thttppId
-    , thttppDescription
-
-    -- * ShieldedInstanceConfig
-    , ShieldedInstanceConfig
-    , shieldedInstanceConfig
-    , sicEnableVtpm
-    , sicEnableIntegrityMonitoring
-    , sicEnableSecureBoot
-
-    -- * MachineType
-    , MachineType
-    , machineType
-    , mtIsSharedCPU
-    , mtKind
-    , mtImageSpaceGb
-    , mtZone
-    , mtSelfLink
-    , mtName
-    , mtCreationTimestamp
-    , mtScratchDisks
-    , mtId
-    , mtGuestCPUs
-    , mtMaximumPersistentDisksSizeGb
-    , mtMaximumPersistentDisks
-    , mtMemoryMb
-    , mtDescription
-    , mtDeprecated
-
-    -- * AcceleratorConfig
-    , AcceleratorConfig
-    , acceleratorConfig
-    , acAcceleratorCount
-    , acAcceleratorType
-
-    -- * AutoscalerListWarning
-    , AutoscalerListWarning
-    , autoscalerListWarning
-    , alwData
-    , alwCode
-    , alwMessage
-
-    -- * RegionListWarningCode
-    , RegionListWarningCode (..)
-
-    -- * RouterInterfaceManagementType
-    , RouterInterfaceManagementType (..)
-
-    -- * DiskTypesScopedListWarningCode
-    , DiskTypesScopedListWarningCode (..)
-
-    -- * MachineTypeAggregatedListWarningDataItem
-    , MachineTypeAggregatedListWarningDataItem
-    , machineTypeAggregatedListWarningDataItem
-    , mtalwdiValue
-    , mtalwdiKey
-
-    -- * OperationError
-    , OperationError
-    , operationError
-    , oeErrors
-
-    -- * NodeTypeAggregatedListWarning
-    , NodeTypeAggregatedListWarning
-    , nodeTypeAggregatedListWarning
-    , ntalwtData
-    , ntalwtCode
-    , ntalwtMessage
-
-    -- * TargetInstancesScopedListWarning
-    , TargetInstancesScopedListWarning
-    , targetInstancesScopedListWarning
-    , tislwData
-    , tislwCode
-    , tislwMessage
-
-    -- * NetworkEndpointGroupAggregatedList
-    , NetworkEndpointGroupAggregatedList
-    , networkEndpointGroupAggregatedList
-    , negalNextPageToken
-    , negalKind
-    , negalItems
-    , negalSelfLink
-    , negalWarning
-    , negalId
-
-    -- * SubnetworkAggregatedList
-    , SubnetworkAggregatedList
-    , subnetworkAggregatedList
-    , salNextPageToken
-    , salKind
-    , salItems
-    , salSelfLink
-    , salWarning
-    , salId
-
-    -- * MachineTypeAggregatedListWarningCode
-    , MachineTypeAggregatedListWarningCode (..)
-
-    -- * VPNTunnelListWarningDataItem
-    , VPNTunnelListWarningDataItem
-    , vpnTunnelListWarningDataItem
-    , vtlwdiValue
-    , vtlwdiKey
-
-    -- * InterconnectDiagnosticsLinkOpticalPower
-    , InterconnectDiagnosticsLinkOpticalPower
-    , interconnectDiagnosticsLinkOpticalPower
-    , idlopState
-    , idlopValue
-
-    -- * DisksResizeRequest
-    , DisksResizeRequest
-    , disksResizeRequest
-    , drrSizeGb
-
-    -- * AutoscalersScopedListWarningDataItem
-    , AutoscalersScopedListWarningDataItem
-    , autoscalersScopedListWarningDataItem
-    , aValue
-    , aKey
-
-    -- * LogConfigDataAccessOptionsLogMode
-    , LogConfigDataAccessOptionsLogMode (..)
-
-    -- * InterconnectOutageNotificationState
-    , InterconnectOutageNotificationState (..)
-
-    -- * ZoneSetPolicyRequest
-    , ZoneSetPolicyRequest
-    , zoneSetPolicyRequest
-    , zsprEtag
-    , zsprBindings
-    , zsprPolicy
-
-    -- * VPNTunnelListWarningCode
-    , VPNTunnelListWarningCode (..)
-
-    -- * AutoscalersScopedListWarningCode
-    , AutoscalersScopedListWarningCode (..)
-
-    -- * HTTPSHealthCheckPortSpecification
-    , HTTPSHealthCheckPortSpecification (..)
-
-    -- * DiskTypeAggregatedListWarningDataItem
-    , DiskTypeAggregatedListWarningDataItem
-    , diskTypeAggregatedListWarningDataItem
-    , dtalwdiValue
-    , dtalwdiKey
-
-    -- * ShieldedInstanceIdentityEntry
-    , ShieldedInstanceIdentityEntry
-    , shieldedInstanceIdentityEntry
-    , siieEkCert
-    , siieEkPub
-
-    -- * ForwardingRuleLoadBalancingScheme
-    , ForwardingRuleLoadBalancingScheme (..)
-
-    -- * RegionInstanceGroupManagerListWarning
-    , RegionInstanceGroupManagerListWarning
-    , regionInstanceGroupManagerListWarning
-    , rigmlwData
-    , rigmlwCode
-    , rigmlwMessage
-
-    -- * RegionInstanceGroupManagersSetTemplateRequest
-    , RegionInstanceGroupManagersSetTemplateRequest
-    , regionInstanceGroupManagersSetTemplateRequest
-    , rigmstrInstanceTemplate
-
-    -- * InstanceGroupsListInstances
-    , InstanceGroupsListInstances
-    , instanceGroupsListInstances
-    , igliNextPageToken
-    , igliKind
-    , igliItems
-    , igliSelfLink
-    , igliWarning
-    , igliId
-
-    -- * DiskTypeAggregatedListWarningCode
-    , DiskTypeAggregatedListWarningCode (..)
-
-    -- * Autoscaler
-    , Autoscaler
-    , autoscaler
-    , aaStatus
-    , aaKind
-    , aaZone
-    , aaStatusDetails
-    , aaSelfLink
-    , aaName
-    , aaCreationTimestamp
-    , aaAutoscalingPolicy
-    , aaId
-    , aaRegion
-    , aaDescription
-    , aaTarget
-
-    -- * MachineTypeListWarning
-    , MachineTypeListWarning
-    , machineTypeListWarning
-    , mtlwData
-    , mtlwCode
-    , mtlwMessage
-
-    -- * TargetHTTPProxyListWarning
-    , TargetHTTPProxyListWarning
-    , targetHTTPProxyListWarning
-    , thttpplwData
-    , thttpplwCode
-    , thttpplwMessage
-
-    -- * DiskAggregatedListWarning
-    , DiskAggregatedListWarning
-    , diskAggregatedListWarning
-    , dalwData
-    , dalwCode
-    , dalwMessage
-
-    -- * TargetPoolAggregatedListWarning
-    , TargetPoolAggregatedListWarning
-    , targetPoolAggregatedListWarning
-    , tpalwData
-    , tpalwCode
-    , tpalwMessage
-
-    -- * UsableSubnetworksAggregatedListWarning
-    , UsableSubnetworksAggregatedListWarning
-    , usableSubnetworksAggregatedListWarning
-    , usalwData
-    , usalwCode
-    , usalwMessage
-
-    -- * DisksScopedListWarning
-    , DisksScopedListWarning
-    , disksScopedListWarning
-    , dslwData
-    , dslwCode
-    , dslwMessage
-
-    -- * NodeTemplatesScopedListWarningDataItem
-    , NodeTemplatesScopedListWarningDataItem
-    , nodeTemplatesScopedListWarningDataItem
-    , ntslwdiValue
-    , ntslwdiKey
-
-    -- * TargetVPNGatewayAggregatedListItems
-    , TargetVPNGatewayAggregatedListItems
-    , targetVPNGatewayAggregatedListItems
-    , tvgaliAddtional
-
-    -- * DiskLabels
-    , DiskLabels
-    , diskLabels
-    , dlAddtional
-
-    -- * InstanceGroupManagerListWarningDataItem
-    , InstanceGroupManagerListWarningDataItem
-    , instanceGroupManagerListWarningDataItem
-    , igmlwdiValue
-    , igmlwdiKey
-
-    -- * InterconnectInterconnectType
-    , InterconnectInterconnectType (..)
-
-    -- * ForwardingRuleAggregatedListWarning
-    , ForwardingRuleAggregatedListWarning
-    , forwardingRuleAggregatedListWarning
-    , fralwData
-    , fralwCode
-    , fralwMessage
-
-    -- * InstanceGroupManagerListWarningCode
-    , InstanceGroupManagerListWarningCode (..)
-
-    -- * SSLPolicyWarningsItem
-    , SSLPolicyWarningsItem
-    , sslPolicyWarningsItem
-    , spwiData
-    , spwiCode
-    , spwiMessage
-
-    -- * RouterStatusBGPPeerStatusStatus
-    , RouterStatusBGPPeerStatusStatus (..)
-
-    -- * GlobalSetPolicyRequest
-    , GlobalSetPolicyRequest
-    , globalSetPolicyRequest
-    , gsprEtag
-    , gsprBindings
-    , gsprPolicy
-
-    -- * RegionAutoscalerListWarningDataItem
-    , RegionAutoscalerListWarningDataItem
-    , regionAutoscalerListWarningDataItem
-    , ralwdiaValue
-    , ralwdiaKey
-
-    -- * DiskListWarningCode
-    , DiskListWarningCode (..)
-
-    -- * GlobalSetLabelsRequestLabels
-    , GlobalSetLabelsRequestLabels
-    , globalSetLabelsRequestLabels
-    , gslrlAddtional
-
-    -- * TargetPoolsScopedListWarning
-    , TargetPoolsScopedListWarning
-    , targetPoolsScopedListWarning
-    , tpslwData
-    , tpslwCode
-    , tpslwMessage
-
-    -- * HealthStatus
-    , HealthStatus
-    , healthStatus
-    , hsIPAddress
-    , hsHealthState
-    , hsPort
-    , hsInstance
-
-    -- * TargetTCPProxyList
-    , TargetTCPProxyList
-    , targetTCPProxyList
-    , ttplNextPageToken
-    , ttplKind
-    , ttplItems
-    , ttplSelfLink
-    , ttplWarning
-    , ttplId
-
-    -- * Region
-    , Region
-    , region
-    , regeStatus
-    , regeZones
-    , regeKind
-    , regeSelfLink
-    , regeName
-    , regeCreationTimestamp
-    , regeQuotas
-    , regeId
-    , regeDescription
-    , regeDeprecated
-
-    -- * RegionAutoscalerListWarningCode
-    , RegionAutoscalerListWarningCode (..)
-
-    -- * OperationListWarningDataItem
-    , OperationListWarningDataItem
-    , operationListWarningDataItem
-    , olwdiValue
-    , olwdiKey
-
-    -- * GuestOSFeature
-    , GuestOSFeature
-    , guestOSFeature
-    , gofType
-
-    -- * VPNTunnel
-    , VPNTunnel
-    , vpnTunnel
-    , vtDetailedStatus
-    , vtStatus
-    , vtLocalTrafficSelector
-    , vtKind
-    , vtPeerIP
-    , vtRouter
-    , vtTargetVPNGateway
-    , vtRemoteTrafficSelector
-    , vtSelfLink
-    , vtSharedSecret
-    , vtName
-    , vtCreationTimestamp
-    , vtSharedSecretHash
-    , vtId
-    , vtIkeVersion
-    , vtRegion
-    , vtDescription
-
-    -- * InstanceGroupManagerAggregatedListWarning
-    , InstanceGroupManagerAggregatedListWarning
-    , instanceGroupManagerAggregatedListWarning
-    , igmalwData
-    , igmalwCode
-    , igmalwMessage
-
-    -- * DiskListWarningDataItem
-    , DiskListWarningDataItem
-    , diskListWarningDataItem
-    , dlwdiValue
-    , dlwdiKey
-
-    -- * CommitmentPlan
-    , CommitmentPlan (..)
-
-    -- * OperationListWarningCode
-    , OperationListWarningCode (..)
-
-    -- * SourceInstanceParams
-    , SourceInstanceParams
-    , sourceInstanceParams
-    , sipDiskConfigs
-
-    -- * AliasIPRange
-    , AliasIPRange
-    , aliasIPRange
-    , airIPCIdRRange
-    , airSubnetworkRangeName
-
-    -- * ForwardingRuleListWarningCode
-    , ForwardingRuleListWarningCode (..)
-
-    -- * NodeTypesScopedListWarningDataItem
-    , NodeTypesScopedListWarningDataItem
-    , nodeTypesScopedListWarningDataItem
-    , ntslwditValue
-    , ntslwditKey
-
-    -- * VPNTunnelsScopedListWarningCode
-    , VPNTunnelsScopedListWarningCode (..)
-
-    -- * TargetInstanceListWarning
-    , TargetInstanceListWarning
-    , targetInstanceListWarning
-    , tilwData
-    , tilwCode
-    , tilwMessage
-
-    -- * NodeTypesScopedListWarningCode
-    , NodeTypesScopedListWarningCode (..)
-
-    -- * NodeType
-    , NodeType
-    , nodeType
-    , ntKind
-    , ntZone
-    , ntCPUPlatform
-    , ntLocalSsdGb
-    , ntSelfLink
-    , ntName
-    , ntCreationTimestamp
-    , ntId
-    , ntGuestCPUs
-    , ntMemoryMb
-    , ntDescription
-    , ntDeprecated
-
-    -- * AuthorizationLoggingOptions
-    , AuthorizationLoggingOptions
-    , authorizationLoggingOptions
-    , aloPermissionType
-
-    -- * Policy
-    , Policy
-    , policy
-    , pAuditConfigs
-    , pEtag
-    , pRules
-    , pVersion
-    , pBindings
-    , pIAMOwned
-
-    -- * OperationAggregatedListWarning
-    , OperationAggregatedListWarning
-    , operationAggregatedListWarning
-    , oalwData
-    , oalwCode
-    , oalwMessage
-
-    -- * TargetInstanceAggregatedListWarningDataItem
-    , TargetInstanceAggregatedListWarningDataItem
-    , targetInstanceAggregatedListWarningDataItem
-    , tialwdiValue
-    , tialwdiKey
-
-    -- * OperationsScopedListWarning
-    , OperationsScopedListWarning
-    , operationsScopedListWarning
-    , oslwData
-    , oslwCode
-    , oslwMessage
-
-    -- * RegionDiskTypeListWarningDataItem
-    , RegionDiskTypeListWarningDataItem
-    , regionDiskTypeListWarningDataItem
-    , rdtlwdiValue
-    , rdtlwdiKey
-
-    -- * ForwardingRuleListWarningDataItem
-    , ForwardingRuleListWarningDataItem
-    , forwardingRuleListWarningDataItem
-    , frlwdiValue
-    , frlwdiKey
-
-    -- * Scheduling
-    , Scheduling
-    , scheduling
-    , sAutomaticRestart
-    , sNodeAffinities
-    , sOnHostMaintenance
-    , sPreemptible
-
-    -- * TargetInstanceAggregatedListWarningCode
-    , TargetInstanceAggregatedListWarningCode (..)
-
-    -- * RegionDiskTypeListWarningCode
-    , RegionDiskTypeListWarningCode (..)
-
-    -- * VPNTunnelsScopedListWarningDataItem
-    , VPNTunnelsScopedListWarningDataItem
-    , vpnTunnelsScopedListWarningDataItem
-    , vtslwdiValue
-    , vtslwdiKey
-
-    -- * InterconnectList
-    , InterconnectList
-    , interconnectList
-    , intnNextPageToken
-    , intnKind
-    , intnItems
-    , intnSelfLink
-    , intnWarning
-    , intnId
-
-    -- * TargetPoolListWarningDataItem
-    , TargetPoolListWarningDataItem
-    , targetPoolListWarningDataItem
-    , tplwdiValue
-    , tplwdiKey
-
-    -- * NodeTemplate
-    , NodeTemplate
-    , nodeTemplate
-    , nttStatus
-    , nttKind
-    , nttSelfLink
-    , nttName
-    , nttStatusMessage
-    , nttCreationTimestamp
-    , nttNodeAffinityLabels
-    , nttId
-    , nttNodeTypeFlexibility
-    , nttNodeType
-    , nttRegion
-    , nttDescription
-
-    -- * NetworkEndpointGroupList
-    , NetworkEndpointGroupList
-    , networkEndpointGroupList
-    , neglNextPageToken
-    , neglKind
-    , neglItems
-    , neglSelfLink
-    , neglWarning
-    , neglId
-
-    -- * SubnetworkList
-    , SubnetworkList
-    , subnetworkList
-    , slNextPageToken
-    , slKind
-    , slItems
-    , slSelfLink
-    , slWarning
-    , slId
-
-    -- * AddressAddressType
-    , AddressAddressType (..)
-
-    -- * TargetPoolListWarningCode
-    , TargetPoolListWarningCode (..)
-
-    -- * ForwardingRulesScopedListWarning
-    , ForwardingRulesScopedListWarning
-    , forwardingRulesScopedListWarning
-    , frslwData
-    , frslwCode
-    , frslwMessage
-
-    -- * HTTPHealthCheckList
-    , HTTPHealthCheckList
-    , hTTPHealthCheckList
-    , httphclNextPageToken
-    , httphclKind
-    , httphclItems
-    , httphclSelfLink
-    , httphclWarning
-    , httphclId
-
-    -- * InstanceGroupManagersScopedListWarning
-    , InstanceGroupManagersScopedListWarning
-    , instanceGroupManagersScopedListWarning
-    , igmslwData
-    , igmslwCode
-    , igmslwMessage
-
-    -- * SSLPoliciesList
-    , SSLPoliciesList
-    , sslPoliciesList
-    , sslplNextPageToken
-    , sslplKind
-    , sslplItems
-    , sslplSelfLink
-    , sslplWarning
-    , sslplId
-
-    -- * NodeTemplatesScopedListWarningCode
-    , NodeTemplatesScopedListWarningCode (..)
-
-    -- * URLMapsValidateRequest
-    , URLMapsValidateRequest
-    , urlMapsValidateRequest
-    , umvrResource
-
-    -- * InstanceGroupManagersSetTargetPoolsRequest
-    , InstanceGroupManagersSetTargetPoolsRequest
-    , instanceGroupManagersSetTargetPoolsRequest
-    , igmstprFingerprint
-    , igmstprTargetPools
-
-    -- * NetworkListWarningCode
-    , NetworkListWarningCode (..)
-
-    -- * Commitment
-    , Commitment
-    , commitment
-    , cStatus
-    , cKind
-    , cPlan
-    , cResources
-    , cEndTimestamp
-    , cSelfLink
-    , cName
-    , cStatusMessage
-    , cCreationTimestamp
-    , cId
-    , cRegion
-    , cStartTimestamp
-    , cDescription
-
-    -- * HTTPSHealthCheckList
-    , HTTPSHealthCheckList
-    , httpsHealthCheckList
-    , hhclNextPageToken
-    , hhclKind
-    , hhclItems
-    , hhclSelfLink
-    , hhclWarning
-    , hhclId
-
-    -- * AddressListWarningDataItem
-    , AddressListWarningDataItem
-    , addressListWarningDataItem
-    , addValue
-    , addKey
-
-    -- * OperationErrorErrorsItem
-    , OperationErrorErrorsItem
-    , operationErrorErrorsItem
-    , oeeiLocation
-    , oeeiCode
-    , oeeiMessage
-
-    -- * CommitmentListWarning
-    , CommitmentListWarning
-    , commitmentListWarning
-    , clwData
-    , clwCode
-    , clwMessage
-
-    -- * License
-    , License
-    , license
-    , lChargesUseFee
-    , lKind
-    , lResourceRequirements
-    , lTransferable
-    , lSelfLink
-    , lName
-    , lCreationTimestamp
-    , lId
-    , lDescription
-    , lLicenseCode
-
-    -- * PathRule
-    , PathRule
-    , pathRule
-    , prService
-    , prPaths
-
-    -- * LicenseCodeLicenseAlias
-    , LicenseCodeLicenseAlias
-    , licenseCodeLicenseAlias
-    , lclaSelfLink
-    , lclaDescription
-
-    -- * XpnHostListWarningCode
-    , XpnHostListWarningCode (..)
-
-    -- * InterconnectAttachmentsScopedListWarningDataItem
-    , InterconnectAttachmentsScopedListWarningDataItem
-    , interconnectAttachmentsScopedListWarningDataItem
-    , iaslwdiValue
-    , iaslwdiKey
-
-    -- * SecurityPolicyListWarningDataItem
-    , SecurityPolicyListWarningDataItem
-    , securityPolicyListWarningDataItem
-    , secValue
-    , secKey
-
-    -- * InterconnectAttachmentAggregatedListWarningCode
-    , InterconnectAttachmentAggregatedListWarningCode (..)
-
-    -- * AuditLogConfig
-    , AuditLogConfig
-    , auditLogConfig
-    , alcLogType
-    , alcExemptedMembers
-
-    -- * CommitmentsScopedListWarningDataItem
-    , CommitmentsScopedListWarningDataItem
-    , commitmentsScopedListWarningDataItem
-    , cslwdiValue
-    , cslwdiKey
-
-    -- * InterconnectAttachment
-    , InterconnectAttachment
-    , interconnectAttachment
-    , iaState
-    , iaPartnerASN
-    , iaPairingKey
-    , iaKind
-    , iaCustomerRouterIPAddress
-    , iaPartnerMetadata
-    , iaRouter
-    , iaOperationalStatus
-    , iaSelfLink
-    , iaName
-    , iaBandwidth
-    , iaGoogleReferenceId
-    , iaCreationTimestamp
-    , iaEdgeAvailabilityDomain
-    , iaInterconnect
-    , iaAdminEnabled
-    , iaVLANTag8021q
-    , iaCloudRouterIPAddress
-    , iaId
-    , iaCandidateSubnets
-    , iaRegion
-    , iaType
-    , iaDescription
-    , iaPrivateInterconnectInfo
-
-    -- * InstanceList
-    , InstanceList
-    , instanceList
-    , insNextPageToken
-    , insKind
-    , insItems
-    , insSelfLink
-    , insWarning
-    , insId
-
-    -- * RegionSetLabelsRequestLabels
-    , RegionSetLabelsRequestLabels
-    , regionSetLabelsRequestLabels
-    , rslrlAddtional
-
-    -- * NetworkListWarningDataItem
-    , NetworkListWarningDataItem
-    , networkListWarningDataItem
-    , nlwdiValue
-    , nlwdiKey
-
-    -- * AddressListWarningCode
-    , AddressListWarningCode (..)
-
-    -- * NetworkPeeringState
-    , NetworkPeeringState (..)
-
-    -- * CacheKeyPolicy
-    , CacheKeyPolicy
-    , cacheKeyPolicy
-    , ckpQueryStringWhiteList
-    , ckpIncludeHost
-    , ckpIncludeProtocol
-    , ckpQueryStringBlackList
-    , ckpIncludeQueryString
-
-    -- * ZoneListWarningCode
-    , ZoneListWarningCode (..)
-
-    -- * CommitmentAggregatedListWarningDataItem
-    , CommitmentAggregatedListWarningDataItem
-    , commitmentAggregatedListWarningDataItem
-    , calwdiValue
-    , calwdiKey
-
-    -- * RegionInstanceGroupListWarningDataItem
-    , RegionInstanceGroupListWarningDataItem
-    , regionInstanceGroupListWarningDataItem
-    , riglwdiValue
-    , riglwdiKey
-
-    -- * SubnetworkAggregatedListItems
-    , SubnetworkAggregatedListItems
-    , subnetworkAggregatedListItems
-    , saliAddtional
-
-    -- * NetworkEndpointGroupAggregatedListItems
-    , NetworkEndpointGroupAggregatedListItems
-    , networkEndpointGroupAggregatedListItems
-    , negaliAddtional
-
-    -- * InterconnectAttachmentAggregatedListWarningDataItem
-    , InterconnectAttachmentAggregatedListWarningDataItem
-    , interconnectAttachmentAggregatedListWarningDataItem
-    , iaalwdiValue
-    , iaalwdiKey
-
-    -- * AuthorizationLoggingOptionsPermissionType
-    , AuthorizationLoggingOptionsPermissionType (..)
-
-    -- * InterconnectAttachmentListWarning
-    , InterconnectAttachmentListWarning
-    , interconnectAttachmentListWarning
-    , intData
-    , intCode
-    , intMessage
-
-    -- * InterconnectOutageNotificationIssueType
-    , InterconnectOutageNotificationIssueType (..)
-
-    -- * CommitmentsScopedListWarningCode
-    , CommitmentsScopedListWarningCode (..)
-
-    -- * Condition
-    , Condition
-    , condition
-    , cOp
-    , cIAM
-    , cValues
-    , cSys
-    , cSvc
-
-    -- * AddressAggregatedListWarning
-    , AddressAggregatedListWarning
-    , addressAggregatedListWarning
-    , addData
-    , addCode
-    , addMessage
-
-    -- * ManagedInstanceLastAttempt
-    , ManagedInstanceLastAttempt
-    , managedInstanceLastAttempt
-    , milaErrors
-
-    -- * LicensesListResponseWarning
-    , LicensesListResponseWarning
-    , licensesListResponseWarning
-    , llrwData
-    , llrwCode
-    , llrwMessage
-
-    -- * AutoscalerStatusDetails
-    , AutoscalerStatusDetails
-    , autoscalerStatusDetails
-    , asdType
-    , asdMessage
-
-    -- * HTTP2HealthCheckProxyHeader
-    , HTTP2HealthCheckProxyHeader (..)
-
-    -- * BackendServiceList
-    , BackendServiceList
-    , backendServiceList
-    , bslNextPageToken
-    , bslKind
-    , bslItems
-    , bslSelfLink
-    , bslWarning
-    , bslId
-
-    -- * XpnHostListWarningDataItem
-    , XpnHostListWarningDataItem
-    , xpnHostListWarningDataItem
-    , xhlwdiValue
-    , xhlwdiKey
-
-    -- * InterconnectAttachmentsScopedListWarningCode
-    , InterconnectAttachmentsScopedListWarningCode (..)
-
-    -- * SecurityPolicyListWarningCode
-    , SecurityPolicyListWarningCode (..)
-
-    -- * ZoneListWarningDataItem
-    , ZoneListWarningDataItem
-    , zoneListWarningDataItem
-    , zlwdiValue
-    , zlwdiKey
-
-    -- * RegionSetPolicyRequest
-    , RegionSetPolicyRequest
-    , regionSetPolicyRequest
-    , rsprEtag
-    , rsprBindings
-    , rsprPolicy
-
-    -- * CommitmentAggregatedListWarningCode
-    , CommitmentAggregatedListWarningCode (..)
-
-    -- * RegionInstanceGroupListWarningCode
-    , RegionInstanceGroupListWarningCode (..)
-
-    -- * InstanceGroupsScopedListWarning
-    , InstanceGroupsScopedListWarning
-    , instanceGroupsScopedListWarning
-    , igslwData
-    , igslwCode
-    , igslwMessage
-
-    -- * InterconnectLocationStatus
-    , InterconnectLocationStatus (..)
-
-    -- * AutoscalingPolicyCPUUtilization
-    , AutoscalingPolicyCPUUtilization
-    , autoscalingPolicyCPUUtilization
-    , apcuUtilizationTarget
-
-    -- * InstanceGroupsScopedListWarningCode
-    , InstanceGroupsScopedListWarningCode (..)
-
-    -- * InterconnectOperationalStatus
-    , InterconnectOperationalStatus (..)
-
-    -- * InstanceGroupsScopedListWarningDataItem
-    , InstanceGroupsScopedListWarningDataItem
-    , instanceGroupsScopedListWarningDataItem
-    , igslwdiValue
-    , igslwdiKey
-
-    -- * SecurityPolicyRuleMatcherConfig
-    , SecurityPolicyRuleMatcherConfig
-    , securityPolicyRuleMatcherConfig
-    , sprmcSrcIPRanges
-
-    -- * LicensesListResponseWarningDataItem
-    , LicensesListResponseWarningDataItem
-    , licensesListResponseWarningDataItem
-    , llrwdiValue
-    , llrwdiKey
-
-    -- * LicensesListResponseWarningCode
-    , LicensesListResponseWarningCode (..)
-
-    -- * XpnHostListWarning
-    , XpnHostListWarning
-    , xpnHostListWarning
-    , xhlwData
-    , xhlwCode
-    , xhlwMessage
-
-    -- * ResourceGroupReference
-    , ResourceGroupReference
-    , resourceGroupReference
-    , rgrGroup
-
-    -- * VMEndpointNATMAppingsList
-    , VMEndpointNATMAppingsList
-    , vMEndpointNATMAppingsList
-    , vmenatmalNextPageToken
-    , vmenatmalKind
-    , vmenatmalResult
-    , vmenatmalSelfLink
-    , vmenatmalWarning
-    , vmenatmalId
-
-    -- * Firewall
-    , Firewall
-    , firewall
-    , fSourceTags
-    , fSourceServiceAccounts
-    , fPriority
-    , fDirection
-    , fKind
-    , fDisabled
-    , fTargetTags
-    , fNetwork
-    , fSourceRanges
-    , fSelfLink
-    , fName
-    , fDenied
-    , fCreationTimestamp
-    , fId
-    , fAllowed
-    , fDestinationRanges
-    , fLogConfig
-    , fTargetServiceAccounts
-    , fDescription
-
-    -- * InterconnectAttachmentsScopedListWarning
-    , InterconnectAttachmentsScopedListWarning
-    , interconnectAttachmentsScopedListWarning
-    , iaslwData
-    , iaslwCode
-    , iaslwMessage
-
-    -- * HostRule
-    , HostRule
-    , hostRule
-    , hrHosts
-    , hrDescription
-    , hrPathMatcher
-
-    -- * SecurityPolicyListWarning
-    , SecurityPolicyListWarning
-    , securityPolicyListWarning
-    , secData
-    , secCode
-    , secMessage
-
-    -- * Quota
-    , Quota
-    , quota
-    , qOwner
-    , qMetric
-    , qLimit
-    , qUsage
-
-    -- * InstanceGroup
-    , InstanceGroup
-    , instanceGroup
-    , ig1Size
-    , ig1Kind
-    , ig1Fingerprint
-    , ig1Network
-    , ig1Zone
-    , ig1SelfLink
-    , ig1Name
-    , ig1CreationTimestamp
-    , ig1Subnetwork
-    , ig1Id
-    , ig1Region
-    , ig1Description
-    , ig1NamedPorts
-
-    -- * AddressListWarning
-    , AddressListWarning
-    , addressListWarning
-    , alwlData
-    , alwlCode
-    , alwlMessage
-
-    -- * RegionSetLabelsRequest
-    , RegionSetLabelsRequest
-    , regionSetLabelsRequest
-    , rslrLabels
-    , rslrLabelFingerprint
-
-    -- * RouterInterface
-    , RouterInterface
-    , routerInterface
-    , riLinkedInterconnectAttachment
-    , riName
-    , riManagementType
-    , riIPRange
-    , riLinkedVPNTunnel
-
-    -- * InstanceWithNamedPortsStatus
-    , InstanceWithNamedPortsStatus (..)
-
-    -- * NetworkListWarning
-    , NetworkListWarning
-    , networkListWarning
-    , nlwData
-    , nlwCode
-    , nlwMessage
-
-    -- * TCPHealthCheckProxyHeader
-    , TCPHealthCheckProxyHeader (..)
-
-    -- * SnapshotList
-    , SnapshotList
-    , snapshotList
-    , snaNextPageToken
-    , snaKind
-    , snaItems
-    , snaSelfLink
-    , snaWarning
-    , snaId
-
-    -- * InterconnectDiagnostics
-    , InterconnectDiagnostics
-    , interconnectDiagnostics
-    , idMACAddress
-    , idArpCaches
-    , idLinks
-
-    -- * CommitmentListWarningCode
-    , CommitmentListWarningCode (..)
-
-    -- * HTTPHealthCheckPortSpecification
-    , HTTPHealthCheckPortSpecification (..)
-
-    -- * LicenseCode
-    , LicenseCode
-    , licenseCode
-    , lcState
-    , lcKind
-    , lcTransferable
-    , lcSelfLink
-    , lcName
-    , lcCreationTimestamp
-    , lcId
-    , lcLicenseAlias
-    , lcDescription
-
-    -- * TestFailure
-    , TestFailure
-    , testFailure
-    , tfPath
-    , tfExpectedService
-    , tfHost
-    , tfActualService
-
-    -- * CommitmentListWarningDataItem
-    , CommitmentListWarningDataItem
-    , commitmentListWarningDataItem
-    , clwdiValue
-    , clwdiKey
-
-    -- * ConditionIAM
-    , ConditionIAM (..)
-
-    -- * ManagedInstanceVersion
-    , ManagedInstanceVersion
-    , managedInstanceVersion
-    , mivInstanceTemplate
-    , mivName
-
-    -- * CommitmentsScopedListWarning
-    , CommitmentsScopedListWarning
-    , commitmentsScopedListWarning
-    , cslwData
-    , cslwCode
-    , cslwMessage
-
-    -- * SerialPortOutput
-    , SerialPortOutput
-    , serialPortOutput
-    , spoNext
-    , spoContents
-    , spoKind
-    , spoStart
-    , spoSelfLink
-
-    -- * TargetVPNGatewayAggregatedList
-    , TargetVPNGatewayAggregatedList
-    , targetVPNGatewayAggregatedList
-    , tvgalNextPageToken
-    , tvgalKind
-    , tvgalItems
-    , tvgalSelfLink
-    , tvgalWarning
-    , tvgalId
-
-    -- * InterconnectAttachmentAggregatedListWarning
-    , InterconnectAttachmentAggregatedListWarning
-    , interconnectAttachmentAggregatedListWarning
-    , iaalwData
-    , iaalwCode
-    , iaalwMessage
-
-    -- * MetadataItemsItem
-    , MetadataItemsItem
-    , metadataItemsItem
-    , miiValue
-    , miiKey
-
-    -- * SignedURLKey
-    , SignedURLKey
-    , signedURLKey
-    , sukKeyValue
-    , sukKeyName
-
-    -- * TargetHTTPSProxy
-    , TargetHTTPSProxy
-    , targetHTTPSProxy
-    , thpSSLPolicy
-    , thpURLMap
-    , thpSSLCertificates
-    , thpQuicOverride
-    , thpKind
-    , thpSelfLink
-    , thpName
-    , thpCreationTimestamp
-    , thpId
-    , thpDescription
-
-    -- * ConnectionDraining
-    , ConnectionDraining
-    , connectionDraining
-    , cdDrainingTimeoutSec
-
-    -- * InterconnectAttachmentListWarningDataItem
-    , InterconnectAttachmentListWarningDataItem
-    , interconnectAttachmentListWarningDataItem
-    , ialwdiValue
-    , ialwdiKey
-
-    -- * AddressAggregatedListWarningCode
-    , AddressAggregatedListWarningCode (..)
-
-    -- * CacheInvalidationRule
-    , CacheInvalidationRule
-    , cacheInvalidationRule
-    , cirPath
-    , cirHost
-
-    -- * AddressAggregatedListWarningDataItem
-    , AddressAggregatedListWarningDataItem
-    , addressAggregatedListWarningDataItem
-    , aalwdiaValue
-    , aalwdiaKey
-
-    -- * InterconnectAttachmentListWarningCode
-    , InterconnectAttachmentListWarningCode (..)
-
-    -- * TargetVPNGatewaysScopedList
-    , TargetVPNGatewaysScopedList
-    , targetVPNGatewaysScopedList
-    , tvgslTargetVPNGateways
-    , tvgslWarning
-
-    -- * CommitmentAggregatedListWarning
-    , CommitmentAggregatedListWarning
-    , commitmentAggregatedListWarning
-    , calwData
-    , calwCode
-    , calwMessage
-
-    -- * RegionInstanceGroupListWarning
-    , RegionInstanceGroupListWarning
-    , regionInstanceGroupListWarning
-    , riglwData
-    , riglwCode
-    , riglwMessage
-
-    -- * AccessConfig
-    , AccessConfig
-    , accessConfig
-    , acNetworkTier
-    , acSetPublicPtr
-    , acKind
-    , acName
-    , acNATIP
-    , acPublicPtrDomainName
-    , acType
-
-    -- * LogConfig
-    , LogConfig
-    , logConfig
-    , lcCloudAudit
-    , lcDataAccess
-    , lcCounter
-
-    -- * ZoneListWarning
-    , ZoneListWarning
-    , zoneListWarning
-    , zlwData
-    , zlwCode
-    , zlwMessage
-
-    -- * ManagedInstanceLastAttemptErrorsErrorsItem
-    , ManagedInstanceLastAttemptErrorsErrorsItem
-    , managedInstanceLastAttemptErrorsErrorsItem
-    , milaeeiLocation
-    , milaeeiCode
-    , milaeeiMessage
-
-    -- * InstancesScopedListWarningCode
-    , InstancesScopedListWarningCode (..)
-
-    -- * InstancesScopedListWarningDataItem
-    , InstancesScopedListWarningDataItem
-    , instancesScopedListWarningDataItem
-    , islwdiValue
-    , islwdiKey
-
-    -- * SnapshotLabels
-    , SnapshotLabels
-    , snapshotLabels
-    , slAddtional
-
-    -- * BackendServicesScopedListWarningDataItem
-    , BackendServicesScopedListWarningDataItem
-    , backendServicesScopedListWarningDataItem
-    , bsslwdiValue
-    , bsslwdiKey
-
-    -- * NodeTemplateAggregatedListItems
-    , NodeTemplateAggregatedListItems
-    , nodeTemplateAggregatedListItems
-    , ntaliAddtional
-
-    -- * BackendService
-    , BackendService
-    , backendService
-    , bsSessionAffinity
-    , bsBackends
-    , bsAffinityCookieTtlSec
-    , bsIap
-    , bsLoadBalancingScheme
-    , bsKind
-    , bsEnableCDN
-    , bsFingerprint
-    , bsProtocol
-    , bsCustomRequestHeaders
-    , bsSecurityPolicy
-    , bsCdnPolicy
-    , bsSelfLink
-    , bsName
-    , bsCreationTimestamp
-    , bsId
-    , bsRegion
-    , bsConnectionDraining
-    , bsTimeoutSec
-    , bsDescription
-    , bsPortName
-    , bsHealthChecks
-    , bsPort
-
-    -- * InstanceListWarning
-    , InstanceListWarning
-    , instanceListWarning
-    , insData
-    , insCode
-    , insMessage
-
-    -- * InstanceMoveRequest
-    , InstanceMoveRequest
-    , instanceMoveRequest
-    , imrTargetInstance
-    , imrDestinationZone
-
-    -- * XpnResourceIdType
-    , XpnResourceIdType (..)
-
-    -- * InterconnectDiagnosticsARPEntry
-    , InterconnectDiagnosticsARPEntry
-    , interconnectDiagnosticsARPEntry
-    , idarpeIPAddress
-    , idarpeMACAddress
-
-    -- * ShieldedInstanceIdentity
-    , ShieldedInstanceIdentity
-    , shieldedInstanceIdentity
-    , siiSigningKey
-    , siiKind
-    , siiEncryptionKey
-
-    -- * BackendServicesScopedListWarningCode
-    , BackendServicesScopedListWarningCode (..)
-
-    -- * CommitmentList
-    , CommitmentList
-    , commitmentList
-    , clNextPageToken
-    , clKind
-    , clItems
-    , clSelfLink
-    , clWarning
-    , clId
-
-    -- * TargetPoolSessionAffinity
-    , TargetPoolSessionAffinity (..)
-
-    -- * InstancesSetLabelsRequestLabels
-    , InstancesSetLabelsRequestLabels
-    , instancesSetLabelsRequestLabels
-    , islrlAddtional
-
-    -- * InstanceGroupsScopedList
-    , InstanceGroupsScopedList
-    , instanceGroupsScopedList
-    , igslWarning
-    , igslInstanceGroups
-
-    -- * InstancesStartWithEncryptionKeyRequest
-    , InstancesStartWithEncryptionKeyRequest
-    , instancesStartWithEncryptionKeyRequest
-    , iswekrDisks
-
-    -- * HTTPSHealthCheck
-    , HTTPSHealthCheck
-    , httpsHealthCheck
-    , hhcResponse
-    , hhcPortSpecification
-    , hhcRequestPath
-    , hhcHost
-    , hhcProxyHeader
-    , hhcPortName
-    , hhcPort
-
-    -- * AutoscalerStatus
-    , AutoscalerStatus (..)
-
-    -- * ImageRawDiskContainerType
-    , ImageRawDiskContainerType (..)
-
-    -- * InstanceAggregatedListWarningCode
-    , InstanceAggregatedListWarningCode (..)
-
-    -- * VPNTunnelAggregatedListItems
-    , VPNTunnelAggregatedListItems
-    , vpnTunnelAggregatedListItems
-    , vtaliAddtional
-
-    -- * ResourceCommitmentType
-    , ResourceCommitmentType (..)
-
-    -- * InstanceAggregatedListWarningDataItem
-    , InstanceAggregatedListWarningDataItem
-    , instanceAggregatedListWarningDataItem
-    , insValue
-    , insKey
-
-    -- * Tags
-    , Tags
-    , tags
-    , tFingerprint
-    , tItems
-
-    -- * AddressAggregatedList
-    , AddressAggregatedList
-    , addressAggregatedList
-    , addNextPageToken
-    , addKind
-    , addItems
-    , addSelfLink
-    , addWarning
-    , addId
-
-    -- * InterconnectAttachmentList
-    , InterconnectAttachmentList
-    , interconnectAttachmentList
-    , ialaNextPageToken
-    , ialaKind
-    , ialaItems
-    , ialaSelfLink
-    , ialaWarning
-    , ialaId
-
-    -- * OperationWarningsItem
-    , OperationWarningsItem
-    , operationWarningsItem
-    , owiData
-    , owiCode
-    , owiMessage
-
-    -- * Binding
-    , Binding
-    , binding
-    , bMembers
-    , bRole
-    , bCondition
-
-    -- * ForwardingRuleNetworkTier
-    , ForwardingRuleNetworkTier (..)
-
-    -- * URLMapTest
-    , URLMapTest
-    , urlMapTest
-    , umtPath
-    , umtService
-    , umtHost
-    , umtDescription
-
-    -- * HTTPSHealthCheckListWarning
-    , HTTPSHealthCheckListWarning
-    , httpsHealthCheckListWarning
-    , hhclwData
-    , hhclwCode
-    , hhclwMessage
-
-    -- * NodeTypeAggregatedListItems
-    , NodeTypeAggregatedListItems
-    , nodeTypeAggregatedListItems
-    , nAddtional
-
-    -- * RoutersPreviewResponse
-    , RoutersPreviewResponse
-    , routersPreviewResponse
-    , rprResource
-
-    -- * LicensesListResponse
-    , LicensesListResponse
-    , licensesListResponse
-    , llrNextPageToken
-    , llrItems
-    , llrSelfLink
-    , llrWarning
-    , llrId
-
-    -- * BackendServiceAggregatedListWarningDataItem
-    , BackendServiceAggregatedListWarningDataItem
-    , backendServiceAggregatedListWarningDataItem
-    , bsalwdiValue
-    , bsalwdiKey
-
-    -- * Instance
-    , Instance
-    , instance'
-    , i1Status
-    , i1ServiceAccounts
-    , i1DeletionProtection
-    , i1Hostname
-    , i1NetworkInterfaces
-    , i1ShieldedInstanceIntegrityPolicy
-    , i1Kind
-    , i1Zone
-    , i1CPUPlatform
-    , i1SelfLink
-    , i1GuestAccelerators
-    , i1Name
-    , i1StatusMessage
-    , i1CreationTimestamp
-    , i1MachineType
-    , i1Metadata
-    , i1ShieldedInstanceConfig
-    , i1Id
-    , i1Labels
-    , i1StartRestricted
-    , i1Scheduling
-    , i1MinCPUPlatform
-    , i1Disks
-    , i1CanIPForward
-    , i1LabelFingerprint
-    , i1Description
-    , i1Tags
-
-    -- * PathMatcher
-    , PathMatcher
-    , pathMatcher
-    , pmDefaultService
-    , pmName
-    , pmPathRules
-    , pmDescription
-
-    -- * InstanceGroupManagerUpdatePolicyMinimalAction
-    , InstanceGroupManagerUpdatePolicyMinimalAction (..)
-
-    -- * BackendServiceListWarning
-    , BackendServiceListWarning
-    , backendServiceListWarning
-    , bslwData
-    , bslwCode
-    , bslwMessage
-
-    -- * BackendServiceAggregatedListWarningCode
-    , BackendServiceAggregatedListWarningCode (..)
-    ) where
-
-import           Network.Google.Compute.Types.Product
-import           Network.Google.Compute.Types.Sum
-import           Network.Google.Prelude
-
--- | Default request referring to version 'v1' of the Compute Engine API. This contains the host and root path used as a starting point for constructing service requests.
-computeService :: ServiceConfig
-computeService
-  = defaultService (ServiceId "compute:v1")
-      "www.googleapis.com"
-
--- | View and manage your Google Compute Engine resources
-computeScope :: Proxy '["https://www.googleapis.com/auth/compute"]
-computeScope = Proxy
-
--- | View and manage your data across Google Cloud Platform services
-cloudPlatformScope :: Proxy '["https://www.googleapis.com/auth/cloud-platform"]
-cloudPlatformScope = Proxy
-
--- | View your data in Google Cloud Storage
-storageReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_only"]
-storageReadOnlyScope = Proxy
-
--- | Manage your data in Google Cloud Storage
-storageReadWriteScope :: Proxy '["https://www.googleapis.com/auth/devstorage.read_write"]
-storageReadWriteScope = Proxy
-
--- | View your Google Compute Engine resources
-computeReadOnlyScope :: Proxy '["https://www.googleapis.com/auth/compute.readonly"]
-computeReadOnlyScope = Proxy
-
--- | Manage your data and permissions in Google Cloud Storage
-storageFullControlScope :: Proxy '["https://www.googleapis.com/auth/devstorage.full_control"]
-storageFullControlScope = Proxy
diff --git a/gen/Network/Google/Compute/Types/Product.hs b/gen/Network/Google/Compute/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/Google/Compute/Types/Product.hs
+++ /dev/null
@@ -1,47908 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.Compute.Types.Product
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.Compute.Types.Product where
-
-import           Network.Google.Compute.Types.Sum
-import           Network.Google.Prelude
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceAggregatedListWarning' smart constructor.
-data InstanceAggregatedListWarning =
-  InstanceAggregatedListWarning'
-    { _ialwData    :: !(Maybe [InstanceAggregatedListWarningDataItem])
-    , _ialwCode    :: !(Maybe InstanceAggregatedListWarningCode)
-    , _ialwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialwData'
---
--- * 'ialwCode'
---
--- * 'ialwMessage'
-instanceAggregatedListWarning
-    :: InstanceAggregatedListWarning
-instanceAggregatedListWarning =
-  InstanceAggregatedListWarning'
-    {_ialwData = Nothing, _ialwCode = Nothing, _ialwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ialwData :: Lens' InstanceAggregatedListWarning [InstanceAggregatedListWarningDataItem]
-ialwData
-  = lens _ialwData (\ s a -> s{_ialwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ialwCode :: Lens' InstanceAggregatedListWarning (Maybe InstanceAggregatedListWarningCode)
-ialwCode = lens _ialwCode (\ s a -> s{_ialwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ialwMessage :: Lens' InstanceAggregatedListWarning (Maybe Text)
-ialwMessage
-  = lens _ialwMessage (\ s a -> s{_ialwMessage = a})
-
-instance FromJSON InstanceAggregatedListWarning where
-        parseJSON
-          = withObject "InstanceAggregatedListWarning"
-              (\ o ->
-                 InstanceAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceAggregatedListWarning where
-        toJSON InstanceAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ialwData,
-                  ("code" .=) <$> _ialwCode,
-                  ("message" .=) <$> _ialwMessage])
-
--- | Contains a list of TargetHttpsProxy resources.
---
--- /See:/ 'targetHTTPSProxyList' smart constructor.
-data TargetHTTPSProxyList =
-  TargetHTTPSProxyList'
-    { _thplNextPageToken :: !(Maybe Text)
-    , _thplKind          :: !Text
-    , _thplItems         :: !(Maybe [TargetHTTPSProxy])
-    , _thplSelfLink      :: !(Maybe Text)
-    , _thplWarning       :: !(Maybe TargetHTTPSProxyListWarning)
-    , _thplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxyList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thplNextPageToken'
---
--- * 'thplKind'
---
--- * 'thplItems'
---
--- * 'thplSelfLink'
---
--- * 'thplWarning'
---
--- * 'thplId'
-targetHTTPSProxyList
-    :: TargetHTTPSProxyList
-targetHTTPSProxyList =
-  TargetHTTPSProxyList'
-    { _thplNextPageToken = Nothing
-    , _thplKind = "compute#targetHttpsProxyList"
-    , _thplItems = Nothing
-    , _thplSelfLink = Nothing
-    , _thplWarning = Nothing
-    , _thplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-thplNextPageToken :: Lens' TargetHTTPSProxyList (Maybe Text)
-thplNextPageToken
-  = lens _thplNextPageToken
-      (\ s a -> s{_thplNextPageToken = a})
-
--- | Type of resource. Always compute#targetHttpsProxyList for lists of
--- target HTTPS proxies.
-thplKind :: Lens' TargetHTTPSProxyList Text
-thplKind = lens _thplKind (\ s a -> s{_thplKind = a})
-
--- | A list of TargetHttpsProxy resources.
-thplItems :: Lens' TargetHTTPSProxyList [TargetHTTPSProxy]
-thplItems
-  = lens _thplItems (\ s a -> s{_thplItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-thplSelfLink :: Lens' TargetHTTPSProxyList (Maybe Text)
-thplSelfLink
-  = lens _thplSelfLink (\ s a -> s{_thplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-thplWarning :: Lens' TargetHTTPSProxyList (Maybe TargetHTTPSProxyListWarning)
-thplWarning
-  = lens _thplWarning (\ s a -> s{_thplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-thplId :: Lens' TargetHTTPSProxyList (Maybe Text)
-thplId = lens _thplId (\ s a -> s{_thplId = a})
-
-instance FromJSON TargetHTTPSProxyList where
-        parseJSON
-          = withObject "TargetHTTPSProxyList"
-              (\ o ->
-                 TargetHTTPSProxyList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetHttpsProxyList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetHTTPSProxyList where
-        toJSON TargetHTTPSProxyList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _thplNextPageToken,
-                  Just ("kind" .= _thplKind),
-                  ("items" .=) <$> _thplItems,
-                  ("selfLink" .=) <$> _thplSelfLink,
-                  ("warning" .=) <$> _thplWarning,
-                  ("id" .=) <$> _thplId])
-
---
--- /See:/ 'routersScopedList' smart constructor.
-data RoutersScopedList =
-  RoutersScopedList'
-    { _rslRouters :: !(Maybe [Router])
-    , _rslWarning :: !(Maybe RoutersScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rslRouters'
---
--- * 'rslWarning'
-routersScopedList
-    :: RoutersScopedList
-routersScopedList =
-  RoutersScopedList' {_rslRouters = Nothing, _rslWarning = Nothing}
-
-
--- | A list of routers contained in this scope.
-rslRouters :: Lens' RoutersScopedList [Router]
-rslRouters
-  = lens _rslRouters (\ s a -> s{_rslRouters = a}) .
-      _Default
-      . _Coerce
-
--- | Informational warning which replaces the list of routers when the list
--- is empty.
-rslWarning :: Lens' RoutersScopedList (Maybe RoutersScopedListWarning)
-rslWarning
-  = lens _rslWarning (\ s a -> s{_rslWarning = a})
-
-instance FromJSON RoutersScopedList where
-        parseJSON
-          = withObject "RoutersScopedList"
-              (\ o ->
-                 RoutersScopedList' <$>
-                   (o .:? "routers" .!= mempty) <*> (o .:? "warning"))
-
-instance ToJSON RoutersScopedList where
-        toJSON RoutersScopedList'{..}
-          = object
-              (catMaybes
-                 [("routers" .=) <$> _rslRouters,
-                  ("warning" .=) <$> _rslWarning])
-
---
--- /See:/ 'routerStatusResponse' smart constructor.
-data RouterStatusResponse =
-  RouterStatusResponse'
-    { _rsrKind   :: !Text
-    , _rsrResult :: !(Maybe RouterStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterStatusResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsrKind'
---
--- * 'rsrResult'
-routerStatusResponse
-    :: RouterStatusResponse
-routerStatusResponse =
-  RouterStatusResponse'
-    {_rsrKind = "compute#routerStatusResponse", _rsrResult = Nothing}
-
-
--- | Type of resource.
-rsrKind :: Lens' RouterStatusResponse Text
-rsrKind = lens _rsrKind (\ s a -> s{_rsrKind = a})
-
-rsrResult :: Lens' RouterStatusResponse (Maybe RouterStatus)
-rsrResult
-  = lens _rsrResult (\ s a -> s{_rsrResult = a})
-
-instance FromJSON RouterStatusResponse where
-        parseJSON
-          = withObject "RouterStatusResponse"
-              (\ o ->
-                 RouterStatusResponse' <$>
-                   (o .:? "kind" .!= "compute#routerStatusResponse") <*>
-                     (o .:? "result"))
-
-instance ToJSON RouterStatusResponse where
-        toJSON RouterStatusResponse'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _rsrKind),
-                  ("result" .=) <$> _rsrResult])
-
---
--- /See:/ 'regionInstanceGroupManagersDeleteInstancesRequest' smart constructor.
-newtype RegionInstanceGroupManagersDeleteInstancesRequest =
-  RegionInstanceGroupManagersDeleteInstancesRequest'
-    { _rigmdirInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersDeleteInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmdirInstances'
-regionInstanceGroupManagersDeleteInstancesRequest
-    :: RegionInstanceGroupManagersDeleteInstancesRequest
-regionInstanceGroupManagersDeleteInstancesRequest =
-  RegionInstanceGroupManagersDeleteInstancesRequest'
-    {_rigmdirInstances = Nothing}
-
-
--- | The URLs of one or more instances to delete. This can be a full URL or a
--- partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-rigmdirInstances :: Lens' RegionInstanceGroupManagersDeleteInstancesRequest [Text]
-rigmdirInstances
-  = lens _rigmdirInstances
-      (\ s a -> s{_rigmdirInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupManagersDeleteInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersDeleteInstancesRequest"
-              (\ o ->
-                 RegionInstanceGroupManagersDeleteInstancesRequest'
-                   <$> (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupManagersDeleteInstancesRequest
-         where
-        toJSON
-          RegionInstanceGroupManagersDeleteInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _rigmdirInstances])
-
---
--- /See:/ 'interconnectDiagnosticsLinkLACPStatus' smart constructor.
-data InterconnectDiagnosticsLinkLACPStatus =
-  InterconnectDiagnosticsLinkLACPStatus'
-    { _idllacpsState            :: !(Maybe InterconnectDiagnosticsLinkLACPStatusState)
-    , _idllacpsNeighborSystemId :: !(Maybe Text)
-    , _idllacpsGoogleSystemId   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectDiagnosticsLinkLACPStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idllacpsState'
---
--- * 'idllacpsNeighborSystemId'
---
--- * 'idllacpsGoogleSystemId'
-interconnectDiagnosticsLinkLACPStatus
-    :: InterconnectDiagnosticsLinkLACPStatus
-interconnectDiagnosticsLinkLACPStatus =
-  InterconnectDiagnosticsLinkLACPStatus'
-    { _idllacpsState = Nothing
-    , _idllacpsNeighborSystemId = Nothing
-    , _idllacpsGoogleSystemId = Nothing
-    }
-
-
-idllacpsState :: Lens' InterconnectDiagnosticsLinkLACPStatus (Maybe InterconnectDiagnosticsLinkLACPStatusState)
-idllacpsState
-  = lens _idllacpsState
-      (\ s a -> s{_idllacpsState = a})
-
--- | System ID of the port on the neighbor?s side of the LACP exchange.
-idllacpsNeighborSystemId :: Lens' InterconnectDiagnosticsLinkLACPStatus (Maybe Text)
-idllacpsNeighborSystemId
-  = lens _idllacpsNeighborSystemId
-      (\ s a -> s{_idllacpsNeighborSystemId = a})
-
--- | System ID of the port on Google?s side of the LACP exchange.
-idllacpsGoogleSystemId :: Lens' InterconnectDiagnosticsLinkLACPStatus (Maybe Text)
-idllacpsGoogleSystemId
-  = lens _idllacpsGoogleSystemId
-      (\ s a -> s{_idllacpsGoogleSystemId = a})
-
-instance FromJSON
-           InterconnectDiagnosticsLinkLACPStatus
-         where
-        parseJSON
-          = withObject "InterconnectDiagnosticsLinkLACPStatus"
-              (\ o ->
-                 InterconnectDiagnosticsLinkLACPStatus' <$>
-                   (o .:? "state") <*> (o .:? "neighborSystemId") <*>
-                     (o .:? "googleSystemId"))
-
-instance ToJSON InterconnectDiagnosticsLinkLACPStatus
-         where
-        toJSON InterconnectDiagnosticsLinkLACPStatus'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _idllacpsState,
-                  ("neighborSystemId" .=) <$>
-                    _idllacpsNeighborSystemId,
-                  ("googleSystemId" .=) <$> _idllacpsGoogleSystemId])
-
---
--- /See:/ 'addressesScopedList' smart constructor.
-data AddressesScopedList =
-  AddressesScopedList'
-    { _aslAddresses :: !(Maybe [Address])
-    , _aslWarning   :: !(Maybe AddressesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aslAddresses'
---
--- * 'aslWarning'
-addressesScopedList
-    :: AddressesScopedList
-addressesScopedList =
-  AddressesScopedList' {_aslAddresses = Nothing, _aslWarning = Nothing}
-
-
--- | [Output Only] A list of addresses contained in this scope.
-aslAddresses :: Lens' AddressesScopedList [Address]
-aslAddresses
-  = lens _aslAddresses (\ s a -> s{_aslAddresses = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Informational warning which replaces the list of addresses
--- when the list is empty.
-aslWarning :: Lens' AddressesScopedList (Maybe AddressesScopedListWarning)
-aslWarning
-  = lens _aslWarning (\ s a -> s{_aslWarning = a})
-
-instance FromJSON AddressesScopedList where
-        parseJSON
-          = withObject "AddressesScopedList"
-              (\ o ->
-                 AddressesScopedList' <$>
-                   (o .:? "addresses" .!= mempty) <*> (o .:? "warning"))
-
-instance ToJSON AddressesScopedList where
-        toJSON AddressesScopedList'{..}
-          = object
-              (catMaybes
-                 [("addresses" .=) <$> _aslAddresses,
-                  ("warning" .=) <$> _aslWarning])
-
---
--- /See:/ 'operationWarningsItemDataItem' smart constructor.
-data OperationWarningsItemDataItem =
-  OperationWarningsItemDataItem'
-    { _owidiValue :: !(Maybe Text)
-    , _owidiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationWarningsItemDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'owidiValue'
---
--- * 'owidiKey'
-operationWarningsItemDataItem
-    :: OperationWarningsItemDataItem
-operationWarningsItemDataItem =
-  OperationWarningsItemDataItem' {_owidiValue = Nothing, _owidiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-owidiValue :: Lens' OperationWarningsItemDataItem (Maybe Text)
-owidiValue
-  = lens _owidiValue (\ s a -> s{_owidiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-owidiKey :: Lens' OperationWarningsItemDataItem (Maybe Text)
-owidiKey = lens _owidiKey (\ s a -> s{_owidiKey = a})
-
-instance FromJSON OperationWarningsItemDataItem where
-        parseJSON
-          = withObject "OperationWarningsItemDataItem"
-              (\ o ->
-                 OperationWarningsItemDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON OperationWarningsItemDataItem where
-        toJSON OperationWarningsItemDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _owidiValue,
-                  ("key" .=) <$> _owidiKey])
-
---
--- /See:/ 'instanceGroupManagerUpdatePolicy' smart constructor.
-data InstanceGroupManagerUpdatePolicy =
-  InstanceGroupManagerUpdatePolicy'
-    { _igmupMaxSurge       :: !(Maybe FixedOrPercent)
-    , _igmupMaxUnavailable :: !(Maybe FixedOrPercent)
-    , _igmupMinimalAction  :: !(Maybe InstanceGroupManagerUpdatePolicyMinimalAction)
-    , _igmupType           :: !(Maybe InstanceGroupManagerUpdatePolicyType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerUpdatePolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmupMaxSurge'
---
--- * 'igmupMaxUnavailable'
---
--- * 'igmupMinimalAction'
---
--- * 'igmupType'
-instanceGroupManagerUpdatePolicy
-    :: InstanceGroupManagerUpdatePolicy
-instanceGroupManagerUpdatePolicy =
-  InstanceGroupManagerUpdatePolicy'
-    { _igmupMaxSurge = Nothing
-    , _igmupMaxUnavailable = Nothing
-    , _igmupMinimalAction = Nothing
-    , _igmupType = Nothing
-    }
-
-
--- | The maximum number of instances that can be created above the specified
--- targetSize during the update process. By default, a fixed value of 1 is
--- used. This value can be either a fixed number or a percentage if the
--- instance group has 10 or more instances. If you set a percentage, the
--- number of instances will be rounded up if necessary. At least one of
--- either maxSurge or maxUnavailable must be greater than 0. Learn more
--- about maxSurge.
-igmupMaxSurge :: Lens' InstanceGroupManagerUpdatePolicy (Maybe FixedOrPercent)
-igmupMaxSurge
-  = lens _igmupMaxSurge
-      (\ s a -> s{_igmupMaxSurge = a})
-
--- | The maximum number of instances that can be unavailable during the
--- update process. An instance is considered available if all of the
--- following conditions are satisfied: - The instance\'s status is RUNNING.
--- - If there is a health check on the instance group, the instance\'s
--- liveness health check result must be HEALTHY at least once. If there is
--- no health check on the group, then the instance only needs to have a
--- status of RUNNING to be considered available. By default, a fixed value
--- of 1 is used. This value can be either a fixed number or a percentage if
--- the instance group has 10 or more instances. If you set a percentage,
--- the number of instances will be rounded up if necessary. At least one of
--- either maxSurge or maxUnavailable must be greater than 0. Learn more
--- about maxUnavailable.
-igmupMaxUnavailable :: Lens' InstanceGroupManagerUpdatePolicy (Maybe FixedOrPercent)
-igmupMaxUnavailable
-  = lens _igmupMaxUnavailable
-      (\ s a -> s{_igmupMaxUnavailable = a})
-
--- | Minimal action to be taken on an instance. You can specify either
--- RESTART to restart existing instances or REPLACE to delete and create
--- new instances from the target template. If you specify a RESTART, the
--- Updater will attempt to perform that action only. However, if the
--- Updater determines that the minimal action you specify is not enough to
--- perform the update, it might perform a more disruptive action.
-igmupMinimalAction :: Lens' InstanceGroupManagerUpdatePolicy (Maybe InstanceGroupManagerUpdatePolicyMinimalAction)
-igmupMinimalAction
-  = lens _igmupMinimalAction
-      (\ s a -> s{_igmupMinimalAction = a})
-
-igmupType :: Lens' InstanceGroupManagerUpdatePolicy (Maybe InstanceGroupManagerUpdatePolicyType)
-igmupType
-  = lens _igmupType (\ s a -> s{_igmupType = a})
-
-instance FromJSON InstanceGroupManagerUpdatePolicy
-         where
-        parseJSON
-          = withObject "InstanceGroupManagerUpdatePolicy"
-              (\ o ->
-                 InstanceGroupManagerUpdatePolicy' <$>
-                   (o .:? "maxSurge") <*> (o .:? "maxUnavailable") <*>
-                     (o .:? "minimalAction")
-                     <*> (o .:? "type"))
-
-instance ToJSON InstanceGroupManagerUpdatePolicy
-         where
-        toJSON InstanceGroupManagerUpdatePolicy'{..}
-          = object
-              (catMaybes
-                 [("maxSurge" .=) <$> _igmupMaxSurge,
-                  ("maxUnavailable" .=) <$> _igmupMaxUnavailable,
-                  ("minimalAction" .=) <$> _igmupMinimalAction,
-                  ("type" .=) <$> _igmupType])
-
---
--- /See:/ 'regionInstanceGroupsListInstancesRequest' smart constructor.
-data RegionInstanceGroupsListInstancesRequest =
-  RegionInstanceGroupsListInstancesRequest'
-    { _riglirInstanceState :: !(Maybe RegionInstanceGroupsListInstancesRequestInstanceState)
-    , _riglirPortName      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsListInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riglirInstanceState'
---
--- * 'riglirPortName'
-regionInstanceGroupsListInstancesRequest
-    :: RegionInstanceGroupsListInstancesRequest
-regionInstanceGroupsListInstancesRequest =
-  RegionInstanceGroupsListInstancesRequest'
-    {_riglirInstanceState = Nothing, _riglirPortName = Nothing}
-
-
--- | Instances in which state should be returned. Valid options are: \'ALL\',
--- \'RUNNING\'. By default, it lists all instances.
-riglirInstanceState :: Lens' RegionInstanceGroupsListInstancesRequest (Maybe RegionInstanceGroupsListInstancesRequestInstanceState)
-riglirInstanceState
-  = lens _riglirInstanceState
-      (\ s a -> s{_riglirInstanceState = a})
-
--- | Name of port user is interested in. It is optional. If it is set, only
--- information about this ports will be returned. If it is not set, all the
--- named ports will be returned. Always lists all instances.
-riglirPortName :: Lens' RegionInstanceGroupsListInstancesRequest (Maybe Text)
-riglirPortName
-  = lens _riglirPortName
-      (\ s a -> s{_riglirPortName = a})
-
-instance FromJSON
-           RegionInstanceGroupsListInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupsListInstancesRequest"
-              (\ o ->
-                 RegionInstanceGroupsListInstancesRequest' <$>
-                   (o .:? "instanceState") <*> (o .:? "portName"))
-
-instance ToJSON
-           RegionInstanceGroupsListInstancesRequest
-         where
-        toJSON RegionInstanceGroupsListInstancesRequest'{..}
-          = object
-              (catMaybes
-                 [("instanceState" .=) <$> _riglirInstanceState,
-                  ("portName" .=) <$> _riglirPortName])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'backendServiceAggregatedListWarning' smart constructor.
-data BackendServiceAggregatedListWarning =
-  BackendServiceAggregatedListWarning'
-    { _bsalwData    :: !(Maybe [BackendServiceAggregatedListWarningDataItem])
-    , _bsalwCode    :: !(Maybe BackendServiceAggregatedListWarningCode)
-    , _bsalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsalwData'
---
--- * 'bsalwCode'
---
--- * 'bsalwMessage'
-backendServiceAggregatedListWarning
-    :: BackendServiceAggregatedListWarning
-backendServiceAggregatedListWarning =
-  BackendServiceAggregatedListWarning'
-    {_bsalwData = Nothing, _bsalwCode = Nothing, _bsalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-bsalwData :: Lens' BackendServiceAggregatedListWarning [BackendServiceAggregatedListWarningDataItem]
-bsalwData
-  = lens _bsalwData (\ s a -> s{_bsalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-bsalwCode :: Lens' BackendServiceAggregatedListWarning (Maybe BackendServiceAggregatedListWarningCode)
-bsalwCode
-  = lens _bsalwCode (\ s a -> s{_bsalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-bsalwMessage :: Lens' BackendServiceAggregatedListWarning (Maybe Text)
-bsalwMessage
-  = lens _bsalwMessage (\ s a -> s{_bsalwMessage = a})
-
-instance FromJSON BackendServiceAggregatedListWarning
-         where
-        parseJSON
-          = withObject "BackendServiceAggregatedListWarning"
-              (\ o ->
-                 BackendServiceAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON BackendServiceAggregatedListWarning
-         where
-        toJSON BackendServiceAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _bsalwData,
-                  ("code" .=) <$> _bsalwCode,
-                  ("message" .=) <$> _bsalwMessage])
-
--- | A SSL policy specifies the server-side support for SSL features. This
--- can be attached to a TargetHttpsProxy or a TargetSslProxy. This affects
--- connections between clients and the HTTPS or SSL proxy load balancer.
--- They do not affect the connection between the load balancers and the
--- backends.
---
--- /See:/ 'sslPolicy' smart constructor.
-data SSLPolicy =
-  SSLPolicy'
-    { _spKind              :: !Text
-    , _spFingerprint       :: !(Maybe Bytes)
-    , _spProFile           :: !(Maybe SSLPolicyProFile)
-    , _spWarnings          :: !(Maybe [SSLPolicyWarningsItem])
-    , _spCustomFeatures    :: !(Maybe [Text])
-    , _spSelfLink          :: !(Maybe Text)
-    , _spName              :: !(Maybe Text)
-    , _spCreationTimestamp :: !(Maybe Text)
-    , _spEnabledFeatures   :: !(Maybe [Text])
-    , _spId                :: !(Maybe (Textual Word64))
-    , _spMinTLSVersion     :: !(Maybe SSLPolicyMinTLSVersion)
-    , _spDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spKind'
---
--- * 'spFingerprint'
---
--- * 'spProFile'
---
--- * 'spWarnings'
---
--- * 'spCustomFeatures'
---
--- * 'spSelfLink'
---
--- * 'spName'
---
--- * 'spCreationTimestamp'
---
--- * 'spEnabledFeatures'
---
--- * 'spId'
---
--- * 'spMinTLSVersion'
---
--- * 'spDescription'
-sslPolicy
-    :: SSLPolicy
-sslPolicy =
-  SSLPolicy'
-    { _spKind = "compute#sslPolicy"
-    , _spFingerprint = Nothing
-    , _spProFile = Nothing
-    , _spWarnings = Nothing
-    , _spCustomFeatures = Nothing
-    , _spSelfLink = Nothing
-    , _spName = Nothing
-    , _spCreationTimestamp = Nothing
-    , _spEnabledFeatures = Nothing
-    , _spId = Nothing
-    , _spMinTLSVersion = Nothing
-    , _spDescription = Nothing
-    }
-
-
--- | [Output only] Type of the resource. Always compute#sslPolicyfor SSL
--- policies.
-spKind :: Lens' SSLPolicy Text
-spKind = lens _spKind (\ s a -> s{_spKind = a})
-
--- | Fingerprint of this resource. A hash of the contents stored in this
--- object. This field is used in optimistic locking. This field will be
--- ignored when inserting a SslPolicy. An up-to-date fingerprint must be
--- provided in order to update the SslPolicy, otherwise the request will
--- fail with error 412 conditionNotMet. To see the latest fingerprint, make
--- a get() request to retrieve an SslPolicy.
-spFingerprint :: Lens' SSLPolicy (Maybe ByteString)
-spFingerprint
-  = lens _spFingerprint
-      (\ s a -> s{_spFingerprint = a})
-      . mapping _Bytes
-
--- | Profile specifies the set of SSL features that can be used by the load
--- balancer when negotiating SSL with clients. This can be one of
--- COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of
--- SSL features to enable must be specified in the customFeatures field.
-spProFile :: Lens' SSLPolicy (Maybe SSLPolicyProFile)
-spProFile
-  = lens _spProFile (\ s a -> s{_spProFile = a})
-
--- | [Output Only] If potential misconfigurations are detected for this SSL
--- policy, this field will be populated with warning messages.
-spWarnings :: Lens' SSLPolicy [SSLPolicyWarningsItem]
-spWarnings
-  = lens _spWarnings (\ s a -> s{_spWarnings = a}) .
-      _Default
-      . _Coerce
-
--- | A list of features enabled when the selected profile is CUSTOM. The -
--- method returns the set of features that can be specified in this list.
--- This field must be empty if the profile is not CUSTOM.
-spCustomFeatures :: Lens' SSLPolicy [Text]
-spCustomFeatures
-  = lens _spCustomFeatures
-      (\ s a -> s{_spCustomFeatures = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-spSelfLink :: Lens' SSLPolicy (Maybe Text)
-spSelfLink
-  = lens _spSelfLink (\ s a -> s{_spSelfLink = a})
-
--- | Name of the resource. The name must be 1-63 characters long, and comply
--- with RFC1035. Specifically, the name must be 1-63 characters long and
--- match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means
--- the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash.
-spName :: Lens' SSLPolicy (Maybe Text)
-spName = lens _spName (\ s a -> s{_spName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-spCreationTimestamp :: Lens' SSLPolicy (Maybe Text)
-spCreationTimestamp
-  = lens _spCreationTimestamp
-      (\ s a -> s{_spCreationTimestamp = a})
-
--- | [Output Only] The list of features enabled in the SSL policy.
-spEnabledFeatures :: Lens' SSLPolicy [Text]
-spEnabledFeatures
-  = lens _spEnabledFeatures
-      (\ s a -> s{_spEnabledFeatures = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-spId :: Lens' SSLPolicy (Maybe Word64)
-spId
-  = lens _spId (\ s a -> s{_spId = a}) .
-      mapping _Coerce
-
--- | The minimum version of SSL protocol that can be used by the clients to
--- establish a connection with the load balancer. This can be one of
--- TLS_1_0, TLS_1_1, TLS_1_2.
-spMinTLSVersion :: Lens' SSLPolicy (Maybe SSLPolicyMinTLSVersion)
-spMinTLSVersion
-  = lens _spMinTLSVersion
-      (\ s a -> s{_spMinTLSVersion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-spDescription :: Lens' SSLPolicy (Maybe Text)
-spDescription
-  = lens _spDescription
-      (\ s a -> s{_spDescription = a})
-
-instance FromJSON SSLPolicy where
-        parseJSON
-          = withObject "SSLPolicy"
-              (\ o ->
-                 SSLPolicy' <$>
-                   (o .:? "kind" .!= "compute#sslPolicy") <*>
-                     (o .:? "fingerprint")
-                     <*> (o .:? "profile")
-                     <*> (o .:? "warnings" .!= mempty)
-                     <*> (o .:? "customFeatures" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "enabledFeatures" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "minTlsVersion")
-                     <*> (o .:? "description"))
-
-instance ToJSON SSLPolicy where
-        toJSON SSLPolicy'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _spKind),
-                  ("fingerprint" .=) <$> _spFingerprint,
-                  ("profile" .=) <$> _spProFile,
-                  ("warnings" .=) <$> _spWarnings,
-                  ("customFeatures" .=) <$> _spCustomFeatures,
-                  ("selfLink" .=) <$> _spSelfLink,
-                  ("name" .=) <$> _spName,
-                  ("creationTimestamp" .=) <$> _spCreationTimestamp,
-                  ("enabledFeatures" .=) <$> _spEnabledFeatures,
-                  ("id" .=) <$> _spId,
-                  ("minTlsVersion" .=) <$> _spMinTLSVersion,
-                  ("description" .=) <$> _spDescription])
-
---
--- /See:/ 'backendServiceListWarningDataItem' smart constructor.
-data BackendServiceListWarningDataItem =
-  BackendServiceListWarningDataItem'
-    { _bslwdiValue :: !(Maybe Text)
-    , _bslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bslwdiValue'
---
--- * 'bslwdiKey'
-backendServiceListWarningDataItem
-    :: BackendServiceListWarningDataItem
-backendServiceListWarningDataItem =
-  BackendServiceListWarningDataItem'
-    {_bslwdiValue = Nothing, _bslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-bslwdiValue :: Lens' BackendServiceListWarningDataItem (Maybe Text)
-bslwdiValue
-  = lens _bslwdiValue (\ s a -> s{_bslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-bslwdiKey :: Lens' BackendServiceListWarningDataItem (Maybe Text)
-bslwdiKey
-  = lens _bslwdiKey (\ s a -> s{_bslwdiKey = a})
-
-instance FromJSON BackendServiceListWarningDataItem
-         where
-        parseJSON
-          = withObject "BackendServiceListWarningDataItem"
-              (\ o ->
-                 BackendServiceListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON BackendServiceListWarningDataItem
-         where
-        toJSON BackendServiceListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _bslwdiValue,
-                  ("key" .=) <$> _bslwdiKey])
-
---
--- /See:/ 'firewallDeniedItem' smart constructor.
-data FirewallDeniedItem =
-  FirewallDeniedItem'
-    { _fdiIPProtocol :: !(Maybe Text)
-    , _fdiPorts      :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallDeniedItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fdiIPProtocol'
---
--- * 'fdiPorts'
-firewallDeniedItem
-    :: FirewallDeniedItem
-firewallDeniedItem =
-  FirewallDeniedItem' {_fdiIPProtocol = Nothing, _fdiPorts = Nothing}
-
-
--- | The IP protocol to which this rule applies. The protocol type is
--- required when creating a firewall rule. This value can either be one of
--- the following well known protocol strings (tcp, udp, icmp, esp, ah,
--- ipip, sctp), or the IP protocol number.
-fdiIPProtocol :: Lens' FirewallDeniedItem (Maybe Text)
-fdiIPProtocol
-  = lens _fdiIPProtocol
-      (\ s a -> s{_fdiIPProtocol = a})
-
--- | An optional list of ports to which this rule applies. This field is only
--- applicable for UDP or TCP protocol. Each entry must be either an integer
--- or a range. If not specified, this rule applies to connections through
--- any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and
--- [\"12345-12349\"].
-fdiPorts :: Lens' FirewallDeniedItem [Text]
-fdiPorts
-  = lens _fdiPorts (\ s a -> s{_fdiPorts = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON FirewallDeniedItem where
-        parseJSON
-          = withObject "FirewallDeniedItem"
-              (\ o ->
-                 FirewallDeniedItem' <$>
-                   (o .:? "IPProtocol") <*> (o .:? "ports" .!= mempty))
-
-instance ToJSON FirewallDeniedItem where
-        toJSON FirewallDeniedItem'{..}
-          = object
-              (catMaybes
-                 [("IPProtocol" .=) <$> _fdiIPProtocol,
-                  ("ports" .=) <$> _fdiPorts])
-
---
--- /See:/ 'instanceGroupManagersAbandonInstancesRequest' smart constructor.
-newtype InstanceGroupManagersAbandonInstancesRequest =
-  InstanceGroupManagersAbandonInstancesRequest'
-    { _igmairInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersAbandonInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmairInstances'
-instanceGroupManagersAbandonInstancesRequest
-    :: InstanceGroupManagersAbandonInstancesRequest
-instanceGroupManagersAbandonInstancesRequest =
-  InstanceGroupManagersAbandonInstancesRequest' {_igmairInstances = Nothing}
-
-
--- | The URLs of one or more instances to abandon. This can be a full URL or
--- a partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-igmairInstances :: Lens' InstanceGroupManagersAbandonInstancesRequest [Text]
-igmairInstances
-  = lens _igmairInstances
-      (\ s a -> s{_igmairInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagersAbandonInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersAbandonInstancesRequest"
-              (\ o ->
-                 InstanceGroupManagersAbandonInstancesRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           InstanceGroupManagersAbandonInstancesRequest
-         where
-        toJSON
-          InstanceGroupManagersAbandonInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _igmairInstances])
-
--- | A list of MachineTypesScopedList resources.
---
--- /See:/ 'machineTypeAggregatedListItems' smart constructor.
-newtype MachineTypeAggregatedListItems =
-  MachineTypeAggregatedListItems'
-    { _mtaliAddtional :: HashMap Text MachineTypesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtaliAddtional'
-machineTypeAggregatedListItems
-    :: HashMap Text MachineTypesScopedList -- ^ 'mtaliAddtional'
-    -> MachineTypeAggregatedListItems
-machineTypeAggregatedListItems pMtaliAddtional_ =
-  MachineTypeAggregatedListItems' {_mtaliAddtional = _Coerce # pMtaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of machine types.
-mtaliAddtional :: Lens' MachineTypeAggregatedListItems (HashMap Text MachineTypesScopedList)
-mtaliAddtional
-  = lens _mtaliAddtional
-      (\ s a -> s{_mtaliAddtional = a})
-      . _Coerce
-
-instance FromJSON MachineTypeAggregatedListItems
-         where
-        parseJSON
-          = withObject "MachineTypeAggregatedListItems"
-              (\ o ->
-                 MachineTypeAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON MachineTypeAggregatedListItems where
-        toJSON = toJSON . _mtaliAddtional
-
--- | A list of DiskTypesScopedList resources.
---
--- /See:/ 'diskTypeAggregatedListItems' smart constructor.
-newtype DiskTypeAggregatedListItems =
-  DiskTypeAggregatedListItems'
-    { _dtaliAddtional :: HashMap Text DiskTypesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtaliAddtional'
-diskTypeAggregatedListItems
-    :: HashMap Text DiskTypesScopedList -- ^ 'dtaliAddtional'
-    -> DiskTypeAggregatedListItems
-diskTypeAggregatedListItems pDtaliAddtional_ =
-  DiskTypeAggregatedListItems' {_dtaliAddtional = _Coerce # pDtaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of disk types.
-dtaliAddtional :: Lens' DiskTypeAggregatedListItems (HashMap Text DiskTypesScopedList)
-dtaliAddtional
-  = lens _dtaliAddtional
-      (\ s a -> s{_dtaliAddtional = a})
-      . _Coerce
-
-instance FromJSON DiskTypeAggregatedListItems where
-        parseJSON
-          = withObject "DiskTypeAggregatedListItems"
-              (\ o ->
-                 DiskTypeAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON DiskTypeAggregatedListItems where
-        toJSON = toJSON . _dtaliAddtional
-
---
--- /See:/ 'instancesSetLabelsRequest' smart constructor.
-data InstancesSetLabelsRequest =
-  InstancesSetLabelsRequest'
-    { _islrLabels           :: !(Maybe InstancesSetLabelsRequestLabels)
-    , _islrLabelFingerprint :: !(Maybe Bytes)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetLabelsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islrLabels'
---
--- * 'islrLabelFingerprint'
-instancesSetLabelsRequest
-    :: InstancesSetLabelsRequest
-instancesSetLabelsRequest =
-  InstancesSetLabelsRequest'
-    {_islrLabels = Nothing, _islrLabelFingerprint = Nothing}
-
-
-islrLabels :: Lens' InstancesSetLabelsRequest (Maybe InstancesSetLabelsRequestLabels)
-islrLabels
-  = lens _islrLabels (\ s a -> s{_islrLabels = a})
-
--- | Fingerprint of the previous set of labels for this resource, used to
--- prevent conflicts. Provide the latest fingerprint value when making a
--- request to add or change labels.
-islrLabelFingerprint :: Lens' InstancesSetLabelsRequest (Maybe ByteString)
-islrLabelFingerprint
-  = lens _islrLabelFingerprint
-      (\ s a -> s{_islrLabelFingerprint = a})
-      . mapping _Bytes
-
-instance FromJSON InstancesSetLabelsRequest where
-        parseJSON
-          = withObject "InstancesSetLabelsRequest"
-              (\ o ->
-                 InstancesSetLabelsRequest' <$>
-                   (o .:? "labels") <*> (o .:? "labelFingerprint"))
-
-instance ToJSON InstancesSetLabelsRequest where
-        toJSON InstancesSetLabelsRequest'{..}
-          = object
-              (catMaybes
-                 [("labels" .=) <$> _islrLabels,
-                  ("labelFingerprint" .=) <$> _islrLabelFingerprint])
-
--- | Contains a list of routers.
---
--- /See:/ 'routerAggregatedList' smart constructor.
-data RouterAggregatedList =
-  RouterAggregatedList'
-    { _ralNextPageToken :: !(Maybe Text)
-    , _ralKind          :: !Text
-    , _ralItems         :: !(Maybe RouterAggregatedListItems)
-    , _ralSelfLink      :: !(Maybe Text)
-    , _ralWarning       :: !(Maybe RouterAggregatedListWarning)
-    , _ralId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ralNextPageToken'
---
--- * 'ralKind'
---
--- * 'ralItems'
---
--- * 'ralSelfLink'
---
--- * 'ralWarning'
---
--- * 'ralId'
-routerAggregatedList
-    :: RouterAggregatedList
-routerAggregatedList =
-  RouterAggregatedList'
-    { _ralNextPageToken = Nothing
-    , _ralKind = "compute#routerAggregatedList"
-    , _ralItems = Nothing
-    , _ralSelfLink = Nothing
-    , _ralWarning = Nothing
-    , _ralId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ralNextPageToken :: Lens' RouterAggregatedList (Maybe Text)
-ralNextPageToken
-  = lens _ralNextPageToken
-      (\ s a -> s{_ralNextPageToken = a})
-
--- | Type of resource.
-ralKind :: Lens' RouterAggregatedList Text
-ralKind = lens _ralKind (\ s a -> s{_ralKind = a})
-
--- | A list of Router resources.
-ralItems :: Lens' RouterAggregatedList (Maybe RouterAggregatedListItems)
-ralItems = lens _ralItems (\ s a -> s{_ralItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-ralSelfLink :: Lens' RouterAggregatedList (Maybe Text)
-ralSelfLink
-  = lens _ralSelfLink (\ s a -> s{_ralSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ralWarning :: Lens' RouterAggregatedList (Maybe RouterAggregatedListWarning)
-ralWarning
-  = lens _ralWarning (\ s a -> s{_ralWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ralId :: Lens' RouterAggregatedList (Maybe Text)
-ralId = lens _ralId (\ s a -> s{_ralId = a})
-
-instance FromJSON RouterAggregatedList where
-        parseJSON
-          = withObject "RouterAggregatedList"
-              (\ o ->
-                 RouterAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#routerAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RouterAggregatedList where
-        toJSON RouterAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ralNextPageToken,
-                  Just ("kind" .= _ralKind),
-                  ("items" .=) <$> _ralItems,
-                  ("selfLink" .=) <$> _ralSelfLink,
-                  ("warning" .=) <$> _ralWarning,
-                  ("id" .=) <$> _ralId])
-
--- | Contains a list of firewalls.
---
--- /See:/ 'firewallList' smart constructor.
-data FirewallList =
-  FirewallList'
-    { _flNextPageToken :: !(Maybe Text)
-    , _flKind          :: !Text
-    , _flItems         :: !(Maybe [Firewall])
-    , _flSelfLink      :: !(Maybe Text)
-    , _flWarning       :: !(Maybe FirewallListWarning)
-    , _flId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flNextPageToken'
---
--- * 'flKind'
---
--- * 'flItems'
---
--- * 'flSelfLink'
---
--- * 'flWarning'
---
--- * 'flId'
-firewallList
-    :: FirewallList
-firewallList =
-  FirewallList'
-    { _flNextPageToken = Nothing
-    , _flKind = "compute#firewallList"
-    , _flItems = Nothing
-    , _flSelfLink = Nothing
-    , _flWarning = Nothing
-    , _flId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-flNextPageToken :: Lens' FirewallList (Maybe Text)
-flNextPageToken
-  = lens _flNextPageToken
-      (\ s a -> s{_flNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#firewallList for lists of
--- firewalls.
-flKind :: Lens' FirewallList Text
-flKind = lens _flKind (\ s a -> s{_flKind = a})
-
--- | A list of Firewall resources.
-flItems :: Lens' FirewallList [Firewall]
-flItems
-  = lens _flItems (\ s a -> s{_flItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-flSelfLink :: Lens' FirewallList (Maybe Text)
-flSelfLink
-  = lens _flSelfLink (\ s a -> s{_flSelfLink = a})
-
--- | [Output Only] Informational warning message.
-flWarning :: Lens' FirewallList (Maybe FirewallListWarning)
-flWarning
-  = lens _flWarning (\ s a -> s{_flWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-flId :: Lens' FirewallList (Maybe Text)
-flId = lens _flId (\ s a -> s{_flId = a})
-
-instance FromJSON FirewallList where
-        parseJSON
-          = withObject "FirewallList"
-              (\ o ->
-                 FirewallList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#firewallList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON FirewallList where
-        toJSON FirewallList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _flNextPageToken,
-                  Just ("kind" .= _flKind), ("items" .=) <$> _flItems,
-                  ("selfLink" .=) <$> _flSelfLink,
-                  ("warning" .=) <$> _flWarning, ("id" .=) <$> _flId])
-
--- | [Output Only] Informational warning which replaces the list of instances
--- when the list is empty.
---
--- /See:/ 'instancesScopedListWarning' smart constructor.
-data InstancesScopedListWarning =
-  InstancesScopedListWarning'
-    { _islwData    :: !(Maybe [InstancesScopedListWarningDataItem])
-    , _islwCode    :: !(Maybe InstancesScopedListWarningCode)
-    , _islwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islwData'
---
--- * 'islwCode'
---
--- * 'islwMessage'
-instancesScopedListWarning
-    :: InstancesScopedListWarning
-instancesScopedListWarning =
-  InstancesScopedListWarning'
-    {_islwData = Nothing, _islwCode = Nothing, _islwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-islwData :: Lens' InstancesScopedListWarning [InstancesScopedListWarningDataItem]
-islwData
-  = lens _islwData (\ s a -> s{_islwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-islwCode :: Lens' InstancesScopedListWarning (Maybe InstancesScopedListWarningCode)
-islwCode = lens _islwCode (\ s a -> s{_islwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-islwMessage :: Lens' InstancesScopedListWarning (Maybe Text)
-islwMessage
-  = lens _islwMessage (\ s a -> s{_islwMessage = a})
-
-instance FromJSON InstancesScopedListWarning where
-        parseJSON
-          = withObject "InstancesScopedListWarning"
-              (\ o ->
-                 InstancesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstancesScopedListWarning where
-        toJSON InstancesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _islwData,
-                  ("code" .=) <$> _islwCode,
-                  ("message" .=) <$> _islwMessage])
-
---
--- /See:/ 'regionInstanceGroupManagersRecreateRequest' smart constructor.
-newtype RegionInstanceGroupManagersRecreateRequest =
-  RegionInstanceGroupManagersRecreateRequest'
-    { _rigmrrInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersRecreateRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmrrInstances'
-regionInstanceGroupManagersRecreateRequest
-    :: RegionInstanceGroupManagersRecreateRequest
-regionInstanceGroupManagersRecreateRequest =
-  RegionInstanceGroupManagersRecreateRequest' {_rigmrrInstances = Nothing}
-
-
--- | The URLs of one or more instances to recreate. This can be a full URL or
--- a partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-rigmrrInstances :: Lens' RegionInstanceGroupManagersRecreateRequest [Text]
-rigmrrInstances
-  = lens _rigmrrInstances
-      (\ s a -> s{_rigmrrInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupManagersRecreateRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersRecreateRequest"
-              (\ o ->
-                 RegionInstanceGroupManagersRecreateRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupManagersRecreateRequest
-         where
-        toJSON
-          RegionInstanceGroupManagersRecreateRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _rigmrrInstances])
-
--- | Labels to apply to this instance. These can be later modified by the
--- setLabels method.
---
--- /See:/ 'instanceLabels' smart constructor.
-newtype InstanceLabels =
-  InstanceLabels'
-    { _ilAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilAddtional'
-instanceLabels
-    :: HashMap Text Text -- ^ 'ilAddtional'
-    -> InstanceLabels
-instanceLabels pIlAddtional_ =
-  InstanceLabels' {_ilAddtional = _Coerce # pIlAddtional_}
-
-
-ilAddtional :: Lens' InstanceLabels (HashMap Text Text)
-ilAddtional
-  = lens _ilAddtional (\ s a -> s{_ilAddtional = a}) .
-      _Coerce
-
-instance FromJSON InstanceLabels where
-        parseJSON
-          = withObject "InstanceLabels"
-              (\ o -> InstanceLabels' <$> (parseJSONObject o))
-
-instance ToJSON InstanceLabels where
-        toJSON = toJSON . _ilAddtional
-
--- | Informational warning which replaces the list of backend services when
--- the list is empty.
---
--- /See:/ 'backendServicesScopedListWarning' smart constructor.
-data BackendServicesScopedListWarning =
-  BackendServicesScopedListWarning'
-    { _bsslwData    :: !(Maybe [BackendServicesScopedListWarningDataItem])
-    , _bsslwCode    :: !(Maybe BackendServicesScopedListWarningCode)
-    , _bsslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsslwData'
---
--- * 'bsslwCode'
---
--- * 'bsslwMessage'
-backendServicesScopedListWarning
-    :: BackendServicesScopedListWarning
-backendServicesScopedListWarning =
-  BackendServicesScopedListWarning'
-    {_bsslwData = Nothing, _bsslwCode = Nothing, _bsslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-bsslwData :: Lens' BackendServicesScopedListWarning [BackendServicesScopedListWarningDataItem]
-bsslwData
-  = lens _bsslwData (\ s a -> s{_bsslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-bsslwCode :: Lens' BackendServicesScopedListWarning (Maybe BackendServicesScopedListWarningCode)
-bsslwCode
-  = lens _bsslwCode (\ s a -> s{_bsslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-bsslwMessage :: Lens' BackendServicesScopedListWarning (Maybe Text)
-bsslwMessage
-  = lens _bsslwMessage (\ s a -> s{_bsslwMessage = a})
-
-instance FromJSON BackendServicesScopedListWarning
-         where
-        parseJSON
-          = withObject "BackendServicesScopedListWarning"
-              (\ o ->
-                 BackendServicesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON BackendServicesScopedListWarning
-         where
-        toJSON BackendServicesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _bsslwData,
-                  ("code" .=) <$> _bsslwCode,
-                  ("message" .=) <$> _bsslwMessage])
-
--- | Represents a match condition that incoming traffic is evaluated against.
--- Exactly one field must be specified.
---
--- /See:/ 'securityPolicyRuleMatcher' smart constructor.
-data SecurityPolicyRuleMatcher =
-  SecurityPolicyRuleMatcher'
-    { _sprmVersionedExpr :: !(Maybe SecurityPolicyRuleMatcherVersionedExpr)
-    , _sprmConfig        :: !(Maybe SecurityPolicyRuleMatcherConfig)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyRuleMatcher' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprmVersionedExpr'
---
--- * 'sprmConfig'
-securityPolicyRuleMatcher
-    :: SecurityPolicyRuleMatcher
-securityPolicyRuleMatcher =
-  SecurityPolicyRuleMatcher'
-    {_sprmVersionedExpr = Nothing, _sprmConfig = Nothing}
-
-
--- | Preconfigured versioned expression. If this field is specified, config
--- must also be specified. Available preconfigured expressions along with
--- their requirements are: SRC_IPS_V1 - must specify the corresponding
--- src_ip_range field in config.
-sprmVersionedExpr :: Lens' SecurityPolicyRuleMatcher (Maybe SecurityPolicyRuleMatcherVersionedExpr)
-sprmVersionedExpr
-  = lens _sprmVersionedExpr
-      (\ s a -> s{_sprmVersionedExpr = a})
-
--- | The configuration options available when specifying versioned_expr. This
--- field must be specified if versioned_expr is specified and cannot be
--- specified if versioned_expr is not specified.
-sprmConfig :: Lens' SecurityPolicyRuleMatcher (Maybe SecurityPolicyRuleMatcherConfig)
-sprmConfig
-  = lens _sprmConfig (\ s a -> s{_sprmConfig = a})
-
-instance FromJSON SecurityPolicyRuleMatcher where
-        parseJSON
-          = withObject "SecurityPolicyRuleMatcher"
-              (\ o ->
-                 SecurityPolicyRuleMatcher' <$>
-                   (o .:? "versionedExpr") <*> (o .:? "config"))
-
-instance ToJSON SecurityPolicyRuleMatcher where
-        toJSON SecurityPolicyRuleMatcher'{..}
-          = object
-              (catMaybes
-                 [("versionedExpr" .=) <$> _sprmVersionedExpr,
-                  ("config" .=) <$> _sprmConfig])
-
--- | A list of InstanceGroup resources.
---
--- /See:/ 'instanceGroupList' smart constructor.
-data InstanceGroupList =
-  InstanceGroupList'
-    { _iglNextPageToken :: !(Maybe Text)
-    , _iglKind          :: !Text
-    , _iglItems         :: !(Maybe [InstanceGroup])
-    , _iglSelfLink      :: !(Maybe Text)
-    , _iglWarning       :: !(Maybe InstanceGroupListWarning)
-    , _iglId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iglNextPageToken'
---
--- * 'iglKind'
---
--- * 'iglItems'
---
--- * 'iglSelfLink'
---
--- * 'iglWarning'
---
--- * 'iglId'
-instanceGroupList
-    :: InstanceGroupList
-instanceGroupList =
-  InstanceGroupList'
-    { _iglNextPageToken = Nothing
-    , _iglKind = "compute#instanceGroupList"
-    , _iglItems = Nothing
-    , _iglSelfLink = Nothing
-    , _iglWarning = Nothing
-    , _iglId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-iglNextPageToken :: Lens' InstanceGroupList (Maybe Text)
-iglNextPageToken
-  = lens _iglNextPageToken
-      (\ s a -> s{_iglNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupList for instance group lists.
-iglKind :: Lens' InstanceGroupList Text
-iglKind = lens _iglKind (\ s a -> s{_iglKind = a})
-
--- | A list of InstanceGroup resources.
-iglItems :: Lens' InstanceGroupList [InstanceGroup]
-iglItems
-  = lens _iglItems (\ s a -> s{_iglItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-iglSelfLink :: Lens' InstanceGroupList (Maybe Text)
-iglSelfLink
-  = lens _iglSelfLink (\ s a -> s{_iglSelfLink = a})
-
--- | [Output Only] Informational warning message.
-iglWarning :: Lens' InstanceGroupList (Maybe InstanceGroupListWarning)
-iglWarning
-  = lens _iglWarning (\ s a -> s{_iglWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-iglId :: Lens' InstanceGroupList (Maybe Text)
-iglId = lens _iglId (\ s a -> s{_iglId = a})
-
-instance FromJSON InstanceGroupList where
-        parseJSON
-          = withObject "InstanceGroupList"
-              (\ o ->
-                 InstanceGroupList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceGroupList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceGroupList where
-        toJSON InstanceGroupList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _iglNextPageToken,
-                  Just ("kind" .= _iglKind),
-                  ("items" .=) <$> _iglItems,
-                  ("selfLink" .=) <$> _iglSelfLink,
-                  ("warning" .=) <$> _iglWarning,
-                  ("id" .=) <$> _iglId])
-
---
--- /See:/ 'instancesSetMachineTypeRequest' smart constructor.
-newtype InstancesSetMachineTypeRequest =
-  InstancesSetMachineTypeRequest'
-    { _ismtrMachineType :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMachineTypeRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismtrMachineType'
-instancesSetMachineTypeRequest
-    :: InstancesSetMachineTypeRequest
-instancesSetMachineTypeRequest =
-  InstancesSetMachineTypeRequest' {_ismtrMachineType = Nothing}
-
-
--- | Full or partial URL of the machine type resource. See Machine Types for
--- a full list of machine types. For example:
--- zones\/us-central1-f\/machineTypes\/n1-standard-1
-ismtrMachineType :: Lens' InstancesSetMachineTypeRequest (Maybe Text)
-ismtrMachineType
-  = lens _ismtrMachineType
-      (\ s a -> s{_ismtrMachineType = a})
-
-instance FromJSON InstancesSetMachineTypeRequest
-         where
-        parseJSON
-          = withObject "InstancesSetMachineTypeRequest"
-              (\ o ->
-                 InstancesSetMachineTypeRequest' <$>
-                   (o .:? "machineType"))
-
-instance ToJSON InstancesSetMachineTypeRequest where
-        toJSON InstancesSetMachineTypeRequest'{..}
-          = object
-              (catMaybes
-                 [("machineType" .=) <$> _ismtrMachineType])
-
--- | Contain information of Nat mapping for a VM endpoint (i.e., NIC).
---
--- /See:/ 'vMEndpointNATMAppings' smart constructor.
-data VMEndpointNATMAppings =
-  VMEndpointNATMAppings'
-    { _vmenatmaInstanceName         :: !(Maybe Text)
-    , _vmenatmaInterfaceNATMAppings :: !(Maybe [VMEndpointNATMAppingsInterfaceNATMAppings])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VMEndpointNATMAppings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vmenatmaInstanceName'
---
--- * 'vmenatmaInterfaceNATMAppings'
-vMEndpointNATMAppings
-    :: VMEndpointNATMAppings
-vMEndpointNATMAppings =
-  VMEndpointNATMAppings'
-    {_vmenatmaInstanceName = Nothing, _vmenatmaInterfaceNATMAppings = Nothing}
-
-
--- | Name of the VM instance which the endpoint belongs to
-vmenatmaInstanceName :: Lens' VMEndpointNATMAppings (Maybe Text)
-vmenatmaInstanceName
-  = lens _vmenatmaInstanceName
-      (\ s a -> s{_vmenatmaInstanceName = a})
-
-vmenatmaInterfaceNATMAppings :: Lens' VMEndpointNATMAppings [VMEndpointNATMAppingsInterfaceNATMAppings]
-vmenatmaInterfaceNATMAppings
-  = lens _vmenatmaInterfaceNATMAppings
-      (\ s a -> s{_vmenatmaInterfaceNATMAppings = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON VMEndpointNATMAppings where
-        parseJSON
-          = withObject "VMEndpointNATMAppings"
-              (\ o ->
-                 VMEndpointNATMAppings' <$>
-                   (o .:? "instanceName") <*>
-                     (o .:? "interfaceNatMappings" .!= mempty))
-
-instance ToJSON VMEndpointNATMAppings where
-        toJSON VMEndpointNATMAppings'{..}
-          = object
-              (catMaybes
-                 [("instanceName" .=) <$> _vmenatmaInstanceName,
-                  ("interfaceNatMappings" .=) <$>
-                    _vmenatmaInterfaceNATMAppings])
-
--- | Represents a customer-supplied encryption key
---
--- /See:/ 'customerEncryptionKey' smart constructor.
-data CustomerEncryptionKey =
-  CustomerEncryptionKey'
-    { _cekKmsKeyName :: !(Maybe Text)
-    , _cekSha256     :: !(Maybe Text)
-    , _cekRawKey     :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CustomerEncryptionKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cekKmsKeyName'
---
--- * 'cekSha256'
---
--- * 'cekRawKey'
-customerEncryptionKey
-    :: CustomerEncryptionKey
-customerEncryptionKey =
-  CustomerEncryptionKey'
-    {_cekKmsKeyName = Nothing, _cekSha256 = Nothing, _cekRawKey = Nothing}
-
-
--- | The name of the encryption key that is stored in Google Cloud KMS.
-cekKmsKeyName :: Lens' CustomerEncryptionKey (Maybe Text)
-cekKmsKeyName
-  = lens _cekKmsKeyName
-      (\ s a -> s{_cekKmsKeyName = a})
-
--- | [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
--- customer-supplied encryption key that protects this resource.
-cekSha256 :: Lens' CustomerEncryptionKey (Maybe Text)
-cekSha256
-  = lens _cekSha256 (\ s a -> s{_cekSha256 = a})
-
--- | Specifies a 256-bit customer-supplied encryption key, encoded in RFC
--- 4648 base64 to either encrypt or decrypt this resource.
-cekRawKey :: Lens' CustomerEncryptionKey (Maybe Text)
-cekRawKey
-  = lens _cekRawKey (\ s a -> s{_cekRawKey = a})
-
-instance FromJSON CustomerEncryptionKey where
-        parseJSON
-          = withObject "CustomerEncryptionKey"
-              (\ o ->
-                 CustomerEncryptionKey' <$>
-                   (o .:? "kmsKeyName") <*> (o .:? "sha256") <*>
-                     (o .:? "rawKey"))
-
-instance ToJSON CustomerEncryptionKey where
-        toJSON CustomerEncryptionKey'{..}
-          = object
-              (catMaybes
-                 [("kmsKeyName" .=) <$> _cekKmsKeyName,
-                  ("sha256" .=) <$> _cekSha256,
-                  ("rawKey" .=) <$> _cekRawKey])
-
--- | A list of AutoscalersScopedList resources.
---
--- /See:/ 'autoscalerAggregatedListItems' smart constructor.
-newtype AutoscalerAggregatedListItems =
-  AutoscalerAggregatedListItems'
-    { _aaliAddtional :: HashMap Text AutoscalersScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaliAddtional'
-autoscalerAggregatedListItems
-    :: HashMap Text AutoscalersScopedList -- ^ 'aaliAddtional'
-    -> AutoscalerAggregatedListItems
-autoscalerAggregatedListItems pAaliAddtional_ =
-  AutoscalerAggregatedListItems' {_aaliAddtional = _Coerce # pAaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of autoscalers.
-aaliAddtional :: Lens' AutoscalerAggregatedListItems (HashMap Text AutoscalersScopedList)
-aaliAddtional
-  = lens _aaliAddtional
-      (\ s a -> s{_aaliAddtional = a})
-      . _Coerce
-
-instance FromJSON AutoscalerAggregatedListItems where
-        parseJSON
-          = withObject "AutoscalerAggregatedListItems"
-              (\ o ->
-                 AutoscalerAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON AutoscalerAggregatedListItems where
-        toJSON = toJSON . _aaliAddtional
-
---
--- /See:/ 'instanceListWarningDataItem' smart constructor.
-data InstanceListWarningDataItem =
-  InstanceListWarningDataItem'
-    { _ilwdiValue :: !(Maybe Text)
-    , _ilwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilwdiValue'
---
--- * 'ilwdiKey'
-instanceListWarningDataItem
-    :: InstanceListWarningDataItem
-instanceListWarningDataItem =
-  InstanceListWarningDataItem' {_ilwdiValue = Nothing, _ilwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ilwdiValue :: Lens' InstanceListWarningDataItem (Maybe Text)
-ilwdiValue
-  = lens _ilwdiValue (\ s a -> s{_ilwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ilwdiKey :: Lens' InstanceListWarningDataItem (Maybe Text)
-ilwdiKey = lens _ilwdiKey (\ s a -> s{_ilwdiKey = a})
-
-instance FromJSON InstanceListWarningDataItem where
-        parseJSON
-          = withObject "InstanceListWarningDataItem"
-              (\ o ->
-                 InstanceListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstanceListWarningDataItem where
-        toJSON InstanceListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ilwdiValue,
-                  ("key" .=) <$> _ilwdiKey])
-
---
--- /See:/ 'instanceGroupManagersSetInstanceTemplateRequest' smart constructor.
-newtype InstanceGroupManagersSetInstanceTemplateRequest =
-  InstanceGroupManagersSetInstanceTemplateRequest'
-    { _igmsitrInstanceTemplate :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersSetInstanceTemplateRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmsitrInstanceTemplate'
-instanceGroupManagersSetInstanceTemplateRequest
-    :: InstanceGroupManagersSetInstanceTemplateRequest
-instanceGroupManagersSetInstanceTemplateRequest =
-  InstanceGroupManagersSetInstanceTemplateRequest'
-    {_igmsitrInstanceTemplate = Nothing}
-
-
--- | The URL of the instance template that is specified for this managed
--- instance group. The group uses this template to create all new instances
--- in the managed instance group.
-igmsitrInstanceTemplate :: Lens' InstanceGroupManagersSetInstanceTemplateRequest (Maybe Text)
-igmsitrInstanceTemplate
-  = lens _igmsitrInstanceTemplate
-      (\ s a -> s{_igmsitrInstanceTemplate = a})
-
-instance FromJSON
-           InstanceGroupManagersSetInstanceTemplateRequest
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersSetInstanceTemplateRequest"
-              (\ o ->
-                 InstanceGroupManagersSetInstanceTemplateRequest' <$>
-                   (o .:? "instanceTemplate"))
-
-instance ToJSON
-           InstanceGroupManagersSetInstanceTemplateRequest
-         where
-        toJSON
-          InstanceGroupManagersSetInstanceTemplateRequest'{..}
-          = object
-              (catMaybes
-                 [("instanceTemplate" .=) <$>
-                    _igmsitrInstanceTemplate])
-
--- | Deprecation status for a public resource.
---
--- /See:/ 'deprecationStatus' smart constructor.
-data DeprecationStatus =
-  DeprecationStatus'
-    { _dsState       :: !(Maybe DeprecationStatusState)
-    , _dsDeleted     :: !(Maybe Text)
-    , _dsReplacement :: !(Maybe Text)
-    , _dsObsolete    :: !(Maybe Text)
-    , _dsDeprecated  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeprecationStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsState'
---
--- * 'dsDeleted'
---
--- * 'dsReplacement'
---
--- * 'dsObsolete'
---
--- * 'dsDeprecated'
-deprecationStatus
-    :: DeprecationStatus
-deprecationStatus =
-  DeprecationStatus'
-    { _dsState = Nothing
-    , _dsDeleted = Nothing
-    , _dsReplacement = Nothing
-    , _dsObsolete = Nothing
-    , _dsDeprecated = Nothing
-    }
-
-
--- | The deprecation state of this resource. This can be ACTIVE, DEPRECATED,
--- OBSOLETE, or DELETED. Operations which communicate the end of life date
--- for an image, can use ACTIVE. Operations which create a new resource
--- using a DEPRECATED resource will return successfully, but with a warning
--- indicating the deprecated resource and recommending its replacement.
--- Operations which use OBSOLETE or DELETED resources will be rejected and
--- result in an error.
-dsState :: Lens' DeprecationStatus (Maybe DeprecationStatusState)
-dsState = lens _dsState (\ s a -> s{_dsState = a})
-
--- | An optional RFC3339 timestamp on or after which the state of this
--- resource is intended to change to DELETED. This is only informational
--- and the status will not change unless the client explicitly changes it.
-dsDeleted :: Lens' DeprecationStatus (Maybe Text)
-dsDeleted
-  = lens _dsDeleted (\ s a -> s{_dsDeleted = a})
-
--- | The URL of the suggested replacement for a deprecated resource. The
--- suggested replacement resource must be the same kind of resource as the
--- deprecated resource.
-dsReplacement :: Lens' DeprecationStatus (Maybe Text)
-dsReplacement
-  = lens _dsReplacement
-      (\ s a -> s{_dsReplacement = a})
-
--- | An optional RFC3339 timestamp on or after which the state of this
--- resource is intended to change to OBSOLETE. This is only informational
--- and the status will not change unless the client explicitly changes it.
-dsObsolete :: Lens' DeprecationStatus (Maybe Text)
-dsObsolete
-  = lens _dsObsolete (\ s a -> s{_dsObsolete = a})
-
--- | An optional RFC3339 timestamp on or after which the state of this
--- resource is intended to change to DEPRECATED. This is only informational
--- and the status will not change unless the client explicitly changes it.
-dsDeprecated :: Lens' DeprecationStatus (Maybe Text)
-dsDeprecated
-  = lens _dsDeprecated (\ s a -> s{_dsDeprecated = a})
-
-instance FromJSON DeprecationStatus where
-        parseJSON
-          = withObject "DeprecationStatus"
-              (\ o ->
-                 DeprecationStatus' <$>
-                   (o .:? "state") <*> (o .:? "deleted") <*>
-                     (o .:? "replacement")
-                     <*> (o .:? "obsolete")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON DeprecationStatus where
-        toJSON DeprecationStatus'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _dsState,
-                  ("deleted" .=) <$> _dsDeleted,
-                  ("replacement" .=) <$> _dsReplacement,
-                  ("obsolete" .=) <$> _dsObsolete,
-                  ("deprecated" .=) <$> _dsDeprecated])
-
---
--- /See:/ 'httpsHealthCheckListWarningDataItem' smart constructor.
-data HTTPSHealthCheckListWarningDataItem =
-  HTTPSHealthCheckListWarningDataItem'
-    { _hhclwdiValue :: !(Maybe Text)
-    , _hhclwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthCheckListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhclwdiValue'
---
--- * 'hhclwdiKey'
-httpsHealthCheckListWarningDataItem
-    :: HTTPSHealthCheckListWarningDataItem
-httpsHealthCheckListWarningDataItem =
-  HTTPSHealthCheckListWarningDataItem'
-    {_hhclwdiValue = Nothing, _hhclwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-hhclwdiValue :: Lens' HTTPSHealthCheckListWarningDataItem (Maybe Text)
-hhclwdiValue
-  = lens _hhclwdiValue (\ s a -> s{_hhclwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-hhclwdiKey :: Lens' HTTPSHealthCheckListWarningDataItem (Maybe Text)
-hhclwdiKey
-  = lens _hhclwdiKey (\ s a -> s{_hhclwdiKey = a})
-
-instance FromJSON HTTPSHealthCheckListWarningDataItem
-         where
-        parseJSON
-          = withObject "HTTPSHealthCheckListWarningDataItem"
-              (\ o ->
-                 HTTPSHealthCheckListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON HTTPSHealthCheckListWarningDataItem
-         where
-        toJSON HTTPSHealthCheckListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _hhclwdiValue,
-                  ("key" .=) <$> _hhclwdiKey])
-
--- | A persistent disk snapshot resource. (== resource_for beta.snapshots ==)
--- (== resource_for v1.snapshots ==)
---
--- /See:/ 'snapshot' smart constructor.
-data Snapshot =
-  Snapshot'
-    { _sStorageBytesStatus      :: !(Maybe SnapshotStorageBytesStatus)
-    , _sStatus                  :: !(Maybe SnapshotStatus)
-    , _sDiskSizeGb              :: !(Maybe (Textual Int64))
-    , _sSourceDiskId            :: !(Maybe Text)
-    , _sKind                    :: !Text
-    , _sSourceDiskEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _sStorageBytes            :: !(Maybe (Textual Int64))
-    , _sSelfLink                :: !(Maybe Text)
-    , _sSnapshotEncryptionKey   :: !(Maybe CustomerEncryptionKey)
-    , _sName                    :: !(Maybe Text)
-    , _sStorageLocations        :: !(Maybe [Text])
-    , _sCreationTimestamp       :: !(Maybe Text)
-    , _sLicenseCodes            :: !(Maybe [Textual Int64])
-    , _sId                      :: !(Maybe (Textual Word64))
-    , _sLabels                  :: !(Maybe SnapshotLabels)
-    , _sLicenses                :: !(Maybe [Text])
-    , _sSourceDisk              :: !(Maybe Text)
-    , _sLabelFingerprint        :: !(Maybe Bytes)
-    , _sDescription             :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Snapshot' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sStorageBytesStatus'
---
--- * 'sStatus'
---
--- * 'sDiskSizeGb'
---
--- * 'sSourceDiskId'
---
--- * 'sKind'
---
--- * 'sSourceDiskEncryptionKey'
---
--- * 'sStorageBytes'
---
--- * 'sSelfLink'
---
--- * 'sSnapshotEncryptionKey'
---
--- * 'sName'
---
--- * 'sStorageLocations'
---
--- * 'sCreationTimestamp'
---
--- * 'sLicenseCodes'
---
--- * 'sId'
---
--- * 'sLabels'
---
--- * 'sLicenses'
---
--- * 'sSourceDisk'
---
--- * 'sLabelFingerprint'
---
--- * 'sDescription'
-snapshot
-    :: Snapshot
-snapshot =
-  Snapshot'
-    { _sStorageBytesStatus = Nothing
-    , _sStatus = Nothing
-    , _sDiskSizeGb = Nothing
-    , _sSourceDiskId = Nothing
-    , _sKind = "compute#snapshot"
-    , _sSourceDiskEncryptionKey = Nothing
-    , _sStorageBytes = Nothing
-    , _sSelfLink = Nothing
-    , _sSnapshotEncryptionKey = Nothing
-    , _sName = Nothing
-    , _sStorageLocations = Nothing
-    , _sCreationTimestamp = Nothing
-    , _sLicenseCodes = Nothing
-    , _sId = Nothing
-    , _sLabels = Nothing
-    , _sLicenses = Nothing
-    , _sSourceDisk = Nothing
-    , _sLabelFingerprint = Nothing
-    , _sDescription = Nothing
-    }
-
-
--- | [Output Only] An indicator whether storageBytes is in a stable state or
--- it is being adjusted as a result of shared storage reallocation. This
--- status can either be UPDATING, meaning the size of the snapshot is being
--- updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
-sStorageBytesStatus :: Lens' Snapshot (Maybe SnapshotStorageBytesStatus)
-sStorageBytesStatus
-  = lens _sStorageBytesStatus
-      (\ s a -> s{_sStorageBytesStatus = a})
-
--- | [Output Only] The status of the snapshot. This can be CREATING,
--- DELETING, FAILED, READY, or UPLOADING.
-sStatus :: Lens' Snapshot (Maybe SnapshotStatus)
-sStatus = lens _sStatus (\ s a -> s{_sStatus = a})
-
--- | [Output Only] Size of the snapshot, specified in GB.
-sDiskSizeGb :: Lens' Snapshot (Maybe Int64)
-sDiskSizeGb
-  = lens _sDiskSizeGb (\ s a -> s{_sDiskSizeGb = a}) .
-      mapping _Coerce
-
--- | [Output Only] The ID value of the disk used to create this snapshot.
--- This value may be used to determine whether the snapshot was taken from
--- the current or a previous instance of a given disk name.
-sSourceDiskId :: Lens' Snapshot (Maybe Text)
-sSourceDiskId
-  = lens _sSourceDiskId
-      (\ s a -> s{_sSourceDiskId = a})
-
--- | [Output Only] Type of the resource. Always compute#snapshot for Snapshot
--- resources.
-sKind :: Lens' Snapshot Text
-sKind = lens _sKind (\ s a -> s{_sKind = a})
-
--- | The customer-supplied encryption key of the source disk. Required if the
--- source disk is protected by a customer-supplied encryption key.
-sSourceDiskEncryptionKey :: Lens' Snapshot (Maybe CustomerEncryptionKey)
-sSourceDiskEncryptionKey
-  = lens _sSourceDiskEncryptionKey
-      (\ s a -> s{_sSourceDiskEncryptionKey = a})
-
--- | [Output Only] A size of the storage used by the snapshot. As snapshots
--- share storage, this number is expected to change with snapshot
--- creation\/deletion.
-sStorageBytes :: Lens' Snapshot (Maybe Int64)
-sStorageBytes
-  = lens _sStorageBytes
-      (\ s a -> s{_sStorageBytes = a})
-      . mapping _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-sSelfLink :: Lens' Snapshot (Maybe Text)
-sSelfLink
-  = lens _sSelfLink (\ s a -> s{_sSelfLink = a})
-
--- | Encrypts the snapshot using a customer-supplied encryption key. After
--- you encrypt a snapshot using a customer-supplied key, you must provide
--- the same key if you use the image later For example, you must provide
--- the encryption key when you create a disk from the encrypted snapshot in
--- a future request. Customer-supplied encryption keys do not protect
--- access to metadata of the disk. If you do not provide an encryption key
--- when creating the snapshot, then the snapshot will be encrypted using an
--- automatically generated key and you do not need to provide a key to use
--- the snapshot later.
-sSnapshotEncryptionKey :: Lens' Snapshot (Maybe CustomerEncryptionKey)
-sSnapshotEncryptionKey
-  = lens _sSnapshotEncryptionKey
-      (\ s a -> s{_sSnapshotEncryptionKey = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-sName :: Lens' Snapshot (Maybe Text)
-sName = lens _sName (\ s a -> s{_sName = a})
-
--- | GCS bucket storage location of the snapshot (regional or
--- multi-regional).
-sStorageLocations :: Lens' Snapshot [Text]
-sStorageLocations
-  = lens _sStorageLocations
-      (\ s a -> s{_sStorageLocations = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-sCreationTimestamp :: Lens' Snapshot (Maybe Text)
-sCreationTimestamp
-  = lens _sCreationTimestamp
-      (\ s a -> s{_sCreationTimestamp = a})
-
--- | [Output Only] Integer license codes indicating which licenses are
--- attached to this snapshot.
-sLicenseCodes :: Lens' Snapshot [Int64]
-sLicenseCodes
-  = lens _sLicenseCodes
-      (\ s a -> s{_sLicenseCodes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-sId :: Lens' Snapshot (Maybe Word64)
-sId
-  = lens _sId (\ s a -> s{_sId = a}) . mapping _Coerce
-
--- | Labels to apply to this snapshot. These can be later modified by the
--- setLabels method. Label values may be empty.
-sLabels :: Lens' Snapshot (Maybe SnapshotLabels)
-sLabels = lens _sLabels (\ s a -> s{_sLabels = a})
-
--- | [Output Only] A list of public visible licenses that apply to this
--- snapshot. This can be because the original image had licenses attached
--- (such as a Windows image).
-sLicenses :: Lens' Snapshot [Text]
-sLicenses
-  = lens _sLicenses (\ s a -> s{_sLicenses = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] The source disk used to create this snapshot.
-sSourceDisk :: Lens' Snapshot (Maybe Text)
-sSourceDisk
-  = lens _sSourceDisk (\ s a -> s{_sSourceDisk = a})
-
--- | A fingerprint for the labels being applied to this snapshot, which is
--- essentially a hash of the labels set used for optimistic locking. The
--- fingerprint is initially generated by Compute Engine and changes after
--- every request to modify or update labels. You must always provide an
--- up-to-date fingerprint hash in order to update or change labels,
--- otherwise the request will fail with error 412 conditionNotMet. To see
--- the latest fingerprint, make a get() request to retrieve a snapshot.
-sLabelFingerprint :: Lens' Snapshot (Maybe ByteString)
-sLabelFingerprint
-  = lens _sLabelFingerprint
-      (\ s a -> s{_sLabelFingerprint = a})
-      . mapping _Bytes
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-sDescription :: Lens' Snapshot (Maybe Text)
-sDescription
-  = lens _sDescription (\ s a -> s{_sDescription = a})
-
-instance FromJSON Snapshot where
-        parseJSON
-          = withObject "Snapshot"
-              (\ o ->
-                 Snapshot' <$>
-                   (o .:? "storageBytesStatus") <*> (o .:? "status") <*>
-                     (o .:? "diskSizeGb")
-                     <*> (o .:? "sourceDiskId")
-                     <*> (o .:? "kind" .!= "compute#snapshot")
-                     <*> (o .:? "sourceDiskEncryptionKey")
-                     <*> (o .:? "storageBytes")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "snapshotEncryptionKey")
-                     <*> (o .:? "name")
-                     <*> (o .:? "storageLocations" .!= mempty)
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "licenseCodes" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "licenses" .!= mempty)
-                     <*> (o .:? "sourceDisk")
-                     <*> (o .:? "labelFingerprint")
-                     <*> (o .:? "description"))
-
-instance ToJSON Snapshot where
-        toJSON Snapshot'{..}
-          = object
-              (catMaybes
-                 [("storageBytesStatus" .=) <$> _sStorageBytesStatus,
-                  ("status" .=) <$> _sStatus,
-                  ("diskSizeGb" .=) <$> _sDiskSizeGb,
-                  ("sourceDiskId" .=) <$> _sSourceDiskId,
-                  Just ("kind" .= _sKind),
-                  ("sourceDiskEncryptionKey" .=) <$>
-                    _sSourceDiskEncryptionKey,
-                  ("storageBytes" .=) <$> _sStorageBytes,
-                  ("selfLink" .=) <$> _sSelfLink,
-                  ("snapshotEncryptionKey" .=) <$>
-                    _sSnapshotEncryptionKey,
-                  ("name" .=) <$> _sName,
-                  ("storageLocations" .=) <$> _sStorageLocations,
-                  ("creationTimestamp" .=) <$> _sCreationTimestamp,
-                  ("licenseCodes" .=) <$> _sLicenseCodes,
-                  ("id" .=) <$> _sId, ("labels" .=) <$> _sLabels,
-                  ("licenses" .=) <$> _sLicenses,
-                  ("sourceDisk" .=) <$> _sSourceDisk,
-                  ("labelFingerprint" .=) <$> _sLabelFingerprint,
-                  ("description" .=) <$> _sDescription])
-
---
--- /See:/ 'routerStatus' smart constructor.
-data RouterStatus =
-  RouterStatus'
-    { _rsBestRoutesForRouter :: !(Maybe [Route])
-    , _rsBGPPeerStatus       :: !(Maybe [RouterStatusBGPPeerStatus])
-    , _rsNetwork             :: !(Maybe Text)
-    , _rsNATStatus           :: !(Maybe [RouterStatusNATStatus])
-    , _rsBestRoutes          :: !(Maybe [Route])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsBestRoutesForRouter'
---
--- * 'rsBGPPeerStatus'
---
--- * 'rsNetwork'
---
--- * 'rsNATStatus'
---
--- * 'rsBestRoutes'
-routerStatus
-    :: RouterStatus
-routerStatus =
-  RouterStatus'
-    { _rsBestRoutesForRouter = Nothing
-    , _rsBGPPeerStatus = Nothing
-    , _rsNetwork = Nothing
-    , _rsNATStatus = Nothing
-    , _rsBestRoutes = Nothing
-    }
-
-
--- | Best routes learned by this router.
-rsBestRoutesForRouter :: Lens' RouterStatus [Route]
-rsBestRoutesForRouter
-  = lens _rsBestRoutesForRouter
-      (\ s a -> s{_rsBestRoutesForRouter = a})
-      . _Default
-      . _Coerce
-
-rsBGPPeerStatus :: Lens' RouterStatus [RouterStatusBGPPeerStatus]
-rsBGPPeerStatus
-  = lens _rsBGPPeerStatus
-      (\ s a -> s{_rsBGPPeerStatus = a})
-      . _Default
-      . _Coerce
-
--- | URI of the network to which this router belongs.
-rsNetwork :: Lens' RouterStatus (Maybe Text)
-rsNetwork
-  = lens _rsNetwork (\ s a -> s{_rsNetwork = a})
-
-rsNATStatus :: Lens' RouterStatus [RouterStatusNATStatus]
-rsNATStatus
-  = lens _rsNATStatus (\ s a -> s{_rsNATStatus = a}) .
-      _Default
-      . _Coerce
-
--- | Best routes for this router\'s network.
-rsBestRoutes :: Lens' RouterStatus [Route]
-rsBestRoutes
-  = lens _rsBestRoutes (\ s a -> s{_rsBestRoutes = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RouterStatus where
-        parseJSON
-          = withObject "RouterStatus"
-              (\ o ->
-                 RouterStatus' <$>
-                   (o .:? "bestRoutesForRouter" .!= mempty) <*>
-                     (o .:? "bgpPeerStatus" .!= mempty)
-                     <*> (o .:? "network")
-                     <*> (o .:? "natStatus" .!= mempty)
-                     <*> (o .:? "bestRoutes" .!= mempty))
-
-instance ToJSON RouterStatus where
-        toJSON RouterStatus'{..}
-          = object
-              (catMaybes
-                 [("bestRoutesForRouter" .=) <$>
-                    _rsBestRoutesForRouter,
-                  ("bgpPeerStatus" .=) <$> _rsBGPPeerStatus,
-                  ("network" .=) <$> _rsNetwork,
-                  ("natStatus" .=) <$> _rsNATStatus,
-                  ("bestRoutes" .=) <$> _rsBestRoutes])
-
--- | Custom utilization metric policy.
---
--- /See:/ 'autoscalingPolicyCustomMetricUtilization' smart constructor.
-data AutoscalingPolicyCustomMetricUtilization =
-  AutoscalingPolicyCustomMetricUtilization'
-    { _apcmuUtilizationTarget     :: !(Maybe (Textual Double))
-    , _apcmuMetric                :: !(Maybe Text)
-    , _apcmuUtilizationTargetType :: !(Maybe AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalingPolicyCustomMetricUtilization' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apcmuUtilizationTarget'
---
--- * 'apcmuMetric'
---
--- * 'apcmuUtilizationTargetType'
-autoscalingPolicyCustomMetricUtilization
-    :: AutoscalingPolicyCustomMetricUtilization
-autoscalingPolicyCustomMetricUtilization =
-  AutoscalingPolicyCustomMetricUtilization'
-    { _apcmuUtilizationTarget = Nothing
-    , _apcmuMetric = Nothing
-    , _apcmuUtilizationTargetType = Nothing
-    }
-
-
--- | The target value of the metric that autoscaler should maintain. This
--- must be a positive value. A utilization metric scales number of virtual
--- machines handling requests to increase or decrease proportionally to the
--- metric. For example, a good metric to use as a utilization_target is
--- compute.googleapis.com\/instance\/network\/received_bytes_count. The
--- autoscaler will work to keep this value constant for each of the
--- instances.
-apcmuUtilizationTarget :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Double)
-apcmuUtilizationTarget
-  = lens _apcmuUtilizationTarget
-      (\ s a -> s{_apcmuUtilizationTarget = a})
-      . mapping _Coerce
-
--- | The identifier (type) of the Stackdriver Monitoring metric. The metric
--- cannot have negative values. The metric must have a value type of INT64
--- or DOUBLE.
-apcmuMetric :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe Text)
-apcmuMetric
-  = lens _apcmuMetric (\ s a -> s{_apcmuMetric = a})
-
--- | Defines how target utilization value is expressed for a Stackdriver
--- Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.
-apcmuUtilizationTargetType :: Lens' AutoscalingPolicyCustomMetricUtilization (Maybe AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType)
-apcmuUtilizationTargetType
-  = lens _apcmuUtilizationTargetType
-      (\ s a -> s{_apcmuUtilizationTargetType = a})
-
-instance FromJSON
-           AutoscalingPolicyCustomMetricUtilization
-         where
-        parseJSON
-          = withObject
-              "AutoscalingPolicyCustomMetricUtilization"
-              (\ o ->
-                 AutoscalingPolicyCustomMetricUtilization' <$>
-                   (o .:? "utilizationTarget") <*> (o .:? "metric") <*>
-                     (o .:? "utilizationTargetType"))
-
-instance ToJSON
-           AutoscalingPolicyCustomMetricUtilization
-         where
-        toJSON AutoscalingPolicyCustomMetricUtilization'{..}
-          = object
-              (catMaybes
-                 [("utilizationTarget" .=) <$>
-                    _apcmuUtilizationTarget,
-                  ("metric" .=) <$> _apcmuMetric,
-                  ("utilizationTargetType" .=) <$>
-                    _apcmuUtilizationTargetType])
-
--- | Contains a list of ForwardingRule resources.
---
--- /See:/ 'forwardingRuleList' smart constructor.
-data ForwardingRuleList =
-  ForwardingRuleList'
-    { _frlNextPageToken :: !(Maybe Text)
-    , _frlKind          :: !Text
-    , _frlItems         :: !(Maybe [ForwardingRule])
-    , _frlSelfLink      :: !(Maybe Text)
-    , _frlWarning       :: !(Maybe ForwardingRuleListWarning)
-    , _frlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frlNextPageToken'
---
--- * 'frlKind'
---
--- * 'frlItems'
---
--- * 'frlSelfLink'
---
--- * 'frlWarning'
---
--- * 'frlId'
-forwardingRuleList
-    :: ForwardingRuleList
-forwardingRuleList =
-  ForwardingRuleList'
-    { _frlNextPageToken = Nothing
-    , _frlKind = "compute#forwardingRuleList"
-    , _frlItems = Nothing
-    , _frlSelfLink = Nothing
-    , _frlWarning = Nothing
-    , _frlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-frlNextPageToken :: Lens' ForwardingRuleList (Maybe Text)
-frlNextPageToken
-  = lens _frlNextPageToken
-      (\ s a -> s{_frlNextPageToken = a})
-
--- | Type of resource.
-frlKind :: Lens' ForwardingRuleList Text
-frlKind = lens _frlKind (\ s a -> s{_frlKind = a})
-
--- | A list of ForwardingRule resources.
-frlItems :: Lens' ForwardingRuleList [ForwardingRule]
-frlItems
-  = lens _frlItems (\ s a -> s{_frlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-frlSelfLink :: Lens' ForwardingRuleList (Maybe Text)
-frlSelfLink
-  = lens _frlSelfLink (\ s a -> s{_frlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-frlWarning :: Lens' ForwardingRuleList (Maybe ForwardingRuleListWarning)
-frlWarning
-  = lens _frlWarning (\ s a -> s{_frlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-frlId :: Lens' ForwardingRuleList (Maybe Text)
-frlId = lens _frlId (\ s a -> s{_frlId = a})
-
-instance FromJSON ForwardingRuleList where
-        parseJSON
-          = withObject "ForwardingRuleList"
-              (\ o ->
-                 ForwardingRuleList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#forwardingRuleList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON ForwardingRuleList where
-        toJSON ForwardingRuleList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _frlNextPageToken,
-                  Just ("kind" .= _frlKind),
-                  ("items" .=) <$> _frlItems,
-                  ("selfLink" .=) <$> _frlSelfLink,
-                  ("warning" .=) <$> _frlWarning,
-                  ("id" .=) <$> _frlId])
-
--- | A NodeGroup resource. To create a node group, you must first create a
--- node templates. To learn more about node groups and sole-tenant nodes,
--- read the Sole-tenant nodes documentation. (== resource_for
--- beta.nodeGroups ==) (== resource_for v1.nodeGroups ==)
---
--- /See:/ 'nodeGroup' smart constructor.
-data NodeGroup =
-  NodeGroup'
-    { _ngStatus            :: !(Maybe NodeGroupStatus)
-    , _ngSize              :: !(Maybe (Textual Int32))
-    , _ngKind              :: !Text
-    , _ngZone              :: !(Maybe Text)
-    , _ngSelfLink          :: !(Maybe Text)
-    , _ngName              :: !(Maybe Text)
-    , _ngCreationTimestamp :: !(Maybe Text)
-    , _ngId                :: !(Maybe (Textual Word64))
-    , _ngNodeTemplate      :: !(Maybe Text)
-    , _ngDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngStatus'
---
--- * 'ngSize'
---
--- * 'ngKind'
---
--- * 'ngZone'
---
--- * 'ngSelfLink'
---
--- * 'ngName'
---
--- * 'ngCreationTimestamp'
---
--- * 'ngId'
---
--- * 'ngNodeTemplate'
---
--- * 'ngDescription'
-nodeGroup
-    :: NodeGroup
-nodeGroup =
-  NodeGroup'
-    { _ngStatus = Nothing
-    , _ngSize = Nothing
-    , _ngKind = "compute#nodeGroup"
-    , _ngZone = Nothing
-    , _ngSelfLink = Nothing
-    , _ngName = Nothing
-    , _ngCreationTimestamp = Nothing
-    , _ngId = Nothing
-    , _ngNodeTemplate = Nothing
-    , _ngDescription = Nothing
-    }
-
-
-ngStatus :: Lens' NodeGroup (Maybe NodeGroupStatus)
-ngStatus = lens _ngStatus (\ s a -> s{_ngStatus = a})
-
--- | [Output Only] The total number of nodes in the node group.
-ngSize :: Lens' NodeGroup (Maybe Int32)
-ngSize
-  = lens _ngSize (\ s a -> s{_ngSize = a}) .
-      mapping _Coerce
-
--- | [Output Only] The type of the resource. Always compute#nodeGroup for
--- node group.
-ngKind :: Lens' NodeGroup Text
-ngKind = lens _ngKind (\ s a -> s{_ngKind = a})
-
--- | [Output Only] The name of the zone where the node group resides, such as
--- us-central1-a.
-ngZone :: Lens' NodeGroup (Maybe Text)
-ngZone = lens _ngZone (\ s a -> s{_ngZone = a})
-
--- | [Output Only] Server-defined URL for the resource.
-ngSelfLink :: Lens' NodeGroup (Maybe Text)
-ngSelfLink
-  = lens _ngSelfLink (\ s a -> s{_ngSelfLink = a})
-
--- | The name of the resource, provided by the client when initially creating
--- the resource. The resource name must be 1-63 characters long, and comply
--- with RFC1035. Specifically, the name must be 1-63 characters long and
--- match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means
--- the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash.
-ngName :: Lens' NodeGroup (Maybe Text)
-ngName = lens _ngName (\ s a -> s{_ngName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-ngCreationTimestamp :: Lens' NodeGroup (Maybe Text)
-ngCreationTimestamp
-  = lens _ngCreationTimestamp
-      (\ s a -> s{_ngCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-ngId :: Lens' NodeGroup (Maybe Word64)
-ngId
-  = lens _ngId (\ s a -> s{_ngId = a}) .
-      mapping _Coerce
-
--- | The URL of the node template to which this node group belongs.
-ngNodeTemplate :: Lens' NodeGroup (Maybe Text)
-ngNodeTemplate
-  = lens _ngNodeTemplate
-      (\ s a -> s{_ngNodeTemplate = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-ngDescription :: Lens' NodeGroup (Maybe Text)
-ngDescription
-  = lens _ngDescription
-      (\ s a -> s{_ngDescription = a})
-
-instance FromJSON NodeGroup where
-        parseJSON
-          = withObject "NodeGroup"
-              (\ o ->
-                 NodeGroup' <$>
-                   (o .:? "status") <*> (o .:? "size") <*>
-                     (o .:? "kind" .!= "compute#nodeGroup")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "nodeTemplate")
-                     <*> (o .:? "description"))
-
-instance ToJSON NodeGroup where
-        toJSON NodeGroup'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _ngStatus,
-                  ("size" .=) <$> _ngSize, Just ("kind" .= _ngKind),
-                  ("zone" .=) <$> _ngZone,
-                  ("selfLink" .=) <$> _ngSelfLink,
-                  ("name" .=) <$> _ngName,
-                  ("creationTimestamp" .=) <$> _ngCreationTimestamp,
-                  ("id" .=) <$> _ngId,
-                  ("nodeTemplate" .=) <$> _ngNodeTemplate,
-                  ("description" .=) <$> _ngDescription])
-
---
--- /See:/ 'vpnTunnelsScopedList' smart constructor.
-data VPNTunnelsScopedList =
-  VPNTunnelsScopedList'
-    { _vtslVPNTunnels :: !(Maybe [VPNTunnel])
-    , _vtslWarning    :: !(Maybe VPNTunnelsScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtslVPNTunnels'
---
--- * 'vtslWarning'
-vpnTunnelsScopedList
-    :: VPNTunnelsScopedList
-vpnTunnelsScopedList =
-  VPNTunnelsScopedList' {_vtslVPNTunnels = Nothing, _vtslWarning = Nothing}
-
-
--- | A list of VPN tunnels contained in this scope.
-vtslVPNTunnels :: Lens' VPNTunnelsScopedList [VPNTunnel]
-vtslVPNTunnels
-  = lens _vtslVPNTunnels
-      (\ s a -> s{_vtslVPNTunnels = a})
-      . _Default
-      . _Coerce
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
-vtslWarning :: Lens' VPNTunnelsScopedList (Maybe VPNTunnelsScopedListWarning)
-vtslWarning
-  = lens _vtslWarning (\ s a -> s{_vtslWarning = a})
-
-instance FromJSON VPNTunnelsScopedList where
-        parseJSON
-          = withObject "VPNTunnelsScopedList"
-              (\ o ->
-                 VPNTunnelsScopedList' <$>
-                   (o .:? "vpnTunnels" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON VPNTunnelsScopedList where
-        toJSON VPNTunnelsScopedList'{..}
-          = object
-              (catMaybes
-                 [("vpnTunnels" .=) <$> _vtslVPNTunnels,
-                  ("warning" .=) <$> _vtslWarning])
-
--- | Represents a secondary IP range of a subnetwork.
---
--- /See:/ 'subnetworkSecondaryRange' smart constructor.
-data SubnetworkSecondaryRange =
-  SubnetworkSecondaryRange'
-    { _ssrRangeName   :: !(Maybe Text)
-    , _ssrIPCIdRRange :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkSecondaryRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ssrRangeName'
---
--- * 'ssrIPCIdRRange'
-subnetworkSecondaryRange
-    :: SubnetworkSecondaryRange
-subnetworkSecondaryRange =
-  SubnetworkSecondaryRange' {_ssrRangeName = Nothing, _ssrIPCIdRRange = Nothing}
-
-
--- | The name associated with this subnetwork secondary range, used when
--- adding an alias IP range to a VM instance. The name must be 1-63
--- characters long, and comply with RFC1035. The name must be unique within
--- the subnetwork.
-ssrRangeName :: Lens' SubnetworkSecondaryRange (Maybe Text)
-ssrRangeName
-  = lens _ssrRangeName (\ s a -> s{_ssrRangeName = a})
-
--- | The range of IP addresses belonging to this subnetwork secondary range.
--- Provide this property when you create the subnetwork. Ranges must be
--- unique and non-overlapping with all primary and secondary IP ranges
--- within a network. Only IPv4 is supported.
-ssrIPCIdRRange :: Lens' SubnetworkSecondaryRange (Maybe Text)
-ssrIPCIdRRange
-  = lens _ssrIPCIdRRange
-      (\ s a -> s{_ssrIPCIdRRange = a})
-
-instance FromJSON SubnetworkSecondaryRange where
-        parseJSON
-          = withObject "SubnetworkSecondaryRange"
-              (\ o ->
-                 SubnetworkSecondaryRange' <$>
-                   (o .:? "rangeName") <*> (o .:? "ipCidrRange"))
-
-instance ToJSON SubnetworkSecondaryRange where
-        toJSON SubnetworkSecondaryRange'{..}
-          = object
-              (catMaybes
-                 [("rangeName" .=) <$> _ssrRangeName,
-                  ("ipCidrRange" .=) <$> _ssrIPCIdRRange])
-
---
--- /See:/ 'nodeTypesScopedList' smart constructor.
-data NodeTypesScopedList =
-  NodeTypesScopedList'
-    { _ntslNodeTypes :: !(Maybe [NodeType])
-    , _ntslWarning   :: !(Maybe NodeTypesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntslNodeTypes'
---
--- * 'ntslWarning'
-nodeTypesScopedList
-    :: NodeTypesScopedList
-nodeTypesScopedList =
-  NodeTypesScopedList' {_ntslNodeTypes = Nothing, _ntslWarning = Nothing}
-
-
--- | [Output Only] A list of node types contained in this scope.
-ntslNodeTypes :: Lens' NodeTypesScopedList [NodeType]
-ntslNodeTypes
-  = lens _ntslNodeTypes
-      (\ s a -> s{_ntslNodeTypes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that appears when the node types
--- list is empty.
-ntslWarning :: Lens' NodeTypesScopedList (Maybe NodeTypesScopedListWarning)
-ntslWarning
-  = lens _ntslWarning (\ s a -> s{_ntslWarning = a})
-
-instance FromJSON NodeTypesScopedList where
-        parseJSON
-          = withObject "NodeTypesScopedList"
-              (\ o ->
-                 NodeTypesScopedList' <$>
-                   (o .:? "nodeTypes" .!= mempty) <*> (o .:? "warning"))
-
-instance ToJSON NodeTypesScopedList where
-        toJSON NodeTypesScopedList'{..}
-          = object
-              (catMaybes
-                 [("nodeTypes" .=) <$> _ntslNodeTypes,
-                  ("warning" .=) <$> _ntslWarning])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionInstanceGroupsListInstancesWarning' smart constructor.
-data RegionInstanceGroupsListInstancesWarning =
-  RegionInstanceGroupsListInstancesWarning'
-    { _rigliwData    :: !(Maybe [RegionInstanceGroupsListInstancesWarningDataItem])
-    , _rigliwCode    :: !(Maybe RegionInstanceGroupsListInstancesWarningCode)
-    , _rigliwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsListInstancesWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigliwData'
---
--- * 'rigliwCode'
---
--- * 'rigliwMessage'
-regionInstanceGroupsListInstancesWarning
-    :: RegionInstanceGroupsListInstancesWarning
-regionInstanceGroupsListInstancesWarning =
-  RegionInstanceGroupsListInstancesWarning'
-    {_rigliwData = Nothing, _rigliwCode = Nothing, _rigliwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rigliwData :: Lens' RegionInstanceGroupsListInstancesWarning [RegionInstanceGroupsListInstancesWarningDataItem]
-rigliwData
-  = lens _rigliwData (\ s a -> s{_rigliwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rigliwCode :: Lens' RegionInstanceGroupsListInstancesWarning (Maybe RegionInstanceGroupsListInstancesWarningCode)
-rigliwCode
-  = lens _rigliwCode (\ s a -> s{_rigliwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rigliwMessage :: Lens' RegionInstanceGroupsListInstancesWarning (Maybe Text)
-rigliwMessage
-  = lens _rigliwMessage
-      (\ s a -> s{_rigliwMessage = a})
-
-instance FromJSON
-           RegionInstanceGroupsListInstancesWarning
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupsListInstancesWarning"
-              (\ o ->
-                 RegionInstanceGroupsListInstancesWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           RegionInstanceGroupsListInstancesWarning
-         where
-        toJSON RegionInstanceGroupsListInstancesWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rigliwData,
-                  ("code" .=) <$> _rigliwCode,
-                  ("message" .=) <$> _rigliwMessage])
-
---
--- /See:/ 'networkEndpointGroupsDetachEndpointsRequest' smart constructor.
-newtype NetworkEndpointGroupsDetachEndpointsRequest =
-  NetworkEndpointGroupsDetachEndpointsRequest'
-    { _negderNetworkEndpoints :: Maybe [NetworkEndpoint]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsDetachEndpointsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negderNetworkEndpoints'
-networkEndpointGroupsDetachEndpointsRequest
-    :: NetworkEndpointGroupsDetachEndpointsRequest
-networkEndpointGroupsDetachEndpointsRequest =
-  NetworkEndpointGroupsDetachEndpointsRequest'
-    {_negderNetworkEndpoints = Nothing}
-
-
--- | The list of network endpoints to be detached.
-negderNetworkEndpoints :: Lens' NetworkEndpointGroupsDetachEndpointsRequest [NetworkEndpoint]
-negderNetworkEndpoints
-  = lens _negderNetworkEndpoints
-      (\ s a -> s{_negderNetworkEndpoints = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           NetworkEndpointGroupsDetachEndpointsRequest
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsDetachEndpointsRequest"
-              (\ o ->
-                 NetworkEndpointGroupsDetachEndpointsRequest' <$>
-                   (o .:? "networkEndpoints" .!= mempty))
-
-instance ToJSON
-           NetworkEndpointGroupsDetachEndpointsRequest
-         where
-        toJSON
-          NetworkEndpointGroupsDetachEndpointsRequest'{..}
-          = object
-              (catMaybes
-                 [("networkEndpoints" .=) <$>
-                    _negderNetworkEndpoints])
-
--- | Specifies the audit configuration for a service. The configuration
--- determines which permission types are logged, and what identities, if
--- any, are exempted from logging. An AuditConfig must have one or more
--- AuditLogConfigs. If there are AuditConfigs for both \`allServices\` and
--- a specific service, the union of the two AuditConfigs is used for that
--- service: the log_types specified in each AuditConfig are enabled, and
--- the exempted_members in each AuditLogConfig are exempted. Example Policy
--- with multiple AuditConfigs: { \"audit_configs\": [ { \"service\":
--- \"allServices\" \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\",
--- \"exempted_members\": [ \"user:foo\'gmail.com\" ] }, { \"log_type\":
--- \"DATA_WRITE\", }, { \"log_type\": \"ADMIN_READ\", } ] }, { \"service\":
--- \"fooservice.googleapis.com\" \"audit_log_configs\": [ { \"log_type\":
--- \"DATA_READ\", }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\":
--- [ \"user:bar\'gmail.com\" ] } ] } ] } For fooservice, this policy
--- enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts
--- foo\'gmail.com from DATA_READ logging, and bar\'gmail.com from
--- DATA_WRITE logging.
---
--- /See:/ 'auditConfig' smart constructor.
-data AuditConfig =
-  AuditConfig'
-    { _acService         :: !(Maybe Text)
-    , _acAuditLogConfigs :: !(Maybe [AuditLogConfig])
-    , _acExemptedMembers :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AuditConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'acService'
---
--- * 'acAuditLogConfigs'
---
--- * 'acExemptedMembers'
-auditConfig
-    :: AuditConfig
-auditConfig =
-  AuditConfig'
-    { _acService = Nothing
-    , _acAuditLogConfigs = Nothing
-    , _acExemptedMembers = Nothing
-    }
-
-
--- | Specifies a service that will be enabled for audit logging. For example,
--- \`storage.googleapis.com\`, \`cloudsql.googleapis.com\`. \`allServices\`
--- is a special value that covers all services.
-acService :: Lens' AuditConfig (Maybe Text)
-acService
-  = lens _acService (\ s a -> s{_acService = a})
-
--- | The configuration for logging of each type of permission.
-acAuditLogConfigs :: Lens' AuditConfig [AuditLogConfig]
-acAuditLogConfigs
-  = lens _acAuditLogConfigs
-      (\ s a -> s{_acAuditLogConfigs = a})
-      . _Default
-      . _Coerce
-
--- |
-acExemptedMembers :: Lens' AuditConfig [Text]
-acExemptedMembers
-  = lens _acExemptedMembers
-      (\ s a -> s{_acExemptedMembers = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AuditConfig where
-        parseJSON
-          = withObject "AuditConfig"
-              (\ o ->
-                 AuditConfig' <$>
-                   (o .:? "service") <*>
-                     (o .:? "auditLogConfigs" .!= mempty)
-                     <*> (o .:? "exemptedMembers" .!= mempty))
-
-instance ToJSON AuditConfig where
-        toJSON AuditConfig'{..}
-          = object
-              (catMaybes
-                 [("service" .=) <$> _acService,
-                  ("auditLogConfigs" .=) <$> _acAuditLogConfigs,
-                  ("exemptedMembers" .=) <$> _acExemptedMembers])
-
---
--- /See:/ 'acceleratorTypeAggregatedListWarningDataItem' smart constructor.
-data AcceleratorTypeAggregatedListWarningDataItem =
-  AcceleratorTypeAggregatedListWarningDataItem'
-    { _atalwdiValue :: !(Maybe Text)
-    , _atalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atalwdiValue'
---
--- * 'atalwdiKey'
-acceleratorTypeAggregatedListWarningDataItem
-    :: AcceleratorTypeAggregatedListWarningDataItem
-acceleratorTypeAggregatedListWarningDataItem =
-  AcceleratorTypeAggregatedListWarningDataItem'
-    {_atalwdiValue = Nothing, _atalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-atalwdiValue :: Lens' AcceleratorTypeAggregatedListWarningDataItem (Maybe Text)
-atalwdiValue
-  = lens _atalwdiValue (\ s a -> s{_atalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-atalwdiKey :: Lens' AcceleratorTypeAggregatedListWarningDataItem (Maybe Text)
-atalwdiKey
-  = lens _atalwdiKey (\ s a -> s{_atalwdiKey = a})
-
-instance FromJSON
-           AcceleratorTypeAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "AcceleratorTypeAggregatedListWarningDataItem"
-              (\ o ->
-                 AcceleratorTypeAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           AcceleratorTypeAggregatedListWarningDataItem
-         where
-        toJSON
-          AcceleratorTypeAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _atalwdiValue,
-                  ("key" .=) <$> _atalwdiKey])
-
---
--- /See:/ 'instanceGroupsSetNamedPortsRequest' smart constructor.
-data InstanceGroupsSetNamedPortsRequest =
-  InstanceGroupsSetNamedPortsRequest'
-    { _igsnprFingerprint :: !(Maybe Bytes)
-    , _igsnprNamedPorts  :: !(Maybe [NamedPort])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsSetNamedPortsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igsnprFingerprint'
---
--- * 'igsnprNamedPorts'
-instanceGroupsSetNamedPortsRequest
-    :: InstanceGroupsSetNamedPortsRequest
-instanceGroupsSetNamedPortsRequest =
-  InstanceGroupsSetNamedPortsRequest'
-    {_igsnprFingerprint = Nothing, _igsnprNamedPorts = Nothing}
-
-
--- | The fingerprint of the named ports information for this instance group.
--- Use this optional property to prevent conflicts when multiple users
--- change the named ports settings concurrently. Obtain the fingerprint
--- with the instanceGroups.get method. Then, include the fingerprint in
--- your request to ensure that you do not overwrite changes that were
--- applied from another concurrent request. A request with an incorrect
--- fingerprint will fail with error 412 conditionNotMet.
-igsnprFingerprint :: Lens' InstanceGroupsSetNamedPortsRequest (Maybe ByteString)
-igsnprFingerprint
-  = lens _igsnprFingerprint
-      (\ s a -> s{_igsnprFingerprint = a})
-      . mapping _Bytes
-
--- | The list of named ports to set for this instance group.
-igsnprNamedPorts :: Lens' InstanceGroupsSetNamedPortsRequest [NamedPort]
-igsnprNamedPorts
-  = lens _igsnprNamedPorts
-      (\ s a -> s{_igsnprNamedPorts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroupsSetNamedPortsRequest
-         where
-        parseJSON
-          = withObject "InstanceGroupsSetNamedPortsRequest"
-              (\ o ->
-                 InstanceGroupsSetNamedPortsRequest' <$>
-                   (o .:? "fingerprint") <*>
-                     (o .:? "namedPorts" .!= mempty))
-
-instance ToJSON InstanceGroupsSetNamedPortsRequest
-         where
-        toJSON InstanceGroupsSetNamedPortsRequest'{..}
-          = object
-              (catMaybes
-                 [("fingerprint" .=) <$> _igsnprFingerprint,
-                  ("namedPorts" .=) <$> _igsnprNamedPorts])
-
--- | Labels to use for node affinity, which will be used in instance
--- scheduling.
---
--- /See:/ 'nodeTemplateNodeAffinityLabels' smart constructor.
-newtype NodeTemplateNodeAffinityLabels =
-  NodeTemplateNodeAffinityLabels'
-    { _ntnalAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateNodeAffinityLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntnalAddtional'
-nodeTemplateNodeAffinityLabels
-    :: HashMap Text Text -- ^ 'ntnalAddtional'
-    -> NodeTemplateNodeAffinityLabels
-nodeTemplateNodeAffinityLabels pNtnalAddtional_ =
-  NodeTemplateNodeAffinityLabels' {_ntnalAddtional = _Coerce # pNtnalAddtional_}
-
-
-ntnalAddtional :: Lens' NodeTemplateNodeAffinityLabels (HashMap Text Text)
-ntnalAddtional
-  = lens _ntnalAddtional
-      (\ s a -> s{_ntnalAddtional = a})
-      . _Coerce
-
-instance FromJSON NodeTemplateNodeAffinityLabels
-         where
-        parseJSON
-          = withObject "NodeTemplateNodeAffinityLabels"
-              (\ o ->
-                 NodeTemplateNodeAffinityLabels' <$>
-                   (parseJSONObject o))
-
-instance ToJSON NodeTemplateNodeAffinityLabels where
-        toJSON = toJSON . _ntnalAddtional
-
--- | Contains a list of Operation resources.
---
--- /See:/ 'operationList' smart constructor.
-data OperationList =
-  OperationList'
-    { _olNextPageToken :: !(Maybe Text)
-    , _olKind          :: !Text
-    , _olItems         :: !(Maybe [Operation])
-    , _olSelfLink      :: !(Maybe Text)
-    , _olWarning       :: !(Maybe OperationListWarning)
-    , _olId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'olNextPageToken'
---
--- * 'olKind'
---
--- * 'olItems'
---
--- * 'olSelfLink'
---
--- * 'olWarning'
---
--- * 'olId'
-operationList
-    :: OperationList
-operationList =
-  OperationList'
-    { _olNextPageToken = Nothing
-    , _olKind = "compute#operationList"
-    , _olItems = Nothing
-    , _olSelfLink = Nothing
-    , _olWarning = Nothing
-    , _olId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-olNextPageToken :: Lens' OperationList (Maybe Text)
-olNextPageToken
-  = lens _olNextPageToken
-      (\ s a -> s{_olNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#operations for Operations
--- resource.
-olKind :: Lens' OperationList Text
-olKind = lens _olKind (\ s a -> s{_olKind = a})
-
--- | [Output Only] A list of Operation resources.
-olItems :: Lens' OperationList [Operation]
-olItems
-  = lens _olItems (\ s a -> s{_olItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-olSelfLink :: Lens' OperationList (Maybe Text)
-olSelfLink
-  = lens _olSelfLink (\ s a -> s{_olSelfLink = a})
-
--- | [Output Only] Informational warning message.
-olWarning :: Lens' OperationList (Maybe OperationListWarning)
-olWarning
-  = lens _olWarning (\ s a -> s{_olWarning = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-olId :: Lens' OperationList (Maybe Text)
-olId = lens _olId (\ s a -> s{_olId = a})
-
-instance FromJSON OperationList where
-        parseJSON
-          = withObject "OperationList"
-              (\ o ->
-                 OperationList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#operationList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON OperationList where
-        toJSON OperationList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _olNextPageToken,
-                  Just ("kind" .= _olKind), ("items" .=) <$> _olItems,
-                  ("selfLink" .=) <$> _olSelfLink,
-                  ("warning" .=) <$> _olWarning, ("id" .=) <$> _olId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeGroupListWarning' smart constructor.
-data NodeGroupListWarning =
-  NodeGroupListWarning'
-    { _nglwData    :: !(Maybe [NodeGroupListWarningDataItem])
-    , _nglwCode    :: !(Maybe NodeGroupListWarningCode)
-    , _nglwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglwData'
---
--- * 'nglwCode'
---
--- * 'nglwMessage'
-nodeGroupListWarning
-    :: NodeGroupListWarning
-nodeGroupListWarning =
-  NodeGroupListWarning'
-    {_nglwData = Nothing, _nglwCode = Nothing, _nglwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-nglwData :: Lens' NodeGroupListWarning [NodeGroupListWarningDataItem]
-nglwData
-  = lens _nglwData (\ s a -> s{_nglwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-nglwCode :: Lens' NodeGroupListWarning (Maybe NodeGroupListWarningCode)
-nglwCode = lens _nglwCode (\ s a -> s{_nglwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-nglwMessage :: Lens' NodeGroupListWarning (Maybe Text)
-nglwMessage
-  = lens _nglwMessage (\ s a -> s{_nglwMessage = a})
-
-instance FromJSON NodeGroupListWarning where
-        parseJSON
-          = withObject "NodeGroupListWarning"
-              (\ o ->
-                 NodeGroupListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeGroupListWarning where
-        toJSON NodeGroupListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _nglwData,
-                  ("code" .=) <$> _nglwCode,
-                  ("message" .=) <$> _nglwMessage])
-
--- | A list of Disk resources.
---
--- /See:/ 'diskList' smart constructor.
-data DiskList =
-  DiskList'
-    { _dlNextPageToken :: !(Maybe Text)
-    , _dlKind          :: !Text
-    , _dlItems         :: !(Maybe [Disk])
-    , _dlSelfLink      :: !(Maybe Text)
-    , _dlWarning       :: !(Maybe DiskListWarning)
-    , _dlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dlNextPageToken'
---
--- * 'dlKind'
---
--- * 'dlItems'
---
--- * 'dlSelfLink'
---
--- * 'dlWarning'
---
--- * 'dlId'
-diskList
-    :: DiskList
-diskList =
-  DiskList'
-    { _dlNextPageToken = Nothing
-    , _dlKind = "compute#diskList"
-    , _dlItems = Nothing
-    , _dlSelfLink = Nothing
-    , _dlWarning = Nothing
-    , _dlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-dlNextPageToken :: Lens' DiskList (Maybe Text)
-dlNextPageToken
-  = lens _dlNextPageToken
-      (\ s a -> s{_dlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#diskList for lists of
--- disks.
-dlKind :: Lens' DiskList Text
-dlKind = lens _dlKind (\ s a -> s{_dlKind = a})
-
--- | A list of Disk resources.
-dlItems :: Lens' DiskList [Disk]
-dlItems
-  = lens _dlItems (\ s a -> s{_dlItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-dlSelfLink :: Lens' DiskList (Maybe Text)
-dlSelfLink
-  = lens _dlSelfLink (\ s a -> s{_dlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-dlWarning :: Lens' DiskList (Maybe DiskListWarning)
-dlWarning
-  = lens _dlWarning (\ s a -> s{_dlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-dlId :: Lens' DiskList (Maybe Text)
-dlId = lens _dlId (\ s a -> s{_dlId = a})
-
-instance FromJSON DiskList where
-        parseJSON
-          = withObject "DiskList"
-              (\ o ->
-                 DiskList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#diskList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON DiskList where
-        toJSON DiskList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dlNextPageToken,
-                  Just ("kind" .= _dlKind), ("items" .=) <$> _dlItems,
-                  ("selfLink" .=) <$> _dlSelfLink,
-                  ("warning" .=) <$> _dlWarning, ("id" .=) <$> _dlId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'networkEndpointGroupsListNetworkEndpointsWarning' smart constructor.
-data NetworkEndpointGroupsListNetworkEndpointsWarning =
-  NetworkEndpointGroupsListNetworkEndpointsWarning'
-    { _neglnewData    :: !(Maybe [NetworkEndpointGroupsListNetworkEndpointsWarningDataItem])
-    , _neglnewCode    :: !(Maybe NetworkEndpointGroupsListNetworkEndpointsWarningCode)
-    , _neglnewMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsListNetworkEndpointsWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglnewData'
---
--- * 'neglnewCode'
---
--- * 'neglnewMessage'
-networkEndpointGroupsListNetworkEndpointsWarning
-    :: NetworkEndpointGroupsListNetworkEndpointsWarning
-networkEndpointGroupsListNetworkEndpointsWarning =
-  NetworkEndpointGroupsListNetworkEndpointsWarning'
-    {_neglnewData = Nothing, _neglnewCode = Nothing, _neglnewMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-neglnewData :: Lens' NetworkEndpointGroupsListNetworkEndpointsWarning [NetworkEndpointGroupsListNetworkEndpointsWarningDataItem]
-neglnewData
-  = lens _neglnewData (\ s a -> s{_neglnewData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-neglnewCode :: Lens' NetworkEndpointGroupsListNetworkEndpointsWarning (Maybe NetworkEndpointGroupsListNetworkEndpointsWarningCode)
-neglnewCode
-  = lens _neglnewCode (\ s a -> s{_neglnewCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-neglnewMessage :: Lens' NetworkEndpointGroupsListNetworkEndpointsWarning (Maybe Text)
-neglnewMessage
-  = lens _neglnewMessage
-      (\ s a -> s{_neglnewMessage = a})
-
-instance FromJSON
-           NetworkEndpointGroupsListNetworkEndpointsWarning
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsListNetworkEndpointsWarning"
-              (\ o ->
-                 NetworkEndpointGroupsListNetworkEndpointsWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           NetworkEndpointGroupsListNetworkEndpointsWarning
-         where
-        toJSON
-          NetworkEndpointGroupsListNetworkEndpointsWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _neglnewData,
-                  ("code" .=) <$> _neglnewCode,
-                  ("message" .=) <$> _neglnewMessage])
-
---
--- /See:/ 'targetPoolsAddInstanceRequest' smart constructor.
-newtype TargetPoolsAddInstanceRequest =
-  TargetPoolsAddInstanceRequest'
-    { _tpairInstances :: Maybe [InstanceReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsAddInstanceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpairInstances'
-targetPoolsAddInstanceRequest
-    :: TargetPoolsAddInstanceRequest
-targetPoolsAddInstanceRequest =
-  TargetPoolsAddInstanceRequest' {_tpairInstances = Nothing}
-
-
--- | A full or partial URL to an instance to add to this target pool. This
--- can be a full or partial URL. For example, the following are valid URLs:
--- -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project-id\/zones\/zone\/instances\/instance-name
--- - projects\/project-id\/zones\/zone\/instances\/instance-name -
--- zones\/zone\/instances\/instance-name
-tpairInstances :: Lens' TargetPoolsAddInstanceRequest [InstanceReference]
-tpairInstances
-  = lens _tpairInstances
-      (\ s a -> s{_tpairInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolsAddInstanceRequest where
-        parseJSON
-          = withObject "TargetPoolsAddInstanceRequest"
-              (\ o ->
-                 TargetPoolsAddInstanceRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON TargetPoolsAddInstanceRequest where
-        toJSON TargetPoolsAddInstanceRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _tpairInstances])
-
---
--- /See:/ 'nodeGroupsDeleteNodesRequest' smart constructor.
-newtype NodeGroupsDeleteNodesRequest =
-  NodeGroupsDeleteNodesRequest'
-    { _ngdnrNodes :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsDeleteNodesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngdnrNodes'
-nodeGroupsDeleteNodesRequest
-    :: NodeGroupsDeleteNodesRequest
-nodeGroupsDeleteNodesRequest =
-  NodeGroupsDeleteNodesRequest' {_ngdnrNodes = Nothing}
-
-
-ngdnrNodes :: Lens' NodeGroupsDeleteNodesRequest [Text]
-ngdnrNodes
-  = lens _ngdnrNodes (\ s a -> s{_ngdnrNodes = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON NodeGroupsDeleteNodesRequest where
-        parseJSON
-          = withObject "NodeGroupsDeleteNodesRequest"
-              (\ o ->
-                 NodeGroupsDeleteNodesRequest' <$>
-                   (o .:? "nodes" .!= mempty))
-
-instance ToJSON NodeGroupsDeleteNodesRequest where
-        toJSON NodeGroupsDeleteNodesRequest'{..}
-          = object (catMaybes [("nodes" .=) <$> _ngdnrNodes])
-
--- | Contains a list of autoscalers.
---
--- /See:/ 'regionAutoscalerList' smart constructor.
-data RegionAutoscalerList =
-  RegionAutoscalerList'
-    { _rNextPageToken :: !(Maybe Text)
-    , _rKind          :: !Text
-    , _rItems         :: !(Maybe [Autoscaler])
-    , _rSelfLink      :: !(Maybe Text)
-    , _rWarning       :: !(Maybe RegionAutoscalerListWarning)
-    , _rId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalerList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rNextPageToken'
---
--- * 'rKind'
---
--- * 'rItems'
---
--- * 'rSelfLink'
---
--- * 'rWarning'
---
--- * 'rId'
-regionAutoscalerList
-    :: RegionAutoscalerList
-regionAutoscalerList =
-  RegionAutoscalerList'
-    { _rNextPageToken = Nothing
-    , _rKind = "compute#regionAutoscalerList"
-    , _rItems = Nothing
-    , _rSelfLink = Nothing
-    , _rWarning = Nothing
-    , _rId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rNextPageToken :: Lens' RegionAutoscalerList (Maybe Text)
-rNextPageToken
-  = lens _rNextPageToken
-      (\ s a -> s{_rNextPageToken = a})
-
--- | Type of resource.
-rKind :: Lens' RegionAutoscalerList Text
-rKind = lens _rKind (\ s a -> s{_rKind = a})
-
--- | A list of Autoscaler resources.
-rItems :: Lens' RegionAutoscalerList [Autoscaler]
-rItems
-  = lens _rItems (\ s a -> s{_rItems = a}) . _Default .
-      _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rSelfLink :: Lens' RegionAutoscalerList (Maybe Text)
-rSelfLink
-  = lens _rSelfLink (\ s a -> s{_rSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rWarning :: Lens' RegionAutoscalerList (Maybe RegionAutoscalerListWarning)
-rWarning = lens _rWarning (\ s a -> s{_rWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rId :: Lens' RegionAutoscalerList (Maybe Text)
-rId = lens _rId (\ s a -> s{_rId = a})
-
-instance FromJSON RegionAutoscalerList where
-        parseJSON
-          = withObject "RegionAutoscalerList"
-              (\ o ->
-                 RegionAutoscalerList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#regionAutoscalerList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionAutoscalerList where
-        toJSON RegionAutoscalerList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rNextPageToken,
-                  Just ("kind" .= _rKind), ("items" .=) <$> _rItems,
-                  ("selfLink" .=) <$> _rSelfLink,
-                  ("warning" .=) <$> _rWarning, ("id" .=) <$> _rId])
-
---
--- /See:/ 'healthCheckListWarningDataItem' smart constructor.
-data HealthCheckListWarningDataItem =
-  HealthCheckListWarningDataItem'
-    { _hclwdiValue :: !(Maybe Text)
-    , _hclwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthCheckListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hclwdiValue'
---
--- * 'hclwdiKey'
-healthCheckListWarningDataItem
-    :: HealthCheckListWarningDataItem
-healthCheckListWarningDataItem =
-  HealthCheckListWarningDataItem' {_hclwdiValue = Nothing, _hclwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-hclwdiValue :: Lens' HealthCheckListWarningDataItem (Maybe Text)
-hclwdiValue
-  = lens _hclwdiValue (\ s a -> s{_hclwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-hclwdiKey :: Lens' HealthCheckListWarningDataItem (Maybe Text)
-hclwdiKey
-  = lens _hclwdiKey (\ s a -> s{_hclwdiKey = a})
-
-instance FromJSON HealthCheckListWarningDataItem
-         where
-        parseJSON
-          = withObject "HealthCheckListWarningDataItem"
-              (\ o ->
-                 HealthCheckListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON HealthCheckListWarningDataItem where
-        toJSON HealthCheckListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _hclwdiValue,
-                  ("key" .=) <$> _hclwdiKey])
-
---
--- /See:/ 'nodeGroupAggregatedListWarningDataItem' smart constructor.
-data NodeGroupAggregatedListWarningDataItem =
-  NodeGroupAggregatedListWarningDataItem'
-    { _ngalwdiValue :: !(Maybe Text)
-    , _ngalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngalwdiValue'
---
--- * 'ngalwdiKey'
-nodeGroupAggregatedListWarningDataItem
-    :: NodeGroupAggregatedListWarningDataItem
-nodeGroupAggregatedListWarningDataItem =
-  NodeGroupAggregatedListWarningDataItem'
-    {_ngalwdiValue = Nothing, _ngalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ngalwdiValue :: Lens' NodeGroupAggregatedListWarningDataItem (Maybe Text)
-ngalwdiValue
-  = lens _ngalwdiValue (\ s a -> s{_ngalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ngalwdiKey :: Lens' NodeGroupAggregatedListWarningDataItem (Maybe Text)
-ngalwdiKey
-  = lens _ngalwdiKey (\ s a -> s{_ngalwdiKey = a})
-
-instance FromJSON
-           NodeGroupAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeGroupAggregatedListWarningDataItem"
-              (\ o ->
-                 NodeGroupAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NodeGroupAggregatedListWarningDataItem
-         where
-        toJSON NodeGroupAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ngalwdiValue,
-                  ("key" .=) <$> _ngalwdiKey])
-
---
--- /See:/ 'instanceGroupsAddInstancesRequest' smart constructor.
-newtype InstanceGroupsAddInstancesRequest =
-  InstanceGroupsAddInstancesRequest'
-    { _igairInstances :: Maybe [InstanceReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsAddInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igairInstances'
-instanceGroupsAddInstancesRequest
-    :: InstanceGroupsAddInstancesRequest
-instanceGroupsAddInstancesRequest =
-  InstanceGroupsAddInstancesRequest' {_igairInstances = Nothing}
-
-
--- | The list of instances to add to the instance group.
-igairInstances :: Lens' InstanceGroupsAddInstancesRequest [InstanceReference]
-igairInstances
-  = lens _igairInstances
-      (\ s a -> s{_igairInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroupsAddInstancesRequest
-         where
-        parseJSON
-          = withObject "InstanceGroupsAddInstancesRequest"
-              (\ o ->
-                 InstanceGroupsAddInstancesRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON InstanceGroupsAddInstancesRequest
-         where
-        toJSON InstanceGroupsAddInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _igairInstances])
-
---
--- /See:/ 'nodeGroupNode' smart constructor.
-data NodeGroupNode =
-  NodeGroupNode'
-    { _ngnStatus    :: !(Maybe NodeGroupNodeStatus)
-    , _ngnName      :: !(Maybe Text)
-    , _ngnInstances :: !(Maybe [Text])
-    , _ngnNodeType  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupNode' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngnStatus'
---
--- * 'ngnName'
---
--- * 'ngnInstances'
---
--- * 'ngnNodeType'
-nodeGroupNode
-    :: NodeGroupNode
-nodeGroupNode =
-  NodeGroupNode'
-    { _ngnStatus = Nothing
-    , _ngnName = Nothing
-    , _ngnInstances = Nothing
-    , _ngnNodeType = Nothing
-    }
-
-
-ngnStatus :: Lens' NodeGroupNode (Maybe NodeGroupNodeStatus)
-ngnStatus
-  = lens _ngnStatus (\ s a -> s{_ngnStatus = a})
-
--- | The name of the node.
-ngnName :: Lens' NodeGroupNode (Maybe Text)
-ngnName = lens _ngnName (\ s a -> s{_ngnName = a})
-
--- | Instances scheduled on this node.
-ngnInstances :: Lens' NodeGroupNode [Text]
-ngnInstances
-  = lens _ngnInstances (\ s a -> s{_ngnInstances = a})
-      . _Default
-      . _Coerce
-
--- | The type of this node.
-ngnNodeType :: Lens' NodeGroupNode (Maybe Text)
-ngnNodeType
-  = lens _ngnNodeType (\ s a -> s{_ngnNodeType = a})
-
-instance FromJSON NodeGroupNode where
-        parseJSON
-          = withObject "NodeGroupNode"
-              (\ o ->
-                 NodeGroupNode' <$>
-                   (o .:? "status") <*> (o .:? "name") <*>
-                     (o .:? "instances" .!= mempty)
-                     <*> (o .:? "nodeType"))
-
-instance ToJSON NodeGroupNode where
-        toJSON NodeGroupNode'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _ngnStatus,
-                  ("name" .=) <$> _ngnName,
-                  ("instances" .=) <$> _ngnInstances,
-                  ("nodeType" .=) <$> _ngnNodeType])
-
--- | [Output Only] A list of managed instance groups.
---
--- /See:/ 'instanceGroupManagerList' smart constructor.
-data InstanceGroupManagerList =
-  InstanceGroupManagerList'
-    { _igmlNextPageToken :: !(Maybe Text)
-    , _igmlKind          :: !Text
-    , _igmlItems         :: !(Maybe [InstanceGroupManager])
-    , _igmlSelfLink      :: !(Maybe Text)
-    , _igmlWarning       :: !(Maybe InstanceGroupManagerListWarning)
-    , _igmlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlNextPageToken'
---
--- * 'igmlKind'
---
--- * 'igmlItems'
---
--- * 'igmlSelfLink'
---
--- * 'igmlWarning'
---
--- * 'igmlId'
-instanceGroupManagerList
-    :: InstanceGroupManagerList
-instanceGroupManagerList =
-  InstanceGroupManagerList'
-    { _igmlNextPageToken = Nothing
-    , _igmlKind = "compute#instanceGroupManagerList"
-    , _igmlItems = Nothing
-    , _igmlSelfLink = Nothing
-    , _igmlWarning = Nothing
-    , _igmlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-igmlNextPageToken :: Lens' InstanceGroupManagerList (Maybe Text)
-igmlNextPageToken
-  = lens _igmlNextPageToken
-      (\ s a -> s{_igmlNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupManagerList for a list of managed instance groups.
-igmlKind :: Lens' InstanceGroupManagerList Text
-igmlKind = lens _igmlKind (\ s a -> s{_igmlKind = a})
-
--- | A list of InstanceGroupManager resources.
-igmlItems :: Lens' InstanceGroupManagerList [InstanceGroupManager]
-igmlItems
-  = lens _igmlItems (\ s a -> s{_igmlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-igmlSelfLink :: Lens' InstanceGroupManagerList (Maybe Text)
-igmlSelfLink
-  = lens _igmlSelfLink (\ s a -> s{_igmlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-igmlWarning :: Lens' InstanceGroupManagerList (Maybe InstanceGroupManagerListWarning)
-igmlWarning
-  = lens _igmlWarning (\ s a -> s{_igmlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-igmlId :: Lens' InstanceGroupManagerList (Maybe Text)
-igmlId = lens _igmlId (\ s a -> s{_igmlId = a})
-
-instance FromJSON InstanceGroupManagerList where
-        parseJSON
-          = withObject "InstanceGroupManagerList"
-              (\ o ->
-                 InstanceGroupManagerList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceGroupManagerList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceGroupManagerList where
-        toJSON InstanceGroupManagerList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _igmlNextPageToken,
-                  Just ("kind" .= _igmlKind),
-                  ("items" .=) <$> _igmlItems,
-                  ("selfLink" .=) <$> _igmlSelfLink,
-                  ("warning" .=) <$> _igmlWarning,
-                  ("id" .=) <$> _igmlId])
-
---
--- /See:/ 'instanceGroupManagerVersion' smart constructor.
-data InstanceGroupManagerVersion =
-  InstanceGroupManagerVersion'
-    { _igmvInstanceTemplate :: !(Maybe Text)
-    , _igmvTargetSize       :: !(Maybe FixedOrPercent)
-    , _igmvName             :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerVersion' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmvInstanceTemplate'
---
--- * 'igmvTargetSize'
---
--- * 'igmvName'
-instanceGroupManagerVersion
-    :: InstanceGroupManagerVersion
-instanceGroupManagerVersion =
-  InstanceGroupManagerVersion'
-    { _igmvInstanceTemplate = Nothing
-    , _igmvTargetSize = Nothing
-    , _igmvName = Nothing
-    }
-
-
--- | The URL of the instance template that is specified for this managed
--- instance group. The group uses this template to create new instances in
--- the managed instance group until the \`targetSize\` for this version is
--- reached.
-igmvInstanceTemplate :: Lens' InstanceGroupManagerVersion (Maybe Text)
-igmvInstanceTemplate
-  = lens _igmvInstanceTemplate
-      (\ s a -> s{_igmvInstanceTemplate = a})
-
--- | Specifies the intended number of instances to be created from the
--- instanceTemplate. The final number of instances created from the
--- template will be equal to: - If expressed as a fixed number, the minimum
--- of either targetSize.fixed or instanceGroupManager.targetSize is used. -
--- if expressed as a percent, the targetSize would be
--- (targetSize.percent\/100 * InstanceGroupManager.targetSize) If there is
--- a remainder, the number is rounded up. If unset, this version will
--- update any remaining instances not updated by another version. Read
--- Starting a canary update for more information.
-igmvTargetSize :: Lens' InstanceGroupManagerVersion (Maybe FixedOrPercent)
-igmvTargetSize
-  = lens _igmvTargetSize
-      (\ s a -> s{_igmvTargetSize = a})
-
--- | Name of the version. Unique among all versions in the scope of this
--- managed instance group.
-igmvName :: Lens' InstanceGroupManagerVersion (Maybe Text)
-igmvName = lens _igmvName (\ s a -> s{_igmvName = a})
-
-instance FromJSON InstanceGroupManagerVersion where
-        parseJSON
-          = withObject "InstanceGroupManagerVersion"
-              (\ o ->
-                 InstanceGroupManagerVersion' <$>
-                   (o .:? "instanceTemplate") <*> (o .:? "targetSize")
-                     <*> (o .:? "name"))
-
-instance ToJSON InstanceGroupManagerVersion where
-        toJSON InstanceGroupManagerVersion'{..}
-          = object
-              (catMaybes
-                 [("instanceTemplate" .=) <$> _igmvInstanceTemplate,
-                  ("targetSize" .=) <$> _igmvTargetSize,
-                  ("name" .=) <$> _igmvName])
-
--- | [Output Only] An informational warning that replaces the list of network
--- endpoint groups when the list is empty.
---
--- /See:/ 'networkEndpointGroupsScopedListWarning' smart constructor.
-data NetworkEndpointGroupsScopedListWarning =
-  NetworkEndpointGroupsScopedListWarning'
-    { _negslwData    :: !(Maybe [NetworkEndpointGroupsScopedListWarningDataItem])
-    , _negslwCode    :: !(Maybe NetworkEndpointGroupsScopedListWarningCode)
-    , _negslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negslwData'
---
--- * 'negslwCode'
---
--- * 'negslwMessage'
-networkEndpointGroupsScopedListWarning
-    :: NetworkEndpointGroupsScopedListWarning
-networkEndpointGroupsScopedListWarning =
-  NetworkEndpointGroupsScopedListWarning'
-    {_negslwData = Nothing, _negslwCode = Nothing, _negslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-negslwData :: Lens' NetworkEndpointGroupsScopedListWarning [NetworkEndpointGroupsScopedListWarningDataItem]
-negslwData
-  = lens _negslwData (\ s a -> s{_negslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-negslwCode :: Lens' NetworkEndpointGroupsScopedListWarning (Maybe NetworkEndpointGroupsScopedListWarningCode)
-negslwCode
-  = lens _negslwCode (\ s a -> s{_negslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-negslwMessage :: Lens' NetworkEndpointGroupsScopedListWarning (Maybe Text)
-negslwMessage
-  = lens _negslwMessage
-      (\ s a -> s{_negslwMessage = a})
-
-instance FromJSON
-           NetworkEndpointGroupsScopedListWarning
-         where
-        parseJSON
-          = withObject "NetworkEndpointGroupsScopedListWarning"
-              (\ o ->
-                 NetworkEndpointGroupsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           NetworkEndpointGroupsScopedListWarning
-         where
-        toJSON NetworkEndpointGroupsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _negslwData,
-                  ("code" .=) <$> _negslwCode,
-                  ("message" .=) <$> _negslwMessage])
-
--- | An informational warning that appears when the list of addresses is
--- empty.
---
--- /See:/ 'subnetworksScopedListWarning' smart constructor.
-data SubnetworksScopedListWarning =
-  SubnetworksScopedListWarning'
-    { _sslwData    :: !(Maybe [SubnetworksScopedListWarningDataItem])
-    , _sslwCode    :: !(Maybe SubnetworksScopedListWarningCode)
-    , _sslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslwData'
---
--- * 'sslwCode'
---
--- * 'sslwMessage'
-subnetworksScopedListWarning
-    :: SubnetworksScopedListWarning
-subnetworksScopedListWarning =
-  SubnetworksScopedListWarning'
-    {_sslwData = Nothing, _sslwCode = Nothing, _sslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-sslwData :: Lens' SubnetworksScopedListWarning [SubnetworksScopedListWarningDataItem]
-sslwData
-  = lens _sslwData (\ s a -> s{_sslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-sslwCode :: Lens' SubnetworksScopedListWarning (Maybe SubnetworksScopedListWarningCode)
-sslwCode = lens _sslwCode (\ s a -> s{_sslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-sslwMessage :: Lens' SubnetworksScopedListWarning (Maybe Text)
-sslwMessage
-  = lens _sslwMessage (\ s a -> s{_sslwMessage = a})
-
-instance FromJSON SubnetworksScopedListWarning where
-        parseJSON
-          = withObject "SubnetworksScopedListWarning"
-              (\ o ->
-                 SubnetworksScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SubnetworksScopedListWarning where
-        toJSON SubnetworksScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _sslwData,
-                  ("code" .=) <$> _sslwCode,
-                  ("message" .=) <$> _sslwMessage])
-
---
--- /See:/ 'nodeGroupsSetNodeTemplateRequest' smart constructor.
-newtype NodeGroupsSetNodeTemplateRequest =
-  NodeGroupsSetNodeTemplateRequest'
-    { _ngsntrNodeTemplate :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsSetNodeTemplateRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngsntrNodeTemplate'
-nodeGroupsSetNodeTemplateRequest
-    :: NodeGroupsSetNodeTemplateRequest
-nodeGroupsSetNodeTemplateRequest =
-  NodeGroupsSetNodeTemplateRequest' {_ngsntrNodeTemplate = Nothing}
-
-
--- | Full or partial URL of the node template resource to be updated for this
--- node group.
-ngsntrNodeTemplate :: Lens' NodeGroupsSetNodeTemplateRequest (Maybe Text)
-ngsntrNodeTemplate
-  = lens _ngsntrNodeTemplate
-      (\ s a -> s{_ngsntrNodeTemplate = a})
-
-instance FromJSON NodeGroupsSetNodeTemplateRequest
-         where
-        parseJSON
-          = withObject "NodeGroupsSetNodeTemplateRequest"
-              (\ o ->
-                 NodeGroupsSetNodeTemplateRequest' <$>
-                   (o .:? "nodeTemplate"))
-
-instance ToJSON NodeGroupsSetNodeTemplateRequest
-         where
-        toJSON NodeGroupsSetNodeTemplateRequest'{..}
-          = object
-              (catMaybes
-                 [("nodeTemplate" .=) <$> _ngsntrNodeTemplate])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'acceleratorTypeListWarning' smart constructor.
-data AcceleratorTypeListWarning =
-  AcceleratorTypeListWarning'
-    { _atlwData    :: !(Maybe [AcceleratorTypeListWarningDataItem])
-    , _atlwCode    :: !(Maybe AcceleratorTypeListWarningCode)
-    , _atlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atlwData'
---
--- * 'atlwCode'
---
--- * 'atlwMessage'
-acceleratorTypeListWarning
-    :: AcceleratorTypeListWarning
-acceleratorTypeListWarning =
-  AcceleratorTypeListWarning'
-    {_atlwData = Nothing, _atlwCode = Nothing, _atlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-atlwData :: Lens' AcceleratorTypeListWarning [AcceleratorTypeListWarningDataItem]
-atlwData
-  = lens _atlwData (\ s a -> s{_atlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-atlwCode :: Lens' AcceleratorTypeListWarning (Maybe AcceleratorTypeListWarningCode)
-atlwCode = lens _atlwCode (\ s a -> s{_atlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-atlwMessage :: Lens' AcceleratorTypeListWarning (Maybe Text)
-atlwMessage
-  = lens _atlwMessage (\ s a -> s{_atlwMessage = a})
-
-instance FromJSON AcceleratorTypeListWarning where
-        parseJSON
-          = withObject "AcceleratorTypeListWarning"
-              (\ o ->
-                 AcceleratorTypeListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AcceleratorTypeListWarning where
-        toJSON AcceleratorTypeListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _atlwData,
-                  ("code" .=) <$> _atlwCode,
-                  ("message" .=) <$> _atlwMessage])
-
--- | An Image resource. (== resource_for beta.images ==) (== resource_for
--- v1.images ==)
---
--- /See:/ 'image' smart constructor.
-data Image =
-  Image'
-    { _iStatus                      :: !(Maybe ImageStatus)
-    , _iSourceSnapshotId            :: !(Maybe Text)
-    , _iImageEncryptionKey          :: !(Maybe CustomerEncryptionKey)
-    , _iSourceImage                 :: !(Maybe Text)
-    , _iDiskSizeGb                  :: !(Maybe (Textual Int64))
-    , _iSourceType                  :: !ImageSourceType
-    , _iSourceDiskId                :: !(Maybe Text)
-    , _iKind                        :: !Text
-    , _iSourceDiskEncryptionKey     :: !(Maybe CustomerEncryptionKey)
-    , _iGuestOSFeatures             :: !(Maybe [GuestOSFeature])
-    , _iArchiveSizeBytes            :: !(Maybe (Textual Int64))
-    , _iFamily                      :: !(Maybe Text)
-    , _iRawDisk                     :: !(Maybe ImageRawDisk)
-    , _iSelfLink                    :: !(Maybe Text)
-    , _iName                        :: !(Maybe Text)
-    , _iSourceImageId               :: !(Maybe Text)
-    , _iCreationTimestamp           :: !(Maybe Text)
-    , _iSourceImageEncryptionKey    :: !(Maybe CustomerEncryptionKey)
-    , _iLicenseCodes                :: !(Maybe [Textual Int64])
-    , _iId                          :: !(Maybe (Textual Word64))
-    , _iLabels                      :: !(Maybe ImageLabels)
-    , _iLicenses                    :: !(Maybe [Text])
-    , _iSourceDisk                  :: !(Maybe Text)
-    , _iLabelFingerprint            :: !(Maybe Bytes)
-    , _iDescription                 :: !(Maybe Text)
-    , _iSourceSnapshotEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _iDeprecated                  :: !(Maybe DeprecationStatus)
-    , _iSourceSnapshot              :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Image' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iStatus'
---
--- * 'iSourceSnapshotId'
---
--- * 'iImageEncryptionKey'
---
--- * 'iSourceImage'
---
--- * 'iDiskSizeGb'
---
--- * 'iSourceType'
---
--- * 'iSourceDiskId'
---
--- * 'iKind'
---
--- * 'iSourceDiskEncryptionKey'
---
--- * 'iGuestOSFeatures'
---
--- * 'iArchiveSizeBytes'
---
--- * 'iFamily'
---
--- * 'iRawDisk'
---
--- * 'iSelfLink'
---
--- * 'iName'
---
--- * 'iSourceImageId'
---
--- * 'iCreationTimestamp'
---
--- * 'iSourceImageEncryptionKey'
---
--- * 'iLicenseCodes'
---
--- * 'iId'
---
--- * 'iLabels'
---
--- * 'iLicenses'
---
--- * 'iSourceDisk'
---
--- * 'iLabelFingerprint'
---
--- * 'iDescription'
---
--- * 'iSourceSnapshotEncryptionKey'
---
--- * 'iDeprecated'
---
--- * 'iSourceSnapshot'
-image
-    :: Image
-image =
-  Image'
-    { _iStatus = Nothing
-    , _iSourceSnapshotId = Nothing
-    , _iImageEncryptionKey = Nothing
-    , _iSourceImage = Nothing
-    , _iDiskSizeGb = Nothing
-    , _iSourceType = Raw
-    , _iSourceDiskId = Nothing
-    , _iKind = "compute#image"
-    , _iSourceDiskEncryptionKey = Nothing
-    , _iGuestOSFeatures = Nothing
-    , _iArchiveSizeBytes = Nothing
-    , _iFamily = Nothing
-    , _iRawDisk = Nothing
-    , _iSelfLink = Nothing
-    , _iName = Nothing
-    , _iSourceImageId = Nothing
-    , _iCreationTimestamp = Nothing
-    , _iSourceImageEncryptionKey = Nothing
-    , _iLicenseCodes = Nothing
-    , _iId = Nothing
-    , _iLabels = Nothing
-    , _iLicenses = Nothing
-    , _iSourceDisk = Nothing
-    , _iLabelFingerprint = Nothing
-    , _iDescription = Nothing
-    , _iSourceSnapshotEncryptionKey = Nothing
-    , _iDeprecated = Nothing
-    , _iSourceSnapshot = Nothing
-    }
-
-
--- | [Output Only] The status of the image. An image can be used to create
--- other resources, such as instances, only after the image has been
--- successfully created and the status is set to READY. Possible values are
--- FAILED, PENDING, or READY.
-iStatus :: Lens' Image (Maybe ImageStatus)
-iStatus = lens _iStatus (\ s a -> s{_iStatus = a})
-
--- | [Output Only] The ID value of the snapshot used to create this image.
--- This value may be used to determine whether the snapshot was taken from
--- the current or a previous instance of a given snapshot name.
-iSourceSnapshotId :: Lens' Image (Maybe Text)
-iSourceSnapshotId
-  = lens _iSourceSnapshotId
-      (\ s a -> s{_iSourceSnapshotId = a})
-
--- | Encrypts the image using a customer-supplied encryption key. After you
--- encrypt an image with a customer-supplied key, you must provide the same
--- key if you use the image later (e.g. to create a disk from the image).
--- Customer-supplied encryption keys do not protect access to metadata of
--- the disk. If you do not provide an encryption key when creating the
--- image, then the disk will be encrypted using an automatically generated
--- key and you do not need to provide a key to use the image later.
-iImageEncryptionKey :: Lens' Image (Maybe CustomerEncryptionKey)
-iImageEncryptionKey
-  = lens _iImageEncryptionKey
-      (\ s a -> s{_iImageEncryptionKey = a})
-
--- | URL of the source image used to create this image. This can be a full or
--- valid partial URL. You must provide exactly one of: - this property, or
--- - the rawDisk.source property, or - the sourceDisk property in order to
--- create an image.
-iSourceImage :: Lens' Image (Maybe Text)
-iSourceImage
-  = lens _iSourceImage (\ s a -> s{_iSourceImage = a})
-
--- | Size of the image when restored onto a persistent disk (in GB).
-iDiskSizeGb :: Lens' Image (Maybe Int64)
-iDiskSizeGb
-  = lens _iDiskSizeGb (\ s a -> s{_iDiskSizeGb = a}) .
-      mapping _Coerce
-
--- | The type of the image used to create this disk. The default and only
--- value is RAW
-iSourceType :: Lens' Image ImageSourceType
-iSourceType
-  = lens _iSourceType (\ s a -> s{_iSourceType = a})
-
--- | [Output Only] The ID value of the disk used to create this image. This
--- value may be used to determine whether the image was taken from the
--- current or a previous instance of a given disk name.
-iSourceDiskId :: Lens' Image (Maybe Text)
-iSourceDiskId
-  = lens _iSourceDiskId
-      (\ s a -> s{_iSourceDiskId = a})
-
--- | [Output Only] Type of the resource. Always compute#image for images.
-iKind :: Lens' Image Text
-iKind = lens _iKind (\ s a -> s{_iKind = a})
-
--- | The customer-supplied encryption key of the source disk. Required if the
--- source disk is protected by a customer-supplied encryption key.
-iSourceDiskEncryptionKey :: Lens' Image (Maybe CustomerEncryptionKey)
-iSourceDiskEncryptionKey
-  = lens _iSourceDiskEncryptionKey
-      (\ s a -> s{_iSourceDiskEncryptionKey = a})
-
--- | A list of features to enable on the guest operating system. Applicable
--- only for bootable images. Read Enabling guest operating system features
--- to see a list of available options.
-iGuestOSFeatures :: Lens' Image [GuestOSFeature]
-iGuestOSFeatures
-  = lens _iGuestOSFeatures
-      (\ s a -> s{_iGuestOSFeatures = a})
-      . _Default
-      . _Coerce
-
--- | Size of the image tar.gz archive stored in Google Cloud Storage (in
--- bytes).
-iArchiveSizeBytes :: Lens' Image (Maybe Int64)
-iArchiveSizeBytes
-  = lens _iArchiveSizeBytes
-      (\ s a -> s{_iArchiveSizeBytes = a})
-      . mapping _Coerce
-
--- | The name of the image family to which this image belongs. You can create
--- disks by specifying an image family instead of a specific image name.
--- The image family always returns its latest image that is not deprecated.
--- The name of the image family must comply with RFC1035.
-iFamily :: Lens' Image (Maybe Text)
-iFamily = lens _iFamily (\ s a -> s{_iFamily = a})
-
--- | The parameters of the raw disk image.
-iRawDisk :: Lens' Image (Maybe ImageRawDisk)
-iRawDisk = lens _iRawDisk (\ s a -> s{_iRawDisk = a})
-
--- | [Output Only] Server-defined URL for the resource.
-iSelfLink :: Lens' Image (Maybe Text)
-iSelfLink
-  = lens _iSelfLink (\ s a -> s{_iSelfLink = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-iName :: Lens' Image (Maybe Text)
-iName = lens _iName (\ s a -> s{_iName = a})
-
--- | [Output Only] The ID value of the image used to create this image. This
--- value may be used to determine whether the image was taken from the
--- current or a previous instance of a given image name.
-iSourceImageId :: Lens' Image (Maybe Text)
-iSourceImageId
-  = lens _iSourceImageId
-      (\ s a -> s{_iSourceImageId = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-iCreationTimestamp :: Lens' Image (Maybe Text)
-iCreationTimestamp
-  = lens _iCreationTimestamp
-      (\ s a -> s{_iCreationTimestamp = a})
-
--- | The customer-supplied encryption key of the source image. Required if
--- the source image is protected by a customer-supplied encryption key.
-iSourceImageEncryptionKey :: Lens' Image (Maybe CustomerEncryptionKey)
-iSourceImageEncryptionKey
-  = lens _iSourceImageEncryptionKey
-      (\ s a -> s{_iSourceImageEncryptionKey = a})
-
--- | Integer license codes indicating which licenses are attached to this
--- image.
-iLicenseCodes :: Lens' Image [Int64]
-iLicenseCodes
-  = lens _iLicenseCodes
-      (\ s a -> s{_iLicenseCodes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-iId :: Lens' Image (Maybe Word64)
-iId
-  = lens _iId (\ s a -> s{_iId = a}) . mapping _Coerce
-
--- | Labels to apply to this image. These can be later modified by the
--- setLabels method.
-iLabels :: Lens' Image (Maybe ImageLabels)
-iLabels = lens _iLabels (\ s a -> s{_iLabels = a})
-
--- | Any applicable license URI.
-iLicenses :: Lens' Image [Text]
-iLicenses
-  = lens _iLicenses (\ s a -> s{_iLicenses = a}) .
-      _Default
-      . _Coerce
-
--- | URL of the source disk used to create this image. This can be a full or
--- valid partial URL. You must provide either this property or the
--- rawDisk.source property but not both to create an image. For example,
--- the following are valid values: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/disks\/disk
--- - projects\/project\/zones\/zone\/disks\/disk - zones\/zone\/disks\/disk
-iSourceDisk :: Lens' Image (Maybe Text)
-iSourceDisk
-  = lens _iSourceDisk (\ s a -> s{_iSourceDisk = a})
-
--- | A fingerprint for the labels being applied to this image, which is
--- essentially a hash of the labels used for optimistic locking. The
--- fingerprint is initially generated by Compute Engine and changes after
--- every request to modify or update labels. You must always provide an
--- up-to-date fingerprint hash in order to update or change labels,
--- otherwise the request will fail with error 412 conditionNotMet. To see
--- the latest fingerprint, make a get() request to retrieve an image.
-iLabelFingerprint :: Lens' Image (Maybe ByteString)
-iLabelFingerprint
-  = lens _iLabelFingerprint
-      (\ s a -> s{_iLabelFingerprint = a})
-      . mapping _Bytes
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-iDescription :: Lens' Image (Maybe Text)
-iDescription
-  = lens _iDescription (\ s a -> s{_iDescription = a})
-
--- | The customer-supplied encryption key of the source snapshot. Required if
--- the source snapshot is protected by a customer-supplied encryption key.
-iSourceSnapshotEncryptionKey :: Lens' Image (Maybe CustomerEncryptionKey)
-iSourceSnapshotEncryptionKey
-  = lens _iSourceSnapshotEncryptionKey
-      (\ s a -> s{_iSourceSnapshotEncryptionKey = a})
-
--- | The deprecation status associated with this image.
-iDeprecated :: Lens' Image (Maybe DeprecationStatus)
-iDeprecated
-  = lens _iDeprecated (\ s a -> s{_iDeprecated = a})
-
--- | URL of the source snapshot used to create this image. This can be a full
--- or valid partial URL. You must provide exactly one of: - this property,
--- or - the sourceImage property, or - the rawDisk.source property, or -
--- the sourceDisk property in order to create an image.
-iSourceSnapshot :: Lens' Image (Maybe Text)
-iSourceSnapshot
-  = lens _iSourceSnapshot
-      (\ s a -> s{_iSourceSnapshot = a})
-
-instance FromJSON Image where
-        parseJSON
-          = withObject "Image"
-              (\ o ->
-                 Image' <$>
-                   (o .:? "status") <*> (o .:? "sourceSnapshotId") <*>
-                     (o .:? "imageEncryptionKey")
-                     <*> (o .:? "sourceImage")
-                     <*> (o .:? "diskSizeGb")
-                     <*> (o .:? "sourceType" .!= Raw)
-                     <*> (o .:? "sourceDiskId")
-                     <*> (o .:? "kind" .!= "compute#image")
-                     <*> (o .:? "sourceDiskEncryptionKey")
-                     <*> (o .:? "guestOsFeatures" .!= mempty)
-                     <*> (o .:? "archiveSizeBytes")
-                     <*> (o .:? "family")
-                     <*> (o .:? "rawDisk")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "sourceImageId")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "sourceImageEncryptionKey")
-                     <*> (o .:? "licenseCodes" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "licenses" .!= mempty)
-                     <*> (o .:? "sourceDisk")
-                     <*> (o .:? "labelFingerprint")
-                     <*> (o .:? "description")
-                     <*> (o .:? "sourceSnapshotEncryptionKey")
-                     <*> (o .:? "deprecated")
-                     <*> (o .:? "sourceSnapshot"))
-
-instance ToJSON Image where
-        toJSON Image'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _iStatus,
-                  ("sourceSnapshotId" .=) <$> _iSourceSnapshotId,
-                  ("imageEncryptionKey" .=) <$> _iImageEncryptionKey,
-                  ("sourceImage" .=) <$> _iSourceImage,
-                  ("diskSizeGb" .=) <$> _iDiskSizeGb,
-                  Just ("sourceType" .= _iSourceType),
-                  ("sourceDiskId" .=) <$> _iSourceDiskId,
-                  Just ("kind" .= _iKind),
-                  ("sourceDiskEncryptionKey" .=) <$>
-                    _iSourceDiskEncryptionKey,
-                  ("guestOsFeatures" .=) <$> _iGuestOSFeatures,
-                  ("archiveSizeBytes" .=) <$> _iArchiveSizeBytes,
-                  ("family" .=) <$> _iFamily,
-                  ("rawDisk" .=) <$> _iRawDisk,
-                  ("selfLink" .=) <$> _iSelfLink,
-                  ("name" .=) <$> _iName,
-                  ("sourceImageId" .=) <$> _iSourceImageId,
-                  ("creationTimestamp" .=) <$> _iCreationTimestamp,
-                  ("sourceImageEncryptionKey" .=) <$>
-                    _iSourceImageEncryptionKey,
-                  ("licenseCodes" .=) <$> _iLicenseCodes,
-                  ("id" .=) <$> _iId, ("labels" .=) <$> _iLabels,
-                  ("licenses" .=) <$> _iLicenses,
-                  ("sourceDisk" .=) <$> _iSourceDisk,
-                  ("labelFingerprint" .=) <$> _iLabelFingerprint,
-                  ("description" .=) <$> _iDescription,
-                  ("sourceSnapshotEncryptionKey" .=) <$>
-                    _iSourceSnapshotEncryptionKey,
-                  ("deprecated" .=) <$> _iDeprecated,
-                  ("sourceSnapshot" .=) <$> _iSourceSnapshot])
-
---
--- /See:/ 'networksAddPeeringRequest' smart constructor.
-data NetworksAddPeeringRequest =
-  NetworksAddPeeringRequest'
-    { _naprNetworkPeering   :: !(Maybe NetworkPeering)
-    , _naprPeerNetwork      :: !(Maybe Text)
-    , _naprName             :: !(Maybe Text)
-    , _naprAutoCreateRoutes :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksAddPeeringRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'naprNetworkPeering'
---
--- * 'naprPeerNetwork'
---
--- * 'naprName'
---
--- * 'naprAutoCreateRoutes'
-networksAddPeeringRequest
-    :: NetworksAddPeeringRequest
-networksAddPeeringRequest =
-  NetworksAddPeeringRequest'
-    { _naprNetworkPeering = Nothing
-    , _naprPeerNetwork = Nothing
-    , _naprName = Nothing
-    , _naprAutoCreateRoutes = Nothing
-    }
-
-
--- | Network peering parameters. In order to specify route policies for
--- peering using import\/export custom routes, you will have to fill all
--- peering related parameters (name, peer network, exchange_subnet_routes)
--- in network_peeringfield. Corresponding fields in
--- NetworksAddPeeringRequest will be deprecated soon.
-naprNetworkPeering :: Lens' NetworksAddPeeringRequest (Maybe NetworkPeering)
-naprNetworkPeering
-  = lens _naprNetworkPeering
-      (\ s a -> s{_naprNetworkPeering = a})
-
--- | URL of the peer network. It can be either full URL or partial URL. The
--- peer network may belong to a different project. If the partial URL does
--- not contain project, it is assumed that the peer network is in the same
--- project as the current network.
-naprPeerNetwork :: Lens' NetworksAddPeeringRequest (Maybe Text)
-naprPeerNetwork
-  = lens _naprPeerNetwork
-      (\ s a -> s{_naprPeerNetwork = a})
-
--- | Name of the peering, which should conform to RFC1035.
-naprName :: Lens' NetworksAddPeeringRequest (Maybe Text)
-naprName = lens _naprName (\ s a -> s{_naprName = a})
-
--- | This field will be deprecated soon. Prefer using exchange_subnet_routes
--- in network_peering instead. Whether Google Compute Engine manages the
--- routes automatically.
-naprAutoCreateRoutes :: Lens' NetworksAddPeeringRequest (Maybe Bool)
-naprAutoCreateRoutes
-  = lens _naprAutoCreateRoutes
-      (\ s a -> s{_naprAutoCreateRoutes = a})
-
-instance FromJSON NetworksAddPeeringRequest where
-        parseJSON
-          = withObject "NetworksAddPeeringRequest"
-              (\ o ->
-                 NetworksAddPeeringRequest' <$>
-                   (o .:? "networkPeering") <*> (o .:? "peerNetwork")
-                     <*> (o .:? "name")
-                     <*> (o .:? "autoCreateRoutes"))
-
-instance ToJSON NetworksAddPeeringRequest where
-        toJSON NetworksAddPeeringRequest'{..}
-          = object
-              (catMaybes
-                 [("networkPeering" .=) <$> _naprNetworkPeering,
-                  ("peerNetwork" .=) <$> _naprPeerNetwork,
-                  ("name" .=) <$> _naprName,
-                  ("autoCreateRoutes" .=) <$> _naprAutoCreateRoutes])
-
---
--- /See:/ 'nodeTemplatesScopedList' smart constructor.
-data NodeTemplatesScopedList =
-  NodeTemplatesScopedList'
-    { _nNodeTemplates :: !(Maybe [NodeTemplate])
-    , _nWarning       :: !(Maybe NodeTemplatesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nNodeTemplates'
---
--- * 'nWarning'
-nodeTemplatesScopedList
-    :: NodeTemplatesScopedList
-nodeTemplatesScopedList =
-  NodeTemplatesScopedList' {_nNodeTemplates = Nothing, _nWarning = Nothing}
-
-
--- | [Output Only] A list of node templates contained in this scope.
-nNodeTemplates :: Lens' NodeTemplatesScopedList [NodeTemplate]
-nNodeTemplates
-  = lens _nNodeTemplates
-      (\ s a -> s{_nNodeTemplates = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that appears when the node
--- templates list is empty.
-nWarning :: Lens' NodeTemplatesScopedList (Maybe NodeTemplatesScopedListWarning)
-nWarning = lens _nWarning (\ s a -> s{_nWarning = a})
-
-instance FromJSON NodeTemplatesScopedList where
-        parseJSON
-          = withObject "NodeTemplatesScopedList"
-              (\ o ->
-                 NodeTemplatesScopedList' <$>
-                   (o .:? "nodeTemplates" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON NodeTemplatesScopedList where
-        toJSON NodeTemplatesScopedList'{..}
-          = object
-              (catMaybes
-                 [("nodeTemplates" .=) <$> _nNodeTemplates,
-                  ("warning" .=) <$> _nWarning])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'urlMapListWarning' smart constructor.
-data URLMapListWarning =
-  URLMapListWarning'
-    { _umlwData    :: !(Maybe [URLMapListWarningDataItem])
-    , _umlwCode    :: !(Maybe URLMapListWarningCode)
-    , _umlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umlwData'
---
--- * 'umlwCode'
---
--- * 'umlwMessage'
-urlMapListWarning
-    :: URLMapListWarning
-urlMapListWarning =
-  URLMapListWarning'
-    {_umlwData = Nothing, _umlwCode = Nothing, _umlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-umlwData :: Lens' URLMapListWarning [URLMapListWarningDataItem]
-umlwData
-  = lens _umlwData (\ s a -> s{_umlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-umlwCode :: Lens' URLMapListWarning (Maybe URLMapListWarningCode)
-umlwCode = lens _umlwCode (\ s a -> s{_umlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-umlwMessage :: Lens' URLMapListWarning (Maybe Text)
-umlwMessage
-  = lens _umlwMessage (\ s a -> s{_umlwMessage = a})
-
-instance FromJSON URLMapListWarning where
-        parseJSON
-          = withObject "URLMapListWarning"
-              (\ o ->
-                 URLMapListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON URLMapListWarning where
-        toJSON URLMapListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _umlwData,
-                  ("code" .=) <$> _umlwCode,
-                  ("message" .=) <$> _umlwMessage])
-
---
--- /See:/ 'nodeGroupsScopedListWarningDataItem' smart constructor.
-data NodeGroupsScopedListWarningDataItem =
-  NodeGroupsScopedListWarningDataItem'
-    { _ngslwdiValue :: !(Maybe Text)
-    , _ngslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngslwdiValue'
---
--- * 'ngslwdiKey'
-nodeGroupsScopedListWarningDataItem
-    :: NodeGroupsScopedListWarningDataItem
-nodeGroupsScopedListWarningDataItem =
-  NodeGroupsScopedListWarningDataItem'
-    {_ngslwdiValue = Nothing, _ngslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ngslwdiValue :: Lens' NodeGroupsScopedListWarningDataItem (Maybe Text)
-ngslwdiValue
-  = lens _ngslwdiValue (\ s a -> s{_ngslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ngslwdiKey :: Lens' NodeGroupsScopedListWarningDataItem (Maybe Text)
-ngslwdiKey
-  = lens _ngslwdiKey (\ s a -> s{_ngslwdiKey = a})
-
-instance FromJSON NodeGroupsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeGroupsScopedListWarningDataItem"
-              (\ o ->
-                 NodeGroupsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeGroupsScopedListWarningDataItem
-         where
-        toJSON NodeGroupsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ngslwdiValue,
-                  ("key" .=) <$> _ngslwdiKey])
-
--- | A UrlMap resource. This resource defines the mapping from URL to the
--- BackendService resource, based on the \"longest-match\" of the URL\'s
--- host and path.
---
--- /See:/ 'urlMap' smart constructor.
-data URLMap =
-  URLMap'
-    { _umTests             :: !(Maybe [URLMapTest])
-    , _umKind              :: !Text
-    , _umFingerprint       :: !(Maybe Bytes)
-    , _umDefaultService    :: !(Maybe Text)
-    , _umSelfLink          :: !(Maybe Text)
-    , _umName              :: !(Maybe Text)
-    , _umCreationTimestamp :: !(Maybe Text)
-    , _umPathMatchers      :: !(Maybe [PathMatcher])
-    , _umId                :: !(Maybe (Textual Word64))
-    , _umHostRules         :: !(Maybe [HostRule])
-    , _umDescription       :: !(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:
---
--- * 'umTests'
---
--- * 'umKind'
---
--- * 'umFingerprint'
---
--- * 'umDefaultService'
---
--- * 'umSelfLink'
---
--- * 'umName'
---
--- * 'umCreationTimestamp'
---
--- * 'umPathMatchers'
---
--- * 'umId'
---
--- * 'umHostRules'
---
--- * 'umDescription'
-urlMap
-    :: URLMap
-urlMap =
-  URLMap'
-    { _umTests = Nothing
-    , _umKind = "compute#urlMap"
-    , _umFingerprint = Nothing
-    , _umDefaultService = Nothing
-    , _umSelfLink = Nothing
-    , _umName = Nothing
-    , _umCreationTimestamp = Nothing
-    , _umPathMatchers = Nothing
-    , _umId = Nothing
-    , _umHostRules = Nothing
-    , _umDescription = Nothing
-    }
-
-
--- | The list of expected URL mapping tests. Request to update this UrlMap
--- will succeed only if all of the test cases pass. You can specify a
--- maximum of 100 tests per UrlMap.
-umTests :: Lens' URLMap [URLMapTest]
-umTests
-  = lens _umTests (\ s a -> s{_umTests = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Type of the resource. Always compute#urlMaps for url maps.
-umKind :: Lens' URLMap Text
-umKind = lens _umKind (\ s a -> s{_umKind = a})
-
--- | Fingerprint of this resource. A hash of the contents stored in this
--- object. This field is used in optimistic locking. This field will be
--- ignored when inserting a UrlMap. An up-to-date fingerprint must be
--- provided in order to update the UrlMap, otherwise the request will fail
--- with error 412 conditionNotMet. To see the latest fingerprint, make a
--- get() request to retrieve a UrlMap.
-umFingerprint :: Lens' URLMap (Maybe ByteString)
-umFingerprint
-  = lens _umFingerprint
-      (\ s a -> s{_umFingerprint = a})
-      . mapping _Bytes
-
--- | The full or partial URL of the defaultService resource to which traffic
--- is directed if none of the hostRules match. If defaultRouteAction is
--- additionally specified, advanced routing actions like URL Rewrites, etc.
--- take effect prior to sending the request to the backend. However, if
--- defaultService is specified, defaultRouteAction cannot contain any
--- weightedBackendServices. Conversely, if routeAction specifies any
--- weightedBackendServices, service must not be specified. Only one of
--- defaultService, defaultUrlRedirect or
--- defaultRouteAction.weightedBackendService must be set.
-umDefaultService :: Lens' URLMap (Maybe Text)
-umDefaultService
-  = lens _umDefaultService
-      (\ s a -> s{_umDefaultService = a})
-
--- | [Output Only] Server-defined URL for the resource.
-umSelfLink :: Lens' URLMap (Maybe Text)
-umSelfLink
-  = lens _umSelfLink (\ s a -> s{_umSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-umName :: Lens' URLMap (Maybe Text)
-umName = lens _umName (\ s a -> s{_umName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-umCreationTimestamp :: Lens' URLMap (Maybe Text)
-umCreationTimestamp
-  = lens _umCreationTimestamp
-      (\ s a -> s{_umCreationTimestamp = a})
-
--- | The list of named PathMatchers to use against the URL.
-umPathMatchers :: Lens' URLMap [PathMatcher]
-umPathMatchers
-  = lens _umPathMatchers
-      (\ s a -> s{_umPathMatchers = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-umId :: Lens' URLMap (Maybe Word64)
-umId
-  = lens _umId (\ s a -> s{_umId = a}) .
-      mapping _Coerce
-
--- | The list of HostRules to use against the URL.
-umHostRules :: Lens' URLMap [HostRule]
-umHostRules
-  = lens _umHostRules (\ s a -> s{_umHostRules = a}) .
-      _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-umDescription :: Lens' URLMap (Maybe Text)
-umDescription
-  = lens _umDescription
-      (\ s a -> s{_umDescription = a})
-
-instance FromJSON URLMap where
-        parseJSON
-          = withObject "URLMap"
-              (\ o ->
-                 URLMap' <$>
-                   (o .:? "tests" .!= mempty) <*>
-                     (o .:? "kind" .!= "compute#urlMap")
-                     <*> (o .:? "fingerprint")
-                     <*> (o .:? "defaultService")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "pathMatchers" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "hostRules" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON URLMap where
-        toJSON URLMap'{..}
-          = object
-              (catMaybes
-                 [("tests" .=) <$> _umTests, Just ("kind" .= _umKind),
-                  ("fingerprint" .=) <$> _umFingerprint,
-                  ("defaultService" .=) <$> _umDefaultService,
-                  ("selfLink" .=) <$> _umSelfLink,
-                  ("name" .=) <$> _umName,
-                  ("creationTimestamp" .=) <$> _umCreationTimestamp,
-                  ("pathMatchers" .=) <$> _umPathMatchers,
-                  ("id" .=) <$> _umId,
-                  ("hostRules" .=) <$> _umHostRules,
-                  ("description" .=) <$> _umDescription])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'imageListWarning' smart constructor.
-data ImageListWarning =
-  ImageListWarning'
-    { _ilwData    :: !(Maybe [ImageListWarningDataItem])
-    , _ilwCode    :: !(Maybe ImageListWarningCode)
-    , _ilwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImageListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilwData'
---
--- * 'ilwCode'
---
--- * 'ilwMessage'
-imageListWarning
-    :: ImageListWarning
-imageListWarning =
-  ImageListWarning'
-    {_ilwData = Nothing, _ilwCode = Nothing, _ilwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ilwData :: Lens' ImageListWarning [ImageListWarningDataItem]
-ilwData
-  = lens _ilwData (\ s a -> s{_ilwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ilwCode :: Lens' ImageListWarning (Maybe ImageListWarningCode)
-ilwCode = lens _ilwCode (\ s a -> s{_ilwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ilwMessage :: Lens' ImageListWarning (Maybe Text)
-ilwMessage
-  = lens _ilwMessage (\ s a -> s{_ilwMessage = a})
-
-instance FromJSON ImageListWarning where
-        parseJSON
-          = withObject "ImageListWarning"
-              (\ o ->
-                 ImageListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON ImageListWarning where
-        toJSON ImageListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ilwData, ("code" .=) <$> _ilwCode,
-                  ("message" .=) <$> _ilwMessage])
-
--- | Represents an expression text. Example: title: \"User account presence\"
--- description: \"Determines whether the request has a user account\"
--- expression: \"size(request.user) > 0\"
---
--- /See:/ 'expr' smart constructor.
-data Expr =
-  Expr'
-    { _eLocation    :: !(Maybe Text)
-    , _eExpression  :: !(Maybe Text)
-    , _eTitle       :: !(Maybe Text)
-    , _eDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Expr' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'eLocation'
---
--- * 'eExpression'
---
--- * 'eTitle'
---
--- * 'eDescription'
-expr
-    :: Expr
-expr =
-  Expr'
-    { _eLocation = Nothing
-    , _eExpression = Nothing
-    , _eTitle = Nothing
-    , _eDescription = Nothing
-    }
-
-
--- | An optional string indicating the location of the expression for error
--- reporting, e.g. a file name and a position in the file.
-eLocation :: Lens' Expr (Maybe Text)
-eLocation
-  = lens _eLocation (\ s a -> s{_eLocation = a})
-
--- | Textual representation of an expression in Common Expression Language
--- syntax. The application context of the containing message determines
--- which well-known feature set of CEL is supported.
-eExpression :: Lens' Expr (Maybe Text)
-eExpression
-  = lens _eExpression (\ s a -> s{_eExpression = a})
-
--- | An optional title for the expression, i.e. a short string describing its
--- purpose. This can be used e.g. in UIs which allow to enter the
--- expression.
-eTitle :: Lens' Expr (Maybe Text)
-eTitle = lens _eTitle (\ s a -> s{_eTitle = a})
-
--- | An optional description of the expression. This is a longer text which
--- describes the expression, e.g. when hovered over it in a UI.
-eDescription :: Lens' Expr (Maybe Text)
-eDescription
-  = lens _eDescription (\ s a -> s{_eDescription = a})
-
-instance FromJSON Expr where
-        parseJSON
-          = withObject "Expr"
-              (\ o ->
-                 Expr' <$>
-                   (o .:? "location") <*> (o .:? "expression") <*>
-                     (o .:? "title")
-                     <*> (o .:? "description"))
-
-instance ToJSON Expr where
-        toJSON Expr'{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _eLocation,
-                  ("expression" .=) <$> _eExpression,
-                  ("title" .=) <$> _eTitle,
-                  ("description" .=) <$> _eDescription])
-
---
--- /See:/ 'sslPolicyReference' smart constructor.
-newtype SSLPolicyReference =
-  SSLPolicyReference'
-    { _sprSSLPolicy :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPolicyReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprSSLPolicy'
-sslPolicyReference
-    :: SSLPolicyReference
-sslPolicyReference = SSLPolicyReference' {_sprSSLPolicy = Nothing}
-
-
--- | URL of the SSL policy resource. Set this to empty string to clear any
--- existing SSL policy associated with the target proxy resource.
-sprSSLPolicy :: Lens' SSLPolicyReference (Maybe Text)
-sprSSLPolicy
-  = lens _sprSSLPolicy (\ s a -> s{_sprSSLPolicy = a})
-
-instance FromJSON SSLPolicyReference where
-        parseJSON
-          = withObject "SSLPolicyReference"
-              (\ o -> SSLPolicyReference' <$> (o .:? "sslPolicy"))
-
-instance ToJSON SSLPolicyReference where
-        toJSON SSLPolicyReference'{..}
-          = object
-              (catMaybes [("sslPolicy" .=) <$> _sprSSLPolicy])
-
--- | A list of InstanceGroupsScopedList resources.
---
--- /See:/ 'instanceGroupAggregatedListItems' smart constructor.
-newtype InstanceGroupAggregatedListItems =
-  InstanceGroupAggregatedListItems'
-    { _igaliAddtional :: HashMap Text InstanceGroupsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igaliAddtional'
-instanceGroupAggregatedListItems
-    :: HashMap Text InstanceGroupsScopedList -- ^ 'igaliAddtional'
-    -> InstanceGroupAggregatedListItems
-instanceGroupAggregatedListItems pIgaliAddtional_ =
-  InstanceGroupAggregatedListItems'
-    {_igaliAddtional = _Coerce # pIgaliAddtional_}
-
-
--- | The name of the scope that contains this set of instance groups.
-igaliAddtional :: Lens' InstanceGroupAggregatedListItems (HashMap Text InstanceGroupsScopedList)
-igaliAddtional
-  = lens _igaliAddtional
-      (\ s a -> s{_igaliAddtional = a})
-      . _Coerce
-
-instance FromJSON InstanceGroupAggregatedListItems
-         where
-        parseJSON
-          = withObject "InstanceGroupAggregatedListItems"
-              (\ o ->
-                 InstanceGroupAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON InstanceGroupAggregatedListItems
-         where
-        toJSON = toJSON . _igaliAddtional
-
--- | Contains a list of TargetPool resources.
---
--- /See:/ 'targetPoolList' smart constructor.
-data TargetPoolList =
-  TargetPoolList'
-    { _tplNextPageToken :: !(Maybe Text)
-    , _tplKind          :: !Text
-    , _tplItems         :: !(Maybe [TargetPool])
-    , _tplSelfLink      :: !(Maybe Text)
-    , _tplWarning       :: !(Maybe TargetPoolListWarning)
-    , _tplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tplNextPageToken'
---
--- * 'tplKind'
---
--- * 'tplItems'
---
--- * 'tplSelfLink'
---
--- * 'tplWarning'
---
--- * 'tplId'
-targetPoolList
-    :: TargetPoolList
-targetPoolList =
-  TargetPoolList'
-    { _tplNextPageToken = Nothing
-    , _tplKind = "compute#targetPoolList"
-    , _tplItems = Nothing
-    , _tplSelfLink = Nothing
-    , _tplWarning = Nothing
-    , _tplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tplNextPageToken :: Lens' TargetPoolList (Maybe Text)
-tplNextPageToken
-  = lens _tplNextPageToken
-      (\ s a -> s{_tplNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#targetPoolList for lists
--- of target pools.
-tplKind :: Lens' TargetPoolList Text
-tplKind = lens _tplKind (\ s a -> s{_tplKind = a})
-
--- | A list of TargetPool resources.
-tplItems :: Lens' TargetPoolList [TargetPool]
-tplItems
-  = lens _tplItems (\ s a -> s{_tplItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-tplSelfLink :: Lens' TargetPoolList (Maybe Text)
-tplSelfLink
-  = lens _tplSelfLink (\ s a -> s{_tplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tplWarning :: Lens' TargetPoolList (Maybe TargetPoolListWarning)
-tplWarning
-  = lens _tplWarning (\ s a -> s{_tplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tplId :: Lens' TargetPoolList (Maybe Text)
-tplId = lens _tplId (\ s a -> s{_tplId = a})
-
-instance FromJSON TargetPoolList where
-        parseJSON
-          = withObject "TargetPoolList"
-              (\ o ->
-                 TargetPoolList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetPoolList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetPoolList where
-        toJSON TargetPoolList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tplNextPageToken,
-                  Just ("kind" .= _tplKind),
-                  ("items" .=) <$> _tplItems,
-                  ("selfLink" .=) <$> _tplSelfLink,
-                  ("warning" .=) <$> _tplWarning,
-                  ("id" .=) <$> _tplId])
-
--- | An Accelerator Type resource. (== resource_for beta.acceleratorTypes ==)
--- (== resource_for v1.acceleratorTypes ==)
---
--- /See:/ 'acceleratorType' smart constructor.
-data AcceleratorType =
-  AcceleratorType'
-    { _atKind                    :: !Text
-    , _atZone                    :: !(Maybe Text)
-    , _atMaximumCardsPerInstance :: !(Maybe (Textual Int32))
-    , _atSelfLink                :: !(Maybe Text)
-    , _atName                    :: !(Maybe Text)
-    , _atCreationTimestamp       :: !(Maybe Text)
-    , _atId                      :: !(Maybe (Textual Word64))
-    , _atDescription             :: !(Maybe Text)
-    , _atDeprecated              :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atKind'
---
--- * 'atZone'
---
--- * 'atMaximumCardsPerInstance'
---
--- * 'atSelfLink'
---
--- * 'atName'
---
--- * 'atCreationTimestamp'
---
--- * 'atId'
---
--- * 'atDescription'
---
--- * 'atDeprecated'
-acceleratorType
-    :: AcceleratorType
-acceleratorType =
-  AcceleratorType'
-    { _atKind = "compute#acceleratorType"
-    , _atZone = Nothing
-    , _atMaximumCardsPerInstance = Nothing
-    , _atSelfLink = Nothing
-    , _atName = Nothing
-    , _atCreationTimestamp = Nothing
-    , _atId = Nothing
-    , _atDescription = Nothing
-    , _atDeprecated = Nothing
-    }
-
-
--- | [Output Only] The type of the resource. Always compute#acceleratorType
--- for accelerator types.
-atKind :: Lens' AcceleratorType Text
-atKind = lens _atKind (\ s a -> s{_atKind = a})
-
--- | [Output Only] The name of the zone where the accelerator type resides,
--- such as us-central1-a. You must specify this field as part of the HTTP
--- request URL. It is not settable as a field in the request body.
-atZone :: Lens' AcceleratorType (Maybe Text)
-atZone = lens _atZone (\ s a -> s{_atZone = a})
-
--- | [Output Only] Maximum accelerator cards allowed per instance.
-atMaximumCardsPerInstance :: Lens' AcceleratorType (Maybe Int32)
-atMaximumCardsPerInstance
-  = lens _atMaximumCardsPerInstance
-      (\ s a -> s{_atMaximumCardsPerInstance = a})
-      . mapping _Coerce
-
--- | [Output Only] Server-defined fully-qualified URL for this resource.
-atSelfLink :: Lens' AcceleratorType (Maybe Text)
-atSelfLink
-  = lens _atSelfLink (\ s a -> s{_atSelfLink = a})
-
--- | [Output Only] Name of the resource.
-atName :: Lens' AcceleratorType (Maybe Text)
-atName = lens _atName (\ s a -> s{_atName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-atCreationTimestamp :: Lens' AcceleratorType (Maybe Text)
-atCreationTimestamp
-  = lens _atCreationTimestamp
-      (\ s a -> s{_atCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-atId :: Lens' AcceleratorType (Maybe Word64)
-atId
-  = lens _atId (\ s a -> s{_atId = a}) .
-      mapping _Coerce
-
--- | [Output Only] An optional textual description of the resource.
-atDescription :: Lens' AcceleratorType (Maybe Text)
-atDescription
-  = lens _atDescription
-      (\ s a -> s{_atDescription = a})
-
--- | [Output Only] The deprecation status associated with this accelerator
--- type.
-atDeprecated :: Lens' AcceleratorType (Maybe DeprecationStatus)
-atDeprecated
-  = lens _atDeprecated (\ s a -> s{_atDeprecated = a})
-
-instance FromJSON AcceleratorType where
-        parseJSON
-          = withObject "AcceleratorType"
-              (\ o ->
-                 AcceleratorType' <$>
-                   (o .:? "kind" .!= "compute#acceleratorType") <*>
-                     (o .:? "zone")
-                     <*> (o .:? "maximumCardsPerInstance")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON AcceleratorType where
-        toJSON AcceleratorType'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _atKind), ("zone" .=) <$> _atZone,
-                  ("maximumCardsPerInstance" .=) <$>
-                    _atMaximumCardsPerInstance,
-                  ("selfLink" .=) <$> _atSelfLink,
-                  ("name" .=) <$> _atName,
-                  ("creationTimestamp" .=) <$> _atCreationTimestamp,
-                  ("id" .=) <$> _atId,
-                  ("description" .=) <$> _atDescription,
-                  ("deprecated" .=) <$> _atDeprecated])
-
---
--- /See:/ 'backendBucketListWarningDataItem' smart constructor.
-data BackendBucketListWarningDataItem =
-  BackendBucketListWarningDataItem'
-    { _bblwdiValue :: !(Maybe Text)
-    , _bblwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bblwdiValue'
---
--- * 'bblwdiKey'
-backendBucketListWarningDataItem
-    :: BackendBucketListWarningDataItem
-backendBucketListWarningDataItem =
-  BackendBucketListWarningDataItem'
-    {_bblwdiValue = Nothing, _bblwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-bblwdiValue :: Lens' BackendBucketListWarningDataItem (Maybe Text)
-bblwdiValue
-  = lens _bblwdiValue (\ s a -> s{_bblwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-bblwdiKey :: Lens' BackendBucketListWarningDataItem (Maybe Text)
-bblwdiKey
-  = lens _bblwdiKey (\ s a -> s{_bblwdiKey = a})
-
-instance FromJSON BackendBucketListWarningDataItem
-         where
-        parseJSON
-          = withObject "BackendBucketListWarningDataItem"
-              (\ o ->
-                 BackendBucketListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON BackendBucketListWarningDataItem
-         where
-        toJSON BackendBucketListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _bblwdiValue,
-                  ("key" .=) <$> _bblwdiKey])
-
---
--- /See:/ 'acceleratorTypesScopedListWarningDataItem' smart constructor.
-data AcceleratorTypesScopedListWarningDataItem =
-  AcceleratorTypesScopedListWarningDataItem'
-    { _atslwdiValue :: !(Maybe Text)
-    , _atslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atslwdiValue'
---
--- * 'atslwdiKey'
-acceleratorTypesScopedListWarningDataItem
-    :: AcceleratorTypesScopedListWarningDataItem
-acceleratorTypesScopedListWarningDataItem =
-  AcceleratorTypesScopedListWarningDataItem'
-    {_atslwdiValue = Nothing, _atslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-atslwdiValue :: Lens' AcceleratorTypesScopedListWarningDataItem (Maybe Text)
-atslwdiValue
-  = lens _atslwdiValue (\ s a -> s{_atslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-atslwdiKey :: Lens' AcceleratorTypesScopedListWarningDataItem (Maybe Text)
-atslwdiKey
-  = lens _atslwdiKey (\ s a -> s{_atslwdiKey = a})
-
-instance FromJSON
-           AcceleratorTypesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "AcceleratorTypesScopedListWarningDataItem"
-              (\ o ->
-                 AcceleratorTypesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           AcceleratorTypesScopedListWarningDataItem
-         where
-        toJSON AcceleratorTypesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _atslwdiValue,
-                  ("key" .=) <$> _atslwdiKey])
-
---
--- /See:/ 'regionDiskTypeList' smart constructor.
-data RegionDiskTypeList =
-  RegionDiskTypeList'
-    { _rdtlNextPageToken :: !(Maybe Text)
-    , _rdtlKind          :: !Text
-    , _rdtlItems         :: !(Maybe [DiskType])
-    , _rdtlSelfLink      :: !(Maybe Text)
-    , _rdtlWarning       :: !(Maybe RegionDiskTypeListWarning)
-    , _rdtlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDiskTypeList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtlNextPageToken'
---
--- * 'rdtlKind'
---
--- * 'rdtlItems'
---
--- * 'rdtlSelfLink'
---
--- * 'rdtlWarning'
---
--- * 'rdtlId'
-regionDiskTypeList
-    :: RegionDiskTypeList
-regionDiskTypeList =
-  RegionDiskTypeList'
-    { _rdtlNextPageToken = Nothing
-    , _rdtlKind = "compute#regionDiskTypeList"
-    , _rdtlItems = Nothing
-    , _rdtlSelfLink = Nothing
-    , _rdtlWarning = Nothing
-    , _rdtlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rdtlNextPageToken :: Lens' RegionDiskTypeList (Maybe Text)
-rdtlNextPageToken
-  = lens _rdtlNextPageToken
-      (\ s a -> s{_rdtlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#regionDiskTypeList for
--- region disk types.
-rdtlKind :: Lens' RegionDiskTypeList Text
-rdtlKind = lens _rdtlKind (\ s a -> s{_rdtlKind = a})
-
--- | A list of DiskType resources.
-rdtlItems :: Lens' RegionDiskTypeList [DiskType]
-rdtlItems
-  = lens _rdtlItems (\ s a -> s{_rdtlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rdtlSelfLink :: Lens' RegionDiskTypeList (Maybe Text)
-rdtlSelfLink
-  = lens _rdtlSelfLink (\ s a -> s{_rdtlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rdtlWarning :: Lens' RegionDiskTypeList (Maybe RegionDiskTypeListWarning)
-rdtlWarning
-  = lens _rdtlWarning (\ s a -> s{_rdtlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rdtlId :: Lens' RegionDiskTypeList (Maybe Text)
-rdtlId = lens _rdtlId (\ s a -> s{_rdtlId = a})
-
-instance FromJSON RegionDiskTypeList where
-        parseJSON
-          = withObject "RegionDiskTypeList"
-              (\ o ->
-                 RegionDiskTypeList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#regionDiskTypeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionDiskTypeList where
-        toJSON RegionDiskTypeList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rdtlNextPageToken,
-                  Just ("kind" .= _rdtlKind),
-                  ("items" .=) <$> _rdtlItems,
-                  ("selfLink" .=) <$> _rdtlSelfLink,
-                  ("warning" .=) <$> _rdtlWarning,
-                  ("id" .=) <$> _rdtlId])
-
---
--- /See:/ 'targetInstanceAggregatedList' smart constructor.
-data TargetInstanceAggregatedList =
-  TargetInstanceAggregatedList'
-    { _tialNextPageToken :: !(Maybe Text)
-    , _tialKind          :: !Text
-    , _tialItems         :: !(Maybe TargetInstanceAggregatedListItems)
-    , _tialSelfLink      :: !(Maybe Text)
-    , _tialWarning       :: !(Maybe TargetInstanceAggregatedListWarning)
-    , _tialId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tialNextPageToken'
---
--- * 'tialKind'
---
--- * 'tialItems'
---
--- * 'tialSelfLink'
---
--- * 'tialWarning'
---
--- * 'tialId'
-targetInstanceAggregatedList
-    :: TargetInstanceAggregatedList
-targetInstanceAggregatedList =
-  TargetInstanceAggregatedList'
-    { _tialNextPageToken = Nothing
-    , _tialKind = "compute#targetInstanceAggregatedList"
-    , _tialItems = Nothing
-    , _tialSelfLink = Nothing
-    , _tialWarning = Nothing
-    , _tialId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tialNextPageToken :: Lens' TargetInstanceAggregatedList (Maybe Text)
-tialNextPageToken
-  = lens _tialNextPageToken
-      (\ s a -> s{_tialNextPageToken = a})
-
--- | Type of resource.
-tialKind :: Lens' TargetInstanceAggregatedList Text
-tialKind = lens _tialKind (\ s a -> s{_tialKind = a})
-
--- | A list of TargetInstance resources.
-tialItems :: Lens' TargetInstanceAggregatedList (Maybe TargetInstanceAggregatedListItems)
-tialItems
-  = lens _tialItems (\ s a -> s{_tialItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-tialSelfLink :: Lens' TargetInstanceAggregatedList (Maybe Text)
-tialSelfLink
-  = lens _tialSelfLink (\ s a -> s{_tialSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tialWarning :: Lens' TargetInstanceAggregatedList (Maybe TargetInstanceAggregatedListWarning)
-tialWarning
-  = lens _tialWarning (\ s a -> s{_tialWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tialId :: Lens' TargetInstanceAggregatedList (Maybe Text)
-tialId = lens _tialId (\ s a -> s{_tialId = a})
-
-instance FromJSON TargetInstanceAggregatedList where
-        parseJSON
-          = withObject "TargetInstanceAggregatedList"
-              (\ o ->
-                 TargetInstanceAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#targetInstanceAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetInstanceAggregatedList where
-        toJSON TargetInstanceAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tialNextPageToken,
-                  Just ("kind" .= _tialKind),
-                  ("items" .=) <$> _tialItems,
-                  ("selfLink" .=) <$> _tialSelfLink,
-                  ("warning" .=) <$> _tialWarning,
-                  ("id" .=) <$> _tialId])
-
---
--- /See:/ 'nodeGroupsListNodesWarningDataItem' smart constructor.
-data NodeGroupsListNodesWarningDataItem =
-  NodeGroupsListNodesWarningDataItem'
-    { _nglnwdiValue :: !(Maybe Text)
-    , _nglnwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsListNodesWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglnwdiValue'
---
--- * 'nglnwdiKey'
-nodeGroupsListNodesWarningDataItem
-    :: NodeGroupsListNodesWarningDataItem
-nodeGroupsListNodesWarningDataItem =
-  NodeGroupsListNodesWarningDataItem'
-    {_nglnwdiValue = Nothing, _nglnwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-nglnwdiValue :: Lens' NodeGroupsListNodesWarningDataItem (Maybe Text)
-nglnwdiValue
-  = lens _nglnwdiValue (\ s a -> s{_nglnwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-nglnwdiKey :: Lens' NodeGroupsListNodesWarningDataItem (Maybe Text)
-nglnwdiKey
-  = lens _nglnwdiKey (\ s a -> s{_nglnwdiKey = a})
-
-instance FromJSON NodeGroupsListNodesWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeGroupsListNodesWarningDataItem"
-              (\ o ->
-                 NodeGroupsListNodesWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeGroupsListNodesWarningDataItem
-         where
-        toJSON NodeGroupsListNodesWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _nglnwdiValue,
-                  ("key" .=) <$> _nglnwdiKey])
-
---
--- /See:/ 'usableSubnetworksAggregatedList' smart constructor.
-data UsableSubnetworksAggregatedList =
-  UsableSubnetworksAggregatedList'
-    { _usalNextPageToken :: !(Maybe Text)
-    , _usalKind          :: !Text
-    , _usalItems         :: !(Maybe [UsableSubnetwork])
-    , _usalSelfLink      :: !(Maybe Text)
-    , _usalWarning       :: !(Maybe UsableSubnetworksAggregatedListWarning)
-    , _usalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsableSubnetworksAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usalNextPageToken'
---
--- * 'usalKind'
---
--- * 'usalItems'
---
--- * 'usalSelfLink'
---
--- * 'usalWarning'
---
--- * 'usalId'
-usableSubnetworksAggregatedList
-    :: UsableSubnetworksAggregatedList
-usableSubnetworksAggregatedList =
-  UsableSubnetworksAggregatedList'
-    { _usalNextPageToken = Nothing
-    , _usalKind = "compute#usableSubnetworksAggregatedList"
-    , _usalItems = Nothing
-    , _usalSelfLink = Nothing
-    , _usalWarning = Nothing
-    , _usalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-usalNextPageToken :: Lens' UsableSubnetworksAggregatedList (Maybe Text)
-usalNextPageToken
-  = lens _usalNextPageToken
-      (\ s a -> s{_usalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always
--- compute#usableSubnetworksAggregatedList for aggregated lists of usable
--- subnetworks.
-usalKind :: Lens' UsableSubnetworksAggregatedList Text
-usalKind = lens _usalKind (\ s a -> s{_usalKind = a})
-
--- | [Output] A list of usable subnetwork URLs.
-usalItems :: Lens' UsableSubnetworksAggregatedList [UsableSubnetwork]
-usalItems
-  = lens _usalItems (\ s a -> s{_usalItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-usalSelfLink :: Lens' UsableSubnetworksAggregatedList (Maybe Text)
-usalSelfLink
-  = lens _usalSelfLink (\ s a -> s{_usalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-usalWarning :: Lens' UsableSubnetworksAggregatedList (Maybe UsableSubnetworksAggregatedListWarning)
-usalWarning
-  = lens _usalWarning (\ s a -> s{_usalWarning = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-usalId :: Lens' UsableSubnetworksAggregatedList (Maybe Text)
-usalId = lens _usalId (\ s a -> s{_usalId = a})
-
-instance FromJSON UsableSubnetworksAggregatedList
-         where
-        parseJSON
-          = withObject "UsableSubnetworksAggregatedList"
-              (\ o ->
-                 UsableSubnetworksAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#usableSubnetworksAggregatedList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON UsableSubnetworksAggregatedList where
-        toJSON UsableSubnetworksAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _usalNextPageToken,
-                  Just ("kind" .= _usalKind),
-                  ("items" .=) <$> _usalItems,
-                  ("selfLink" .=) <$> _usalSelfLink,
-                  ("warning" .=) <$> _usalWarning,
-                  ("id" .=) <$> _usalId])
-
---
--- /See:/ 'disksScopedList' smart constructor.
-data DisksScopedList =
-  DisksScopedList'
-    { _dslWarning :: !(Maybe DisksScopedListWarning)
-    , _dslDisks   :: !(Maybe [Disk])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dslWarning'
---
--- * 'dslDisks'
-disksScopedList
-    :: DisksScopedList
-disksScopedList = DisksScopedList' {_dslWarning = Nothing, _dslDisks = Nothing}
-
-
--- | [Output Only] Informational warning which replaces the list of disks
--- when the list is empty.
-dslWarning :: Lens' DisksScopedList (Maybe DisksScopedListWarning)
-dslWarning
-  = lens _dslWarning (\ s a -> s{_dslWarning = a})
-
--- | [Output Only] A list of disks contained in this scope.
-dslDisks :: Lens' DisksScopedList [Disk]
-dslDisks
-  = lens _dslDisks (\ s a -> s{_dslDisks = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON DisksScopedList where
-        parseJSON
-          = withObject "DisksScopedList"
-              (\ o ->
-                 DisksScopedList' <$>
-                   (o .:? "warning") <*> (o .:? "disks" .!= mempty))
-
-instance ToJSON DisksScopedList where
-        toJSON DisksScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _dslWarning,
-                  ("disks" .=) <$> _dslDisks])
-
---
--- /See:/ 'interconnectLocationListWarningDataItem' smart constructor.
-data InterconnectLocationListWarningDataItem =
-  InterconnectLocationListWarningDataItem'
-    { _illwdiValue :: !(Maybe Text)
-    , _illwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'illwdiValue'
---
--- * 'illwdiKey'
-interconnectLocationListWarningDataItem
-    :: InterconnectLocationListWarningDataItem
-interconnectLocationListWarningDataItem =
-  InterconnectLocationListWarningDataItem'
-    {_illwdiValue = Nothing, _illwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-illwdiValue :: Lens' InterconnectLocationListWarningDataItem (Maybe Text)
-illwdiValue
-  = lens _illwdiValue (\ s a -> s{_illwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-illwdiKey :: Lens' InterconnectLocationListWarningDataItem (Maybe Text)
-illwdiKey
-  = lens _illwdiKey (\ s a -> s{_illwdiKey = a})
-
-instance FromJSON
-           InterconnectLocationListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InterconnectLocationListWarningDataItem"
-              (\ o ->
-                 InterconnectLocationListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InterconnectLocationListWarningDataItem
-         where
-        toJSON InterconnectLocationListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _illwdiValue,
-                  ("key" .=) <$> _illwdiKey])
-
---
--- /See:/ 'instanceGroupManagersScopedList' smart constructor.
-data InstanceGroupManagersScopedList =
-  InstanceGroupManagersScopedList'
-    { _igmslWarning               :: !(Maybe InstanceGroupManagersScopedListWarning)
-    , _igmslInstanceGroupManagers :: !(Maybe [InstanceGroupManager])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmslWarning'
---
--- * 'igmslInstanceGroupManagers'
-instanceGroupManagersScopedList
-    :: InstanceGroupManagersScopedList
-instanceGroupManagersScopedList =
-  InstanceGroupManagersScopedList'
-    {_igmslWarning = Nothing, _igmslInstanceGroupManagers = Nothing}
-
-
--- | [Output Only] The warning that replaces the list of managed instance
--- groups when the list is empty.
-igmslWarning :: Lens' InstanceGroupManagersScopedList (Maybe InstanceGroupManagersScopedListWarning)
-igmslWarning
-  = lens _igmslWarning (\ s a -> s{_igmslWarning = a})
-
--- | [Output Only] The list of managed instance groups that are contained in
--- the specified project and zone.
-igmslInstanceGroupManagers :: Lens' InstanceGroupManagersScopedList [InstanceGroupManager]
-igmslInstanceGroupManagers
-  = lens _igmslInstanceGroupManagers
-      (\ s a -> s{_igmslInstanceGroupManagers = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroupManagersScopedList
-         where
-        parseJSON
-          = withObject "InstanceGroupManagersScopedList"
-              (\ o ->
-                 InstanceGroupManagersScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "instanceGroupManagers" .!= mempty))
-
-instance ToJSON InstanceGroupManagersScopedList where
-        toJSON InstanceGroupManagersScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _igmslWarning,
-                  ("instanceGroupManagers" .=) <$>
-                    _igmslInstanceGroupManagers])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'subnetworkListWarning' smart constructor.
-data SubnetworkListWarning =
-  SubnetworkListWarning'
-    { _slwData    :: !(Maybe [SubnetworkListWarningDataItem])
-    , _slwCode    :: !(Maybe SubnetworkListWarningCode)
-    , _slwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slwData'
---
--- * 'slwCode'
---
--- * 'slwMessage'
-subnetworkListWarning
-    :: SubnetworkListWarning
-subnetworkListWarning =
-  SubnetworkListWarning'
-    {_slwData = Nothing, _slwCode = Nothing, _slwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-slwData :: Lens' SubnetworkListWarning [SubnetworkListWarningDataItem]
-slwData
-  = lens _slwData (\ s a -> s{_slwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-slwCode :: Lens' SubnetworkListWarning (Maybe SubnetworkListWarningCode)
-slwCode = lens _slwCode (\ s a -> s{_slwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-slwMessage :: Lens' SubnetworkListWarning (Maybe Text)
-slwMessage
-  = lens _slwMessage (\ s a -> s{_slwMessage = a})
-
-instance FromJSON SubnetworkListWarning where
-        parseJSON
-          = withObject "SubnetworkListWarning"
-              (\ o ->
-                 SubnetworkListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SubnetworkListWarning where
-        toJSON SubnetworkListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _slwData, ("code" .=) <$> _slwCode,
-                  ("message" .=) <$> _slwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'networkEndpointGroupListWarning' smart constructor.
-data NetworkEndpointGroupListWarning =
-  NetworkEndpointGroupListWarning'
-    { _neglwData    :: !(Maybe [NetworkEndpointGroupListWarningDataItem])
-    , _neglwCode    :: !(Maybe NetworkEndpointGroupListWarningCode)
-    , _neglwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglwData'
---
--- * 'neglwCode'
---
--- * 'neglwMessage'
-networkEndpointGroupListWarning
-    :: NetworkEndpointGroupListWarning
-networkEndpointGroupListWarning =
-  NetworkEndpointGroupListWarning'
-    {_neglwData = Nothing, _neglwCode = Nothing, _neglwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-neglwData :: Lens' NetworkEndpointGroupListWarning [NetworkEndpointGroupListWarningDataItem]
-neglwData
-  = lens _neglwData (\ s a -> s{_neglwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-neglwCode :: Lens' NetworkEndpointGroupListWarning (Maybe NetworkEndpointGroupListWarningCode)
-neglwCode
-  = lens _neglwCode (\ s a -> s{_neglwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-neglwMessage :: Lens' NetworkEndpointGroupListWarning (Maybe Text)
-neglwMessage
-  = lens _neglwMessage (\ s a -> s{_neglwMessage = a})
-
-instance FromJSON NetworkEndpointGroupListWarning
-         where
-        parseJSON
-          = withObject "NetworkEndpointGroupListWarning"
-              (\ o ->
-                 NetworkEndpointGroupListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NetworkEndpointGroupListWarning where
-        toJSON NetworkEndpointGroupListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _neglwData,
-                  ("code" .=) <$> _neglwCode,
-                  ("message" .=) <$> _neglwMessage])
-
--- | An HealthCheck resource. This resource defines a template for how
--- individual virtual machines should be checked for health, via one of the
--- supported protocols.
---
--- /See:/ 'healthCheck' smart constructor.
-data HealthCheck =
-  HealthCheck'
-    { _hcHealthyThreshold   :: !(Maybe (Textual Int32))
-    , _hcTCPHealthCheck     :: !(Maybe TCPHealthCheck)
-    , _hcHTTP2HealthCheck   :: !(Maybe HTTP2HealthCheck)
-    , _hcKind               :: !Text
-    , _hcSSLHealthCheck     :: !(Maybe SSLHealthCheck)
-    , _hcSelfLink           :: !(Maybe Text)
-    , _hcCheckIntervalSec   :: !(Maybe (Textual Int32))
-    , _hcName               :: !(Maybe Text)
-    , _hcCreationTimestamp  :: !(Maybe Text)
-    , _hcHTTPHealthCheck    :: !(Maybe HTTPHealthCheck)
-    , _hcId                 :: !(Maybe (Textual Word64))
-    , _hcType               :: !(Maybe HealthCheckType)
-    , _hcTimeoutSec         :: !(Maybe (Textual Int32))
-    , _hcDescription        :: !(Maybe Text)
-    , _hcUnhealthyThreshold :: !(Maybe (Textual Int32))
-    , _hcHTTPSHealthCheck   :: !(Maybe HTTPSHealthCheck)
-    }
-  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'
---
--- * 'hcTCPHealthCheck'
---
--- * 'hcHTTP2HealthCheck'
---
--- * 'hcKind'
---
--- * 'hcSSLHealthCheck'
---
--- * 'hcSelfLink'
---
--- * 'hcCheckIntervalSec'
---
--- * 'hcName'
---
--- * 'hcCreationTimestamp'
---
--- * 'hcHTTPHealthCheck'
---
--- * 'hcId'
---
--- * 'hcType'
---
--- * 'hcTimeoutSec'
---
--- * 'hcDescription'
---
--- * 'hcUnhealthyThreshold'
---
--- * 'hcHTTPSHealthCheck'
-healthCheck
-    :: HealthCheck
-healthCheck =
-  HealthCheck'
-    { _hcHealthyThreshold = Nothing
-    , _hcTCPHealthCheck = Nothing
-    , _hcHTTP2HealthCheck = Nothing
-    , _hcKind = "compute#healthCheck"
-    , _hcSSLHealthCheck = Nothing
-    , _hcSelfLink = Nothing
-    , _hcCheckIntervalSec = Nothing
-    , _hcName = Nothing
-    , _hcCreationTimestamp = Nothing
-    , _hcHTTPHealthCheck = Nothing
-    , _hcId = Nothing
-    , _hcType = Nothing
-    , _hcTimeoutSec = Nothing
-    , _hcDescription = Nothing
-    , _hcUnhealthyThreshold = Nothing
-    , _hcHTTPSHealthCheck = Nothing
-    }
-
-
--- | A so-far unhealthy instance will be marked healthy after this many
--- consecutive successes. The default value is 2.
-hcHealthyThreshold :: Lens' HealthCheck (Maybe Int32)
-hcHealthyThreshold
-  = lens _hcHealthyThreshold
-      (\ s a -> s{_hcHealthyThreshold = a})
-      . mapping _Coerce
-
-hcTCPHealthCheck :: Lens' HealthCheck (Maybe TCPHealthCheck)
-hcTCPHealthCheck
-  = lens _hcTCPHealthCheck
-      (\ s a -> s{_hcTCPHealthCheck = a})
-
-hcHTTP2HealthCheck :: Lens' HealthCheck (Maybe HTTP2HealthCheck)
-hcHTTP2HealthCheck
-  = lens _hcHTTP2HealthCheck
-      (\ s a -> s{_hcHTTP2HealthCheck = a})
-
--- | Type of the resource.
-hcKind :: Lens' HealthCheck Text
-hcKind = lens _hcKind (\ s a -> s{_hcKind = a})
-
-hcSSLHealthCheck :: Lens' HealthCheck (Maybe SSLHealthCheck)
-hcSSLHealthCheck
-  = lens _hcSSLHealthCheck
-      (\ s a -> s{_hcSSLHealthCheck = a})
-
--- | [Output Only] Server-defined URL for the resource.
-hcSelfLink :: Lens' HealthCheck (Maybe Text)
-hcSelfLink
-  = lens _hcSelfLink (\ s a -> s{_hcSelfLink = a})
-
--- | How often (in seconds) to send a health check. The default value is 5
--- seconds.
-hcCheckIntervalSec :: Lens' HealthCheck (Maybe Int32)
-hcCheckIntervalSec
-  = lens _hcCheckIntervalSec
-      (\ s a -> s{_hcCheckIntervalSec = a})
-      . mapping _Coerce
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-hcName :: Lens' HealthCheck (Maybe Text)
-hcName = lens _hcName (\ s a -> s{_hcName = a})
-
--- | [Output Only] Creation timestamp in 3339 text format.
-hcCreationTimestamp :: Lens' HealthCheck (Maybe Text)
-hcCreationTimestamp
-  = lens _hcCreationTimestamp
-      (\ s a -> s{_hcCreationTimestamp = a})
-
-hcHTTPHealthCheck :: Lens' HealthCheck (Maybe HTTPHealthCheck)
-hcHTTPHealthCheck
-  = lens _hcHTTPHealthCheck
-      (\ s a -> s{_hcHTTPHealthCheck = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-hcId :: Lens' HealthCheck (Maybe Word64)
-hcId
-  = lens _hcId (\ s a -> s{_hcId = a}) .
-      mapping _Coerce
-
--- | Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or
--- HTTP2. If not specified, the default is TCP. Exactly one of the
--- protocol-specific health check field must be specified, which must match
--- type field.
-hcType :: Lens' HealthCheck (Maybe HealthCheckType)
-hcType = lens _hcType (\ s a -> s{_hcType = a})
-
--- | How long (in seconds) to wait before claiming failure. The default value
--- is 5 seconds. It is invalid for timeoutSec to have greater value than
--- checkIntervalSec.
-hcTimeoutSec :: Lens' HealthCheck (Maybe Int32)
-hcTimeoutSec
-  = lens _hcTimeoutSec (\ s a -> s{_hcTimeoutSec = a})
-      . mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-hcDescription :: Lens' HealthCheck (Maybe Text)
-hcDescription
-  = lens _hcDescription
-      (\ s a -> s{_hcDescription = a})
-
--- | A so-far healthy instance will be marked unhealthy after this many
--- consecutive failures. The default value is 2.
-hcUnhealthyThreshold :: Lens' HealthCheck (Maybe Int32)
-hcUnhealthyThreshold
-  = lens _hcUnhealthyThreshold
-      (\ s a -> s{_hcUnhealthyThreshold = a})
-      . mapping _Coerce
-
-hcHTTPSHealthCheck :: Lens' HealthCheck (Maybe HTTPSHealthCheck)
-hcHTTPSHealthCheck
-  = lens _hcHTTPSHealthCheck
-      (\ s a -> s{_hcHTTPSHealthCheck = a})
-
-instance FromJSON HealthCheck where
-        parseJSON
-          = withObject "HealthCheck"
-              (\ o ->
-                 HealthCheck' <$>
-                   (o .:? "healthyThreshold") <*>
-                     (o .:? "tcpHealthCheck")
-                     <*> (o .:? "http2HealthCheck")
-                     <*> (o .:? "kind" .!= "compute#healthCheck")
-                     <*> (o .:? "sslHealthCheck")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "checkIntervalSec")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "httpHealthCheck")
-                     <*> (o .:? "id")
-                     <*> (o .:? "type")
-                     <*> (o .:? "timeoutSec")
-                     <*> (o .:? "description")
-                     <*> (o .:? "unhealthyThreshold")
-                     <*> (o .:? "httpsHealthCheck"))
-
-instance ToJSON HealthCheck where
-        toJSON HealthCheck'{..}
-          = object
-              (catMaybes
-                 [("healthyThreshold" .=) <$> _hcHealthyThreshold,
-                  ("tcpHealthCheck" .=) <$> _hcTCPHealthCheck,
-                  ("http2HealthCheck" .=) <$> _hcHTTP2HealthCheck,
-                  Just ("kind" .= _hcKind),
-                  ("sslHealthCheck" .=) <$> _hcSSLHealthCheck,
-                  ("selfLink" .=) <$> _hcSelfLink,
-                  ("checkIntervalSec" .=) <$> _hcCheckIntervalSec,
-                  ("name" .=) <$> _hcName,
-                  ("creationTimestamp" .=) <$> _hcCreationTimestamp,
-                  ("httpHealthCheck" .=) <$> _hcHTTPHealthCheck,
-                  ("id" .=) <$> _hcId, ("type" .=) <$> _hcType,
-                  ("timeoutSec" .=) <$> _hcTimeoutSec,
-                  ("description" .=) <$> _hcDescription,
-                  ("unhealthyThreshold" .=) <$> _hcUnhealthyThreshold,
-                  ("httpsHealthCheck" .=) <$> _hcHTTPSHealthCheck])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'hTTPHealthCheckListWarning' smart constructor.
-data HTTPHealthCheckListWarning =
-  HTTPHealthCheckListWarning'
-    { _httphclwData    :: !(Maybe [HTTPHealthCheckListWarningDataItem])
-    , _httphclwCode    :: !(Maybe HTTPHealthCheckListWarningCode)
-    , _httphclwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthCheckListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphclwData'
---
--- * 'httphclwCode'
---
--- * 'httphclwMessage'
-hTTPHealthCheckListWarning
-    :: HTTPHealthCheckListWarning
-hTTPHealthCheckListWarning =
-  HTTPHealthCheckListWarning'
-    { _httphclwData = Nothing
-    , _httphclwCode = Nothing
-    , _httphclwMessage = Nothing
-    }
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-httphclwData :: Lens' HTTPHealthCheckListWarning [HTTPHealthCheckListWarningDataItem]
-httphclwData
-  = lens _httphclwData (\ s a -> s{_httphclwData = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-httphclwCode :: Lens' HTTPHealthCheckListWarning (Maybe HTTPHealthCheckListWarningCode)
-httphclwCode
-  = lens _httphclwCode (\ s a -> s{_httphclwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-httphclwMessage :: Lens' HTTPHealthCheckListWarning (Maybe Text)
-httphclwMessage
-  = lens _httphclwMessage
-      (\ s a -> s{_httphclwMessage = a})
-
-instance FromJSON HTTPHealthCheckListWarning where
-        parseJSON
-          = withObject "HTTPHealthCheckListWarning"
-              (\ o ->
-                 HTTPHealthCheckListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON HTTPHealthCheckListWarning where
-        toJSON HTTPHealthCheckListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _httphclwData,
-                  ("code" .=) <$> _httphclwCode,
-                  ("message" .=) <$> _httphclwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'sslPoliciesListWarning' smart constructor.
-data SSLPoliciesListWarning =
-  SSLPoliciesListWarning'
-    { _splwData    :: !(Maybe [SSLPoliciesListWarningDataItem])
-    , _splwCode    :: !(Maybe SSLPoliciesListWarningCode)
-    , _splwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splwData'
---
--- * 'splwCode'
---
--- * 'splwMessage'
-sslPoliciesListWarning
-    :: SSLPoliciesListWarning
-sslPoliciesListWarning =
-  SSLPoliciesListWarning'
-    {_splwData = Nothing, _splwCode = Nothing, _splwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-splwData :: Lens' SSLPoliciesListWarning [SSLPoliciesListWarningDataItem]
-splwData
-  = lens _splwData (\ s a -> s{_splwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-splwCode :: Lens' SSLPoliciesListWarning (Maybe SSLPoliciesListWarningCode)
-splwCode = lens _splwCode (\ s a -> s{_splwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-splwMessage :: Lens' SSLPoliciesListWarning (Maybe Text)
-splwMessage
-  = lens _splwMessage (\ s a -> s{_splwMessage = a})
-
-instance FromJSON SSLPoliciesListWarning where
-        parseJSON
-          = withObject "SSLPoliciesListWarning"
-              (\ o ->
-                 SSLPoliciesListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SSLPoliciesListWarning where
-        toJSON SSLPoliciesListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _splwData,
-                  ("code" .=) <$> _splwCode,
-                  ("message" .=) <$> _splwMessage])
-
--- | A list of CommitmentsScopedList resources.
---
--- /See:/ 'commitmentAggregatedListItems' smart constructor.
-newtype CommitmentAggregatedListItems =
-  CommitmentAggregatedListItems'
-    { _caliAddtional :: HashMap Text CommitmentsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'caliAddtional'
-commitmentAggregatedListItems
-    :: HashMap Text CommitmentsScopedList -- ^ 'caliAddtional'
-    -> CommitmentAggregatedListItems
-commitmentAggregatedListItems pCaliAddtional_ =
-  CommitmentAggregatedListItems' {_caliAddtional = _Coerce # pCaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of commitments.
-caliAddtional :: Lens' CommitmentAggregatedListItems (HashMap Text CommitmentsScopedList)
-caliAddtional
-  = lens _caliAddtional
-      (\ s a -> s{_caliAddtional = a})
-      . _Coerce
-
-instance FromJSON CommitmentAggregatedListItems where
-        parseJSON
-          = withObject "CommitmentAggregatedListItems"
-              (\ o ->
-                 CommitmentAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON CommitmentAggregatedListItems where
-        toJSON = toJSON . _caliAddtional
-
---
--- /See:/ 'diskAggregatedList' smart constructor.
-data DiskAggregatedList =
-  DiskAggregatedList'
-    { _dalNextPageToken :: !(Maybe Text)
-    , _dalKind          :: !Text
-    , _dalItems         :: !(Maybe DiskAggregatedListItems)
-    , _dalSelfLink      :: !(Maybe Text)
-    , _dalWarning       :: !(Maybe DiskAggregatedListWarning)
-    , _dalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dalNextPageToken'
---
--- * 'dalKind'
---
--- * 'dalItems'
---
--- * 'dalSelfLink'
---
--- * 'dalWarning'
---
--- * 'dalId'
-diskAggregatedList
-    :: DiskAggregatedList
-diskAggregatedList =
-  DiskAggregatedList'
-    { _dalNextPageToken = Nothing
-    , _dalKind = "compute#diskAggregatedList"
-    , _dalItems = Nothing
-    , _dalSelfLink = Nothing
-    , _dalWarning = Nothing
-    , _dalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-dalNextPageToken :: Lens' DiskAggregatedList (Maybe Text)
-dalNextPageToken
-  = lens _dalNextPageToken
-      (\ s a -> s{_dalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#diskAggregatedList for
--- aggregated lists of persistent disks.
-dalKind :: Lens' DiskAggregatedList Text
-dalKind = lens _dalKind (\ s a -> s{_dalKind = a})
-
--- | A list of DisksScopedList resources.
-dalItems :: Lens' DiskAggregatedList (Maybe DiskAggregatedListItems)
-dalItems = lens _dalItems (\ s a -> s{_dalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-dalSelfLink :: Lens' DiskAggregatedList (Maybe Text)
-dalSelfLink
-  = lens _dalSelfLink (\ s a -> s{_dalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-dalWarning :: Lens' DiskAggregatedList (Maybe DiskAggregatedListWarning)
-dalWarning
-  = lens _dalWarning (\ s a -> s{_dalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-dalId :: Lens' DiskAggregatedList (Maybe Text)
-dalId = lens _dalId (\ s a -> s{_dalId = a})
-
-instance FromJSON DiskAggregatedList where
-        parseJSON
-          = withObject "DiskAggregatedList"
-              (\ o ->
-                 DiskAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#diskAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON DiskAggregatedList where
-        toJSON DiskAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dalNextPageToken,
-                  Just ("kind" .= _dalKind),
-                  ("items" .=) <$> _dalItems,
-                  ("selfLink" .=) <$> _dalSelfLink,
-                  ("warning" .=) <$> _dalWarning,
-                  ("id" .=) <$> _dalId])
-
---
--- /See:/ 'instanceGroupsListInstancesWarningDataItem' smart constructor.
-data InstanceGroupsListInstancesWarningDataItem =
-  InstanceGroupsListInstancesWarningDataItem'
-    { _igliwdiValue :: !(Maybe Text)
-    , _igliwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsListInstancesWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igliwdiValue'
---
--- * 'igliwdiKey'
-instanceGroupsListInstancesWarningDataItem
-    :: InstanceGroupsListInstancesWarningDataItem
-instanceGroupsListInstancesWarningDataItem =
-  InstanceGroupsListInstancesWarningDataItem'
-    {_igliwdiValue = Nothing, _igliwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igliwdiValue :: Lens' InstanceGroupsListInstancesWarningDataItem (Maybe Text)
-igliwdiValue
-  = lens _igliwdiValue (\ s a -> s{_igliwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igliwdiKey :: Lens' InstanceGroupsListInstancesWarningDataItem (Maybe Text)
-igliwdiKey
-  = lens _igliwdiKey (\ s a -> s{_igliwdiKey = a})
-
-instance FromJSON
-           InstanceGroupsListInstancesWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupsListInstancesWarningDataItem"
-              (\ o ->
-                 InstanceGroupsListInstancesWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupsListInstancesWarningDataItem
-         where
-        toJSON
-          InstanceGroupsListInstancesWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igliwdiValue,
-                  ("key" .=) <$> _igliwdiKey])
-
---
--- /See:/ 'instanceWithNamedPorts' smart constructor.
-data InstanceWithNamedPorts =
-  InstanceWithNamedPorts'
-    { _iwnpStatus     :: !(Maybe InstanceWithNamedPortsStatus)
-    , _iwnpNamedPorts :: !(Maybe [NamedPort])
-    , _iwnpInstance   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceWithNamedPorts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iwnpStatus'
---
--- * 'iwnpNamedPorts'
---
--- * 'iwnpInstance'
-instanceWithNamedPorts
-    :: InstanceWithNamedPorts
-instanceWithNamedPorts =
-  InstanceWithNamedPorts'
-    {_iwnpStatus = Nothing, _iwnpNamedPorts = Nothing, _iwnpInstance = Nothing}
-
-
--- | [Output Only] The status of the instance.
-iwnpStatus :: Lens' InstanceWithNamedPorts (Maybe InstanceWithNamedPortsStatus)
-iwnpStatus
-  = lens _iwnpStatus (\ s a -> s{_iwnpStatus = a})
-
--- | [Output Only] The named ports that belong to this instance group.
-iwnpNamedPorts :: Lens' InstanceWithNamedPorts [NamedPort]
-iwnpNamedPorts
-  = lens _iwnpNamedPorts
-      (\ s a -> s{_iwnpNamedPorts = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The URL of the instance.
-iwnpInstance :: Lens' InstanceWithNamedPorts (Maybe Text)
-iwnpInstance
-  = lens _iwnpInstance (\ s a -> s{_iwnpInstance = a})
-
-instance FromJSON InstanceWithNamedPorts where
-        parseJSON
-          = withObject "InstanceWithNamedPorts"
-              (\ o ->
-                 InstanceWithNamedPorts' <$>
-                   (o .:? "status") <*> (o .:? "namedPorts" .!= mempty)
-                     <*> (o .:? "instance"))
-
-instance ToJSON InstanceWithNamedPorts where
-        toJSON InstanceWithNamedPorts'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _iwnpStatus,
-                  ("namedPorts" .=) <$> _iwnpNamedPorts,
-                  ("instance" .=) <$> _iwnpInstance])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'interconnectListWarning' smart constructor.
-data InterconnectListWarning =
-  InterconnectListWarning'
-    { _iData    :: !(Maybe [InterconnectListWarningDataItem])
-    , _iCode    :: !(Maybe InterconnectListWarningCode)
-    , _iMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iData'
---
--- * 'iCode'
---
--- * 'iMessage'
-interconnectListWarning
-    :: InterconnectListWarning
-interconnectListWarning =
-  InterconnectListWarning'
-    {_iData = Nothing, _iCode = Nothing, _iMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-iData :: Lens' InterconnectListWarning [InterconnectListWarningDataItem]
-iData
-  = lens _iData (\ s a -> s{_iData = a}) . _Default .
-      _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-iCode :: Lens' InterconnectListWarning (Maybe InterconnectListWarningCode)
-iCode = lens _iCode (\ s a -> s{_iCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-iMessage :: Lens' InterconnectListWarning (Maybe Text)
-iMessage = lens _iMessage (\ s a -> s{_iMessage = a})
-
-instance FromJSON InterconnectListWarning where
-        parseJSON
-          = withObject "InterconnectListWarning"
-              (\ o ->
-                 InterconnectListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InterconnectListWarning where
-        toJSON InterconnectListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _iData, ("code" .=) <$> _iCode,
-                  ("message" .=) <$> _iMessage])
-
---
--- /See:/ 'forwardingRulesScopedList' smart constructor.
-data ForwardingRulesScopedList =
-  ForwardingRulesScopedList'
-    { _frslWarning         :: !(Maybe ForwardingRulesScopedListWarning)
-    , _frslForwardingRules :: !(Maybe [ForwardingRule])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frslWarning'
---
--- * 'frslForwardingRules'
-forwardingRulesScopedList
-    :: ForwardingRulesScopedList
-forwardingRulesScopedList =
-  ForwardingRulesScopedList'
-    {_frslWarning = Nothing, _frslForwardingRules = Nothing}
-
-
--- | Informational warning which replaces the list of forwarding rules when
--- the list is empty.
-frslWarning :: Lens' ForwardingRulesScopedList (Maybe ForwardingRulesScopedListWarning)
-frslWarning
-  = lens _frslWarning (\ s a -> s{_frslWarning = a})
-
--- | A list of forwarding rules contained in this scope.
-frslForwardingRules :: Lens' ForwardingRulesScopedList [ForwardingRule]
-frslForwardingRules
-  = lens _frslForwardingRules
-      (\ s a -> s{_frslForwardingRules = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ForwardingRulesScopedList where
-        parseJSON
-          = withObject "ForwardingRulesScopedList"
-              (\ o ->
-                 ForwardingRulesScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "forwardingRules" .!= mempty))
-
-instance ToJSON ForwardingRulesScopedList where
-        toJSON ForwardingRulesScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _frslWarning,
-                  ("forwardingRules" .=) <$> _frslForwardingRules])
-
---
--- /See:/ 'instanceReference' smart constructor.
-newtype InstanceReference =
-  InstanceReference'
-    { _iInstance :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iInstance'
-instanceReference
-    :: InstanceReference
-instanceReference = InstanceReference' {_iInstance = Nothing}
-
-
--- | The URL for a specific instance.
-iInstance :: Lens' InstanceReference (Maybe Text)
-iInstance
-  = lens _iInstance (\ s a -> s{_iInstance = a})
-
-instance FromJSON InstanceReference where
-        parseJSON
-          = withObject "InstanceReference"
-              (\ o -> InstanceReference' <$> (o .:? "instance"))
-
-instance ToJSON InstanceReference where
-        toJSON InstanceReference'{..}
-          = object (catMaybes [("instance" .=) <$> _iInstance])
-
---
--- /See:/ 'operationAggregatedList' smart constructor.
-data OperationAggregatedList =
-  OperationAggregatedList'
-    { _oalNextPageToken :: !(Maybe Text)
-    , _oalKind          :: !Text
-    , _oalItems         :: !(Maybe OperationAggregatedListItems)
-    , _oalSelfLink      :: !(Maybe Text)
-    , _oalWarning       :: !(Maybe OperationAggregatedListWarning)
-    , _oalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oalNextPageToken'
---
--- * 'oalKind'
---
--- * 'oalItems'
---
--- * 'oalSelfLink'
---
--- * 'oalWarning'
---
--- * 'oalId'
-operationAggregatedList
-    :: OperationAggregatedList
-operationAggregatedList =
-  OperationAggregatedList'
-    { _oalNextPageToken = Nothing
-    , _oalKind = "compute#operationAggregatedList"
-    , _oalItems = Nothing
-    , _oalSelfLink = Nothing
-    , _oalWarning = Nothing
-    , _oalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-oalNextPageToken :: Lens' OperationAggregatedList (Maybe Text)
-oalNextPageToken
-  = lens _oalNextPageToken
-      (\ s a -> s{_oalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#operationAggregatedList
--- for aggregated lists of operations.
-oalKind :: Lens' OperationAggregatedList Text
-oalKind = lens _oalKind (\ s a -> s{_oalKind = a})
-
--- | [Output Only] A map of scoped operation lists.
-oalItems :: Lens' OperationAggregatedList (Maybe OperationAggregatedListItems)
-oalItems = lens _oalItems (\ s a -> s{_oalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-oalSelfLink :: Lens' OperationAggregatedList (Maybe Text)
-oalSelfLink
-  = lens _oalSelfLink (\ s a -> s{_oalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-oalWarning :: Lens' OperationAggregatedList (Maybe OperationAggregatedListWarning)
-oalWarning
-  = lens _oalWarning (\ s a -> s{_oalWarning = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-oalId :: Lens' OperationAggregatedList (Maybe Text)
-oalId = lens _oalId (\ s a -> s{_oalId = a})
-
-instance FromJSON OperationAggregatedList where
-        parseJSON
-          = withObject "OperationAggregatedList"
-              (\ o ->
-                 OperationAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#operationAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON OperationAggregatedList where
-        toJSON OperationAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _oalNextPageToken,
-                  Just ("kind" .= _oalKind),
-                  ("items" .=) <$> _oalItems,
-                  ("selfLink" .=) <$> _oalSelfLink,
-                  ("warning" .=) <$> _oalWarning,
-                  ("id" .=) <$> _oalId])
-
---
--- /See:/ 'operationsScopedList' smart constructor.
-data OperationsScopedList =
-  OperationsScopedList'
-    { _oslWarning    :: !(Maybe OperationsScopedListWarning)
-    , _oslOperations :: !(Maybe [Operation])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oslWarning'
---
--- * 'oslOperations'
-operationsScopedList
-    :: OperationsScopedList
-operationsScopedList =
-  OperationsScopedList' {_oslWarning = Nothing, _oslOperations = Nothing}
-
-
--- | [Output Only] Informational warning which replaces the list of
--- operations when the list is empty.
-oslWarning :: Lens' OperationsScopedList (Maybe OperationsScopedListWarning)
-oslWarning
-  = lens _oslWarning (\ s a -> s{_oslWarning = a})
-
--- | [Output Only] A list of operations contained in this scope.
-oslOperations :: Lens' OperationsScopedList [Operation]
-oslOperations
-  = lens _oslOperations
-      (\ s a -> s{_oslOperations = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON OperationsScopedList where
-        parseJSON
-          = withObject "OperationsScopedList"
-              (\ o ->
-                 OperationsScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "operations" .!= mempty))
-
-instance ToJSON OperationsScopedList where
-        toJSON OperationsScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _oslWarning,
-                  ("operations" .=) <$> _oslOperations])
-
--- | The named port. For example: .
---
--- /See:/ 'namedPort' smart constructor.
-data NamedPort =
-  NamedPort'
-    { _npName :: !(Maybe Text)
-    , _npPort :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NamedPort' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'npName'
---
--- * 'npPort'
-namedPort
-    :: NamedPort
-namedPort = NamedPort' {_npName = Nothing, _npPort = Nothing}
-
-
--- | The name for this named port. The name must be 1-63 characters long, and
--- comply with RFC1035.
-npName :: Lens' NamedPort (Maybe Text)
-npName = lens _npName (\ s a -> s{_npName = a})
-
--- | The port number, which can be a value between 1 and 65535.
-npPort :: Lens' NamedPort (Maybe Int32)
-npPort
-  = lens _npPort (\ s a -> s{_npPort = a}) .
-      mapping _Coerce
-
-instance FromJSON NamedPort where
-        parseJSON
-          = withObject "NamedPort"
-              (\ o ->
-                 NamedPort' <$> (o .:? "name") <*> (o .:? "port"))
-
-instance ToJSON NamedPort where
-        toJSON NamedPort'{..}
-          = object
-              (catMaybes
-                 [("name" .=) <$> _npName, ("port" .=) <$> _npPort])
-
---
--- /See:/ 'networkEndpointGroupsListEndpointsRequest' smart constructor.
-newtype NetworkEndpointGroupsListEndpointsRequest =
-  NetworkEndpointGroupsListEndpointsRequest'
-    { _neglerHealthStatus :: Maybe NetworkEndpointGroupsListEndpointsRequestHealthStatus
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsListEndpointsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglerHealthStatus'
-networkEndpointGroupsListEndpointsRequest
-    :: NetworkEndpointGroupsListEndpointsRequest
-networkEndpointGroupsListEndpointsRequest =
-  NetworkEndpointGroupsListEndpointsRequest' {_neglerHealthStatus = Nothing}
-
-
--- | Optional query parameter for showing the health status of each network
--- endpoint. Valid options are SKIP or SHOW. If you don\'t specifiy this
--- parameter, the health status of network endpoints will not be provided.
-neglerHealthStatus :: Lens' NetworkEndpointGroupsListEndpointsRequest (Maybe NetworkEndpointGroupsListEndpointsRequestHealthStatus)
-neglerHealthStatus
-  = lens _neglerHealthStatus
-      (\ s a -> s{_neglerHealthStatus = a})
-
-instance FromJSON
-           NetworkEndpointGroupsListEndpointsRequest
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsListEndpointsRequest"
-              (\ o ->
-                 NetworkEndpointGroupsListEndpointsRequest' <$>
-                   (o .:? "healthStatus"))
-
-instance ToJSON
-           NetworkEndpointGroupsListEndpointsRequest
-         where
-        toJSON NetworkEndpointGroupsListEndpointsRequest'{..}
-          = object
-              (catMaybes
-                 [("healthStatus" .=) <$> _neglerHealthStatus])
-
---
--- /See:/ 'subnetworkAggregatedListWarningDataItem' smart constructor.
-data SubnetworkAggregatedListWarningDataItem =
-  SubnetworkAggregatedListWarningDataItem'
-    { _salwdiValue :: !(Maybe Text)
-    , _salwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'salwdiValue'
---
--- * 'salwdiKey'
-subnetworkAggregatedListWarningDataItem
-    :: SubnetworkAggregatedListWarningDataItem
-subnetworkAggregatedListWarningDataItem =
-  SubnetworkAggregatedListWarningDataItem'
-    {_salwdiValue = Nothing, _salwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-salwdiValue :: Lens' SubnetworkAggregatedListWarningDataItem (Maybe Text)
-salwdiValue
-  = lens _salwdiValue (\ s a -> s{_salwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-salwdiKey :: Lens' SubnetworkAggregatedListWarningDataItem (Maybe Text)
-salwdiKey
-  = lens _salwdiKey (\ s a -> s{_salwdiKey = a})
-
-instance FromJSON
-           SubnetworkAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "SubnetworkAggregatedListWarningDataItem"
-              (\ o ->
-                 SubnetworkAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           SubnetworkAggregatedListWarningDataItem
-         where
-        toJSON SubnetworkAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _salwdiValue,
-                  ("key" .=) <$> _salwdiKey])
-
---
--- /See:/ 'interconnectDiagnosticsLinkStatus' smart constructor.
-data InterconnectDiagnosticsLinkStatus =
-  InterconnectDiagnosticsLinkStatus'
-    { _idlsLacpStatus               :: !(Maybe InterconnectDiagnosticsLinkLACPStatus)
-    , _idlsReceivingOpticalPower    :: !(Maybe InterconnectDiagnosticsLinkOpticalPower)
-    , _idlsGoogleDemarc             :: !(Maybe Text)
-    , _idlsCircuitId                :: !(Maybe Text)
-    , _idlsArpCaches                :: !(Maybe [InterconnectDiagnosticsARPEntry])
-    , _idlsTransmittingOpticalPower :: !(Maybe InterconnectDiagnosticsLinkOpticalPower)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectDiagnosticsLinkStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idlsLacpStatus'
---
--- * 'idlsReceivingOpticalPower'
---
--- * 'idlsGoogleDemarc'
---
--- * 'idlsCircuitId'
---
--- * 'idlsArpCaches'
---
--- * 'idlsTransmittingOpticalPower'
-interconnectDiagnosticsLinkStatus
-    :: InterconnectDiagnosticsLinkStatus
-interconnectDiagnosticsLinkStatus =
-  InterconnectDiagnosticsLinkStatus'
-    { _idlsLacpStatus = Nothing
-    , _idlsReceivingOpticalPower = Nothing
-    , _idlsGoogleDemarc = Nothing
-    , _idlsCircuitId = Nothing
-    , _idlsArpCaches = Nothing
-    , _idlsTransmittingOpticalPower = Nothing
-    }
-
-
-idlsLacpStatus :: Lens' InterconnectDiagnosticsLinkStatus (Maybe InterconnectDiagnosticsLinkLACPStatus)
-idlsLacpStatus
-  = lens _idlsLacpStatus
-      (\ s a -> s{_idlsLacpStatus = a})
-
--- | An InterconnectDiagnostics.LinkOpticalPower object, describing the
--- current value and status of the received light level.
-idlsReceivingOpticalPower :: Lens' InterconnectDiagnosticsLinkStatus (Maybe InterconnectDiagnosticsLinkOpticalPower)
-idlsReceivingOpticalPower
-  = lens _idlsReceivingOpticalPower
-      (\ s a -> s{_idlsReceivingOpticalPower = a})
-
--- | The Demarc address assigned by Google and provided in the LoA.
-idlsGoogleDemarc :: Lens' InterconnectDiagnosticsLinkStatus (Maybe Text)
-idlsGoogleDemarc
-  = lens _idlsGoogleDemarc
-      (\ s a -> s{_idlsGoogleDemarc = a})
-
--- | The unique ID for this link assigned during turn up by Google.
-idlsCircuitId :: Lens' InterconnectDiagnosticsLinkStatus (Maybe Text)
-idlsCircuitId
-  = lens _idlsCircuitId
-      (\ s a -> s{_idlsCircuitId = a})
-
--- | A list of InterconnectDiagnostics.ARPEntry objects, describing the ARP
--- neighbor entries seen on this link. This will be empty if the link is
--- bundled
-idlsArpCaches :: Lens' InterconnectDiagnosticsLinkStatus [InterconnectDiagnosticsARPEntry]
-idlsArpCaches
-  = lens _idlsArpCaches
-      (\ s a -> s{_idlsArpCaches = a})
-      . _Default
-      . _Coerce
-
--- | An InterconnectDiagnostics.LinkOpticalPower object, describing the
--- current value and status of the transmitted light level.
-idlsTransmittingOpticalPower :: Lens' InterconnectDiagnosticsLinkStatus (Maybe InterconnectDiagnosticsLinkOpticalPower)
-idlsTransmittingOpticalPower
-  = lens _idlsTransmittingOpticalPower
-      (\ s a -> s{_idlsTransmittingOpticalPower = a})
-
-instance FromJSON InterconnectDiagnosticsLinkStatus
-         where
-        parseJSON
-          = withObject "InterconnectDiagnosticsLinkStatus"
-              (\ o ->
-                 InterconnectDiagnosticsLinkStatus' <$>
-                   (o .:? "lacpStatus") <*>
-                     (o .:? "receivingOpticalPower")
-                     <*> (o .:? "googleDemarc")
-                     <*> (o .:? "circuitId")
-                     <*> (o .:? "arpCaches" .!= mempty)
-                     <*> (o .:? "transmittingOpticalPower"))
-
-instance ToJSON InterconnectDiagnosticsLinkStatus
-         where
-        toJSON InterconnectDiagnosticsLinkStatus'{..}
-          = object
-              (catMaybes
-                 [("lacpStatus" .=) <$> _idlsLacpStatus,
-                  ("receivingOpticalPower" .=) <$>
-                    _idlsReceivingOpticalPower,
-                  ("googleDemarc" .=) <$> _idlsGoogleDemarc,
-                  ("circuitId" .=) <$> _idlsCircuitId,
-                  ("arpCaches" .=) <$> _idlsArpCaches,
-                  ("transmittingOpticalPower" .=) <$>
-                    _idlsTransmittingOpticalPower])
-
---
--- /See:/ 'backendServiceReference' smart constructor.
-newtype BackendServiceReference =
-  BackendServiceReference'
-    { _bsrBackendService :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsrBackendService'
-backendServiceReference
-    :: BackendServiceReference
-backendServiceReference =
-  BackendServiceReference' {_bsrBackendService = Nothing}
-
-
-bsrBackendService :: Lens' BackendServiceReference (Maybe Text)
-bsrBackendService
-  = lens _bsrBackendService
-      (\ s a -> s{_bsrBackendService = a})
-
-instance FromJSON BackendServiceReference where
-        parseJSON
-          = withObject "BackendServiceReference"
-              (\ o ->
-                 BackendServiceReference' <$>
-                   (o .:? "backendService"))
-
-instance ToJSON BackendServiceReference where
-        toJSON BackendServiceReference'{..}
-          = object
-              (catMaybes
-                 [("backendService" .=) <$> _bsrBackendService])
-
---
--- /See:/ 'networkEndpointGroupAggregatedListWarningDataItem' smart constructor.
-data NetworkEndpointGroupAggregatedListWarningDataItem =
-  NetworkEndpointGroupAggregatedListWarningDataItem'
-    { _negalwdiValue :: !(Maybe Text)
-    , _negalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negalwdiValue'
---
--- * 'negalwdiKey'
-networkEndpointGroupAggregatedListWarningDataItem
-    :: NetworkEndpointGroupAggregatedListWarningDataItem
-networkEndpointGroupAggregatedListWarningDataItem =
-  NetworkEndpointGroupAggregatedListWarningDataItem'
-    {_negalwdiValue = Nothing, _negalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-negalwdiValue :: Lens' NetworkEndpointGroupAggregatedListWarningDataItem (Maybe Text)
-negalwdiValue
-  = lens _negalwdiValue
-      (\ s a -> s{_negalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-negalwdiKey :: Lens' NetworkEndpointGroupAggregatedListWarningDataItem (Maybe Text)
-negalwdiKey
-  = lens _negalwdiKey (\ s a -> s{_negalwdiKey = a})
-
-instance FromJSON
-           NetworkEndpointGroupAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupAggregatedListWarningDataItem"
-              (\ o ->
-                 NetworkEndpointGroupAggregatedListWarningDataItem'
-                   <$> (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NetworkEndpointGroupAggregatedListWarningDataItem
-         where
-        toJSON
-          NetworkEndpointGroupAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _negalwdiValue,
-                  ("key" .=) <$> _negalwdiKey])
-
--- | Contains a list of TargetInstance resources.
---
--- /See:/ 'targetInstanceList' smart constructor.
-data TargetInstanceList =
-  TargetInstanceList'
-    { _tilNextPageToken :: !(Maybe Text)
-    , _tilKind          :: !Text
-    , _tilItems         :: !(Maybe [TargetInstance])
-    , _tilSelfLink      :: !(Maybe Text)
-    , _tilWarning       :: !(Maybe TargetInstanceListWarning)
-    , _tilId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tilNextPageToken'
---
--- * 'tilKind'
---
--- * 'tilItems'
---
--- * 'tilSelfLink'
---
--- * 'tilWarning'
---
--- * 'tilId'
-targetInstanceList
-    :: TargetInstanceList
-targetInstanceList =
-  TargetInstanceList'
-    { _tilNextPageToken = Nothing
-    , _tilKind = "compute#targetInstanceList"
-    , _tilItems = Nothing
-    , _tilSelfLink = Nothing
-    , _tilWarning = Nothing
-    , _tilId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tilNextPageToken :: Lens' TargetInstanceList (Maybe Text)
-tilNextPageToken
-  = lens _tilNextPageToken
-      (\ s a -> s{_tilNextPageToken = a})
-
--- | Type of resource.
-tilKind :: Lens' TargetInstanceList Text
-tilKind = lens _tilKind (\ s a -> s{_tilKind = a})
-
--- | A list of TargetInstance resources.
-tilItems :: Lens' TargetInstanceList [TargetInstance]
-tilItems
-  = lens _tilItems (\ s a -> s{_tilItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-tilSelfLink :: Lens' TargetInstanceList (Maybe Text)
-tilSelfLink
-  = lens _tilSelfLink (\ s a -> s{_tilSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tilWarning :: Lens' TargetInstanceList (Maybe TargetInstanceListWarning)
-tilWarning
-  = lens _tilWarning (\ s a -> s{_tilWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tilId :: Lens' TargetInstanceList (Maybe Text)
-tilId = lens _tilId (\ s a -> s{_tilId = a})
-
-instance FromJSON TargetInstanceList where
-        parseJSON
-          = withObject "TargetInstanceList"
-              (\ o ->
-                 TargetInstanceList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetInstanceList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetInstanceList where
-        toJSON TargetInstanceList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tilNextPageToken,
-                  Just ("kind" .= _tilKind),
-                  ("items" .=) <$> _tilItems,
-                  ("selfLink" .=) <$> _tilSelfLink,
-                  ("warning" .=) <$> _tilWarning,
-                  ("id" .=) <$> _tilId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetTCPProxyListWarning' smart constructor.
-data TargetTCPProxyListWarning =
-  TargetTCPProxyListWarning'
-    { _ttplwData    :: !(Maybe [TargetTCPProxyListWarningDataItem])
-    , _ttplwCode    :: !(Maybe TargetTCPProxyListWarningCode)
-    , _ttplwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxyListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttplwData'
---
--- * 'ttplwCode'
---
--- * 'ttplwMessage'
-targetTCPProxyListWarning
-    :: TargetTCPProxyListWarning
-targetTCPProxyListWarning =
-  TargetTCPProxyListWarning'
-    {_ttplwData = Nothing, _ttplwCode = Nothing, _ttplwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ttplwData :: Lens' TargetTCPProxyListWarning [TargetTCPProxyListWarningDataItem]
-ttplwData
-  = lens _ttplwData (\ s a -> s{_ttplwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ttplwCode :: Lens' TargetTCPProxyListWarning (Maybe TargetTCPProxyListWarningCode)
-ttplwCode
-  = lens _ttplwCode (\ s a -> s{_ttplwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ttplwMessage :: Lens' TargetTCPProxyListWarning (Maybe Text)
-ttplwMessage
-  = lens _ttplwMessage (\ s a -> s{_ttplwMessage = a})
-
-instance FromJSON TargetTCPProxyListWarning where
-        parseJSON
-          = withObject "TargetTCPProxyListWarning"
-              (\ o ->
-                 TargetTCPProxyListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetTCPProxyListWarning where
-        toJSON TargetTCPProxyListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ttplwData,
-                  ("code" .=) <$> _ttplwCode,
-                  ("message" .=) <$> _ttplwMessage])
-
---
--- /See:/ 'instanceGroupManagerAggregatedList' smart constructor.
-data InstanceGroupManagerAggregatedList =
-  InstanceGroupManagerAggregatedList'
-    { _igmalNextPageToken :: !(Maybe Text)
-    , _igmalKind          :: !Text
-    , _igmalItems         :: !(Maybe InstanceGroupManagerAggregatedListItems)
-    , _igmalSelfLink      :: !(Maybe Text)
-    , _igmalWarning       :: !(Maybe InstanceGroupManagerAggregatedListWarning)
-    , _igmalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmalNextPageToken'
---
--- * 'igmalKind'
---
--- * 'igmalItems'
---
--- * 'igmalSelfLink'
---
--- * 'igmalWarning'
---
--- * 'igmalId'
-instanceGroupManagerAggregatedList
-    :: InstanceGroupManagerAggregatedList
-instanceGroupManagerAggregatedList =
-  InstanceGroupManagerAggregatedList'
-    { _igmalNextPageToken = Nothing
-    , _igmalKind = "compute#instanceGroupManagerAggregatedList"
-    , _igmalItems = Nothing
-    , _igmalSelfLink = Nothing
-    , _igmalWarning = Nothing
-    , _igmalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-igmalNextPageToken :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)
-igmalNextPageToken
-  = lens _igmalNextPageToken
-      (\ s a -> s{_igmalNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupManagerAggregatedList for an aggregated list of
--- managed instance groups.
-igmalKind :: Lens' InstanceGroupManagerAggregatedList Text
-igmalKind
-  = lens _igmalKind (\ s a -> s{_igmalKind = a})
-
--- | A list of InstanceGroupManagersScopedList resources.
-igmalItems :: Lens' InstanceGroupManagerAggregatedList (Maybe InstanceGroupManagerAggregatedListItems)
-igmalItems
-  = lens _igmalItems (\ s a -> s{_igmalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-igmalSelfLink :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)
-igmalSelfLink
-  = lens _igmalSelfLink
-      (\ s a -> s{_igmalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-igmalWarning :: Lens' InstanceGroupManagerAggregatedList (Maybe InstanceGroupManagerAggregatedListWarning)
-igmalWarning
-  = lens _igmalWarning (\ s a -> s{_igmalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-igmalId :: Lens' InstanceGroupManagerAggregatedList (Maybe Text)
-igmalId = lens _igmalId (\ s a -> s{_igmalId = a})
-
-instance FromJSON InstanceGroupManagerAggregatedList
-         where
-        parseJSON
-          = withObject "InstanceGroupManagerAggregatedList"
-              (\ o ->
-                 InstanceGroupManagerAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#instanceGroupManagerAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceGroupManagerAggregatedList
-         where
-        toJSON InstanceGroupManagerAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _igmalNextPageToken,
-                  Just ("kind" .= _igmalKind),
-                  ("items" .=) <$> _igmalItems,
-                  ("selfLink" .=) <$> _igmalSelfLink,
-                  ("warning" .=) <$> _igmalWarning,
-                  ("id" .=) <$> _igmalId])
-
--- | A BackendBucket resource. This resource defines a Cloud Storage bucket.
---
--- /See:/ 'backendBucket' smart constructor.
-data BackendBucket =
-  BackendBucket'
-    { _bbKind              :: !Text
-    , _bbEnableCdn         :: !(Maybe Bool)
-    , _bbBucketName        :: !(Maybe Text)
-    , _bbCdnPolicy         :: !(Maybe BackendBucketCdnPolicy)
-    , _bbSelfLink          :: !(Maybe Text)
-    , _bbName              :: !(Maybe Text)
-    , _bbCreationTimestamp :: !(Maybe Text)
-    , _bbId                :: !(Maybe (Textual Word64))
-    , _bbDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucket' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbKind'
---
--- * 'bbEnableCdn'
---
--- * 'bbBucketName'
---
--- * 'bbCdnPolicy'
---
--- * 'bbSelfLink'
---
--- * 'bbName'
---
--- * 'bbCreationTimestamp'
---
--- * 'bbId'
---
--- * 'bbDescription'
-backendBucket
-    :: BackendBucket
-backendBucket =
-  BackendBucket'
-    { _bbKind = "compute#backendBucket"
-    , _bbEnableCdn = Nothing
-    , _bbBucketName = Nothing
-    , _bbCdnPolicy = Nothing
-    , _bbSelfLink = Nothing
-    , _bbName = Nothing
-    , _bbCreationTimestamp = Nothing
-    , _bbId = Nothing
-    , _bbDescription = Nothing
-    }
-
-
--- | Type of the resource.
-bbKind :: Lens' BackendBucket Text
-bbKind = lens _bbKind (\ s a -> s{_bbKind = a})
-
--- | If true, enable Cloud CDN for this BackendBucket.
-bbEnableCdn :: Lens' BackendBucket (Maybe Bool)
-bbEnableCdn
-  = lens _bbEnableCdn (\ s a -> s{_bbEnableCdn = a})
-
--- | Cloud Storage bucket name.
-bbBucketName :: Lens' BackendBucket (Maybe Text)
-bbBucketName
-  = lens _bbBucketName (\ s a -> s{_bbBucketName = a})
-
--- | Cloud CDN configuration for this BackendBucket.
-bbCdnPolicy :: Lens' BackendBucket (Maybe BackendBucketCdnPolicy)
-bbCdnPolicy
-  = lens _bbCdnPolicy (\ s a -> s{_bbCdnPolicy = a})
-
--- | [Output Only] Server-defined URL for the resource.
-bbSelfLink :: Lens' BackendBucket (Maybe Text)
-bbSelfLink
-  = lens _bbSelfLink (\ s a -> s{_bbSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-bbName :: Lens' BackendBucket (Maybe Text)
-bbName = lens _bbName (\ s a -> s{_bbName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-bbCreationTimestamp :: Lens' BackendBucket (Maybe Text)
-bbCreationTimestamp
-  = lens _bbCreationTimestamp
-      (\ s a -> s{_bbCreationTimestamp = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-bbId :: Lens' BackendBucket (Maybe Word64)
-bbId
-  = lens _bbId (\ s a -> s{_bbId = a}) .
-      mapping _Coerce
-
--- | An optional textual description of the resource; provided by the client
--- when the resource is created.
-bbDescription :: Lens' BackendBucket (Maybe Text)
-bbDescription
-  = lens _bbDescription
-      (\ s a -> s{_bbDescription = a})
-
-instance FromJSON BackendBucket where
-        parseJSON
-          = withObject "BackendBucket"
-              (\ o ->
-                 BackendBucket' <$>
-                   (o .:? "kind" .!= "compute#backendBucket") <*>
-                     (o .:? "enableCdn")
-                     <*> (o .:? "bucketName")
-                     <*> (o .:? "cdnPolicy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description"))
-
-instance ToJSON BackendBucket where
-        toJSON BackendBucket'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _bbKind),
-                  ("enableCdn" .=) <$> _bbEnableCdn,
-                  ("bucketName" .=) <$> _bbBucketName,
-                  ("cdnPolicy" .=) <$> _bbCdnPolicy,
-                  ("selfLink" .=) <$> _bbSelfLink,
-                  ("name" .=) <$> _bbName,
-                  ("creationTimestamp" .=) <$> _bbCreationTimestamp,
-                  ("id" .=) <$> _bbId,
-                  ("description" .=) <$> _bbDescription])
-
---
--- /See:/ 'projectsEnableXpnResourceRequest' smart constructor.
-newtype ProjectsEnableXpnResourceRequest =
-  ProjectsEnableXpnResourceRequest'
-    { _pexrrXpnResource :: Maybe XpnResourceId
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsEnableXpnResourceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pexrrXpnResource'
-projectsEnableXpnResourceRequest
-    :: ProjectsEnableXpnResourceRequest
-projectsEnableXpnResourceRequest =
-  ProjectsEnableXpnResourceRequest' {_pexrrXpnResource = Nothing}
-
-
--- | Service resource (a.k.a service project) ID.
-pexrrXpnResource :: Lens' ProjectsEnableXpnResourceRequest (Maybe XpnResourceId)
-pexrrXpnResource
-  = lens _pexrrXpnResource
-      (\ s a -> s{_pexrrXpnResource = a})
-
-instance FromJSON ProjectsEnableXpnResourceRequest
-         where
-        parseJSON
-          = withObject "ProjectsEnableXpnResourceRequest"
-              (\ o ->
-                 ProjectsEnableXpnResourceRequest' <$>
-                   (o .:? "xpnResource"))
-
-instance ToJSON ProjectsEnableXpnResourceRequest
-         where
-        toJSON ProjectsEnableXpnResourceRequest'{..}
-          = object
-              (catMaybes
-                 [("xpnResource" .=) <$> _pexrrXpnResource])
-
---
--- /See:/ 'targetPoolsScopedList' smart constructor.
-data TargetPoolsScopedList =
-  TargetPoolsScopedList'
-    { _tpslWarning     :: !(Maybe TargetPoolsScopedListWarning)
-    , _tpslTargetPools :: !(Maybe [TargetPool])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpslWarning'
---
--- * 'tpslTargetPools'
-targetPoolsScopedList
-    :: TargetPoolsScopedList
-targetPoolsScopedList =
-  TargetPoolsScopedList' {_tpslWarning = Nothing, _tpslTargetPools = Nothing}
-
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
-tpslWarning :: Lens' TargetPoolsScopedList (Maybe TargetPoolsScopedListWarning)
-tpslWarning
-  = lens _tpslWarning (\ s a -> s{_tpslWarning = a})
-
--- | A list of target pools contained in this scope.
-tpslTargetPools :: Lens' TargetPoolsScopedList [TargetPool]
-tpslTargetPools
-  = lens _tpslTargetPools
-      (\ s a -> s{_tpslTargetPools = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolsScopedList where
-        parseJSON
-          = withObject "TargetPoolsScopedList"
-              (\ o ->
-                 TargetPoolsScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "targetPools" .!= mempty))
-
-instance ToJSON TargetPoolsScopedList where
-        toJSON TargetPoolsScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _tpslWarning,
-                  ("targetPools" .=) <$> _tpslTargetPools])
-
--- | A list of InterconnectAttachmentsScopedList resources.
---
--- /See:/ 'interconnectAttachmentAggregatedListItems' smart constructor.
-newtype InterconnectAttachmentAggregatedListItems =
-  InterconnectAttachmentAggregatedListItems'
-    { _iaaliAddtional :: HashMap Text InterconnectAttachmentsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaaliAddtional'
-interconnectAttachmentAggregatedListItems
-    :: HashMap Text InterconnectAttachmentsScopedList -- ^ 'iaaliAddtional'
-    -> InterconnectAttachmentAggregatedListItems
-interconnectAttachmentAggregatedListItems pIaaliAddtional_ =
-  InterconnectAttachmentAggregatedListItems'
-    {_iaaliAddtional = _Coerce # pIaaliAddtional_}
-
-
--- | Name of the scope containing this set of interconnect attachments.
-iaaliAddtional :: Lens' InterconnectAttachmentAggregatedListItems (HashMap Text InterconnectAttachmentsScopedList)
-iaaliAddtional
-  = lens _iaaliAddtional
-      (\ s a -> s{_iaaliAddtional = a})
-      . _Coerce
-
-instance FromJSON
-           InterconnectAttachmentAggregatedListItems
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentAggregatedListItems"
-              (\ o ->
-                 InterconnectAttachmentAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON
-           InterconnectAttachmentAggregatedListItems
-         where
-        toJSON = toJSON . _iaaliAddtional
-
--- |
---
--- /See:/ 'instanceGroupManagerAutoHealingPolicy' smart constructor.
-data InstanceGroupManagerAutoHealingPolicy =
-  InstanceGroupManagerAutoHealingPolicy'
-    { _igmahpHealthCheck     :: !(Maybe Text)
-    , _igmahpInitialDelaySec :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerAutoHealingPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmahpHealthCheck'
---
--- * 'igmahpInitialDelaySec'
-instanceGroupManagerAutoHealingPolicy
-    :: InstanceGroupManagerAutoHealingPolicy
-instanceGroupManagerAutoHealingPolicy =
-  InstanceGroupManagerAutoHealingPolicy'
-    {_igmahpHealthCheck = Nothing, _igmahpInitialDelaySec = Nothing}
-
-
--- | The URL for the health check that signals autohealing.
-igmahpHealthCheck :: Lens' InstanceGroupManagerAutoHealingPolicy (Maybe Text)
-igmahpHealthCheck
-  = lens _igmahpHealthCheck
-      (\ s a -> s{_igmahpHealthCheck = a})
-
--- | The number of seconds that the managed instance group waits before it
--- applies autohealing policies to new instances or recently recreated
--- instances. This initial delay allows instances to initialize and run
--- their startup scripts before the instance group determines that they are
--- UNHEALTHY. This prevents the managed instance group from recreating its
--- instances prematurely. This value must be from range [0, 3600].
-igmahpInitialDelaySec :: Lens' InstanceGroupManagerAutoHealingPolicy (Maybe Int32)
-igmahpInitialDelaySec
-  = lens _igmahpInitialDelaySec
-      (\ s a -> s{_igmahpInitialDelaySec = a})
-      . mapping _Coerce
-
-instance FromJSON
-           InstanceGroupManagerAutoHealingPolicy
-         where
-        parseJSON
-          = withObject "InstanceGroupManagerAutoHealingPolicy"
-              (\ o ->
-                 InstanceGroupManagerAutoHealingPolicy' <$>
-                   (o .:? "healthCheck") <*> (o .:? "initialDelaySec"))
-
-instance ToJSON InstanceGroupManagerAutoHealingPolicy
-         where
-        toJSON InstanceGroupManagerAutoHealingPolicy'{..}
-          = object
-              (catMaybes
-                 [("healthCheck" .=) <$> _igmahpHealthCheck,
-                  ("initialDelaySec" .=) <$> _igmahpInitialDelaySec])
-
--- | Increment a streamz counter with the specified metric and field names.
--- Metric names should start with a \'\/\', generally be lowercase-only,
--- and end in \"_count\". Field names should not contain an initial slash.
--- The actual exported metric names will have \"\/iam\/policy\" prepended.
--- Field names correspond to IAM request parameters and field values are
--- their respective values. Supported field names: - \"authority\", which
--- is \"[token]\" if IAMContext.token is present, otherwise the value of
--- IAMContext.authority_selector if present, and otherwise a representation
--- of IAMContext.principal; or - \"iam_principal\", a representation of
--- IAMContext.principal even if a token or authority selector is present;
--- or - \"\" (empty string), resulting in a counter with no fields.
--- Examples: counter { metric: \"\/debug_access_count\" field:
--- \"iam_principal\" } ==> increment counter
--- \/iam\/policy\/backend_debug_access_count {iam_principal=[value of
--- IAMContext.principal]} At this time we do not support multiple field
--- names (though this may be supported in the future).
---
--- /See:/ 'logConfigCounterOptions' smart constructor.
-data LogConfigCounterOptions =
-  LogConfigCounterOptions'
-    { _lccoField  :: !(Maybe Text)
-    , _lccoMetric :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LogConfigCounterOptions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lccoField'
---
--- * 'lccoMetric'
-logConfigCounterOptions
-    :: LogConfigCounterOptions
-logConfigCounterOptions =
-  LogConfigCounterOptions' {_lccoField = Nothing, _lccoMetric = Nothing}
-
-
--- | The field value to attribute.
-lccoField :: Lens' LogConfigCounterOptions (Maybe Text)
-lccoField
-  = lens _lccoField (\ s a -> s{_lccoField = a})
-
--- | The metric to update.
-lccoMetric :: Lens' LogConfigCounterOptions (Maybe Text)
-lccoMetric
-  = lens _lccoMetric (\ s a -> s{_lccoMetric = a})
-
-instance FromJSON LogConfigCounterOptions where
-        parseJSON
-          = withObject "LogConfigCounterOptions"
-              (\ o ->
-                 LogConfigCounterOptions' <$>
-                   (o .:? "field") <*> (o .:? "metric"))
-
-instance ToJSON LogConfigCounterOptions where
-        toJSON LogConfigCounterOptions'{..}
-          = object
-              (catMaybes
-                 [("field" .=) <$> _lccoField,
-                  ("metric" .=) <$> _lccoMetric])
-
---
--- /See:/ 'instancesSetMinCPUPlatformRequest' smart constructor.
-newtype InstancesSetMinCPUPlatformRequest =
-  InstancesSetMinCPUPlatformRequest'
-    { _ismcprMinCPUPlatform :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMinCPUPlatformRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismcprMinCPUPlatform'
-instancesSetMinCPUPlatformRequest
-    :: InstancesSetMinCPUPlatformRequest
-instancesSetMinCPUPlatformRequest =
-  InstancesSetMinCPUPlatformRequest' {_ismcprMinCPUPlatform = Nothing}
-
-
--- | Minimum cpu\/platform this instance should be started at.
-ismcprMinCPUPlatform :: Lens' InstancesSetMinCPUPlatformRequest (Maybe Text)
-ismcprMinCPUPlatform
-  = lens _ismcprMinCPUPlatform
-      (\ s a -> s{_ismcprMinCPUPlatform = a})
-
-instance FromJSON InstancesSetMinCPUPlatformRequest
-         where
-        parseJSON
-          = withObject "InstancesSetMinCPUPlatformRequest"
-              (\ o ->
-                 InstancesSetMinCPUPlatformRequest' <$>
-                   (o .:? "minCpuPlatform"))
-
-instance ToJSON InstancesSetMinCPUPlatformRequest
-         where
-        toJSON InstancesSetMinCPUPlatformRequest'{..}
-          = object
-              (catMaybes
-                 [("minCpuPlatform" .=) <$> _ismcprMinCPUPlatform])
-
---
--- /See:/ 'forwardingRuleAggregatedList' smart constructor.
-data ForwardingRuleAggregatedList =
-  ForwardingRuleAggregatedList'
-    { _fralNextPageToken :: !(Maybe Text)
-    , _fralKind          :: !Text
-    , _fralItems         :: !(Maybe ForwardingRuleAggregatedListItems)
-    , _fralSelfLink      :: !(Maybe Text)
-    , _fralWarning       :: !(Maybe ForwardingRuleAggregatedListWarning)
-    , _fralId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fralNextPageToken'
---
--- * 'fralKind'
---
--- * 'fralItems'
---
--- * 'fralSelfLink'
---
--- * 'fralWarning'
---
--- * 'fralId'
-forwardingRuleAggregatedList
-    :: ForwardingRuleAggregatedList
-forwardingRuleAggregatedList =
-  ForwardingRuleAggregatedList'
-    { _fralNextPageToken = Nothing
-    , _fralKind = "compute#forwardingRuleAggregatedList"
-    , _fralItems = Nothing
-    , _fralSelfLink = Nothing
-    , _fralWarning = Nothing
-    , _fralId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-fralNextPageToken :: Lens' ForwardingRuleAggregatedList (Maybe Text)
-fralNextPageToken
-  = lens _fralNextPageToken
-      (\ s a -> s{_fralNextPageToken = a})
-
--- | [Output Only] Type of resource. Always
--- compute#forwardingRuleAggregatedList for lists of forwarding rules.
-fralKind :: Lens' ForwardingRuleAggregatedList Text
-fralKind = lens _fralKind (\ s a -> s{_fralKind = a})
-
--- | A list of ForwardingRulesScopedList resources.
-fralItems :: Lens' ForwardingRuleAggregatedList (Maybe ForwardingRuleAggregatedListItems)
-fralItems
-  = lens _fralItems (\ s a -> s{_fralItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-fralSelfLink :: Lens' ForwardingRuleAggregatedList (Maybe Text)
-fralSelfLink
-  = lens _fralSelfLink (\ s a -> s{_fralSelfLink = a})
-
--- | [Output Only] Informational warning message.
-fralWarning :: Lens' ForwardingRuleAggregatedList (Maybe ForwardingRuleAggregatedListWarning)
-fralWarning
-  = lens _fralWarning (\ s a -> s{_fralWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-fralId :: Lens' ForwardingRuleAggregatedList (Maybe Text)
-fralId = lens _fralId (\ s a -> s{_fralId = a})
-
-instance FromJSON ForwardingRuleAggregatedList where
-        parseJSON
-          = withObject "ForwardingRuleAggregatedList"
-              (\ o ->
-                 ForwardingRuleAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#forwardingRuleAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON ForwardingRuleAggregatedList where
-        toJSON ForwardingRuleAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _fralNextPageToken,
-                  Just ("kind" .= _fralKind),
-                  ("items" .=) <$> _fralItems,
-                  ("selfLink" .=) <$> _fralSelfLink,
-                  ("warning" .=) <$> _fralWarning,
-                  ("id" .=) <$> _fralId])
-
---
--- /See:/ 'targetReference' smart constructor.
-newtype TargetReference =
-  TargetReference'
-    { _trTarget :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'trTarget'
-targetReference
-    :: TargetReference
-targetReference = TargetReference' {_trTarget = Nothing}
-
-
-trTarget :: Lens' TargetReference (Maybe Text)
-trTarget = lens _trTarget (\ s a -> s{_trTarget = a})
-
-instance FromJSON TargetReference where
-        parseJSON
-          = withObject "TargetReference"
-              (\ o -> TargetReference' <$> (o .:? "target"))
-
-instance ToJSON TargetReference where
-        toJSON TargetReference'{..}
-          = object (catMaybes [("target" .=) <$> _trTarget])
-
---
--- /See:/ 'targetPoolAggregatedList' smart constructor.
-data TargetPoolAggregatedList =
-  TargetPoolAggregatedList'
-    { _tpalNextPageToken :: !(Maybe Text)
-    , _tpalKind          :: !Text
-    , _tpalItems         :: !(Maybe TargetPoolAggregatedListItems)
-    , _tpalSelfLink      :: !(Maybe Text)
-    , _tpalWarning       :: !(Maybe TargetPoolAggregatedListWarning)
-    , _tpalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpalNextPageToken'
---
--- * 'tpalKind'
---
--- * 'tpalItems'
---
--- * 'tpalSelfLink'
---
--- * 'tpalWarning'
---
--- * 'tpalId'
-targetPoolAggregatedList
-    :: TargetPoolAggregatedList
-targetPoolAggregatedList =
-  TargetPoolAggregatedList'
-    { _tpalNextPageToken = Nothing
-    , _tpalKind = "compute#targetPoolAggregatedList"
-    , _tpalItems = Nothing
-    , _tpalSelfLink = Nothing
-    , _tpalWarning = Nothing
-    , _tpalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tpalNextPageToken :: Lens' TargetPoolAggregatedList (Maybe Text)
-tpalNextPageToken
-  = lens _tpalNextPageToken
-      (\ s a -> s{_tpalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#targetPoolAggregatedList
--- for aggregated lists of target pools.
-tpalKind :: Lens' TargetPoolAggregatedList Text
-tpalKind = lens _tpalKind (\ s a -> s{_tpalKind = a})
-
--- | A list of TargetPool resources.
-tpalItems :: Lens' TargetPoolAggregatedList (Maybe TargetPoolAggregatedListItems)
-tpalItems
-  = lens _tpalItems (\ s a -> s{_tpalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-tpalSelfLink :: Lens' TargetPoolAggregatedList (Maybe Text)
-tpalSelfLink
-  = lens _tpalSelfLink (\ s a -> s{_tpalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tpalWarning :: Lens' TargetPoolAggregatedList (Maybe TargetPoolAggregatedListWarning)
-tpalWarning
-  = lens _tpalWarning (\ s a -> s{_tpalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tpalId :: Lens' TargetPoolAggregatedList (Maybe Text)
-tpalId = lens _tpalId (\ s a -> s{_tpalId = a})
-
-instance FromJSON TargetPoolAggregatedList where
-        parseJSON
-          = withObject "TargetPoolAggregatedList"
-              (\ o ->
-                 TargetPoolAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetPoolAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetPoolAggregatedList where
-        toJSON TargetPoolAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tpalNextPageToken,
-                  Just ("kind" .= _tpalKind),
-                  ("items" .=) <$> _tpalItems,
-                  ("selfLink" .=) <$> _tpalSelfLink,
-                  ("warning" .=) <$> _tpalWarning,
-                  ("id" .=) <$> _tpalId])
-
---
--- /See:/ 'operationsScopedListWarningDataItem' smart constructor.
-data OperationsScopedListWarningDataItem =
-  OperationsScopedListWarningDataItem'
-    { _oslwdiValue :: !(Maybe Text)
-    , _oslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oslwdiValue'
---
--- * 'oslwdiKey'
-operationsScopedListWarningDataItem
-    :: OperationsScopedListWarningDataItem
-operationsScopedListWarningDataItem =
-  OperationsScopedListWarningDataItem'
-    {_oslwdiValue = Nothing, _oslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-oslwdiValue :: Lens' OperationsScopedListWarningDataItem (Maybe Text)
-oslwdiValue
-  = lens _oslwdiValue (\ s a -> s{_oslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-oslwdiKey :: Lens' OperationsScopedListWarningDataItem (Maybe Text)
-oslwdiKey
-  = lens _oslwdiKey (\ s a -> s{_oslwdiKey = a})
-
-instance FromJSON OperationsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "OperationsScopedListWarningDataItem"
-              (\ o ->
-                 OperationsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON OperationsScopedListWarningDataItem
-         where
-        toJSON OperationsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _oslwdiValue,
-                  ("key" .=) <$> _oslwdiKey])
-
---
--- /See:/ 'globalSetLabelsRequest' smart constructor.
-data GlobalSetLabelsRequest =
-  GlobalSetLabelsRequest'
-    { _gslrLabels           :: !(Maybe GlobalSetLabelsRequestLabels)
-    , _gslrLabelFingerprint :: !(Maybe Bytes)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalSetLabelsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gslrLabels'
---
--- * 'gslrLabelFingerprint'
-globalSetLabelsRequest
-    :: GlobalSetLabelsRequest
-globalSetLabelsRequest =
-  GlobalSetLabelsRequest'
-    {_gslrLabels = Nothing, _gslrLabelFingerprint = Nothing}
-
-
--- | A list of labels to apply for this resource. Each label key & value must
--- comply with RFC1035. Specifically, the name must be 1-63 characters long
--- and match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which
--- means the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash. For example, \"webserver-frontend\":
--- \"images\". A label value can also be empty (e.g. \"my-label\": \"\").
-gslrLabels :: Lens' GlobalSetLabelsRequest (Maybe GlobalSetLabelsRequestLabels)
-gslrLabels
-  = lens _gslrLabels (\ s a -> s{_gslrLabels = a})
-
--- | The fingerprint of the previous set of labels for this resource, used to
--- detect conflicts. The fingerprint is initially generated by Compute
--- Engine and changes after every request to modify or update labels. You
--- must always provide an up-to-date fingerprint hash when updating or
--- changing labels, otherwise the request will fail with error 412
--- conditionNotMet. Make a get() request to the resource to get the latest
--- fingerprint.
-gslrLabelFingerprint :: Lens' GlobalSetLabelsRequest (Maybe ByteString)
-gslrLabelFingerprint
-  = lens _gslrLabelFingerprint
-      (\ s a -> s{_gslrLabelFingerprint = a})
-      . mapping _Bytes
-
-instance FromJSON GlobalSetLabelsRequest where
-        parseJSON
-          = withObject "GlobalSetLabelsRequest"
-              (\ o ->
-                 GlobalSetLabelsRequest' <$>
-                   (o .:? "labels") <*> (o .:? "labelFingerprint"))
-
-instance ToJSON GlobalSetLabelsRequest where
-        toJSON GlobalSetLabelsRequest'{..}
-          = object
-              (catMaybes
-                 [("labels" .=) <$> _gslrLabels,
-                  ("labelFingerprint" .=) <$> _gslrLabelFingerprint])
-
--- | A TargetPool resource. This resource defines a pool of instances, an
--- associated HttpHealthCheck resource, and the fallback target pool. (==
--- resource_for beta.targetPools ==) (== resource_for v1.targetPools ==)
---
--- /See:/ 'targetPool' smart constructor.
-data TargetPool =
-  TargetPool'
-    { _tpSessionAffinity   :: !(Maybe TargetPoolSessionAffinity)
-    , _tpBackupPool        :: !(Maybe Text)
-    , _tpKind              :: !Text
-    , _tpSelfLink          :: !(Maybe Text)
-    , _tpName              :: !(Maybe Text)
-    , _tpCreationTimestamp :: !(Maybe Text)
-    , _tpInstances         :: !(Maybe [Text])
-    , _tpId                :: !(Maybe (Textual Word64))
-    , _tpFailoverRatio     :: !(Maybe (Textual Double))
-    , _tpRegion            :: !(Maybe Text)
-    , _tpDescription       :: !(Maybe Text)
-    , _tpHealthChecks      :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPool' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpSessionAffinity'
---
--- * 'tpBackupPool'
---
--- * 'tpKind'
---
--- * 'tpSelfLink'
---
--- * 'tpName'
---
--- * 'tpCreationTimestamp'
---
--- * 'tpInstances'
---
--- * 'tpId'
---
--- * 'tpFailoverRatio'
---
--- * 'tpRegion'
---
--- * 'tpDescription'
---
--- * 'tpHealthChecks'
-targetPool
-    :: TargetPool
-targetPool =
-  TargetPool'
-    { _tpSessionAffinity = Nothing
-    , _tpBackupPool = Nothing
-    , _tpKind = "compute#targetPool"
-    , _tpSelfLink = Nothing
-    , _tpName = Nothing
-    , _tpCreationTimestamp = Nothing
-    , _tpInstances = Nothing
-    , _tpId = Nothing
-    , _tpFailoverRatio = Nothing
-    , _tpRegion = Nothing
-    , _tpDescription = Nothing
-    , _tpHealthChecks = Nothing
-    }
-
-
--- | Session affinity option, must be one of the following values: NONE:
--- Connections from the same client IP may go to any instance in the pool.
--- CLIENT_IP: Connections from the same client IP will go to the same
--- instance in the pool while that instance remains healthy.
--- CLIENT_IP_PROTO: Connections from the same client IP with the same IP
--- protocol will go to the same instance in the pool while that instance
--- remains healthy.
-tpSessionAffinity :: Lens' TargetPool (Maybe TargetPoolSessionAffinity)
-tpSessionAffinity
-  = lens _tpSessionAffinity
-      (\ s a -> s{_tpSessionAffinity = a})
-
--- | This field is applicable only when the containing target pool is serving
--- a forwarding rule as the primary pool, and its failoverRatio field is
--- properly set to a value between [0, 1]. backupPool and failoverRatio
--- together define the fallback behavior of the primary target pool: if the
--- ratio of the healthy instances in the primary pool is at or below
--- failoverRatio, traffic arriving at the load-balanced IP will be directed
--- to the backup pool. In case where failoverRatio and backupPool are not
--- set, or all the instances in the backup pool are unhealthy, the traffic
--- will be directed back to the primary pool in the \"force\" mode, where
--- traffic will be spread to the healthy instances with the best effort, or
--- to all instances when no instance is healthy.
-tpBackupPool :: Lens' TargetPool (Maybe Text)
-tpBackupPool
-  = lens _tpBackupPool (\ s a -> s{_tpBackupPool = a})
-
--- | [Output Only] Type of the resource. Always compute#targetPool for target
--- pools.
-tpKind :: Lens' TargetPool Text
-tpKind = lens _tpKind (\ s a -> s{_tpKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-tpSelfLink :: Lens' TargetPool (Maybe Text)
-tpSelfLink
-  = lens _tpSelfLink (\ s a -> s{_tpSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-tpName :: Lens' TargetPool (Maybe Text)
-tpName = lens _tpName (\ s a -> s{_tpName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-tpCreationTimestamp :: Lens' TargetPool (Maybe Text)
-tpCreationTimestamp
-  = lens _tpCreationTimestamp
-      (\ s a -> s{_tpCreationTimestamp = a})
-
--- | A list of resource URLs to the virtual machine instances serving this
--- pool. They must live in zones contained in the same region as this pool.
-tpInstances :: Lens' TargetPool [Text]
-tpInstances
-  = lens _tpInstances (\ s a -> s{_tpInstances = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-tpId :: Lens' TargetPool (Maybe Word64)
-tpId
-  = lens _tpId (\ s a -> s{_tpId = a}) .
-      mapping _Coerce
-
--- | This field is applicable only when the containing target pool is serving
--- a forwarding rule as the primary pool (i.e., not as a backup pool to
--- some other target pool). The value of the field must be in [0, 1]. If
--- set, backupPool must also be set. They together define the fallback
--- behavior of the primary target pool: if the ratio of the healthy
--- instances in the primary pool is at or below this number, traffic
--- arriving at the load-balanced IP will be directed to the backup pool. In
--- case where failoverRatio is not set or all the instances in the backup
--- pool are unhealthy, the traffic will be directed back to the primary
--- pool in the \"force\" mode, where traffic will be spread to the healthy
--- instances with the best effort, or to all instances when no instance is
--- healthy.
-tpFailoverRatio :: Lens' TargetPool (Maybe Double)
-tpFailoverRatio
-  = lens _tpFailoverRatio
-      (\ s a -> s{_tpFailoverRatio = a})
-      . mapping _Coerce
-
--- | [Output Only] URL of the region where the target pool resides.
-tpRegion :: Lens' TargetPool (Maybe Text)
-tpRegion = lens _tpRegion (\ s a -> s{_tpRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-tpDescription :: Lens' TargetPool (Maybe Text)
-tpDescription
-  = lens _tpDescription
-      (\ s a -> s{_tpDescription = a})
-
--- | The URL of the HttpHealthCheck resource. A member instance in this pool
--- is considered healthy if and only if the health checks pass. An empty
--- list means all member instances will be considered healthy at all times.
--- Only HttpHealthChecks are supported. Only one health check may be
--- specified.
-tpHealthChecks :: Lens' TargetPool [Text]
-tpHealthChecks
-  = lens _tpHealthChecks
-      (\ s a -> s{_tpHealthChecks = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPool where
-        parseJSON
-          = withObject "TargetPool"
-              (\ o ->
-                 TargetPool' <$>
-                   (o .:? "sessionAffinity") <*> (o .:? "backupPool")
-                     <*> (o .:? "kind" .!= "compute#targetPool")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "instances" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "failoverRatio")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "healthChecks" .!= mempty))
-
-instance ToJSON TargetPool where
-        toJSON TargetPool'{..}
-          = object
-              (catMaybes
-                 [("sessionAffinity" .=) <$> _tpSessionAffinity,
-                  ("backupPool" .=) <$> _tpBackupPool,
-                  Just ("kind" .= _tpKind),
-                  ("selfLink" .=) <$> _tpSelfLink,
-                  ("name" .=) <$> _tpName,
-                  ("creationTimestamp" .=) <$> _tpCreationTimestamp,
-                  ("instances" .=) <$> _tpInstances,
-                  ("id" .=) <$> _tpId,
-                  ("failoverRatio" .=) <$> _tpFailoverRatio,
-                  ("region" .=) <$> _tpRegion,
-                  ("description" .=) <$> _tpDescription,
-                  ("healthChecks" .=) <$> _tpHealthChecks])
-
--- | Contains a list of images.
---
--- /See:/ 'imageList' smart constructor.
-data ImageList =
-  ImageList'
-    { _ilNextPageToken :: !(Maybe Text)
-    , _ilKind          :: !Text
-    , _ilItems         :: !(Maybe [Image])
-    , _ilSelfLink      :: !(Maybe Text)
-    , _ilWarning       :: !(Maybe ImageListWarning)
-    , _ilId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImageList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilNextPageToken'
---
--- * 'ilKind'
---
--- * 'ilItems'
---
--- * 'ilSelfLink'
---
--- * 'ilWarning'
---
--- * 'ilId'
-imageList
-    :: ImageList
-imageList =
-  ImageList'
-    { _ilNextPageToken = Nothing
-    , _ilKind = "compute#imageList"
-    , _ilItems = Nothing
-    , _ilSelfLink = Nothing
-    , _ilWarning = Nothing
-    , _ilId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ilNextPageToken :: Lens' ImageList (Maybe Text)
-ilNextPageToken
-  = lens _ilNextPageToken
-      (\ s a -> s{_ilNextPageToken = a})
-
--- | Type of resource.
-ilKind :: Lens' ImageList Text
-ilKind = lens _ilKind (\ s a -> s{_ilKind = a})
-
--- | A list of Image resources.
-ilItems :: Lens' ImageList [Image]
-ilItems
-  = lens _ilItems (\ s a -> s{_ilItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ilSelfLink :: Lens' ImageList (Maybe Text)
-ilSelfLink
-  = lens _ilSelfLink (\ s a -> s{_ilSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ilWarning :: Lens' ImageList (Maybe ImageListWarning)
-ilWarning
-  = lens _ilWarning (\ s a -> s{_ilWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ilId :: Lens' ImageList (Maybe Text)
-ilId = lens _ilId (\ s a -> s{_ilId = a})
-
-instance FromJSON ImageList where
-        parseJSON
-          = withObject "ImageList"
-              (\ o ->
-                 ImageList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#imageList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON ImageList where
-        toJSON ImageList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ilNextPageToken,
-                  Just ("kind" .= _ilKind), ("items" .=) <$> _ilItems,
-                  ("selfLink" .=) <$> _ilSelfLink,
-                  ("warning" .=) <$> _ilWarning, ("id" .=) <$> _ilId])
-
---
--- /See:/ 'operationAggregatedListWarningDataItem' smart constructor.
-data OperationAggregatedListWarningDataItem =
-  OperationAggregatedListWarningDataItem'
-    { _oalwdiValue :: !(Maybe Text)
-    , _oalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oalwdiValue'
---
--- * 'oalwdiKey'
-operationAggregatedListWarningDataItem
-    :: OperationAggregatedListWarningDataItem
-operationAggregatedListWarningDataItem =
-  OperationAggregatedListWarningDataItem'
-    {_oalwdiValue = Nothing, _oalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-oalwdiValue :: Lens' OperationAggregatedListWarningDataItem (Maybe Text)
-oalwdiValue
-  = lens _oalwdiValue (\ s a -> s{_oalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-oalwdiKey :: Lens' OperationAggregatedListWarningDataItem (Maybe Text)
-oalwdiKey
-  = lens _oalwdiKey (\ s a -> s{_oalwdiKey = a})
-
-instance FromJSON
-           OperationAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "OperationAggregatedListWarningDataItem"
-              (\ o ->
-                 OperationAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           OperationAggregatedListWarningDataItem
-         where
-        toJSON OperationAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _oalwdiValue,
-                  ("key" .=) <$> _oalwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'forwardingRuleListWarning' smart constructor.
-data ForwardingRuleListWarning =
-  ForwardingRuleListWarning'
-    { _frlwData    :: !(Maybe [ForwardingRuleListWarningDataItem])
-    , _frlwCode    :: !(Maybe ForwardingRuleListWarningCode)
-    , _frlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frlwData'
---
--- * 'frlwCode'
---
--- * 'frlwMessage'
-forwardingRuleListWarning
-    :: ForwardingRuleListWarning
-forwardingRuleListWarning =
-  ForwardingRuleListWarning'
-    {_frlwData = Nothing, _frlwCode = Nothing, _frlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-frlwData :: Lens' ForwardingRuleListWarning [ForwardingRuleListWarningDataItem]
-frlwData
-  = lens _frlwData (\ s a -> s{_frlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-frlwCode :: Lens' ForwardingRuleListWarning (Maybe ForwardingRuleListWarningCode)
-frlwCode = lens _frlwCode (\ s a -> s{_frlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-frlwMessage :: Lens' ForwardingRuleListWarning (Maybe Text)
-frlwMessage
-  = lens _frlwMessage (\ s a -> s{_frlwMessage = a})
-
-instance FromJSON ForwardingRuleListWarning where
-        parseJSON
-          = withObject "ForwardingRuleListWarning"
-              (\ o ->
-                 ForwardingRuleListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON ForwardingRuleListWarning where
-        toJSON ForwardingRuleListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _frlwData,
-                  ("code" .=) <$> _frlwCode,
-                  ("message" .=) <$> _frlwMessage])
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
---
--- /See:/ 'vpnTunnelsScopedListWarning' smart constructor.
-data VPNTunnelsScopedListWarning =
-  VPNTunnelsScopedListWarning'
-    { _vtslwData    :: !(Maybe [VPNTunnelsScopedListWarningDataItem])
-    , _vtslwCode    :: !(Maybe VPNTunnelsScopedListWarningCode)
-    , _vtslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtslwData'
---
--- * 'vtslwCode'
---
--- * 'vtslwMessage'
-vpnTunnelsScopedListWarning
-    :: VPNTunnelsScopedListWarning
-vpnTunnelsScopedListWarning =
-  VPNTunnelsScopedListWarning'
-    {_vtslwData = Nothing, _vtslwCode = Nothing, _vtslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-vtslwData :: Lens' VPNTunnelsScopedListWarning [VPNTunnelsScopedListWarningDataItem]
-vtslwData
-  = lens _vtslwData (\ s a -> s{_vtslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-vtslwCode :: Lens' VPNTunnelsScopedListWarning (Maybe VPNTunnelsScopedListWarningCode)
-vtslwCode
-  = lens _vtslwCode (\ s a -> s{_vtslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-vtslwMessage :: Lens' VPNTunnelsScopedListWarning (Maybe Text)
-vtslwMessage
-  = lens _vtslwMessage (\ s a -> s{_vtslwMessage = a})
-
-instance FromJSON VPNTunnelsScopedListWarning where
-        parseJSON
-          = withObject "VPNTunnelsScopedListWarning"
-              (\ o ->
-                 VPNTunnelsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON VPNTunnelsScopedListWarning where
-        toJSON VPNTunnelsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _vtslwData,
-                  ("code" .=) <$> _vtslwCode,
-                  ("message" .=) <$> _vtslwMessage])
-
---
--- /See:/ 'regionDisksResizeRequest' smart constructor.
-newtype RegionDisksResizeRequest =
-  RegionDisksResizeRequest'
-    { _rdrrSizeGb :: Maybe (Textual Int64)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksResizeRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdrrSizeGb'
-regionDisksResizeRequest
-    :: RegionDisksResizeRequest
-regionDisksResizeRequest = RegionDisksResizeRequest' {_rdrrSizeGb = Nothing}
-
-
--- | The new size of the regional persistent disk, which is specified in GB.
-rdrrSizeGb :: Lens' RegionDisksResizeRequest (Maybe Int64)
-rdrrSizeGb
-  = lens _rdrrSizeGb (\ s a -> s{_rdrrSizeGb = a}) .
-      mapping _Coerce
-
-instance FromJSON RegionDisksResizeRequest where
-        parseJSON
-          = withObject "RegionDisksResizeRequest"
-              (\ o ->
-                 RegionDisksResizeRequest' <$> (o .:? "sizeGb"))
-
-instance ToJSON RegionDisksResizeRequest where
-        toJSON RegionDisksResizeRequest'{..}
-          = object (catMaybes [("sizeGb" .=) <$> _rdrrSizeGb])
-
--- | [Output Only] An informational warning that appears when the node types
--- list is empty.
---
--- /See:/ 'nodeTypesScopedListWarning' smart constructor.
-data NodeTypesScopedListWarning =
-  NodeTypesScopedListWarning'
-    { _ntslwData    :: !(Maybe [NodeTypesScopedListWarningDataItem])
-    , _ntslwCode    :: !(Maybe NodeTypesScopedListWarningCode)
-    , _ntslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntslwData'
---
--- * 'ntslwCode'
---
--- * 'ntslwMessage'
-nodeTypesScopedListWarning
-    :: NodeTypesScopedListWarning
-nodeTypesScopedListWarning =
-  NodeTypesScopedListWarning'
-    {_ntslwData = Nothing, _ntslwCode = Nothing, _ntslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ntslwData :: Lens' NodeTypesScopedListWarning [NodeTypesScopedListWarningDataItem]
-ntslwData
-  = lens _ntslwData (\ s a -> s{_ntslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ntslwCode :: Lens' NodeTypesScopedListWarning (Maybe NodeTypesScopedListWarningCode)
-ntslwCode
-  = lens _ntslwCode (\ s a -> s{_ntslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ntslwMessage :: Lens' NodeTypesScopedListWarning (Maybe Text)
-ntslwMessage
-  = lens _ntslwMessage (\ s a -> s{_ntslwMessage = a})
-
-instance FromJSON NodeTypesScopedListWarning where
-        parseJSON
-          = withObject "NodeTypesScopedListWarning"
-              (\ o ->
-                 NodeTypesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTypesScopedListWarning where
-        toJSON NodeTypesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ntslwData,
-                  ("code" .=) <$> _ntslwCode,
-                  ("message" .=) <$> _ntslwMessage])
-
---
--- /See:/ 'nodeTemplateNodeTypeFlexibility' smart constructor.
-data NodeTemplateNodeTypeFlexibility =
-  NodeTemplateNodeTypeFlexibility'
-    { _ntntfMemory   :: !(Maybe Text)
-    , _ntntfCPUs     :: !(Maybe Text)
-    , _ntntfLocalSsd :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateNodeTypeFlexibility' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntntfMemory'
---
--- * 'ntntfCPUs'
---
--- * 'ntntfLocalSsd'
-nodeTemplateNodeTypeFlexibility
-    :: NodeTemplateNodeTypeFlexibility
-nodeTemplateNodeTypeFlexibility =
-  NodeTemplateNodeTypeFlexibility'
-    {_ntntfMemory = Nothing, _ntntfCPUs = Nothing, _ntntfLocalSsd = Nothing}
-
-
-ntntfMemory :: Lens' NodeTemplateNodeTypeFlexibility (Maybe Text)
-ntntfMemory
-  = lens _ntntfMemory (\ s a -> s{_ntntfMemory = a})
-
-ntntfCPUs :: Lens' NodeTemplateNodeTypeFlexibility (Maybe Text)
-ntntfCPUs
-  = lens _ntntfCPUs (\ s a -> s{_ntntfCPUs = a})
-
-ntntfLocalSsd :: Lens' NodeTemplateNodeTypeFlexibility (Maybe Text)
-ntntfLocalSsd
-  = lens _ntntfLocalSsd
-      (\ s a -> s{_ntntfLocalSsd = a})
-
-instance FromJSON NodeTemplateNodeTypeFlexibility
-         where
-        parseJSON
-          = withObject "NodeTemplateNodeTypeFlexibility"
-              (\ o ->
-                 NodeTemplateNodeTypeFlexibility' <$>
-                   (o .:? "memory") <*> (o .:? "cpus") <*>
-                     (o .:? "localSsd"))
-
-instance ToJSON NodeTemplateNodeTypeFlexibility where
-        toJSON NodeTemplateNodeTypeFlexibility'{..}
-          = object
-              (catMaybes
-                 [("memory" .=) <$> _ntntfMemory,
-                  ("cpus" .=) <$> _ntntfCPUs,
-                  ("localSsd" .=) <$> _ntntfLocalSsd])
-
---
--- /See:/ 'licenseResourceRequirements' smart constructor.
-data LicenseResourceRequirements =
-  LicenseResourceRequirements'
-    { _lrrMinMemoryMb      :: !(Maybe (Textual Int32))
-    , _lrrMinGuestCPUCount :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicenseResourceRequirements' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lrrMinMemoryMb'
---
--- * 'lrrMinGuestCPUCount'
-licenseResourceRequirements
-    :: LicenseResourceRequirements
-licenseResourceRequirements =
-  LicenseResourceRequirements'
-    {_lrrMinMemoryMb = Nothing, _lrrMinGuestCPUCount = Nothing}
-
-
--- | Minimum memory required to use the Instance. Enforced at Instance
--- creation and Instance start.
-lrrMinMemoryMb :: Lens' LicenseResourceRequirements (Maybe Int32)
-lrrMinMemoryMb
-  = lens _lrrMinMemoryMb
-      (\ s a -> s{_lrrMinMemoryMb = a})
-      . mapping _Coerce
-
--- | Minimum number of guest cpus required to use the Instance. Enforced at
--- Instance creation and Instance start.
-lrrMinGuestCPUCount :: Lens' LicenseResourceRequirements (Maybe Int32)
-lrrMinGuestCPUCount
-  = lens _lrrMinGuestCPUCount
-      (\ s a -> s{_lrrMinGuestCPUCount = a})
-      . mapping _Coerce
-
-instance FromJSON LicenseResourceRequirements where
-        parseJSON
-          = withObject "LicenseResourceRequirements"
-              (\ o ->
-                 LicenseResourceRequirements' <$>
-                   (o .:? "minMemoryMb") <*> (o .:? "minGuestCpuCount"))
-
-instance ToJSON LicenseResourceRequirements where
-        toJSON LicenseResourceRequirements'{..}
-          = object
-              (catMaybes
-                 [("minMemoryMb" .=) <$> _lrrMinMemoryMb,
-                  ("minGuestCpuCount" .=) <$> _lrrMinGuestCPUCount])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionDiskTypeListWarning' smart constructor.
-data RegionDiskTypeListWarning =
-  RegionDiskTypeListWarning'
-    { _rdtlwData    :: !(Maybe [RegionDiskTypeListWarningDataItem])
-    , _rdtlwCode    :: !(Maybe RegionDiskTypeListWarningCode)
-    , _rdtlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDiskTypeListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtlwData'
---
--- * 'rdtlwCode'
---
--- * 'rdtlwMessage'
-regionDiskTypeListWarning
-    :: RegionDiskTypeListWarning
-regionDiskTypeListWarning =
-  RegionDiskTypeListWarning'
-    {_rdtlwData = Nothing, _rdtlwCode = Nothing, _rdtlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rdtlwData :: Lens' RegionDiskTypeListWarning [RegionDiskTypeListWarningDataItem]
-rdtlwData
-  = lens _rdtlwData (\ s a -> s{_rdtlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rdtlwCode :: Lens' RegionDiskTypeListWarning (Maybe RegionDiskTypeListWarningCode)
-rdtlwCode
-  = lens _rdtlwCode (\ s a -> s{_rdtlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rdtlwMessage :: Lens' RegionDiskTypeListWarning (Maybe Text)
-rdtlwMessage
-  = lens _rdtlwMessage (\ s a -> s{_rdtlwMessage = a})
-
-instance FromJSON RegionDiskTypeListWarning where
-        parseJSON
-          = withObject "RegionDiskTypeListWarning"
-              (\ o ->
-                 RegionDiskTypeListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RegionDiskTypeListWarning where
-        toJSON RegionDiskTypeListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rdtlwData,
-                  ("code" .=) <$> _rdtlwCode,
-                  ("message" .=) <$> _rdtlwMessage])
-
---
--- /See:/ 'targetSSLProxiesSetBackendServiceRequest' smart constructor.
-newtype TargetSSLProxiesSetBackendServiceRequest =
-  TargetSSLProxiesSetBackendServiceRequest'
-    { _tspsbsrService :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetBackendServiceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsbsrService'
-targetSSLProxiesSetBackendServiceRequest
-    :: TargetSSLProxiesSetBackendServiceRequest
-targetSSLProxiesSetBackendServiceRequest =
-  TargetSSLProxiesSetBackendServiceRequest' {_tspsbsrService = Nothing}
-
-
--- | The URL of the new BackendService resource for the targetSslProxy.
-tspsbsrService :: Lens' TargetSSLProxiesSetBackendServiceRequest (Maybe Text)
-tspsbsrService
-  = lens _tspsbsrService
-      (\ s a -> s{_tspsbsrService = a})
-
-instance FromJSON
-           TargetSSLProxiesSetBackendServiceRequest
-         where
-        parseJSON
-          = withObject
-              "TargetSSLProxiesSetBackendServiceRequest"
-              (\ o ->
-                 TargetSSLProxiesSetBackendServiceRequest' <$>
-                   (o .:? "service"))
-
-instance ToJSON
-           TargetSSLProxiesSetBackendServiceRequest
-         where
-        toJSON TargetSSLProxiesSetBackendServiceRequest'{..}
-          = object
-              (catMaybes [("service" .=) <$> _tspsbsrService])
-
--- | A ForwardingRule resource. A ForwardingRule resource specifies which
--- pool of target virtual machines to forward a packet to if it matches the
--- given [IPAddress, IPProtocol, ports] tuple. (== resource_for
--- beta.forwardingRules ==) (== resource_for v1.forwardingRules ==) (==
--- resource_for beta.globalForwardingRules ==) (== resource_for
--- v1.globalForwardingRules ==) (== resource_for beta.regionForwardingRules
--- ==) (== resource_for v1.regionForwardingRules ==)
---
--- /See:/ 'forwardingRule' smart constructor.
-data ForwardingRule =
-  ForwardingRule'
-    { _frNetworkTier         :: !(Maybe ForwardingRuleNetworkTier)
-    , _frIPAddress           :: !(Maybe Text)
-    , _frLoadBalancingScheme :: !(Maybe ForwardingRuleLoadBalancingScheme)
-    , _frKind                :: !Text
-    , _frIPVersion           :: !(Maybe ForwardingRuleIPVersion)
-    , _frAllPorts            :: !(Maybe Bool)
-    , _frNetwork             :: !(Maybe Text)
-    , _frPortRange           :: !(Maybe Text)
-    , _frSelfLink            :: !(Maybe Text)
-    , _frName                :: !(Maybe Text)
-    , _frIPProtocol          :: !(Maybe ForwardingRuleIPProtocol)
-    , _frCreationTimestamp   :: !(Maybe Text)
-    , _frServiceName         :: !(Maybe Text)
-    , _frSubnetwork          :: !(Maybe Text)
-    , _frPorts               :: !(Maybe [Text])
-    , _frId                  :: !(Maybe (Textual Word64))
-    , _frRegion              :: !(Maybe Text)
-    , _frServiceLabel        :: !(Maybe Text)
-    , _frDescription         :: !(Maybe Text)
-    , _frTarget              :: !(Maybe Text)
-    , _frBackendService      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frNetworkTier'
---
--- * 'frIPAddress'
---
--- * 'frLoadBalancingScheme'
---
--- * 'frKind'
---
--- * 'frIPVersion'
---
--- * 'frAllPorts'
---
--- * 'frNetwork'
---
--- * 'frPortRange'
---
--- * 'frSelfLink'
---
--- * 'frName'
---
--- * 'frIPProtocol'
---
--- * 'frCreationTimestamp'
---
--- * 'frServiceName'
---
--- * 'frSubnetwork'
---
--- * 'frPorts'
---
--- * 'frId'
---
--- * 'frRegion'
---
--- * 'frServiceLabel'
---
--- * 'frDescription'
---
--- * 'frTarget'
---
--- * 'frBackendService'
-forwardingRule
-    :: ForwardingRule
-forwardingRule =
-  ForwardingRule'
-    { _frNetworkTier = Nothing
-    , _frIPAddress = Nothing
-    , _frLoadBalancingScheme = Nothing
-    , _frKind = "compute#forwardingRule"
-    , _frIPVersion = Nothing
-    , _frAllPorts = Nothing
-    , _frNetwork = Nothing
-    , _frPortRange = Nothing
-    , _frSelfLink = Nothing
-    , _frName = Nothing
-    , _frIPProtocol = Nothing
-    , _frCreationTimestamp = Nothing
-    , _frServiceName = Nothing
-    , _frSubnetwork = Nothing
-    , _frPorts = Nothing
-    , _frId = Nothing
-    , _frRegion = Nothing
-    , _frServiceLabel = Nothing
-    , _frDescription = Nothing
-    , _frTarget = Nothing
-    , _frBackendService = Nothing
-    }
-
-
--- | This signifies the networking tier used for configuring this load
--- balancer and can only take the following values: PREMIUM , STANDARD. For
--- regional ForwardingRule, the valid values are PREMIUM and STANDARD. For
--- GlobalForwardingRule, the valid value is PREMIUM. If this field is not
--- specified, it is assumed to be PREMIUM. If IPAddress is specified, this
--- value must be equal to the networkTier of the Address.
-frNetworkTier :: Lens' ForwardingRule (Maybe ForwardingRuleNetworkTier)
-frNetworkTier
-  = lens _frNetworkTier
-      (\ s a -> s{_frNetworkTier = a})
-
--- | The IP address that this forwarding rule is serving on behalf of.
--- Addresses are restricted based on the forwarding rule\'s load balancing
--- scheme (EXTERNAL or INTERNAL) and scope (global or regional). When the
--- load balancing scheme is EXTERNAL, for global forwarding rules, the
--- address must be a global IP, and for regional forwarding rules, the
--- address must live in the same region as the forwarding rule. If this
--- field is empty, an ephemeral IPv4 address from the same scope (global or
--- regional) will be assigned. A regional forwarding rule supports IPv4
--- only. A global forwarding rule supports either IPv4 or IPv6. When the
--- load balancing scheme is INTERNAL_SELF_MANAGED, this must be a URL
--- reference to an existing Address resource ( internal regional static IP
--- address), with a purpose of GCE_END_POINT and address_type of INTERNAL.
--- When the load balancing scheme is INTERNAL, this can only be an RFC 1918
--- IP address belonging to the network\/subnet configured for the
--- forwarding rule. By default, if this field is empty, an ephemeral
--- internal IP address will be automatically allocated from the IP range of
--- the subnet or network configured for this forwarding rule. An address
--- can be specified either by a literal IP address or a URL reference to an
--- existing Address resource. The following examples are all valid: -
--- 100.1.2.3 -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/regions\/region\/addresses\/address
--- - projects\/project\/regions\/region\/addresses\/address -
--- regions\/region\/addresses\/address - global\/addresses\/address -
--- address
-frIPAddress :: Lens' ForwardingRule (Maybe Text)
-frIPAddress
-  = lens _frIPAddress (\ s a -> s{_frIPAddress = a})
-
--- | This signifies what the ForwardingRule will be used for and can only
--- take the following values: INTERNAL, INTERNAL_SELF_MANAGED, EXTERNAL.
--- The value of INTERNAL means that this will be used for Internal Network
--- Load Balancing (TCP, UDP). The value of INTERNAL_SELF_MANAGED means that
--- this will be used for Internal Global HTTP(S) LB. The value of EXTERNAL
--- means that this will be used for External Load Balancing (HTTP(S) LB,
--- External TCP\/UDP LB, SSL Proxy)
-frLoadBalancingScheme :: Lens' ForwardingRule (Maybe ForwardingRuleLoadBalancingScheme)
-frLoadBalancingScheme
-  = lens _frLoadBalancingScheme
-      (\ s a -> s{_frLoadBalancingScheme = a})
-
--- | [Output Only] Type of the resource. Always compute#forwardingRule for
--- Forwarding Rule resources.
-frKind :: Lens' ForwardingRule Text
-frKind = lens _frKind (\ s a -> s{_frKind = a})
-
--- | The IP Version that will be used by this forwarding rule. Valid options
--- are IPV4 or IPV6. This can only be specified for an external global
--- forwarding rule.
-frIPVersion :: Lens' ForwardingRule (Maybe ForwardingRuleIPVersion)
-frIPVersion
-  = lens _frIPVersion (\ s a -> s{_frIPVersion = a})
-
--- | This field is used along with the backend_service field for internal
--- load balancing or with the target field for internal TargetInstance.
--- This field cannot be used with port or portRange fields. When the load
--- balancing scheme is INTERNAL and protocol is TCP\/UDP, specify this
--- field to allow packets addressed to any ports will be forwarded to the
--- backends configured with this forwarding rule.
-frAllPorts :: Lens' ForwardingRule (Maybe Bool)
-frAllPorts
-  = lens _frAllPorts (\ s a -> s{_frAllPorts = a})
-
--- | This field is not used for external load balancing. For INTERNAL and
--- INTERNAL_SELF_MANAGED load balancing, this field identifies the network
--- that the load balanced IP should belong to for this Forwarding Rule. If
--- this field is not specified, the default network will be used.
-frNetwork :: Lens' ForwardingRule (Maybe Text)
-frNetwork
-  = lens _frNetwork (\ s a -> s{_frNetwork = a})
-
--- | This field is used along with the target field for TargetHttpProxy,
--- TargetHttpsProxy, TargetSslProxy, TargetTcpProxy, TargetVpnGateway,
--- TargetPool, TargetInstance. Applicable only when IPProtocol is TCP, UDP,
--- or SCTP, only packets addressed to ports in the specified range will be
--- forwarded to target. Forwarding rules with the same [IPAddress,
--- IPProtocol] pair must have disjoint port ranges. Some types of
--- forwarding target have constraints on the acceptable ports: -
--- TargetHttpProxy: 80, 8080 - TargetHttpsProxy: 443 - TargetTcpProxy: 25,
--- 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222 -
--- TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995,
--- 1688, 1883, 5222 - TargetVpnGateway: 500, 4500
-frPortRange :: Lens' ForwardingRule (Maybe Text)
-frPortRange
-  = lens _frPortRange (\ s a -> s{_frPortRange = a})
-
--- | [Output Only] Server-defined URL for the resource.
-frSelfLink :: Lens' ForwardingRule (Maybe Text)
-frSelfLink
-  = lens _frSelfLink (\ s a -> s{_frSelfLink = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-frName :: Lens' ForwardingRule (Maybe Text)
-frName = lens _frName (\ s a -> s{_frName = a})
-
--- | The IP protocol to which this rule applies. Valid options are TCP, UDP,
--- ESP, AH, SCTP or ICMP. When the load balancing scheme is INTERNAL, only
--- TCP and UDP are valid. When the load balancing scheme is
--- INTERNAL_SELF_MANAGED, only TCPis valid.
-frIPProtocol :: Lens' ForwardingRule (Maybe ForwardingRuleIPProtocol)
-frIPProtocol
-  = lens _frIPProtocol (\ s a -> s{_frIPProtocol = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-frCreationTimestamp :: Lens' ForwardingRule (Maybe Text)
-frCreationTimestamp
-  = lens _frCreationTimestamp
-      (\ s a -> s{_frCreationTimestamp = a})
-
--- | [Output Only] The internal fully qualified service name for this
--- Forwarding Rule. This field is only used for internal load balancing.
-frServiceName :: Lens' ForwardingRule (Maybe Text)
-frServiceName
-  = lens _frServiceName
-      (\ s a -> s{_frServiceName = a})
-
--- | This field is only used for INTERNAL load balancing. For internal load
--- balancing, this field identifies the subnetwork that the load balanced
--- IP should belong to for this Forwarding Rule. If the network specified
--- is in auto subnet mode, this field is optional. However, if the network
--- is in custom subnet mode, a subnetwork must be specified.
-frSubnetwork :: Lens' ForwardingRule (Maybe Text)
-frSubnetwork
-  = lens _frSubnetwork (\ s a -> s{_frSubnetwork = a})
-
--- | This field is used along with the backend_service field for internal
--- load balancing. When the load balancing scheme is INTERNAL, a list of
--- ports can be configured, for example, [\'80\'], [\'8000\',\'9000\'] etc.
--- Only packets addressed to these ports will be forwarded to the backends
--- configured with this forwarding rule. You may specify a maximum of up to
--- 5 ports.
-frPorts :: Lens' ForwardingRule [Text]
-frPorts
-  = lens _frPorts (\ s a -> s{_frPorts = a}) . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-frId :: Lens' ForwardingRule (Maybe Word64)
-frId
-  = lens _frId (\ s a -> s{_frId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL of the region where the regional forwarding rule
--- resides. This field is not applicable to global forwarding rules. You
--- must specify this field as part of the HTTP request URL. It is not
--- settable as a field in the request body.
-frRegion :: Lens' ForwardingRule (Maybe Text)
-frRegion = lens _frRegion (\ s a -> s{_frRegion = a})
-
--- | An optional prefix to the service name for this Forwarding Rule. If
--- specified, will be the first label of the fully qualified service name.
--- The label must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the label must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash. This field is only used for internal load balancing.
-frServiceLabel :: Lens' ForwardingRule (Maybe Text)
-frServiceLabel
-  = lens _frServiceLabel
-      (\ s a -> s{_frServiceLabel = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-frDescription :: Lens' ForwardingRule (Maybe Text)
-frDescription
-  = lens _frDescription
-      (\ s a -> s{_frDescription = a})
-
--- | The URL of the target resource to receive the matched traffic. For
--- regional forwarding rules, this target must live in the same region as
--- the forwarding rule. For global forwarding rules, this target must be a
--- global load balancing resource. The forwarded traffic must be of a type
--- appropriate to the target object. For INTERNAL_SELF_MANAGED load
--- balancing, only HTTP and HTTPS targets are valid.
-frTarget :: Lens' ForwardingRule (Maybe Text)
-frTarget = lens _frTarget (\ s a -> s{_frTarget = a})
-
--- | This field is only used for INTERNAL load balancing. For internal load
--- balancing, this field identifies the BackendService resource to receive
--- the matched traffic.
-frBackendService :: Lens' ForwardingRule (Maybe Text)
-frBackendService
-  = lens _frBackendService
-      (\ s a -> s{_frBackendService = a})
-
-instance FromJSON ForwardingRule where
-        parseJSON
-          = withObject "ForwardingRule"
-              (\ o ->
-                 ForwardingRule' <$>
-                   (o .:? "networkTier") <*> (o .:? "IPAddress") <*>
-                     (o .:? "loadBalancingScheme")
-                     <*> (o .:? "kind" .!= "compute#forwardingRule")
-                     <*> (o .:? "ipVersion")
-                     <*> (o .:? "allPorts")
-                     <*> (o .:? "network")
-                     <*> (o .:? "portRange")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "IPProtocol")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "serviceName")
-                     <*> (o .:? "subnetwork")
-                     <*> (o .:? "ports" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "serviceLabel")
-                     <*> (o .:? "description")
-                     <*> (o .:? "target")
-                     <*> (o .:? "backendService"))
-
-instance ToJSON ForwardingRule where
-        toJSON ForwardingRule'{..}
-          = object
-              (catMaybes
-                 [("networkTier" .=) <$> _frNetworkTier,
-                  ("IPAddress" .=) <$> _frIPAddress,
-                  ("loadBalancingScheme" .=) <$>
-                    _frLoadBalancingScheme,
-                  Just ("kind" .= _frKind),
-                  ("ipVersion" .=) <$> _frIPVersion,
-                  ("allPorts" .=) <$> _frAllPorts,
-                  ("network" .=) <$> _frNetwork,
-                  ("portRange" .=) <$> _frPortRange,
-                  ("selfLink" .=) <$> _frSelfLink,
-                  ("name" .=) <$> _frName,
-                  ("IPProtocol" .=) <$> _frIPProtocol,
-                  ("creationTimestamp" .=) <$> _frCreationTimestamp,
-                  ("serviceName" .=) <$> _frServiceName,
-                  ("subnetwork" .=) <$> _frSubnetwork,
-                  ("ports" .=) <$> _frPorts, ("id" .=) <$> _frId,
-                  ("region" .=) <$> _frRegion,
-                  ("serviceLabel" .=) <$> _frServiceLabel,
-                  ("description" .=) <$> _frDescription,
-                  ("target" .=) <$> _frTarget,
-                  ("backendService" .=) <$> _frBackendService])
-
--- | Contains a list of UrlMap resources.
---
--- /See:/ 'urlMapList' smart constructor.
-data URLMapList =
-  URLMapList'
-    { _umlNextPageToken :: !(Maybe Text)
-    , _umlKind          :: !Text
-    , _umlItems         :: !(Maybe [URLMap])
-    , _umlSelfLink      :: !(Maybe Text)
-    , _umlWarning       :: !(Maybe URLMapListWarning)
-    , _umlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umlNextPageToken'
---
--- * 'umlKind'
---
--- * 'umlItems'
---
--- * 'umlSelfLink'
---
--- * 'umlWarning'
---
--- * 'umlId'
-urlMapList
-    :: URLMapList
-urlMapList =
-  URLMapList'
-    { _umlNextPageToken = Nothing
-    , _umlKind = "compute#urlMapList"
-    , _umlItems = Nothing
-    , _umlSelfLink = Nothing
-    , _umlWarning = Nothing
-    , _umlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-umlNextPageToken :: Lens' URLMapList (Maybe Text)
-umlNextPageToken
-  = lens _umlNextPageToken
-      (\ s a -> s{_umlNextPageToken = a})
-
--- | Type of resource.
-umlKind :: Lens' URLMapList Text
-umlKind = lens _umlKind (\ s a -> s{_umlKind = a})
-
--- | A list of UrlMap resources.
-umlItems :: Lens' URLMapList [URLMap]
-umlItems
-  = lens _umlItems (\ s a -> s{_umlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-umlSelfLink :: Lens' URLMapList (Maybe Text)
-umlSelfLink
-  = lens _umlSelfLink (\ s a -> s{_umlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-umlWarning :: Lens' URLMapList (Maybe URLMapListWarning)
-umlWarning
-  = lens _umlWarning (\ s a -> s{_umlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-umlId :: Lens' URLMapList (Maybe Text)
-umlId = lens _umlId (\ s a -> s{_umlId = a})
-
-instance FromJSON URLMapList where
-        parseJSON
-          = withObject "URLMapList"
-              (\ o ->
-                 URLMapList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#urlMapList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON URLMapList where
-        toJSON URLMapList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _umlNextPageToken,
-                  Just ("kind" .= _umlKind),
-                  ("items" .=) <$> _umlItems,
-                  ("selfLink" .=) <$> _umlSelfLink,
-                  ("warning" .=) <$> _umlWarning,
-                  ("id" .=) <$> _umlId])
-
---
--- /See:/ 'forwardingRulesScopedListWarningDataItem' smart constructor.
-data ForwardingRulesScopedListWarningDataItem =
-  ForwardingRulesScopedListWarningDataItem'
-    { _frslwdiValue :: !(Maybe Text)
-    , _frslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frslwdiValue'
---
--- * 'frslwdiKey'
-forwardingRulesScopedListWarningDataItem
-    :: ForwardingRulesScopedListWarningDataItem
-forwardingRulesScopedListWarningDataItem =
-  ForwardingRulesScopedListWarningDataItem'
-    {_frslwdiValue = Nothing, _frslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-frslwdiValue :: Lens' ForwardingRulesScopedListWarningDataItem (Maybe Text)
-frslwdiValue
-  = lens _frslwdiValue (\ s a -> s{_frslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-frslwdiKey :: Lens' ForwardingRulesScopedListWarningDataItem (Maybe Text)
-frslwdiKey
-  = lens _frslwdiKey (\ s a -> s{_frslwdiKey = a})
-
-instance FromJSON
-           ForwardingRulesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "ForwardingRulesScopedListWarningDataItem"
-              (\ o ->
-                 ForwardingRulesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           ForwardingRulesScopedListWarningDataItem
-         where
-        toJSON ForwardingRulesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _frslwdiValue,
-                  ("key" .=) <$> _frslwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetInstanceAggregatedListWarning' smart constructor.
-data TargetInstanceAggregatedListWarning =
-  TargetInstanceAggregatedListWarning'
-    { _tialwData    :: !(Maybe [TargetInstanceAggregatedListWarningDataItem])
-    , _tialwCode    :: !(Maybe TargetInstanceAggregatedListWarningCode)
-    , _tialwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tialwData'
---
--- * 'tialwCode'
---
--- * 'tialwMessage'
-targetInstanceAggregatedListWarning
-    :: TargetInstanceAggregatedListWarning
-targetInstanceAggregatedListWarning =
-  TargetInstanceAggregatedListWarning'
-    {_tialwData = Nothing, _tialwCode = Nothing, _tialwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tialwData :: Lens' TargetInstanceAggregatedListWarning [TargetInstanceAggregatedListWarningDataItem]
-tialwData
-  = lens _tialwData (\ s a -> s{_tialwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tialwCode :: Lens' TargetInstanceAggregatedListWarning (Maybe TargetInstanceAggregatedListWarningCode)
-tialwCode
-  = lens _tialwCode (\ s a -> s{_tialwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tialwMessage :: Lens' TargetInstanceAggregatedListWarning (Maybe Text)
-tialwMessage
-  = lens _tialwMessage (\ s a -> s{_tialwMessage = a})
-
-instance FromJSON TargetInstanceAggregatedListWarning
-         where
-        parseJSON
-          = withObject "TargetInstanceAggregatedListWarning"
-              (\ o ->
-                 TargetInstanceAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetInstanceAggregatedListWarning
-         where
-        toJSON TargetInstanceAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tialwData,
-                  ("code" .=) <$> _tialwCode,
-                  ("message" .=) <$> _tialwMessage])
-
---
--- /See:/ 'instanceGroupManagersScopedListWarningDataItem' smart constructor.
-data InstanceGroupManagersScopedListWarningDataItem =
-  InstanceGroupManagersScopedListWarningDataItem'
-    { _igmslwdiValue :: !(Maybe Text)
-    , _igmslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmslwdiValue'
---
--- * 'igmslwdiKey'
-instanceGroupManagersScopedListWarningDataItem
-    :: InstanceGroupManagersScopedListWarningDataItem
-instanceGroupManagersScopedListWarningDataItem =
-  InstanceGroupManagersScopedListWarningDataItem'
-    {_igmslwdiValue = Nothing, _igmslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igmslwdiValue :: Lens' InstanceGroupManagersScopedListWarningDataItem (Maybe Text)
-igmslwdiValue
-  = lens _igmslwdiValue
-      (\ s a -> s{_igmslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igmslwdiKey :: Lens' InstanceGroupManagersScopedListWarningDataItem (Maybe Text)
-igmslwdiKey
-  = lens _igmslwdiKey (\ s a -> s{_igmslwdiKey = a})
-
-instance FromJSON
-           InstanceGroupManagersScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersScopedListWarningDataItem"
-              (\ o ->
-                 InstanceGroupManagersScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupManagersScopedListWarningDataItem
-         where
-        toJSON
-          InstanceGroupManagersScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igmslwdiValue,
-                  ("key" .=) <$> _igmslwdiKey])
-
---
--- /See:/ 'subnetworksScopedList' smart constructor.
-data SubnetworksScopedList =
-  SubnetworksScopedList'
-    { _sslSubnetworks :: !(Maybe [Subnetwork])
-    , _sslWarning     :: !(Maybe SubnetworksScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslSubnetworks'
---
--- * 'sslWarning'
-subnetworksScopedList
-    :: SubnetworksScopedList
-subnetworksScopedList =
-  SubnetworksScopedList' {_sslSubnetworks = Nothing, _sslWarning = Nothing}
-
-
--- | A list of subnetworks contained in this scope.
-sslSubnetworks :: Lens' SubnetworksScopedList [Subnetwork]
-sslSubnetworks
-  = lens _sslSubnetworks
-      (\ s a -> s{_sslSubnetworks = a})
-      . _Default
-      . _Coerce
-
--- | An informational warning that appears when the list of addresses is
--- empty.
-sslWarning :: Lens' SubnetworksScopedList (Maybe SubnetworksScopedListWarning)
-sslWarning
-  = lens _sslWarning (\ s a -> s{_sslWarning = a})
-
-instance FromJSON SubnetworksScopedList where
-        parseJSON
-          = withObject "SubnetworksScopedList"
-              (\ o ->
-                 SubnetworksScopedList' <$>
-                   (o .:? "subnetworks" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON SubnetworksScopedList where
-        toJSON SubnetworksScopedList'{..}
-          = object
-              (catMaybes
-                 [("subnetworks" .=) <$> _sslSubnetworks,
-                  ("warning" .=) <$> _sslWarning])
-
---
--- /See:/ 'networkEndpointGroupsScopedList' smart constructor.
-data NetworkEndpointGroupsScopedList =
-  NetworkEndpointGroupsScopedList'
-    { _negslNetworkEndpointGroups :: !(Maybe [NetworkEndpointGroup])
-    , _negslWarning               :: !(Maybe NetworkEndpointGroupsScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negslNetworkEndpointGroups'
---
--- * 'negslWarning'
-networkEndpointGroupsScopedList
-    :: NetworkEndpointGroupsScopedList
-networkEndpointGroupsScopedList =
-  NetworkEndpointGroupsScopedList'
-    {_negslNetworkEndpointGroups = Nothing, _negslWarning = Nothing}
-
-
--- | [Output Only] The list of network endpoint groups that are contained in
--- this scope.
-negslNetworkEndpointGroups :: Lens' NetworkEndpointGroupsScopedList [NetworkEndpointGroup]
-negslNetworkEndpointGroups
-  = lens _negslNetworkEndpointGroups
-      (\ s a -> s{_negslNetworkEndpointGroups = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that replaces the list of network
--- endpoint groups when the list is empty.
-negslWarning :: Lens' NetworkEndpointGroupsScopedList (Maybe NetworkEndpointGroupsScopedListWarning)
-negslWarning
-  = lens _negslWarning (\ s a -> s{_negslWarning = a})
-
-instance FromJSON NetworkEndpointGroupsScopedList
-         where
-        parseJSON
-          = withObject "NetworkEndpointGroupsScopedList"
-              (\ o ->
-                 NetworkEndpointGroupsScopedList' <$>
-                   (o .:? "networkEndpointGroups" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON NetworkEndpointGroupsScopedList where
-        toJSON NetworkEndpointGroupsScopedList'{..}
-          = object
-              (catMaybes
-                 [("networkEndpointGroups" .=) <$>
-                    _negslNetworkEndpointGroups,
-                  ("warning" .=) <$> _negslWarning])
-
--- | Contains a list of accelerator types.
---
--- /See:/ 'acceleratorTypeList' smart constructor.
-data AcceleratorTypeList =
-  AcceleratorTypeList'
-    { _atlNextPageToken :: !(Maybe Text)
-    , _atlKind          :: !Text
-    , _atlItems         :: !(Maybe [AcceleratorType])
-    , _atlSelfLink      :: !(Maybe Text)
-    , _atlWarning       :: !(Maybe AcceleratorTypeListWarning)
-    , _atlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atlNextPageToken'
---
--- * 'atlKind'
---
--- * 'atlItems'
---
--- * 'atlSelfLink'
---
--- * 'atlWarning'
---
--- * 'atlId'
-acceleratorTypeList
-    :: AcceleratorTypeList
-acceleratorTypeList =
-  AcceleratorTypeList'
-    { _atlNextPageToken = Nothing
-    , _atlKind = "compute#acceleratorTypeList"
-    , _atlItems = Nothing
-    , _atlSelfLink = Nothing
-    , _atlWarning = Nothing
-    , _atlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-atlNextPageToken :: Lens' AcceleratorTypeList (Maybe Text)
-atlNextPageToken
-  = lens _atlNextPageToken
-      (\ s a -> s{_atlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#acceleratorTypeList for
--- lists of accelerator types.
-atlKind :: Lens' AcceleratorTypeList Text
-atlKind = lens _atlKind (\ s a -> s{_atlKind = a})
-
--- | A list of AcceleratorType resources.
-atlItems :: Lens' AcceleratorTypeList [AcceleratorType]
-atlItems
-  = lens _atlItems (\ s a -> s{_atlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-atlSelfLink :: Lens' AcceleratorTypeList (Maybe Text)
-atlSelfLink
-  = lens _atlSelfLink (\ s a -> s{_atlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-atlWarning :: Lens' AcceleratorTypeList (Maybe AcceleratorTypeListWarning)
-atlWarning
-  = lens _atlWarning (\ s a -> s{_atlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-atlId :: Lens' AcceleratorTypeList (Maybe Text)
-atlId = lens _atlId (\ s a -> s{_atlId = a})
-
-instance FromJSON AcceleratorTypeList where
-        parseJSON
-          = withObject "AcceleratorTypeList"
-              (\ o ->
-                 AcceleratorTypeList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#acceleratorTypeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AcceleratorTypeList where
-        toJSON AcceleratorTypeList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _atlNextPageToken,
-                  Just ("kind" .= _atlKind),
-                  ("items" .=) <$> _atlItems,
-                  ("selfLink" .=) <$> _atlSelfLink,
-                  ("warning" .=) <$> _atlWarning,
-                  ("id" .=) <$> _atlId])
-
---
--- /See:/ 'diskAggregatedListWarningDataItem' smart constructor.
-data DiskAggregatedListWarningDataItem =
-  DiskAggregatedListWarningDataItem'
-    { _dalwdiValue :: !(Maybe Text)
-    , _dalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dalwdiValue'
---
--- * 'dalwdiKey'
-diskAggregatedListWarningDataItem
-    :: DiskAggregatedListWarningDataItem
-diskAggregatedListWarningDataItem =
-  DiskAggregatedListWarningDataItem'
-    {_dalwdiValue = Nothing, _dalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dalwdiValue :: Lens' DiskAggregatedListWarningDataItem (Maybe Text)
-dalwdiValue
-  = lens _dalwdiValue (\ s a -> s{_dalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dalwdiKey :: Lens' DiskAggregatedListWarningDataItem (Maybe Text)
-dalwdiKey
-  = lens _dalwdiKey (\ s a -> s{_dalwdiKey = a})
-
-instance FromJSON DiskAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "DiskAggregatedListWarningDataItem"
-              (\ o ->
-                 DiskAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DiskAggregatedListWarningDataItem
-         where
-        toJSON DiskAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dalwdiValue,
-                  ("key" .=) <$> _dalwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetPoolListWarning' smart constructor.
-data TargetPoolListWarning =
-  TargetPoolListWarning'
-    { _tplwData    :: !(Maybe [TargetPoolListWarningDataItem])
-    , _tplwCode    :: !(Maybe TargetPoolListWarningCode)
-    , _tplwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tplwData'
---
--- * 'tplwCode'
---
--- * 'tplwMessage'
-targetPoolListWarning
-    :: TargetPoolListWarning
-targetPoolListWarning =
-  TargetPoolListWarning'
-    {_tplwData = Nothing, _tplwCode = Nothing, _tplwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tplwData :: Lens' TargetPoolListWarning [TargetPoolListWarningDataItem]
-tplwData
-  = lens _tplwData (\ s a -> s{_tplwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tplwCode :: Lens' TargetPoolListWarning (Maybe TargetPoolListWarningCode)
-tplwCode = lens _tplwCode (\ s a -> s{_tplwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tplwMessage :: Lens' TargetPoolListWarning (Maybe Text)
-tplwMessage
-  = lens _tplwMessage (\ s a -> s{_tplwMessage = a})
-
-instance FromJSON TargetPoolListWarning where
-        parseJSON
-          = withObject "TargetPoolListWarning"
-              (\ o ->
-                 TargetPoolListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetPoolListWarning where
-        toJSON TargetPoolListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tplwData,
-                  ("code" .=) <$> _tplwCode,
-                  ("message" .=) <$> _tplwMessage])
-
--- | [Output Only] An informational warning that appears when the node
--- templates list is empty.
---
--- /See:/ 'nodeTemplatesScopedListWarning' smart constructor.
-data NodeTemplatesScopedListWarning =
-  NodeTemplatesScopedListWarning'
-    { _nData    :: !(Maybe [NodeTemplatesScopedListWarningDataItem])
-    , _nCode    :: !(Maybe NodeTemplatesScopedListWarningCode)
-    , _nMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nData'
---
--- * 'nCode'
---
--- * 'nMessage'
-nodeTemplatesScopedListWarning
-    :: NodeTemplatesScopedListWarning
-nodeTemplatesScopedListWarning =
-  NodeTemplatesScopedListWarning'
-    {_nData = Nothing, _nCode = Nothing, _nMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-nData :: Lens' NodeTemplatesScopedListWarning [NodeTemplatesScopedListWarningDataItem]
-nData
-  = lens _nData (\ s a -> s{_nData = a}) . _Default .
-      _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-nCode :: Lens' NodeTemplatesScopedListWarning (Maybe NodeTemplatesScopedListWarningCode)
-nCode = lens _nCode (\ s a -> s{_nCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-nMessage :: Lens' NodeTemplatesScopedListWarning (Maybe Text)
-nMessage = lens _nMessage (\ s a -> s{_nMessage = a})
-
-instance FromJSON NodeTemplatesScopedListWarning
-         where
-        parseJSON
-          = withObject "NodeTemplatesScopedListWarning"
-              (\ o ->
-                 NodeTemplatesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTemplatesScopedListWarning where
-        toJSON NodeTemplatesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _nData, ("code" .=) <$> _nCode,
-                  ("message" .=) <$> _nMessage])
-
---
--- /See:/ 'targetPoolAggregatedListWarningDataItem' smart constructor.
-data TargetPoolAggregatedListWarningDataItem =
-  TargetPoolAggregatedListWarningDataItem'
-    { _tpalwdiValue :: !(Maybe Text)
-    , _tpalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpalwdiValue'
---
--- * 'tpalwdiKey'
-targetPoolAggregatedListWarningDataItem
-    :: TargetPoolAggregatedListWarningDataItem
-targetPoolAggregatedListWarningDataItem =
-  TargetPoolAggregatedListWarningDataItem'
-    {_tpalwdiValue = Nothing, _tpalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tpalwdiValue :: Lens' TargetPoolAggregatedListWarningDataItem (Maybe Text)
-tpalwdiValue
-  = lens _tpalwdiValue (\ s a -> s{_tpalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tpalwdiKey :: Lens' TargetPoolAggregatedListWarningDataItem (Maybe Text)
-tpalwdiKey
-  = lens _tpalwdiKey (\ s a -> s{_tpalwdiKey = a})
-
-instance FromJSON
-           TargetPoolAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "TargetPoolAggregatedListWarningDataItem"
-              (\ o ->
-                 TargetPoolAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           TargetPoolAggregatedListWarningDataItem
-         where
-        toJSON TargetPoolAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tpalwdiValue,
-                  ("key" .=) <$> _tpalwdiKey])
-
--- | A Project resource. For an overview of projects, see Cloud Platform
--- Resource Hierarchy. (== resource_for v1.projects ==) (== resource_for
--- beta.projects ==)
---
--- /See:/ 'project' smart constructor.
-data Project =
-  Project'
-    { _pXpnProjectStatus       :: !(Maybe ProjectXpnProjectStatus)
-    , _pKind                   :: !Text
-    , _pUsageExportLocation    :: !(Maybe UsageExportLocation)
-    , _pSelfLink               :: !(Maybe Text)
-    , _pName                   :: !(Maybe Text)
-    , _pDefaultServiceAccount  :: !(Maybe Text)
-    , _pDefaultNetworkTier     :: !(Maybe ProjectDefaultNetworkTier)
-    , _pCreationTimestamp      :: !(Maybe Text)
-    , _pEnabledFeatures        :: !(Maybe [Text])
-    , _pQuotas                 :: !(Maybe [Quota])
-    , _pId                     :: !(Maybe (Textual Word64))
-    , _pDescription            :: !(Maybe Text)
-    , _pCommonInstanceMetadata :: !(Maybe Metadata)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Project' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pXpnProjectStatus'
---
--- * 'pKind'
---
--- * 'pUsageExportLocation'
---
--- * 'pSelfLink'
---
--- * 'pName'
---
--- * 'pDefaultServiceAccount'
---
--- * 'pDefaultNetworkTier'
---
--- * 'pCreationTimestamp'
---
--- * 'pEnabledFeatures'
---
--- * 'pQuotas'
---
--- * 'pId'
---
--- * 'pDescription'
---
--- * 'pCommonInstanceMetadata'
-project
-    :: Project
-project =
-  Project'
-    { _pXpnProjectStatus = Nothing
-    , _pKind = "compute#project"
-    , _pUsageExportLocation = Nothing
-    , _pSelfLink = Nothing
-    , _pName = Nothing
-    , _pDefaultServiceAccount = Nothing
-    , _pDefaultNetworkTier = Nothing
-    , _pCreationTimestamp = Nothing
-    , _pEnabledFeatures = Nothing
-    , _pQuotas = Nothing
-    , _pId = Nothing
-    , _pDescription = Nothing
-    , _pCommonInstanceMetadata = Nothing
-    }
-
-
--- | [Output Only] The role this project has in a shared VPC configuration.
--- Currently only HOST projects are differentiated.
-pXpnProjectStatus :: Lens' Project (Maybe ProjectXpnProjectStatus)
-pXpnProjectStatus
-  = lens _pXpnProjectStatus
-      (\ s a -> s{_pXpnProjectStatus = a})
-
--- | [Output Only] Type of the resource. Always compute#project for projects.
-pKind :: Lens' Project Text
-pKind = lens _pKind (\ s a -> s{_pKind = a})
-
--- | The naming prefix for daily usage reports and the Google Cloud Storage
--- bucket where they are stored.
-pUsageExportLocation :: Lens' Project (Maybe UsageExportLocation)
-pUsageExportLocation
-  = lens _pUsageExportLocation
-      (\ s a -> s{_pUsageExportLocation = a})
-
--- | [Output Only] Server-defined URL for the resource.
-pSelfLink :: Lens' Project (Maybe Text)
-pSelfLink
-  = lens _pSelfLink (\ s a -> s{_pSelfLink = a})
-
--- | The project ID. For example: my-example-project. Use the project ID to
--- make requests to Compute Engine.
-pName :: Lens' Project (Maybe Text)
-pName = lens _pName (\ s a -> s{_pName = a})
-
--- | [Output Only] Default service account used by VMs running in this
--- project.
-pDefaultServiceAccount :: Lens' Project (Maybe Text)
-pDefaultServiceAccount
-  = lens _pDefaultServiceAccount
-      (\ s a -> s{_pDefaultServiceAccount = a})
-
--- | This signifies the default network tier used for configuring resources
--- of the project and can only take the following values: PREMIUM,
--- STANDARD. Initially the default network tier is PREMIUM.
-pDefaultNetworkTier :: Lens' Project (Maybe ProjectDefaultNetworkTier)
-pDefaultNetworkTier
-  = lens _pDefaultNetworkTier
-      (\ s a -> s{_pDefaultNetworkTier = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-pCreationTimestamp :: Lens' Project (Maybe Text)
-pCreationTimestamp
-  = lens _pCreationTimestamp
-      (\ s a -> s{_pCreationTimestamp = a})
-
--- | Restricted features enabled for use on this project.
-pEnabledFeatures :: Lens' Project [Text]
-pEnabledFeatures
-  = lens _pEnabledFeatures
-      (\ s a -> s{_pEnabledFeatures = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Quotas assigned to this project.
-pQuotas :: Lens' Project [Quota]
-pQuotas
-  = lens _pQuotas (\ s a -> s{_pQuotas = a}) . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server. This is not the project ID, and is just a unique
--- ID used by Compute Engine to identify resources.
-pId :: Lens' Project (Maybe Word64)
-pId
-  = lens _pId (\ s a -> s{_pId = a}) . mapping _Coerce
-
--- | An optional textual description of the resource.
-pDescription :: Lens' Project (Maybe Text)
-pDescription
-  = lens _pDescription (\ s a -> s{_pDescription = a})
-
--- | Metadata key\/value pairs available to all instances contained in this
--- project. See Custom metadata for more information.
-pCommonInstanceMetadata :: Lens' Project (Maybe Metadata)
-pCommonInstanceMetadata
-  = lens _pCommonInstanceMetadata
-      (\ s a -> s{_pCommonInstanceMetadata = a})
-
-instance FromJSON Project where
-        parseJSON
-          = withObject "Project"
-              (\ o ->
-                 Project' <$>
-                   (o .:? "xpnProjectStatus") <*>
-                     (o .:? "kind" .!= "compute#project")
-                     <*> (o .:? "usageExportLocation")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "defaultServiceAccount")
-                     <*> (o .:? "defaultNetworkTier")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "enabledFeatures" .!= mempty)
-                     <*> (o .:? "quotas" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "description")
-                     <*> (o .:? "commonInstanceMetadata"))
-
-instance ToJSON Project where
-        toJSON Project'{..}
-          = object
-              (catMaybes
-                 [("xpnProjectStatus" .=) <$> _pXpnProjectStatus,
-                  Just ("kind" .= _pKind),
-                  ("usageExportLocation" .=) <$> _pUsageExportLocation,
-                  ("selfLink" .=) <$> _pSelfLink,
-                  ("name" .=) <$> _pName,
-                  ("defaultServiceAccount" .=) <$>
-                    _pDefaultServiceAccount,
-                  ("defaultNetworkTier" .=) <$> _pDefaultNetworkTier,
-                  ("creationTimestamp" .=) <$> _pCreationTimestamp,
-                  ("enabledFeatures" .=) <$> _pEnabledFeatures,
-                  ("quotas" .=) <$> _pQuotas, ("id" .=) <$> _pId,
-                  ("description" .=) <$> _pDescription,
-                  ("commonInstanceMetadata" .=) <$>
-                    _pCommonInstanceMetadata])
-
---
--- /See:/ 'regionInstanceGroupManagersListInstancesResponse' smart constructor.
-newtype RegionInstanceGroupManagersListInstancesResponse =
-  RegionInstanceGroupManagersListInstancesResponse'
-    { _rigmlirManagedInstances :: Maybe [ManagedInstance]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersListInstancesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlirManagedInstances'
-regionInstanceGroupManagersListInstancesResponse
-    :: RegionInstanceGroupManagersListInstancesResponse
-regionInstanceGroupManagersListInstancesResponse =
-  RegionInstanceGroupManagersListInstancesResponse'
-    {_rigmlirManagedInstances = Nothing}
-
-
--- | A list of managed instances.
-rigmlirManagedInstances :: Lens' RegionInstanceGroupManagersListInstancesResponse [ManagedInstance]
-rigmlirManagedInstances
-  = lens _rigmlirManagedInstances
-      (\ s a -> s{_rigmlirManagedInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupManagersListInstancesResponse
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersListInstancesResponse"
-              (\ o ->
-                 RegionInstanceGroupManagersListInstancesResponse' <$>
-                   (o .:? "managedInstances" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupManagersListInstancesResponse
-         where
-        toJSON
-          RegionInstanceGroupManagersListInstancesResponse'{..}
-          = object
-              (catMaybes
-                 [("managedInstances" .=) <$>
-                    _rigmlirManagedInstances])
-
--- | An Operation resource, used to manage asynchronous API requests. (==
--- resource_for v1.globalOperations ==) (== resource_for
--- beta.globalOperations ==) (== resource_for v1.regionOperations ==) (==
--- resource_for beta.regionOperations ==) (== resource_for
--- v1.zoneOperations ==) (== resource_for beta.zoneOperations ==)
---
--- /See:/ 'operation' smart constructor.
-data Operation =
-  Operation'
-    { _oTargetId            :: !(Maybe (Textual Word64))
-    , _oStatus              :: !(Maybe OperationStatus)
-    , _oInsertTime          :: !(Maybe Text)
-    , _oProgress            :: !(Maybe (Textual Int32))
-    , _oStartTime           :: !(Maybe Text)
-    , _oKind                :: !Text
-    , _oError               :: !(Maybe OperationError)
-    , _oHTTPErrorMessage    :: !(Maybe Text)
-    , _oZone                :: !(Maybe Text)
-    , _oWarnings            :: !(Maybe [OperationWarningsItem])
-    , _oHTTPErrorStatusCode :: !(Maybe (Textual Int32))
-    , _oUser                :: !(Maybe Text)
-    , _oSelfLink            :: !(Maybe Text)
-    , _oName                :: !(Maybe Text)
-    , _oStatusMessage       :: !(Maybe Text)
-    , _oCreationTimestamp   :: !(Maybe Text)
-    , _oEndTime             :: !(Maybe Text)
-    , _oId                  :: !(Maybe (Textual Word64))
-    , _oOperationType       :: !(Maybe Text)
-    , _oRegion              :: !(Maybe Text)
-    , _oDescription         :: !(Maybe Text)
-    , _oTargetLink          :: !(Maybe Text)
-    , _oClientOperationId   :: !(Maybe Text)
-    }
-  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:
---
--- * 'oTargetId'
---
--- * 'oStatus'
---
--- * 'oInsertTime'
---
--- * 'oProgress'
---
--- * 'oStartTime'
---
--- * 'oKind'
---
--- * 'oError'
---
--- * 'oHTTPErrorMessage'
---
--- * 'oZone'
---
--- * 'oWarnings'
---
--- * 'oHTTPErrorStatusCode'
---
--- * 'oUser'
---
--- * 'oSelfLink'
---
--- * 'oName'
---
--- * 'oStatusMessage'
---
--- * 'oCreationTimestamp'
---
--- * 'oEndTime'
---
--- * 'oId'
---
--- * 'oOperationType'
---
--- * 'oRegion'
---
--- * 'oDescription'
---
--- * 'oTargetLink'
---
--- * 'oClientOperationId'
-operation
-    :: Operation
-operation =
-  Operation'
-    { _oTargetId = Nothing
-    , _oStatus = Nothing
-    , _oInsertTime = Nothing
-    , _oProgress = Nothing
-    , _oStartTime = Nothing
-    , _oKind = "compute#operation"
-    , _oError = Nothing
-    , _oHTTPErrorMessage = Nothing
-    , _oZone = Nothing
-    , _oWarnings = Nothing
-    , _oHTTPErrorStatusCode = Nothing
-    , _oUser = Nothing
-    , _oSelfLink = Nothing
-    , _oName = Nothing
-    , _oStatusMessage = Nothing
-    , _oCreationTimestamp = Nothing
-    , _oEndTime = Nothing
-    , _oId = Nothing
-    , _oOperationType = Nothing
-    , _oRegion = Nothing
-    , _oDescription = Nothing
-    , _oTargetLink = Nothing
-    , _oClientOperationId = Nothing
-    }
-
-
--- | [Output Only] The unique target ID, which identifies a specific
--- incarnation of the target resource.
-oTargetId :: Lens' Operation (Maybe Word64)
-oTargetId
-  = lens _oTargetId (\ s a -> s{_oTargetId = a}) .
-      mapping _Coerce
-
--- | [Output Only] The status of the operation, which can be one of the
--- following: PENDING, RUNNING, or DONE.
-oStatus :: Lens' Operation (Maybe OperationStatus)
-oStatus = lens _oStatus (\ s a -> s{_oStatus = a})
-
--- | [Output Only] The time that this operation was requested. This value is
--- in RFC3339 text format.
-oInsertTime :: Lens' Operation (Maybe Text)
-oInsertTime
-  = lens _oInsertTime (\ s a -> s{_oInsertTime = a})
-
--- | [Output Only] An optional progress indicator that ranges from 0 to 100.
--- There is no requirement that this be linear or support any granularity
--- of operations. This should not be used to guess when the operation will
--- be complete. This number should monotonically increase as the operation
--- progresses.
-oProgress :: Lens' Operation (Maybe Int32)
-oProgress
-  = lens _oProgress (\ s a -> s{_oProgress = a}) .
-      mapping _Coerce
-
--- | [Output Only] The time that this operation was started by the server.
--- This value is in RFC3339 text format.
-oStartTime :: Lens' Operation (Maybe Text)
-oStartTime
-  = lens _oStartTime (\ s a -> s{_oStartTime = a})
-
--- | [Output Only] Type of the resource. Always compute#operation for
--- Operation resources.
-oKind :: Lens' Operation Text
-oKind = lens _oKind (\ s a -> s{_oKind = a})
-
--- | [Output Only] If errors are generated during processing of the
--- operation, this field will be populated.
-oError :: Lens' Operation (Maybe OperationError)
-oError = lens _oError (\ s a -> s{_oError = a})
-
--- | [Output Only] If the operation fails, this field contains the HTTP error
--- message that was returned, such as NOT FOUND.
-oHTTPErrorMessage :: Lens' Operation (Maybe Text)
-oHTTPErrorMessage
-  = lens _oHTTPErrorMessage
-      (\ s a -> s{_oHTTPErrorMessage = a})
-
--- | [Output Only] The URL of the zone where the operation resides. Only
--- available when performing per-zone operations. You must specify this
--- field as part of the HTTP request URL. It is not settable as a field in
--- the request body.
-oZone :: Lens' Operation (Maybe Text)
-oZone = lens _oZone (\ s a -> s{_oZone = a})
-
--- | [Output Only] If warning messages are generated during processing of the
--- operation, this field will be populated.
-oWarnings :: Lens' Operation [OperationWarningsItem]
-oWarnings
-  = lens _oWarnings (\ s a -> s{_oWarnings = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] If the operation fails, this field contains the HTTP error
--- status code that was returned. For example, a 404 means the resource was
--- not found.
-oHTTPErrorStatusCode :: Lens' Operation (Maybe Int32)
-oHTTPErrorStatusCode
-  = lens _oHTTPErrorStatusCode
-      (\ s a -> s{_oHTTPErrorStatusCode = a})
-      . mapping _Coerce
-
--- | [Output Only] User who requested the operation, for example:
--- user\'example.com.
-oUser :: Lens' Operation (Maybe Text)
-oUser = lens _oUser (\ s a -> s{_oUser = a})
-
--- | [Output Only] Server-defined URL for the resource.
-oSelfLink :: Lens' Operation (Maybe Text)
-oSelfLink
-  = lens _oSelfLink (\ s a -> s{_oSelfLink = a})
-
--- | [Output Only] Name of the resource.
-oName :: Lens' Operation (Maybe Text)
-oName = lens _oName (\ s a -> s{_oName = a})
-
--- | [Output Only] An optional textual description of the current status of
--- the operation.
-oStatusMessage :: Lens' Operation (Maybe Text)
-oStatusMessage
-  = lens _oStatusMessage
-      (\ s a -> s{_oStatusMessage = a})
-
--- | [Deprecated] This field is deprecated.
-oCreationTimestamp :: Lens' Operation (Maybe Text)
-oCreationTimestamp
-  = lens _oCreationTimestamp
-      (\ s a -> s{_oCreationTimestamp = a})
-
--- | [Output Only] The time that this operation was completed. This value is
--- in RFC3339 text format.
-oEndTime :: Lens' Operation (Maybe Text)
-oEndTime = lens _oEndTime (\ s a -> s{_oEndTime = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-oId :: Lens' Operation (Maybe Word64)
-oId
-  = lens _oId (\ s a -> s{_oId = a}) . mapping _Coerce
-
--- | [Output Only] The type of operation, such as insert, update, or delete,
--- and so on.
-oOperationType :: Lens' Operation (Maybe Text)
-oOperationType
-  = lens _oOperationType
-      (\ s a -> s{_oOperationType = a})
-
--- | [Output Only] The URL of the region where the operation resides. Only
--- available when performing regional operations. You must specify this
--- field as part of the HTTP request URL. It is not settable as a field in
--- the request body.
-oRegion :: Lens' Operation (Maybe Text)
-oRegion = lens _oRegion (\ s a -> s{_oRegion = a})
-
--- | [Output Only] A textual description of the operation, which is set when
--- the operation is created.
-oDescription :: Lens' Operation (Maybe Text)
-oDescription
-  = lens _oDescription (\ s a -> s{_oDescription = a})
-
--- | [Output Only] The URL of the resource that the operation modifies. For
--- operations related to creating a snapshot, this points to the persistent
--- disk that the snapshot was created from.
-oTargetLink :: Lens' Operation (Maybe Text)
-oTargetLink
-  = lens _oTargetLink (\ s a -> s{_oTargetLink = a})
-
--- | [Output Only] The value of \`requestId\` if you provided it in the
--- request. Not present otherwise.
-oClientOperationId :: Lens' Operation (Maybe Text)
-oClientOperationId
-  = lens _oClientOperationId
-      (\ s a -> s{_oClientOperationId = a})
-
-instance FromJSON Operation where
-        parseJSON
-          = withObject "Operation"
-              (\ o ->
-                 Operation' <$>
-                   (o .:? "targetId") <*> (o .:? "status") <*>
-                     (o .:? "insertTime")
-                     <*> (o .:? "progress")
-                     <*> (o .:? "startTime")
-                     <*> (o .:? "kind" .!= "compute#operation")
-                     <*> (o .:? "error")
-                     <*> (o .:? "httpErrorMessage")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "warnings" .!= mempty)
-                     <*> (o .:? "httpErrorStatusCode")
-                     <*> (o .:? "user")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "statusMessage")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "id")
-                     <*> (o .:? "operationType")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "targetLink")
-                     <*> (o .:? "clientOperationId"))
-
-instance ToJSON Operation where
-        toJSON Operation'{..}
-          = object
-              (catMaybes
-                 [("targetId" .=) <$> _oTargetId,
-                  ("status" .=) <$> _oStatus,
-                  ("insertTime" .=) <$> _oInsertTime,
-                  ("progress" .=) <$> _oProgress,
-                  ("startTime" .=) <$> _oStartTime,
-                  Just ("kind" .= _oKind), ("error" .=) <$> _oError,
-                  ("httpErrorMessage" .=) <$> _oHTTPErrorMessage,
-                  ("zone" .=) <$> _oZone,
-                  ("warnings" .=) <$> _oWarnings,
-                  ("httpErrorStatusCode" .=) <$> _oHTTPErrorStatusCode,
-                  ("user" .=) <$> _oUser,
-                  ("selfLink" .=) <$> _oSelfLink,
-                  ("name" .=) <$> _oName,
-                  ("statusMessage" .=) <$> _oStatusMessage,
-                  ("creationTimestamp" .=) <$> _oCreationTimestamp,
-                  ("endTime" .=) <$> _oEndTime, ("id" .=) <$> _oId,
-                  ("operationType" .=) <$> _oOperationType,
-                  ("region" .=) <$> _oRegion,
-                  ("description" .=) <$> _oDescription,
-                  ("targetLink" .=) <$> _oTargetLink,
-                  ("clientOperationId" .=) <$> _oClientOperationId])
-
--- | The network endpoint.
---
--- /See:/ 'networkEndpoint' smart constructor.
-data NetworkEndpoint =
-  NetworkEndpoint'
-    { _neIPAddress :: !(Maybe Text)
-    , _nePort      :: !(Maybe (Textual Int32))
-    , _neInstance  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpoint' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neIPAddress'
---
--- * 'nePort'
---
--- * 'neInstance'
-networkEndpoint
-    :: NetworkEndpoint
-networkEndpoint =
-  NetworkEndpoint'
-    {_neIPAddress = Nothing, _nePort = Nothing, _neInstance = Nothing}
-
-
--- | Optional IPv4 address of network endpoint. The IP address must belong to
--- a VM in GCE (either the primary IP or as part of an aliased IP range).
--- If the IP address is not specified, then the primary IP address for the
--- VM instance in the network that the network endpoint group belongs to
--- will be used.
-neIPAddress :: Lens' NetworkEndpoint (Maybe Text)
-neIPAddress
-  = lens _neIPAddress (\ s a -> s{_neIPAddress = a})
-
--- | Optional port number of network endpoint. If not specified and the
--- NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
--- defaultPort for the network endpoint group will be used.
-nePort :: Lens' NetworkEndpoint (Maybe Int32)
-nePort
-  = lens _nePort (\ s a -> s{_nePort = a}) .
-      mapping _Coerce
-
--- | The name for a specific VM instance that the IP address belongs to. This
--- is required for network endpoints of type GCE_VM_IP_PORT. The instance
--- must be in the same zone of network endpoint group. The name must be
--- 1-63 characters long, and comply with RFC1035.
-neInstance :: Lens' NetworkEndpoint (Maybe Text)
-neInstance
-  = lens _neInstance (\ s a -> s{_neInstance = a})
-
-instance FromJSON NetworkEndpoint where
-        parseJSON
-          = withObject "NetworkEndpoint"
-              (\ o ->
-                 NetworkEndpoint' <$>
-                   (o .:? "ipAddress") <*> (o .:? "port") <*>
-                     (o .:? "instance"))
-
-instance ToJSON NetworkEndpoint where
-        toJSON NetworkEndpoint'{..}
-          = object
-              (catMaybes
-                 [("ipAddress" .=) <$> _neIPAddress,
-                  ("port" .=) <$> _nePort,
-                  ("instance" .=) <$> _neInstance])
-
---
--- /See:/ 'disksScopedListWarningDataItem' smart constructor.
-data DisksScopedListWarningDataItem =
-  DisksScopedListWarningDataItem'
-    { _dslwdiValue :: !(Maybe Text)
-    , _dslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dslwdiValue'
---
--- * 'dslwdiKey'
-disksScopedListWarningDataItem
-    :: DisksScopedListWarningDataItem
-disksScopedListWarningDataItem =
-  DisksScopedListWarningDataItem' {_dslwdiValue = Nothing, _dslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dslwdiValue :: Lens' DisksScopedListWarningDataItem (Maybe Text)
-dslwdiValue
-  = lens _dslwdiValue (\ s a -> s{_dslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dslwdiKey :: Lens' DisksScopedListWarningDataItem (Maybe Text)
-dslwdiKey
-  = lens _dslwdiKey (\ s a -> s{_dslwdiKey = a})
-
-instance FromJSON DisksScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "DisksScopedListWarningDataItem"
-              (\ o ->
-                 DisksScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DisksScopedListWarningDataItem where
-        toJSON DisksScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dslwdiValue,
-                  ("key" .=) <$> _dslwdiKey])
-
--- | A Disk resource. (== resource_for beta.disks ==) (== resource_for
--- v1.disks ==)
---
--- /See:/ 'disk' smart constructor.
-data Disk =
-  Disk'
-    { _dStatus                      :: !(Maybe DiskStatus)
-    , _dSourceSnapshotId            :: !(Maybe Text)
-    , _dLastAttachTimestamp         :: !(Maybe Text)
-    , _dUsers                       :: !(Maybe [Text])
-    , _dSourceImage                 :: !(Maybe Text)
-    , _dReplicaZones                :: !(Maybe [Text])
-    , _dDiskEncryptionKey           :: !(Maybe CustomerEncryptionKey)
-    , _dSizeGb                      :: !(Maybe (Textual Int64))
-    , _dKind                        :: !Text
-    , _dLastDetachTimestamp         :: !(Maybe Text)
-    , _dGuestOSFeatures             :: !(Maybe [GuestOSFeature])
-    , _dZone                        :: !(Maybe Text)
-    , _dSelfLink                    :: !(Maybe Text)
-    , _dName                        :: !(Maybe Text)
-    , _dSourceImageId               :: !(Maybe Text)
-    , _dCreationTimestamp           :: !(Maybe Text)
-    , _dSourceImageEncryptionKey    :: !(Maybe CustomerEncryptionKey)
-    , _dLicenseCodes                :: !(Maybe [Textual Int64])
-    , _dId                          :: !(Maybe (Textual Word64))
-    , _dLabels                      :: !(Maybe DiskLabels)
-    , _dLicenses                    :: !(Maybe [Text])
-    , _dRegion                      :: !(Maybe Text)
-    , _dOptions                     :: !(Maybe Text)
-    , _dPhysicalBlockSizeBytes      :: !(Maybe (Textual Int64))
-    , _dType                        :: !(Maybe Text)
-    , _dLabelFingerprint            :: !(Maybe Bytes)
-    , _dDescription                 :: !(Maybe Text)
-    , _dSourceSnapshotEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _dSourceSnapshot              :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Disk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dStatus'
---
--- * 'dSourceSnapshotId'
---
--- * 'dLastAttachTimestamp'
---
--- * 'dUsers'
---
--- * 'dSourceImage'
---
--- * 'dReplicaZones'
---
--- * 'dDiskEncryptionKey'
---
--- * 'dSizeGb'
---
--- * 'dKind'
---
--- * 'dLastDetachTimestamp'
---
--- * 'dGuestOSFeatures'
---
--- * 'dZone'
---
--- * 'dSelfLink'
---
--- * 'dName'
---
--- * 'dSourceImageId'
---
--- * 'dCreationTimestamp'
---
--- * 'dSourceImageEncryptionKey'
---
--- * 'dLicenseCodes'
---
--- * 'dId'
---
--- * 'dLabels'
---
--- * 'dLicenses'
---
--- * 'dRegion'
---
--- * 'dOptions'
---
--- * 'dPhysicalBlockSizeBytes'
---
--- * 'dType'
---
--- * 'dLabelFingerprint'
---
--- * 'dDescription'
---
--- * 'dSourceSnapshotEncryptionKey'
---
--- * 'dSourceSnapshot'
-disk
-    :: Disk
-disk =
-  Disk'
-    { _dStatus = Nothing
-    , _dSourceSnapshotId = Nothing
-    , _dLastAttachTimestamp = Nothing
-    , _dUsers = Nothing
-    , _dSourceImage = Nothing
-    , _dReplicaZones = Nothing
-    , _dDiskEncryptionKey = Nothing
-    , _dSizeGb = Nothing
-    , _dKind = "compute#disk"
-    , _dLastDetachTimestamp = Nothing
-    , _dGuestOSFeatures = Nothing
-    , _dZone = Nothing
-    , _dSelfLink = Nothing
-    , _dName = Nothing
-    , _dSourceImageId = Nothing
-    , _dCreationTimestamp = Nothing
-    , _dSourceImageEncryptionKey = Nothing
-    , _dLicenseCodes = Nothing
-    , _dId = Nothing
-    , _dLabels = Nothing
-    , _dLicenses = Nothing
-    , _dRegion = Nothing
-    , _dOptions = Nothing
-    , _dPhysicalBlockSizeBytes = Nothing
-    , _dType = Nothing
-    , _dLabelFingerprint = Nothing
-    , _dDescription = Nothing
-    , _dSourceSnapshotEncryptionKey = Nothing
-    , _dSourceSnapshot = Nothing
-    }
-
-
--- | [Output Only] The status of disk creation.
-dStatus :: Lens' Disk (Maybe DiskStatus)
-dStatus = lens _dStatus (\ s a -> s{_dStatus = a})
-
--- | [Output Only] The unique ID of the snapshot used to create this disk.
--- This value identifies the exact snapshot that was used to create this
--- persistent disk. For example, if you created the persistent disk from a
--- snapshot that was later deleted and recreated under the same name, the
--- source snapshot ID would identify the exact version of the snapshot that
--- was used.
-dSourceSnapshotId :: Lens' Disk (Maybe Text)
-dSourceSnapshotId
-  = lens _dSourceSnapshotId
-      (\ s a -> s{_dSourceSnapshotId = a})
-
--- | [Output Only] Last attach timestamp in RFC3339 text format.
-dLastAttachTimestamp :: Lens' Disk (Maybe Text)
-dLastAttachTimestamp
-  = lens _dLastAttachTimestamp
-      (\ s a -> s{_dLastAttachTimestamp = a})
-
--- | [Output Only] Links to the users of the disk (attached instances) in
--- form: project\/zones\/zone\/instances\/instance
-dUsers :: Lens' Disk [Text]
-dUsers
-  = lens _dUsers (\ s a -> s{_dUsers = a}) . _Default .
-      _Coerce
-
--- | The source image used to create this disk. If the source image is
--- deleted, this field will not be set. To create a disk with one of the
--- public operating system images, specify the image by its family name.
--- For example, specify family\/debian-9 to use the latest Debian 9 image:
--- projects\/debian-cloud\/global\/images\/family\/debian-9 Alternatively,
--- use a specific version of a public operating system image:
--- projects\/debian-cloud\/global\/images\/debian-9-stretch-vYYYYMMDD To
--- create a disk with a custom image that you created, specify the image
--- name in the following format: global\/images\/my-custom-image You can
--- also specify a custom image by its image family, which returns the
--- latest version of the image in that family. Replace the image name with
--- family\/family-name: global\/images\/family\/my-image-family
-dSourceImage :: Lens' Disk (Maybe Text)
-dSourceImage
-  = lens _dSourceImage (\ s a -> s{_dSourceImage = a})
-
--- | URLs of the zones where the disk should be replicated to. Only
--- applicable for regional resources.
-dReplicaZones :: Lens' Disk [Text]
-dReplicaZones
-  = lens _dReplicaZones
-      (\ s a -> s{_dReplicaZones = a})
-      . _Default
-      . _Coerce
-
--- | Encrypts the disk using a customer-supplied encryption key. After you
--- encrypt a disk with a customer-supplied key, you must provide the same
--- key if you use the disk later (e.g. to create a disk snapshot or an
--- image, or to attach the disk to a virtual machine). Customer-supplied
--- encryption keys do not protect access to metadata of the disk. If you do
--- not provide an encryption key when creating the disk, then the disk will
--- be encrypted using an automatically generated key and you do not need to
--- provide a key to use the disk later.
-dDiskEncryptionKey :: Lens' Disk (Maybe CustomerEncryptionKey)
-dDiskEncryptionKey
-  = lens _dDiskEncryptionKey
-      (\ s a -> s{_dDiskEncryptionKey = a})
-
--- | Size of the persistent disk, specified in GB. You can specify this field
--- when creating a persistent disk using the sourceImage or sourceSnapshot
--- parameter, or specify it alone to create an empty persistent disk. If
--- you specify this field along with sourceImage or sourceSnapshot, the
--- value of sizeGb must not be less than the size of the sourceImage or the
--- size of the snapshot. Acceptable values are 1 to 65536, inclusive.
-dSizeGb :: Lens' Disk (Maybe Int64)
-dSizeGb
-  = lens _dSizeGb (\ s a -> s{_dSizeGb = a}) .
-      mapping _Coerce
-
--- | [Output Only] Type of the resource. Always compute#disk for disks.
-dKind :: Lens' Disk Text
-dKind = lens _dKind (\ s a -> s{_dKind = a})
-
--- | [Output Only] Last detach timestamp in RFC3339 text format.
-dLastDetachTimestamp :: Lens' Disk (Maybe Text)
-dLastDetachTimestamp
-  = lens _dLastDetachTimestamp
-      (\ s a -> s{_dLastDetachTimestamp = a})
-
--- | A list of features to enable on the guest operating system. Applicable
--- only for bootable images. Read Enabling guest operating system features
--- to see a list of available options.
-dGuestOSFeatures :: Lens' Disk [GuestOSFeature]
-dGuestOSFeatures
-  = lens _dGuestOSFeatures
-      (\ s a -> s{_dGuestOSFeatures = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] URL of the zone where the disk resides. You must specify
--- this field as part of the HTTP request URL. It is not settable as a
--- field in the request body.
-dZone :: Lens' Disk (Maybe Text)
-dZone = lens _dZone (\ s a -> s{_dZone = a})
-
--- | [Output Only] Server-defined fully-qualified URL for this resource.
-dSelfLink :: Lens' Disk (Maybe Text)
-dSelfLink
-  = lens _dSelfLink (\ s a -> s{_dSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-dName :: Lens' Disk (Maybe Text)
-dName = lens _dName (\ s a -> s{_dName = a})
-
--- | [Output Only] The ID value of the image used to create this disk. This
--- value identifies the exact image that was used to create this persistent
--- disk. For example, if you created the persistent disk from an image that
--- was later deleted and recreated under the same name, the source image ID
--- would identify the exact version of the image that was used.
-dSourceImageId :: Lens' Disk (Maybe Text)
-dSourceImageId
-  = lens _dSourceImageId
-      (\ s a -> s{_dSourceImageId = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-dCreationTimestamp :: Lens' Disk (Maybe Text)
-dCreationTimestamp
-  = lens _dCreationTimestamp
-      (\ s a -> s{_dCreationTimestamp = a})
-
--- | The customer-supplied encryption key of the source image. Required if
--- the source image is protected by a customer-supplied encryption key.
-dSourceImageEncryptionKey :: Lens' Disk (Maybe CustomerEncryptionKey)
-dSourceImageEncryptionKey
-  = lens _dSourceImageEncryptionKey
-      (\ s a -> s{_dSourceImageEncryptionKey = a})
-
--- | Integer license codes indicating which licenses are attached to this
--- disk.
-dLicenseCodes :: Lens' Disk [Int64]
-dLicenseCodes
-  = lens _dLicenseCodes
-      (\ s a -> s{_dLicenseCodes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-dId :: Lens' Disk (Maybe Word64)
-dId
-  = lens _dId (\ s a -> s{_dId = a}) . mapping _Coerce
-
--- | Labels to apply to this disk. These can be later modified by the
--- setLabels method.
-dLabels :: Lens' Disk (Maybe DiskLabels)
-dLabels = lens _dLabels (\ s a -> s{_dLabels = a})
-
--- | A list of publicly visible licenses. Reserved for Google\'s use.
-dLicenses :: Lens' Disk [Text]
-dLicenses
-  = lens _dLicenses (\ s a -> s{_dLicenses = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] URL of the region where the disk resides. Only applicable
--- for regional resources. You must specify this field as part of the HTTP
--- request URL. It is not settable as a field in the request body.
-dRegion :: Lens' Disk (Maybe Text)
-dRegion = lens _dRegion (\ s a -> s{_dRegion = a})
-
--- | Internal use only.
-dOptions :: Lens' Disk (Maybe Text)
-dOptions = lens _dOptions (\ s a -> s{_dOptions = a})
-
--- | Physical block size of the persistent disk, in bytes. If not present in
--- a request, a default value is used. Currently supported sizes are 4096
--- and 16384, other sizes may be added in the future. If an unsupported
--- value is requested, the error message will list the supported values for
--- the caller\'s project.
-dPhysicalBlockSizeBytes :: Lens' Disk (Maybe Int64)
-dPhysicalBlockSizeBytes
-  = lens _dPhysicalBlockSizeBytes
-      (\ s a -> s{_dPhysicalBlockSizeBytes = a})
-      . mapping _Coerce
-
--- | URL of the disk type resource describing which disk type to use to
--- create the disk. Provide this when creating the disk. For example:
--- project\/zones\/zone\/diskTypes\/pd-standard or pd-ssd
-dType :: Lens' Disk (Maybe Text)
-dType = lens _dType (\ s a -> s{_dType = a})
-
--- | A fingerprint for the labels being applied to this disk, which is
--- essentially a hash of the labels set used for optimistic locking. The
--- fingerprint is initially generated by Compute Engine and changes after
--- every request to modify or update labels. You must always provide an
--- up-to-date fingerprint hash in order to update or change labels,
--- otherwise the request will fail with error 412 conditionNotMet. To see
--- the latest fingerprint, make a get() request to retrieve a disk.
-dLabelFingerprint :: Lens' Disk (Maybe ByteString)
-dLabelFingerprint
-  = lens _dLabelFingerprint
-      (\ s a -> s{_dLabelFingerprint = a})
-      . mapping _Bytes
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-dDescription :: Lens' Disk (Maybe Text)
-dDescription
-  = lens _dDescription (\ s a -> s{_dDescription = a})
-
--- | The customer-supplied encryption key of the source snapshot. Required if
--- the source snapshot is protected by a customer-supplied encryption key.
-dSourceSnapshotEncryptionKey :: Lens' Disk (Maybe CustomerEncryptionKey)
-dSourceSnapshotEncryptionKey
-  = lens _dSourceSnapshotEncryptionKey
-      (\ s a -> s{_dSourceSnapshotEncryptionKey = a})
-
--- | The source snapshot used to create this disk. You can provide this as a
--- partial or full URL to the resource. For example, the following are
--- valid values: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/snapshots\/snapshot
--- - projects\/project\/global\/snapshots\/snapshot -
--- global\/snapshots\/snapshot
-dSourceSnapshot :: Lens' Disk (Maybe Text)
-dSourceSnapshot
-  = lens _dSourceSnapshot
-      (\ s a -> s{_dSourceSnapshot = a})
-
-instance FromJSON Disk where
-        parseJSON
-          = withObject "Disk"
-              (\ o ->
-                 Disk' <$>
-                   (o .:? "status") <*> (o .:? "sourceSnapshotId") <*>
-                     (o .:? "lastAttachTimestamp")
-                     <*> (o .:? "users" .!= mempty)
-                     <*> (o .:? "sourceImage")
-                     <*> (o .:? "replicaZones" .!= mempty)
-                     <*> (o .:? "diskEncryptionKey")
-                     <*> (o .:? "sizeGb")
-                     <*> (o .:? "kind" .!= "compute#disk")
-                     <*> (o .:? "lastDetachTimestamp")
-                     <*> (o .:? "guestOsFeatures" .!= mempty)
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "sourceImageId")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "sourceImageEncryptionKey")
-                     <*> (o .:? "licenseCodes" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "licenses" .!= mempty)
-                     <*> (o .:? "region")
-                     <*> (o .:? "options")
-                     <*> (o .:? "physicalBlockSizeBytes")
-                     <*> (o .:? "type")
-                     <*> (o .:? "labelFingerprint")
-                     <*> (o .:? "description")
-                     <*> (o .:? "sourceSnapshotEncryptionKey")
-                     <*> (o .:? "sourceSnapshot"))
-
-instance ToJSON Disk where
-        toJSON Disk'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _dStatus,
-                  ("sourceSnapshotId" .=) <$> _dSourceSnapshotId,
-                  ("lastAttachTimestamp" .=) <$> _dLastAttachTimestamp,
-                  ("users" .=) <$> _dUsers,
-                  ("sourceImage" .=) <$> _dSourceImage,
-                  ("replicaZones" .=) <$> _dReplicaZones,
-                  ("diskEncryptionKey" .=) <$> _dDiskEncryptionKey,
-                  ("sizeGb" .=) <$> _dSizeGb, Just ("kind" .= _dKind),
-                  ("lastDetachTimestamp" .=) <$> _dLastDetachTimestamp,
-                  ("guestOsFeatures" .=) <$> _dGuestOSFeatures,
-                  ("zone" .=) <$> _dZone,
-                  ("selfLink" .=) <$> _dSelfLink,
-                  ("name" .=) <$> _dName,
-                  ("sourceImageId" .=) <$> _dSourceImageId,
-                  ("creationTimestamp" .=) <$> _dCreationTimestamp,
-                  ("sourceImageEncryptionKey" .=) <$>
-                    _dSourceImageEncryptionKey,
-                  ("licenseCodes" .=) <$> _dLicenseCodes,
-                  ("id" .=) <$> _dId, ("labels" .=) <$> _dLabels,
-                  ("licenses" .=) <$> _dLicenses,
-                  ("region" .=) <$> _dRegion,
-                  ("options" .=) <$> _dOptions,
-                  ("physicalBlockSizeBytes" .=) <$>
-                    _dPhysicalBlockSizeBytes,
-                  ("type" .=) <$> _dType,
-                  ("labelFingerprint" .=) <$> _dLabelFingerprint,
-                  ("description" .=) <$> _dDescription,
-                  ("sourceSnapshotEncryptionKey" .=) <$>
-                    _dSourceSnapshotEncryptionKey,
-                  ("sourceSnapshot" .=) <$> _dSourceSnapshot])
-
---
--- /See:/ 'usableSubnetworksAggregatedListWarningDataItem' smart constructor.
-data UsableSubnetworksAggregatedListWarningDataItem =
-  UsableSubnetworksAggregatedListWarningDataItem'
-    { _usalwdiValue :: !(Maybe Text)
-    , _usalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsableSubnetworksAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usalwdiValue'
---
--- * 'usalwdiKey'
-usableSubnetworksAggregatedListWarningDataItem
-    :: UsableSubnetworksAggregatedListWarningDataItem
-usableSubnetworksAggregatedListWarningDataItem =
-  UsableSubnetworksAggregatedListWarningDataItem'
-    {_usalwdiValue = Nothing, _usalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-usalwdiValue :: Lens' UsableSubnetworksAggregatedListWarningDataItem (Maybe Text)
-usalwdiValue
-  = lens _usalwdiValue (\ s a -> s{_usalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-usalwdiKey :: Lens' UsableSubnetworksAggregatedListWarningDataItem (Maybe Text)
-usalwdiKey
-  = lens _usalwdiKey (\ s a -> s{_usalwdiKey = a})
-
-instance FromJSON
-           UsableSubnetworksAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "UsableSubnetworksAggregatedListWarningDataItem"
-              (\ o ->
-                 UsableSubnetworksAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           UsableSubnetworksAggregatedListWarningDataItem
-         where
-        toJSON
-          UsableSubnetworksAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _usalwdiValue,
-                  ("key" .=) <$> _usalwdiKey])
-
--- | Contains a list of nodeGroups.
---
--- /See:/ 'nodeGroupList' smart constructor.
-data NodeGroupList =
-  NodeGroupList'
-    { _nglNextPageToken :: !(Maybe Text)
-    , _nglKind          :: !Text
-    , _nglItems         :: !(Maybe [NodeGroup])
-    , _nglSelfLink      :: !(Maybe Text)
-    , _nglWarning       :: !(Maybe NodeGroupListWarning)
-    , _nglId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglNextPageToken'
---
--- * 'nglKind'
---
--- * 'nglItems'
---
--- * 'nglSelfLink'
---
--- * 'nglWarning'
---
--- * 'nglId'
-nodeGroupList
-    :: NodeGroupList
-nodeGroupList =
-  NodeGroupList'
-    { _nglNextPageToken = Nothing
-    , _nglKind = "compute#nodeGroupList"
-    , _nglItems = Nothing
-    , _nglSelfLink = Nothing
-    , _nglWarning = Nothing
-    , _nglId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-nglNextPageToken :: Lens' NodeGroupList (Maybe Text)
-nglNextPageToken
-  = lens _nglNextPageToken
-      (\ s a -> s{_nglNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeGroupList for lists of
--- node groups.
-nglKind :: Lens' NodeGroupList Text
-nglKind = lens _nglKind (\ s a -> s{_nglKind = a})
-
--- | A list of NodeGroup resources.
-nglItems :: Lens' NodeGroupList [NodeGroup]
-nglItems
-  = lens _nglItems (\ s a -> s{_nglItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-nglSelfLink :: Lens' NodeGroupList (Maybe Text)
-nglSelfLink
-  = lens _nglSelfLink (\ s a -> s{_nglSelfLink = a})
-
--- | [Output Only] Informational warning message.
-nglWarning :: Lens' NodeGroupList (Maybe NodeGroupListWarning)
-nglWarning
-  = lens _nglWarning (\ s a -> s{_nglWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-nglId :: Lens' NodeGroupList (Maybe Text)
-nglId = lens _nglId (\ s a -> s{_nglId = a})
-
-instance FromJSON NodeGroupList where
-        parseJSON
-          = withObject "NodeGroupList"
-              (\ o ->
-                 NodeGroupList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeGroupList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeGroupList where
-        toJSON NodeGroupList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _nglNextPageToken,
-                  Just ("kind" .= _nglKind),
-                  ("items" .=) <$> _nglItems,
-                  ("selfLink" .=) <$> _nglSelfLink,
-                  ("warning" .=) <$> _nglWarning,
-                  ("id" .=) <$> _nglId])
-
---
--- /See:/ 'diskMoveRequest' smart constructor.
-data DiskMoveRequest =
-  DiskMoveRequest'
-    { _dmrTargetDisk      :: !(Maybe Text)
-    , _dmrDestinationZone :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskMoveRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dmrTargetDisk'
---
--- * 'dmrDestinationZone'
-diskMoveRequest
-    :: DiskMoveRequest
-diskMoveRequest =
-  DiskMoveRequest' {_dmrTargetDisk = Nothing, _dmrDestinationZone = Nothing}
-
-
--- | The URL of the target disk to move. This can be a full or partial URL.
--- For example, the following are all valid URLs to a disk: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/disks\/disk
--- - projects\/project\/zones\/zone\/disks\/disk - zones\/zone\/disks\/disk
-dmrTargetDisk :: Lens' DiskMoveRequest (Maybe Text)
-dmrTargetDisk
-  = lens _dmrTargetDisk
-      (\ s a -> s{_dmrTargetDisk = a})
-
--- | The URL of the destination zone to move the disk. This can be a full or
--- partial URL. For example, the following are all valid URLs to a zone: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone
--- - projects\/project\/zones\/zone - zones\/zone
-dmrDestinationZone :: Lens' DiskMoveRequest (Maybe Text)
-dmrDestinationZone
-  = lens _dmrDestinationZone
-      (\ s a -> s{_dmrDestinationZone = a})
-
-instance FromJSON DiskMoveRequest where
-        parseJSON
-          = withObject "DiskMoveRequest"
-              (\ o ->
-                 DiskMoveRequest' <$>
-                   (o .:? "targetDisk") <*> (o .:? "destinationZone"))
-
-instance ToJSON DiskMoveRequest where
-        toJSON DiskMoveRequest'{..}
-          = object
-              (catMaybes
-                 [("targetDisk" .=) <$> _dmrTargetDisk,
-                  ("destinationZone" .=) <$> _dmrDestinationZone])
-
---
--- /See:/ 'sslPolicyWarningsItemDataItem' smart constructor.
-data SSLPolicyWarningsItemDataItem =
-  SSLPolicyWarningsItemDataItem'
-    { _spwidiValue :: !(Maybe Text)
-    , _spwidiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPolicyWarningsItemDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spwidiValue'
---
--- * 'spwidiKey'
-sslPolicyWarningsItemDataItem
-    :: SSLPolicyWarningsItemDataItem
-sslPolicyWarningsItemDataItem =
-  SSLPolicyWarningsItemDataItem' {_spwidiValue = Nothing, _spwidiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-spwidiValue :: Lens' SSLPolicyWarningsItemDataItem (Maybe Text)
-spwidiValue
-  = lens _spwidiValue (\ s a -> s{_spwidiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-spwidiKey :: Lens' SSLPolicyWarningsItemDataItem (Maybe Text)
-spwidiKey
-  = lens _spwidiKey (\ s a -> s{_spwidiKey = a})
-
-instance FromJSON SSLPolicyWarningsItemDataItem where
-        parseJSON
-          = withObject "SSLPolicyWarningsItemDataItem"
-              (\ o ->
-                 SSLPolicyWarningsItemDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SSLPolicyWarningsItemDataItem where
-        toJSON SSLPolicyWarningsItemDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _spwidiValue,
-                  ("key" .=) <$> _spwidiKey])
-
--- | Configuration parameters of autoscaling based on load balancing.
---
--- /See:/ 'autoscalingPolicyLoadBalancingUtilization' smart constructor.
-newtype AutoscalingPolicyLoadBalancingUtilization =
-  AutoscalingPolicyLoadBalancingUtilization'
-    { _aplbuUtilizationTarget :: Maybe (Textual Double)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalingPolicyLoadBalancingUtilization' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aplbuUtilizationTarget'
-autoscalingPolicyLoadBalancingUtilization
-    :: AutoscalingPolicyLoadBalancingUtilization
-autoscalingPolicyLoadBalancingUtilization =
-  AutoscalingPolicyLoadBalancingUtilization' {_aplbuUtilizationTarget = Nothing}
-
-
--- | Fraction of backend capacity utilization (set in HTTP(S) load balancing
--- configuration) that autoscaler should maintain. Must be a positive float
--- value. If not defined, the default is 0.8.
-aplbuUtilizationTarget :: Lens' AutoscalingPolicyLoadBalancingUtilization (Maybe Double)
-aplbuUtilizationTarget
-  = lens _aplbuUtilizationTarget
-      (\ s a -> s{_aplbuUtilizationTarget = a})
-      . mapping _Coerce
-
-instance FromJSON
-           AutoscalingPolicyLoadBalancingUtilization
-         where
-        parseJSON
-          = withObject
-              "AutoscalingPolicyLoadBalancingUtilization"
-              (\ o ->
-                 AutoscalingPolicyLoadBalancingUtilization' <$>
-                   (o .:? "utilizationTarget"))
-
-instance ToJSON
-           AutoscalingPolicyLoadBalancingUtilization
-         where
-        toJSON AutoscalingPolicyLoadBalancingUtilization'{..}
-          = object
-              (catMaybes
-                 [("utilizationTarget" .=) <$>
-                    _aplbuUtilizationTarget])
-
---
--- /See:/ 'networkEndpointGroupsListNetworkEndpoints' smart constructor.
-data NetworkEndpointGroupsListNetworkEndpoints =
-  NetworkEndpointGroupsListNetworkEndpoints'
-    { _neglneNextPageToken :: !(Maybe Text)
-    , _neglneKind          :: !Text
-    , _neglneItems         :: !(Maybe [NetworkEndpointWithHealthStatus])
-    , _neglneWarning       :: !(Maybe NetworkEndpointGroupsListNetworkEndpointsWarning)
-    , _neglneId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsListNetworkEndpoints' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglneNextPageToken'
---
--- * 'neglneKind'
---
--- * 'neglneItems'
---
--- * 'neglneWarning'
---
--- * 'neglneId'
-networkEndpointGroupsListNetworkEndpoints
-    :: NetworkEndpointGroupsListNetworkEndpoints
-networkEndpointGroupsListNetworkEndpoints =
-  NetworkEndpointGroupsListNetworkEndpoints'
-    { _neglneNextPageToken = Nothing
-    , _neglneKind = "compute#networkEndpointGroupsListNetworkEndpoints"
-    , _neglneItems = Nothing
-    , _neglneWarning = Nothing
-    , _neglneId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-neglneNextPageToken :: Lens' NetworkEndpointGroupsListNetworkEndpoints (Maybe Text)
-neglneNextPageToken
-  = lens _neglneNextPageToken
-      (\ s a -> s{_neglneNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#networkEndpointGroupsListNetworkEndpoints for the list of
--- network endpoints in the specified network endpoint group.
-neglneKind :: Lens' NetworkEndpointGroupsListNetworkEndpoints Text
-neglneKind
-  = lens _neglneKind (\ s a -> s{_neglneKind = a})
-
--- | A list of NetworkEndpointWithHealthStatus resources.
-neglneItems :: Lens' NetworkEndpointGroupsListNetworkEndpoints [NetworkEndpointWithHealthStatus]
-neglneItems
-  = lens _neglneItems (\ s a -> s{_neglneItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Informational warning message.
-neglneWarning :: Lens' NetworkEndpointGroupsListNetworkEndpoints (Maybe NetworkEndpointGroupsListNetworkEndpointsWarning)
-neglneWarning
-  = lens _neglneWarning
-      (\ s a -> s{_neglneWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-neglneId :: Lens' NetworkEndpointGroupsListNetworkEndpoints (Maybe Text)
-neglneId = lens _neglneId (\ s a -> s{_neglneId = a})
-
-instance FromJSON
-           NetworkEndpointGroupsListNetworkEndpoints
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsListNetworkEndpoints"
-              (\ o ->
-                 NetworkEndpointGroupsListNetworkEndpoints' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#networkEndpointGroupsListNetworkEndpoints")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON
-           NetworkEndpointGroupsListNetworkEndpoints
-         where
-        toJSON NetworkEndpointGroupsListNetworkEndpoints'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _neglneNextPageToken,
-                  Just ("kind" .= _neglneKind),
-                  ("items" .=) <$> _neglneItems,
-                  ("warning" .=) <$> _neglneWarning,
-                  ("id" .=) <$> _neglneId])
-
---
--- /See:/ 'forwardingRuleAggregatedListWarningDataItem' smart constructor.
-data ForwardingRuleAggregatedListWarningDataItem =
-  ForwardingRuleAggregatedListWarningDataItem'
-    { _fralwdiValue :: !(Maybe Text)
-    , _fralwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fralwdiValue'
---
--- * 'fralwdiKey'
-forwardingRuleAggregatedListWarningDataItem
-    :: ForwardingRuleAggregatedListWarningDataItem
-forwardingRuleAggregatedListWarningDataItem =
-  ForwardingRuleAggregatedListWarningDataItem'
-    {_fralwdiValue = Nothing, _fralwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-fralwdiValue :: Lens' ForwardingRuleAggregatedListWarningDataItem (Maybe Text)
-fralwdiValue
-  = lens _fralwdiValue (\ s a -> s{_fralwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-fralwdiKey :: Lens' ForwardingRuleAggregatedListWarningDataItem (Maybe Text)
-fralwdiKey
-  = lens _fralwdiKey (\ s a -> s{_fralwdiKey = a})
-
-instance FromJSON
-           ForwardingRuleAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "ForwardingRuleAggregatedListWarningDataItem"
-              (\ o ->
-                 ForwardingRuleAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           ForwardingRuleAggregatedListWarningDataItem
-         where
-        toJSON
-          ForwardingRuleAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _fralwdiValue,
-                  ("key" .=) <$> _fralwdiKey])
-
---
--- /See:/ 'targetPoolsScopedListWarningDataItem' smart constructor.
-data TargetPoolsScopedListWarningDataItem =
-  TargetPoolsScopedListWarningDataItem'
-    { _tpslwdiValue :: !(Maybe Text)
-    , _tpslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpslwdiValue'
---
--- * 'tpslwdiKey'
-targetPoolsScopedListWarningDataItem
-    :: TargetPoolsScopedListWarningDataItem
-targetPoolsScopedListWarningDataItem =
-  TargetPoolsScopedListWarningDataItem'
-    {_tpslwdiValue = Nothing, _tpslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tpslwdiValue :: Lens' TargetPoolsScopedListWarningDataItem (Maybe Text)
-tpslwdiValue
-  = lens _tpslwdiValue (\ s a -> s{_tpslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tpslwdiKey :: Lens' TargetPoolsScopedListWarningDataItem (Maybe Text)
-tpslwdiKey
-  = lens _tpslwdiKey (\ s a -> s{_tpslwdiKey = a})
-
-instance FromJSON
-           TargetPoolsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetPoolsScopedListWarningDataItem"
-              (\ o ->
-                 TargetPoolsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetPoolsScopedListWarningDataItem
-         where
-        toJSON TargetPoolsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tpslwdiValue,
-                  ("key" .=) <$> _tpslwdiKey])
-
--- | An Instance Group Manager resource. (== resource_for
--- beta.instanceGroupManagers ==) (== resource_for v1.instanceGroupManagers
--- ==) (== resource_for beta.regionInstanceGroupManagers ==) (==
--- resource_for v1.regionInstanceGroupManagers ==)
---
--- /See:/ 'instanceGroupManager' smart constructor.
-data InstanceGroupManager =
-  InstanceGroupManager'
-    { _igmStatus              :: !(Maybe InstanceGroupManagerStatus)
-    , _igmKind                :: !Text
-    , _igmFingerprint         :: !(Maybe Bytes)
-    , _igmBaseInstanceName    :: !(Maybe Text)
-    , _igmZone                :: !(Maybe Text)
-    , _igmAutoHealingPolicies :: !(Maybe [InstanceGroupManagerAutoHealingPolicy])
-    , _igmVersions            :: !(Maybe [InstanceGroupManagerVersion])
-    , _igmInstanceTemplate    :: !(Maybe Text)
-    , _igmUpdatePolicy        :: !(Maybe InstanceGroupManagerUpdatePolicy)
-    , _igmTargetSize          :: !(Maybe (Textual Int32))
-    , _igmSelfLink            :: !(Maybe Text)
-    , _igmCurrentActions      :: !(Maybe InstanceGroupManagerActionsSummary)
-    , _igmName                :: !(Maybe Text)
-    , _igmCreationTimestamp   :: !(Maybe Text)
-    , _igmDistributionPolicy  :: !(Maybe DistributionPolicy)
-    , _igmId                  :: !(Maybe (Textual Word64))
-    , _igmRegion              :: !(Maybe Text)
-    , _igmTargetPools         :: !(Maybe [Text])
-    , _igmDescription         :: !(Maybe Text)
-    , _igmInstanceGroup       :: !(Maybe Text)
-    , _igmNamedPorts          :: !(Maybe [NamedPort])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManager' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmStatus'
---
--- * 'igmKind'
---
--- * 'igmFingerprint'
---
--- * 'igmBaseInstanceName'
---
--- * 'igmZone'
---
--- * 'igmAutoHealingPolicies'
---
--- * 'igmVersions'
---
--- * 'igmInstanceTemplate'
---
--- * 'igmUpdatePolicy'
---
--- * 'igmTargetSize'
---
--- * 'igmSelfLink'
---
--- * 'igmCurrentActions'
---
--- * 'igmName'
---
--- * 'igmCreationTimestamp'
---
--- * 'igmDistributionPolicy'
---
--- * 'igmId'
---
--- * 'igmRegion'
---
--- * 'igmTargetPools'
---
--- * 'igmDescription'
---
--- * 'igmInstanceGroup'
---
--- * 'igmNamedPorts'
-instanceGroupManager
-    :: InstanceGroupManager
-instanceGroupManager =
-  InstanceGroupManager'
-    { _igmStatus = Nothing
-    , _igmKind = "compute#instanceGroupManager"
-    , _igmFingerprint = Nothing
-    , _igmBaseInstanceName = Nothing
-    , _igmZone = Nothing
-    , _igmAutoHealingPolicies = Nothing
-    , _igmVersions = Nothing
-    , _igmInstanceTemplate = Nothing
-    , _igmUpdatePolicy = Nothing
-    , _igmTargetSize = Nothing
-    , _igmSelfLink = Nothing
-    , _igmCurrentActions = Nothing
-    , _igmName = Nothing
-    , _igmCreationTimestamp = Nothing
-    , _igmDistributionPolicy = Nothing
-    , _igmId = Nothing
-    , _igmRegion = Nothing
-    , _igmTargetPools = Nothing
-    , _igmDescription = Nothing
-    , _igmInstanceGroup = Nothing
-    , _igmNamedPorts = Nothing
-    }
-
-
--- | [Output Only] The status of this managed instance group.
-igmStatus :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerStatus)
-igmStatus
-  = lens _igmStatus (\ s a -> s{_igmStatus = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupManager for managed instance groups.
-igmKind :: Lens' InstanceGroupManager Text
-igmKind = lens _igmKind (\ s a -> s{_igmKind = a})
-
--- | Fingerprint of this resource. This field may be used in optimistic
--- locking. It will be ignored when inserting an InstanceGroupManager. An
--- up-to-date fingerprint must be provided in order to update the
--- InstanceGroupManager, otherwise the request will fail with error 412
--- conditionNotMet. To see the latest fingerprint, make a get() request to
--- retrieve an InstanceGroupManager.
-igmFingerprint :: Lens' InstanceGroupManager (Maybe ByteString)
-igmFingerprint
-  = lens _igmFingerprint
-      (\ s a -> s{_igmFingerprint = a})
-      . mapping _Bytes
-
--- | The base instance name to use for instances in this group. The value
--- must be 1-58 characters long. Instances are named by appending a hyphen
--- and a random four-character string to the base instance name. The base
--- instance name must comply with RFC1035.
-igmBaseInstanceName :: Lens' InstanceGroupManager (Maybe Text)
-igmBaseInstanceName
-  = lens _igmBaseInstanceName
-      (\ s a -> s{_igmBaseInstanceName = a})
-
--- | [Output Only] The URL of the zone where the managed instance group is
--- located (for zonal resources).
-igmZone :: Lens' InstanceGroupManager (Maybe Text)
-igmZone = lens _igmZone (\ s a -> s{_igmZone = a})
-
--- | The autohealing policy for this managed instance group. You can specify
--- only one value.
-igmAutoHealingPolicies :: Lens' InstanceGroupManager [InstanceGroupManagerAutoHealingPolicy]
-igmAutoHealingPolicies
-  = lens _igmAutoHealingPolicies
-      (\ s a -> s{_igmAutoHealingPolicies = a})
-      . _Default
-      . _Coerce
-
--- | Specifies the instance templates used by this managed instance group to
--- create instances. Each version is defined by an instanceTemplate and a
--- name. Every version can appear at most once per instance group. This
--- field overrides the top-level instanceTemplate field. Read more about
--- the relationships between these fields. Exactly one version must leave
--- the targetSize field unset. That version will be applied to all
--- remaining instances. For more information, read about canary updates.
-igmVersions :: Lens' InstanceGroupManager [InstanceGroupManagerVersion]
-igmVersions
-  = lens _igmVersions (\ s a -> s{_igmVersions = a}) .
-      _Default
-      . _Coerce
-
--- | The URL of the instance template that is specified for this managed
--- instance group. The group uses this template to create all new instances
--- in the managed instance group.
-igmInstanceTemplate :: Lens' InstanceGroupManager (Maybe Text)
-igmInstanceTemplate
-  = lens _igmInstanceTemplate
-      (\ s a -> s{_igmInstanceTemplate = a})
-
--- | The update policy for this managed instance group.
-igmUpdatePolicy :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerUpdatePolicy)
-igmUpdatePolicy
-  = lens _igmUpdatePolicy
-      (\ s a -> s{_igmUpdatePolicy = a})
-
--- | The target number of running instances for this managed instance group.
--- Deleting or abandoning instances reduces this number. Resizing the group
--- changes this number.
-igmTargetSize :: Lens' InstanceGroupManager (Maybe Int32)
-igmTargetSize
-  = lens _igmTargetSize
-      (\ s a -> s{_igmTargetSize = a})
-      . mapping _Coerce
-
--- | [Output Only] The URL for this managed instance group. The server
--- defines this URL.
-igmSelfLink :: Lens' InstanceGroupManager (Maybe Text)
-igmSelfLink
-  = lens _igmSelfLink (\ s a -> s{_igmSelfLink = a})
-
--- | [Output Only] The list of instance actions and the number of instances
--- in this managed instance group that are scheduled for each of those
--- actions.
-igmCurrentActions :: Lens' InstanceGroupManager (Maybe InstanceGroupManagerActionsSummary)
-igmCurrentActions
-  = lens _igmCurrentActions
-      (\ s a -> s{_igmCurrentActions = a})
-
--- | The name of the managed instance group. The name must be 1-63 characters
--- long, and comply with RFC1035.
-igmName :: Lens' InstanceGroupManager (Maybe Text)
-igmName = lens _igmName (\ s a -> s{_igmName = a})
-
--- | [Output Only] The creation timestamp for this managed instance group in
--- RFC3339 text format.
-igmCreationTimestamp :: Lens' InstanceGroupManager (Maybe Text)
-igmCreationTimestamp
-  = lens _igmCreationTimestamp
-      (\ s a -> s{_igmCreationTimestamp = a})
-
--- | Policy specifying intended distribution of instances in regional managed
--- instance group.
-igmDistributionPolicy :: Lens' InstanceGroupManager (Maybe DistributionPolicy)
-igmDistributionPolicy
-  = lens _igmDistributionPolicy
-      (\ s a -> s{_igmDistributionPolicy = a})
-
--- | [Output Only] A unique identifier for this resource type. The server
--- generates this identifier.
-igmId :: Lens' InstanceGroupManager (Maybe Word64)
-igmId
-  = lens _igmId (\ s a -> s{_igmId = a}) .
-      mapping _Coerce
-
--- | [Output Only] The URL of the region where the managed instance group
--- resides (for regional resources).
-igmRegion :: Lens' InstanceGroupManager (Maybe Text)
-igmRegion
-  = lens _igmRegion (\ s a -> s{_igmRegion = a})
-
--- | The URLs for all TargetPool resources to which instances in the
--- instanceGroup field are added. The target pools automatically apply to
--- all of the instances in the managed instance group.
-igmTargetPools :: Lens' InstanceGroupManager [Text]
-igmTargetPools
-  = lens _igmTargetPools
-      (\ s a -> s{_igmTargetPools = a})
-      . _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-igmDescription :: Lens' InstanceGroupManager (Maybe Text)
-igmDescription
-  = lens _igmDescription
-      (\ s a -> s{_igmDescription = a})
-
--- | [Output Only] The URL of the Instance Group resource.
-igmInstanceGroup :: Lens' InstanceGroupManager (Maybe Text)
-igmInstanceGroup
-  = lens _igmInstanceGroup
-      (\ s a -> s{_igmInstanceGroup = a})
-
--- | Named ports configured for the Instance Groups complementary to this
--- Instance Group Manager.
-igmNamedPorts :: Lens' InstanceGroupManager [NamedPort]
-igmNamedPorts
-  = lens _igmNamedPorts
-      (\ s a -> s{_igmNamedPorts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroupManager where
-        parseJSON
-          = withObject "InstanceGroupManager"
-              (\ o ->
-                 InstanceGroupManager' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#instanceGroupManager")
-                     <*> (o .:? "fingerprint")
-                     <*> (o .:? "baseInstanceName")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "autoHealingPolicies" .!= mempty)
-                     <*> (o .:? "versions" .!= mempty)
-                     <*> (o .:? "instanceTemplate")
-                     <*> (o .:? "updatePolicy")
-                     <*> (o .:? "targetSize")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "currentActions")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "distributionPolicy")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "targetPools" .!= mempty)
-                     <*> (o .:? "description")
-                     <*> (o .:? "instanceGroup")
-                     <*> (o .:? "namedPorts" .!= mempty))
-
-instance ToJSON InstanceGroupManager where
-        toJSON InstanceGroupManager'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _igmStatus,
-                  Just ("kind" .= _igmKind),
-                  ("fingerprint" .=) <$> _igmFingerprint,
-                  ("baseInstanceName" .=) <$> _igmBaseInstanceName,
-                  ("zone" .=) <$> _igmZone,
-                  ("autoHealingPolicies" .=) <$>
-                    _igmAutoHealingPolicies,
-                  ("versions" .=) <$> _igmVersions,
-                  ("instanceTemplate" .=) <$> _igmInstanceTemplate,
-                  ("updatePolicy" .=) <$> _igmUpdatePolicy,
-                  ("targetSize" .=) <$> _igmTargetSize,
-                  ("selfLink" .=) <$> _igmSelfLink,
-                  ("currentActions" .=) <$> _igmCurrentActions,
-                  ("name" .=) <$> _igmName,
-                  ("creationTimestamp" .=) <$> _igmCreationTimestamp,
-                  ("distributionPolicy" .=) <$> _igmDistributionPolicy,
-                  ("id" .=) <$> _igmId, ("region" .=) <$> _igmRegion,
-                  ("targetPools" .=) <$> _igmTargetPools,
-                  ("description" .=) <$> _igmDescription,
-                  ("instanceGroup" .=) <$> _igmInstanceGroup,
-                  ("namedPorts" .=) <$> _igmNamedPorts])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceGroupManagerListWarning' smart constructor.
-data InstanceGroupManagerListWarning =
-  InstanceGroupManagerListWarning'
-    { _igmlwData    :: !(Maybe [InstanceGroupManagerListWarningDataItem])
-    , _igmlwCode    :: !(Maybe InstanceGroupManagerListWarningCode)
-    , _igmlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlwData'
---
--- * 'igmlwCode'
---
--- * 'igmlwMessage'
-instanceGroupManagerListWarning
-    :: InstanceGroupManagerListWarning
-instanceGroupManagerListWarning =
-  InstanceGroupManagerListWarning'
-    {_igmlwData = Nothing, _igmlwCode = Nothing, _igmlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igmlwData :: Lens' InstanceGroupManagerListWarning [InstanceGroupManagerListWarningDataItem]
-igmlwData
-  = lens _igmlwData (\ s a -> s{_igmlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igmlwCode :: Lens' InstanceGroupManagerListWarning (Maybe InstanceGroupManagerListWarningCode)
-igmlwCode
-  = lens _igmlwCode (\ s a -> s{_igmlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igmlwMessage :: Lens' InstanceGroupManagerListWarning (Maybe Text)
-igmlwMessage
-  = lens _igmlwMessage (\ s a -> s{_igmlwMessage = a})
-
-instance FromJSON InstanceGroupManagerListWarning
-         where
-        parseJSON
-          = withObject "InstanceGroupManagerListWarning"
-              (\ o ->
-                 InstanceGroupManagerListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceGroupManagerListWarning where
-        toJSON InstanceGroupManagerListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igmlwData,
-                  ("code" .=) <$> _igmlwCode,
-                  ("message" .=) <$> _igmlwMessage])
-
---
--- /See:/ 'regionInstanceGroupsListInstances' smart constructor.
-data RegionInstanceGroupsListInstances =
-  RegionInstanceGroupsListInstances'
-    { _rigliNextPageToken :: !(Maybe Text)
-    , _rigliKind          :: !Text
-    , _rigliItems         :: !(Maybe [InstanceWithNamedPorts])
-    , _rigliSelfLink      :: !(Maybe Text)
-    , _rigliWarning       :: !(Maybe RegionInstanceGroupsListInstancesWarning)
-    , _rigliId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsListInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigliNextPageToken'
---
--- * 'rigliKind'
---
--- * 'rigliItems'
---
--- * 'rigliSelfLink'
---
--- * 'rigliWarning'
---
--- * 'rigliId'
-regionInstanceGroupsListInstances
-    :: RegionInstanceGroupsListInstances
-regionInstanceGroupsListInstances =
-  RegionInstanceGroupsListInstances'
-    { _rigliNextPageToken = Nothing
-    , _rigliKind = "compute#regionInstanceGroupsListInstances"
-    , _rigliItems = Nothing
-    , _rigliSelfLink = Nothing
-    , _rigliWarning = Nothing
-    , _rigliId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rigliNextPageToken :: Lens' RegionInstanceGroupsListInstances (Maybe Text)
-rigliNextPageToken
-  = lens _rigliNextPageToken
-      (\ s a -> s{_rigliNextPageToken = a})
-
--- | The resource type.
-rigliKind :: Lens' RegionInstanceGroupsListInstances Text
-rigliKind
-  = lens _rigliKind (\ s a -> s{_rigliKind = a})
-
--- | A list of InstanceWithNamedPorts resources.
-rigliItems :: Lens' RegionInstanceGroupsListInstances [InstanceWithNamedPorts]
-rigliItems
-  = lens _rigliItems (\ s a -> s{_rigliItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rigliSelfLink :: Lens' RegionInstanceGroupsListInstances (Maybe Text)
-rigliSelfLink
-  = lens _rigliSelfLink
-      (\ s a -> s{_rigliSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rigliWarning :: Lens' RegionInstanceGroupsListInstances (Maybe RegionInstanceGroupsListInstancesWarning)
-rigliWarning
-  = lens _rigliWarning (\ s a -> s{_rigliWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rigliId :: Lens' RegionInstanceGroupsListInstances (Maybe Text)
-rigliId = lens _rigliId (\ s a -> s{_rigliId = a})
-
-instance FromJSON RegionInstanceGroupsListInstances
-         where
-        parseJSON
-          = withObject "RegionInstanceGroupsListInstances"
-              (\ o ->
-                 RegionInstanceGroupsListInstances' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#regionInstanceGroupsListInstances")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionInstanceGroupsListInstances
-         where
-        toJSON RegionInstanceGroupsListInstances'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rigliNextPageToken,
-                  Just ("kind" .= _rigliKind),
-                  ("items" .=) <$> _rigliItems,
-                  ("selfLink" .=) <$> _rigliSelfLink,
-                  ("warning" .=) <$> _rigliWarning,
-                  ("id" .=) <$> _rigliId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'diskListWarning' smart constructor.
-data DiskListWarning =
-  DiskListWarning'
-    { _dlwData    :: !(Maybe [DiskListWarningDataItem])
-    , _dlwCode    :: !(Maybe DiskListWarningCode)
-    , _dlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dlwData'
---
--- * 'dlwCode'
---
--- * 'dlwMessage'
-diskListWarning
-    :: DiskListWarning
-diskListWarning =
-  DiskListWarning'
-    {_dlwData = Nothing, _dlwCode = Nothing, _dlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dlwData :: Lens' DiskListWarning [DiskListWarningDataItem]
-dlwData
-  = lens _dlwData (\ s a -> s{_dlwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dlwCode :: Lens' DiskListWarning (Maybe DiskListWarningCode)
-dlwCode = lens _dlwCode (\ s a -> s{_dlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dlwMessage :: Lens' DiskListWarning (Maybe Text)
-dlwMessage
-  = lens _dlwMessage (\ s a -> s{_dlwMessage = a})
-
-instance FromJSON DiskListWarning where
-        parseJSON
-          = withObject "DiskListWarning"
-              (\ o ->
-                 DiskListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DiskListWarning where
-        toJSON DiskListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dlwData, ("code" .=) <$> _dlwCode,
-                  ("message" .=) <$> _dlwMessage])
-
---
--- /See:/ 'tcpHealthCheck' smart constructor.
-data TCPHealthCheck =
-  TCPHealthCheck'
-    { _thcResponse          :: !(Maybe Text)
-    , _thcPortSpecification :: !(Maybe TCPHealthCheckPortSpecification)
-    , _thcProxyHeader       :: !(Maybe TCPHealthCheckProxyHeader)
-    , _thcPortName          :: !(Maybe Text)
-    , _thcPort              :: !(Maybe (Textual Int32))
-    , _thcRequest           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TCPHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thcResponse'
---
--- * 'thcPortSpecification'
---
--- * 'thcProxyHeader'
---
--- * 'thcPortName'
---
--- * 'thcPort'
---
--- * 'thcRequest'
-tcpHealthCheck
-    :: TCPHealthCheck
-tcpHealthCheck =
-  TCPHealthCheck'
-    { _thcResponse = Nothing
-    , _thcPortSpecification = Nothing
-    , _thcProxyHeader = Nothing
-    , _thcPortName = Nothing
-    , _thcPort = Nothing
-    , _thcRequest = Nothing
-    }
-
-
--- | The bytes to match against the beginning of the response data. If left
--- empty (the default value), any response will indicate health. The
--- response data can only be ASCII.
-thcResponse :: Lens' TCPHealthCheck (Maybe Text)
-thcResponse
-  = lens _thcResponse (\ s a -> s{_thcResponse = a})
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, TCP health check follows
--- behavior specified in port and portName fields.
-thcPortSpecification :: Lens' TCPHealthCheck (Maybe TCPHealthCheckPortSpecification)
-thcPortSpecification
-  = lens _thcPortSpecification
-      (\ s a -> s{_thcPortSpecification = a})
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-thcProxyHeader :: Lens' TCPHealthCheck (Maybe TCPHealthCheckProxyHeader)
-thcProxyHeader
-  = lens _thcProxyHeader
-      (\ s a -> s{_thcProxyHeader = a})
-
--- | Port name as defined in InstanceGroup#NamedPort#name. If both port and
--- port_name are defined, port takes precedence.
-thcPortName :: Lens' TCPHealthCheck (Maybe Text)
-thcPortName
-  = lens _thcPortName (\ s a -> s{_thcPortName = a})
-
--- | The TCP port number for the health check request. The default value is
--- 80. Valid values are 1 through 65535.
-thcPort :: Lens' TCPHealthCheck (Maybe Int32)
-thcPort
-  = lens _thcPort (\ s a -> s{_thcPort = a}) .
-      mapping _Coerce
-
--- | The application data to send once the TCP connection has been
--- established (default value is empty). If both request and response are
--- empty, the connection establishment alone will indicate health. The
--- request data can only be ASCII.
-thcRequest :: Lens' TCPHealthCheck (Maybe Text)
-thcRequest
-  = lens _thcRequest (\ s a -> s{_thcRequest = a})
-
-instance FromJSON TCPHealthCheck where
-        parseJSON
-          = withObject "TCPHealthCheck"
-              (\ o ->
-                 TCPHealthCheck' <$>
-                   (o .:? "response") <*> (o .:? "portSpecification")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "port")
-                     <*> (o .:? "request"))
-
-instance ToJSON TCPHealthCheck where
-        toJSON TCPHealthCheck'{..}
-          = object
-              (catMaybes
-                 [("response" .=) <$> _thcResponse,
-                  ("portSpecification" .=) <$> _thcPortSpecification,
-                  ("proxyHeader" .=) <$> _thcProxyHeader,
-                  ("portName" .=) <$> _thcPortName,
-                  ("port" .=) <$> _thcPort,
-                  ("request" .=) <$> _thcRequest])
-
---
--- /See:/ 'instanceGroupManagerAggregatedListWarningDataItem' smart constructor.
-data InstanceGroupManagerAggregatedListWarningDataItem =
-  InstanceGroupManagerAggregatedListWarningDataItem'
-    { _igmalwdiValue :: !(Maybe Text)
-    , _igmalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmalwdiValue'
---
--- * 'igmalwdiKey'
-instanceGroupManagerAggregatedListWarningDataItem
-    :: InstanceGroupManagerAggregatedListWarningDataItem
-instanceGroupManagerAggregatedListWarningDataItem =
-  InstanceGroupManagerAggregatedListWarningDataItem'
-    {_igmalwdiValue = Nothing, _igmalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igmalwdiValue :: Lens' InstanceGroupManagerAggregatedListWarningDataItem (Maybe Text)
-igmalwdiValue
-  = lens _igmalwdiValue
-      (\ s a -> s{_igmalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igmalwdiKey :: Lens' InstanceGroupManagerAggregatedListWarningDataItem (Maybe Text)
-igmalwdiKey
-  = lens _igmalwdiKey (\ s a -> s{_igmalwdiKey = a})
-
-instance FromJSON
-           InstanceGroupManagerAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagerAggregatedListWarningDataItem"
-              (\ o ->
-                 InstanceGroupManagerAggregatedListWarningDataItem'
-                   <$> (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupManagerAggregatedListWarningDataItem
-         where
-        toJSON
-          InstanceGroupManagerAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igmalwdiValue,
-                  ("key" .=) <$> _igmalwdiKey])
-
---
--- /See:/ 'testPermissionsResponse' smart constructor.
-newtype TestPermissionsResponse =
-  TestPermissionsResponse'
-    { _tprPermissions :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TestPermissionsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tprPermissions'
-testPermissionsResponse
-    :: TestPermissionsResponse
-testPermissionsResponse = TestPermissionsResponse' {_tprPermissions = Nothing}
-
-
--- | A subset of \`TestPermissionsRequest.permissions\` that the caller is
--- allowed.
-tprPermissions :: Lens' TestPermissionsResponse [Text]
-tprPermissions
-  = lens _tprPermissions
-      (\ s a -> s{_tprPermissions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TestPermissionsResponse where
-        parseJSON
-          = withObject "TestPermissionsResponse"
-              (\ o ->
-                 TestPermissionsResponse' <$>
-                   (o .:? "permissions" .!= mempty))
-
-instance ToJSON TestPermissionsResponse where
-        toJSON TestPermissionsResponse'{..}
-          = object
-              (catMaybes [("permissions" .=) <$> _tprPermissions])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionAutoscalerListWarning' smart constructor.
-data RegionAutoscalerListWarning =
-  RegionAutoscalerListWarning'
-    { _ralwData    :: !(Maybe [RegionAutoscalerListWarningDataItem])
-    , _ralwCode    :: !(Maybe RegionAutoscalerListWarningCode)
-    , _ralwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalerListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ralwData'
---
--- * 'ralwCode'
---
--- * 'ralwMessage'
-regionAutoscalerListWarning
-    :: RegionAutoscalerListWarning
-regionAutoscalerListWarning =
-  RegionAutoscalerListWarning'
-    {_ralwData = Nothing, _ralwCode = Nothing, _ralwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ralwData :: Lens' RegionAutoscalerListWarning [RegionAutoscalerListWarningDataItem]
-ralwData
-  = lens _ralwData (\ s a -> s{_ralwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ralwCode :: Lens' RegionAutoscalerListWarning (Maybe RegionAutoscalerListWarningCode)
-ralwCode = lens _ralwCode (\ s a -> s{_ralwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ralwMessage :: Lens' RegionAutoscalerListWarning (Maybe Text)
-ralwMessage
-  = lens _ralwMessage (\ s a -> s{_ralwMessage = a})
-
-instance FromJSON RegionAutoscalerListWarning where
-        parseJSON
-          = withObject "RegionAutoscalerListWarning"
-              (\ o ->
-                 RegionAutoscalerListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RegionAutoscalerListWarning where
-        toJSON RegionAutoscalerListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ralwData,
-                  ("code" .=) <$> _ralwCode,
-                  ("message" .=) <$> _ralwMessage])
-
---
--- /See:/ 'targetInstanceListWarningDataItem' smart constructor.
-data TargetInstanceListWarningDataItem =
-  TargetInstanceListWarningDataItem'
-    { _tilwdiValue :: !(Maybe Text)
-    , _tilwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tilwdiValue'
---
--- * 'tilwdiKey'
-targetInstanceListWarningDataItem
-    :: TargetInstanceListWarningDataItem
-targetInstanceListWarningDataItem =
-  TargetInstanceListWarningDataItem'
-    {_tilwdiValue = Nothing, _tilwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tilwdiValue :: Lens' TargetInstanceListWarningDataItem (Maybe Text)
-tilwdiValue
-  = lens _tilwdiValue (\ s a -> s{_tilwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tilwdiKey :: Lens' TargetInstanceListWarningDataItem (Maybe Text)
-tilwdiKey
-  = lens _tilwdiKey (\ s a -> s{_tilwdiKey = a})
-
-instance FromJSON TargetInstanceListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetInstanceListWarningDataItem"
-              (\ o ->
-                 TargetInstanceListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetInstanceListWarningDataItem
-         where
-        toJSON TargetInstanceListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tilwdiValue,
-                  ("key" .=) <$> _tilwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'operationListWarning' smart constructor.
-data OperationListWarning =
-  OperationListWarning'
-    { _olwData    :: !(Maybe [OperationListWarningDataItem])
-    , _olwCode    :: !(Maybe OperationListWarningCode)
-    , _olwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'olwData'
---
--- * 'olwCode'
---
--- * 'olwMessage'
-operationListWarning
-    :: OperationListWarning
-operationListWarning =
-  OperationListWarning'
-    {_olwData = Nothing, _olwCode = Nothing, _olwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-olwData :: Lens' OperationListWarning [OperationListWarningDataItem]
-olwData
-  = lens _olwData (\ s a -> s{_olwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-olwCode :: Lens' OperationListWarning (Maybe OperationListWarningCode)
-olwCode = lens _olwCode (\ s a -> s{_olwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-olwMessage :: Lens' OperationListWarning (Maybe Text)
-olwMessage
-  = lens _olwMessage (\ s a -> s{_olwMessage = a})
-
-instance FromJSON OperationListWarning where
-        parseJSON
-          = withObject "OperationListWarning"
-              (\ o ->
-                 OperationListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON OperationListWarning where
-        toJSON OperationListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _olwData, ("code" .=) <$> _olwCode,
-                  ("message" .=) <$> _olwMessage])
-
---
--- /See:/ 'instanceGroupsRemoveInstancesRequest' smart constructor.
-newtype InstanceGroupsRemoveInstancesRequest =
-  InstanceGroupsRemoveInstancesRequest'
-    { _igrirInstances :: Maybe [InstanceReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsRemoveInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igrirInstances'
-instanceGroupsRemoveInstancesRequest
-    :: InstanceGroupsRemoveInstancesRequest
-instanceGroupsRemoveInstancesRequest =
-  InstanceGroupsRemoveInstancesRequest' {_igrirInstances = Nothing}
-
-
--- | The list of instances to remove from the instance group.
-igrirInstances :: Lens' InstanceGroupsRemoveInstancesRequest [InstanceReference]
-igrirInstances
-  = lens _igrirInstances
-      (\ s a -> s{_igrirInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupsRemoveInstancesRequest
-         where
-        parseJSON
-          = withObject "InstanceGroupsRemoveInstancesRequest"
-              (\ o ->
-                 InstanceGroupsRemoveInstancesRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON InstanceGroupsRemoveInstancesRequest
-         where
-        toJSON InstanceGroupsRemoveInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _igrirInstances])
-
--- | Informational metadata about Partner attachments from Partners to
--- display to customers. These fields are propagated from PARTNER_PROVIDER
--- attachments to their corresponding PARTNER attachments.
---
--- /See:/ 'interconnectAttachmentPartnerMetadata' smart constructor.
-data InterconnectAttachmentPartnerMetadata =
-  InterconnectAttachmentPartnerMetadata'
-    { _iapmPortalURL        :: !(Maybe Text)
-    , _iapmInterconnectName :: !(Maybe Text)
-    , _iapmPartnerName      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentPartnerMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iapmPortalURL'
---
--- * 'iapmInterconnectName'
---
--- * 'iapmPartnerName'
-interconnectAttachmentPartnerMetadata
-    :: InterconnectAttachmentPartnerMetadata
-interconnectAttachmentPartnerMetadata =
-  InterconnectAttachmentPartnerMetadata'
-    { _iapmPortalURL = Nothing
-    , _iapmInterconnectName = Nothing
-    , _iapmPartnerName = Nothing
-    }
-
-
--- | URL of the Partner?s portal for this Attachment. Partners may customise
--- this to be a deep-link to the specific resource on the Partner portal.
--- This value may be validated to match approved Partner values.
-iapmPortalURL :: Lens' InterconnectAttachmentPartnerMetadata (Maybe Text)
-iapmPortalURL
-  = lens _iapmPortalURL
-      (\ s a -> s{_iapmPortalURL = a})
-
--- | Plain text name of the Interconnect this attachment is connected to, as
--- displayed in the Partner?s portal. For instance \"Chicago 1\". This
--- value may be validated to match approved Partner values.
-iapmInterconnectName :: Lens' InterconnectAttachmentPartnerMetadata (Maybe Text)
-iapmInterconnectName
-  = lens _iapmInterconnectName
-      (\ s a -> s{_iapmInterconnectName = a})
-
--- | Plain text name of the Partner providing this attachment. This value may
--- be validated to match approved Partner values.
-iapmPartnerName :: Lens' InterconnectAttachmentPartnerMetadata (Maybe Text)
-iapmPartnerName
-  = lens _iapmPartnerName
-      (\ s a -> s{_iapmPartnerName = a})
-
-instance FromJSON
-           InterconnectAttachmentPartnerMetadata
-         where
-        parseJSON
-          = withObject "InterconnectAttachmentPartnerMetadata"
-              (\ o ->
-                 InterconnectAttachmentPartnerMetadata' <$>
-                   (o .:? "portalUrl") <*> (o .:? "interconnectName")
-                     <*> (o .:? "partnerName"))
-
-instance ToJSON InterconnectAttachmentPartnerMetadata
-         where
-        toJSON InterconnectAttachmentPartnerMetadata'{..}
-          = object
-              (catMaybes
-                 [("portalUrl" .=) <$> _iapmPortalURL,
-                  ("interconnectName" .=) <$> _iapmInterconnectName,
-                  ("partnerName" .=) <$> _iapmPartnerName])
-
---
--- /See:/ 'machineTypeListWarningDataItem' smart constructor.
-data MachineTypeListWarningDataItem =
-  MachineTypeListWarningDataItem'
-    { _mtlwdiValue :: !(Maybe Text)
-    , _mtlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtlwdiValue'
---
--- * 'mtlwdiKey'
-machineTypeListWarningDataItem
-    :: MachineTypeListWarningDataItem
-machineTypeListWarningDataItem =
-  MachineTypeListWarningDataItem' {_mtlwdiValue = Nothing, _mtlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-mtlwdiValue :: Lens' MachineTypeListWarningDataItem (Maybe Text)
-mtlwdiValue
-  = lens _mtlwdiValue (\ s a -> s{_mtlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-mtlwdiKey :: Lens' MachineTypeListWarningDataItem (Maybe Text)
-mtlwdiKey
-  = lens _mtlwdiKey (\ s a -> s{_mtlwdiKey = a})
-
-instance FromJSON MachineTypeListWarningDataItem
-         where
-        parseJSON
-          = withObject "MachineTypeListWarningDataItem"
-              (\ o ->
-                 MachineTypeListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON MachineTypeListWarningDataItem where
-        toJSON MachineTypeListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _mtlwdiValue,
-                  ("key" .=) <$> _mtlwdiKey])
-
---
--- /See:/ 'networksRemovePeeringRequest' smart constructor.
-newtype NetworksRemovePeeringRequest =
-  NetworksRemovePeeringRequest'
-    { _nrprName :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksRemovePeeringRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nrprName'
-networksRemovePeeringRequest
-    :: NetworksRemovePeeringRequest
-networksRemovePeeringRequest =
-  NetworksRemovePeeringRequest' {_nrprName = Nothing}
-
-
--- | Name of the peering, which should conform to RFC1035.
-nrprName :: Lens' NetworksRemovePeeringRequest (Maybe Text)
-nrprName = lens _nrprName (\ s a -> s{_nrprName = a})
-
-instance FromJSON NetworksRemovePeeringRequest where
-        parseJSON
-          = withObject "NetworksRemovePeeringRequest"
-              (\ o ->
-                 NetworksRemovePeeringRequest' <$> (o .:? "name"))
-
-instance ToJSON NetworksRemovePeeringRequest where
-        toJSON NetworksRemovePeeringRequest'{..}
-          = object (catMaybes [("name" .=) <$> _nrprName])
-
---
--- /See:/ 'targetHTTPProxyListWarningDataItem' smart constructor.
-data TargetHTTPProxyListWarningDataItem =
-  TargetHTTPProxyListWarningDataItem'
-    { _thttpplwdiValue :: !(Maybe Text)
-    , _thttpplwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxyListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttpplwdiValue'
---
--- * 'thttpplwdiKey'
-targetHTTPProxyListWarningDataItem
-    :: TargetHTTPProxyListWarningDataItem
-targetHTTPProxyListWarningDataItem =
-  TargetHTTPProxyListWarningDataItem'
-    {_thttpplwdiValue = Nothing, _thttpplwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-thttpplwdiValue :: Lens' TargetHTTPProxyListWarningDataItem (Maybe Text)
-thttpplwdiValue
-  = lens _thttpplwdiValue
-      (\ s a -> s{_thttpplwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-thttpplwdiKey :: Lens' TargetHTTPProxyListWarningDataItem (Maybe Text)
-thttpplwdiKey
-  = lens _thttpplwdiKey
-      (\ s a -> s{_thttpplwdiKey = a})
-
-instance FromJSON TargetHTTPProxyListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetHTTPProxyListWarningDataItem"
-              (\ o ->
-                 TargetHTTPProxyListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetHTTPProxyListWarningDataItem
-         where
-        toJSON TargetHTTPProxyListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _thttpplwdiValue,
-                  ("key" .=) <$> _thttpplwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'machineTypeAggregatedListWarning' smart constructor.
-data MachineTypeAggregatedListWarning =
-  MachineTypeAggregatedListWarning'
-    { _mtalwData    :: !(Maybe [MachineTypeAggregatedListWarningDataItem])
-    , _mtalwCode    :: !(Maybe MachineTypeAggregatedListWarningCode)
-    , _mtalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtalwData'
---
--- * 'mtalwCode'
---
--- * 'mtalwMessage'
-machineTypeAggregatedListWarning
-    :: MachineTypeAggregatedListWarning
-machineTypeAggregatedListWarning =
-  MachineTypeAggregatedListWarning'
-    {_mtalwData = Nothing, _mtalwCode = Nothing, _mtalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-mtalwData :: Lens' MachineTypeAggregatedListWarning [MachineTypeAggregatedListWarningDataItem]
-mtalwData
-  = lens _mtalwData (\ s a -> s{_mtalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-mtalwCode :: Lens' MachineTypeAggregatedListWarning (Maybe MachineTypeAggregatedListWarningCode)
-mtalwCode
-  = lens _mtalwCode (\ s a -> s{_mtalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-mtalwMessage :: Lens' MachineTypeAggregatedListWarning (Maybe Text)
-mtalwMessage
-  = lens _mtalwMessage (\ s a -> s{_mtalwMessage = a})
-
-instance FromJSON MachineTypeAggregatedListWarning
-         where
-        parseJSON
-          = withObject "MachineTypeAggregatedListWarning"
-              (\ o ->
-                 MachineTypeAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON MachineTypeAggregatedListWarning
-         where
-        toJSON MachineTypeAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _mtalwData,
-                  ("code" .=) <$> _mtalwCode,
-                  ("message" .=) <$> _mtalwMessage])
-
---
--- /See:/ 'nodeTemplateAggregatedListWarningDataItem' smart constructor.
-data NodeTemplateAggregatedListWarningDataItem =
-  NodeTemplateAggregatedListWarningDataItem'
-    { _ntalwdiValue :: !(Maybe Text)
-    , _ntalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntalwdiValue'
---
--- * 'ntalwdiKey'
-nodeTemplateAggregatedListWarningDataItem
-    :: NodeTemplateAggregatedListWarningDataItem
-nodeTemplateAggregatedListWarningDataItem =
-  NodeTemplateAggregatedListWarningDataItem'
-    {_ntalwdiValue = Nothing, _ntalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ntalwdiValue :: Lens' NodeTemplateAggregatedListWarningDataItem (Maybe Text)
-ntalwdiValue
-  = lens _ntalwdiValue (\ s a -> s{_ntalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ntalwdiKey :: Lens' NodeTemplateAggregatedListWarningDataItem (Maybe Text)
-ntalwdiKey
-  = lens _ntalwdiKey (\ s a -> s{_ntalwdiKey = a})
-
-instance FromJSON
-           NodeTemplateAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "NodeTemplateAggregatedListWarningDataItem"
-              (\ o ->
-                 NodeTemplateAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NodeTemplateAggregatedListWarningDataItem
-         where
-        toJSON NodeTemplateAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ntalwdiValue,
-                  ("key" .=) <$> _ntalwdiKey])
-
--- | Contains a list of BackendBucket resources.
---
--- /See:/ 'backendBucketList' smart constructor.
-data BackendBucketList =
-  BackendBucketList'
-    { _bblNextPageToken :: !(Maybe Text)
-    , _bblKind          :: !Text
-    , _bblItems         :: !(Maybe [BackendBucket])
-    , _bblSelfLink      :: !(Maybe Text)
-    , _bblWarning       :: !(Maybe BackendBucketListWarning)
-    , _bblId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bblNextPageToken'
---
--- * 'bblKind'
---
--- * 'bblItems'
---
--- * 'bblSelfLink'
---
--- * 'bblWarning'
---
--- * 'bblId'
-backendBucketList
-    :: BackendBucketList
-backendBucketList =
-  BackendBucketList'
-    { _bblNextPageToken = Nothing
-    , _bblKind = "compute#backendBucketList"
-    , _bblItems = Nothing
-    , _bblSelfLink = Nothing
-    , _bblWarning = Nothing
-    , _bblId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-bblNextPageToken :: Lens' BackendBucketList (Maybe Text)
-bblNextPageToken
-  = lens _bblNextPageToken
-      (\ s a -> s{_bblNextPageToken = a})
-
--- | Type of resource.
-bblKind :: Lens' BackendBucketList Text
-bblKind = lens _bblKind (\ s a -> s{_bblKind = a})
-
--- | A list of BackendBucket resources.
-bblItems :: Lens' BackendBucketList [BackendBucket]
-bblItems
-  = lens _bblItems (\ s a -> s{_bblItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-bblSelfLink :: Lens' BackendBucketList (Maybe Text)
-bblSelfLink
-  = lens _bblSelfLink (\ s a -> s{_bblSelfLink = a})
-
--- | [Output Only] Informational warning message.
-bblWarning :: Lens' BackendBucketList (Maybe BackendBucketListWarning)
-bblWarning
-  = lens _bblWarning (\ s a -> s{_bblWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-bblId :: Lens' BackendBucketList (Maybe Text)
-bblId = lens _bblId (\ s a -> s{_bblId = a})
-
-instance FromJSON BackendBucketList where
-        parseJSON
-          = withObject "BackendBucketList"
-              (\ o ->
-                 BackendBucketList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#backendBucketList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON BackendBucketList where
-        toJSON BackendBucketList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _bblNextPageToken,
-                  Just ("kind" .= _bblKind),
-                  ("items" .=) <$> _bblItems,
-                  ("selfLink" .=) <$> _bblSelfLink,
-                  ("warning" .=) <$> _bblWarning,
-                  ("id" .=) <$> _bblId])
-
--- | Information for an interconnect attachment when this belongs to an
--- interconnect of type DEDICATED.
---
--- /See:/ 'interconnectAttachmentPrivateInfo' smart constructor.
-newtype InterconnectAttachmentPrivateInfo =
-  InterconnectAttachmentPrivateInfo'
-    { _iapiTag8021q :: Maybe (Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentPrivateInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iapiTag8021q'
-interconnectAttachmentPrivateInfo
-    :: InterconnectAttachmentPrivateInfo
-interconnectAttachmentPrivateInfo =
-  InterconnectAttachmentPrivateInfo' {_iapiTag8021q = Nothing}
-
-
--- | [Output Only] 802.1q encapsulation tag to be used for traffic between
--- Google and the customer, going to and from this network and region.
-iapiTag8021q :: Lens' InterconnectAttachmentPrivateInfo (Maybe Word32)
-iapiTag8021q
-  = lens _iapiTag8021q (\ s a -> s{_iapiTag8021q = a})
-      . mapping _Coerce
-
-instance FromJSON InterconnectAttachmentPrivateInfo
-         where
-        parseJSON
-          = withObject "InterconnectAttachmentPrivateInfo"
-              (\ o ->
-                 InterconnectAttachmentPrivateInfo' <$>
-                   (o .:? "tag8021q"))
-
-instance ToJSON InterconnectAttachmentPrivateInfo
-         where
-        toJSON InterconnectAttachmentPrivateInfo'{..}
-          = object
-              (catMaybes [("tag8021q" .=) <$> _iapiTag8021q])
-
---
--- /See:/ 'acceleratorTypesScopedList' smart constructor.
-data AcceleratorTypesScopedList =
-  AcceleratorTypesScopedList'
-    { _atslAcceleratorTypes :: !(Maybe [AcceleratorType])
-    , _atslWarning          :: !(Maybe AcceleratorTypesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atslAcceleratorTypes'
---
--- * 'atslWarning'
-acceleratorTypesScopedList
-    :: AcceleratorTypesScopedList
-acceleratorTypesScopedList =
-  AcceleratorTypesScopedList'
-    {_atslAcceleratorTypes = Nothing, _atslWarning = Nothing}
-
-
--- | [Output Only] A list of accelerator types contained in this scope.
-atslAcceleratorTypes :: Lens' AcceleratorTypesScopedList [AcceleratorType]
-atslAcceleratorTypes
-  = lens _atslAcceleratorTypes
-      (\ s a -> s{_atslAcceleratorTypes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that appears when the accelerator
--- types list is empty.
-atslWarning :: Lens' AcceleratorTypesScopedList (Maybe AcceleratorTypesScopedListWarning)
-atslWarning
-  = lens _atslWarning (\ s a -> s{_atslWarning = a})
-
-instance FromJSON AcceleratorTypesScopedList where
-        parseJSON
-          = withObject "AcceleratorTypesScopedList"
-              (\ o ->
-                 AcceleratorTypesScopedList' <$>
-                   (o .:? "acceleratorTypes" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON AcceleratorTypesScopedList where
-        toJSON AcceleratorTypesScopedList'{..}
-          = object
-              (catMaybes
-                 [("acceleratorTypes" .=) <$> _atslAcceleratorTypes,
-                  ("warning" .=) <$> _atslWarning])
-
--- | Message containing Cloud CDN configuration for a backend service.
---
--- /See:/ 'backendServiceCdnPolicy' smart constructor.
-data BackendServiceCdnPolicy =
-  BackendServiceCdnPolicy'
-    { _bscpSignedURLCacheMaxAgeSec :: !(Maybe (Textual Int64))
-    , _bscpSignedURLKeyNames       :: !(Maybe [Text])
-    , _bscpCacheKeyPolicy          :: !(Maybe CacheKeyPolicy)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceCdnPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bscpSignedURLCacheMaxAgeSec'
---
--- * 'bscpSignedURLKeyNames'
---
--- * 'bscpCacheKeyPolicy'
-backendServiceCdnPolicy
-    :: BackendServiceCdnPolicy
-backendServiceCdnPolicy =
-  BackendServiceCdnPolicy'
-    { _bscpSignedURLCacheMaxAgeSec = Nothing
-    , _bscpSignedURLKeyNames = Nothing
-    , _bscpCacheKeyPolicy = Nothing
-    }
-
-
--- | Maximum number of seconds the response to a signed URL request will be
--- considered fresh. After this time period, the response will be
--- revalidated before being served. Defaults to 1hr (3600s). When serving
--- responses to signed URL requests, Cloud CDN will internally behave as
--- though all responses from this backend had a \"Cache-Control: public,
--- max-age=[TTL]\" header, regardless of any existing Cache-Control header.
--- The actual headers served in responses will not be altered.
-bscpSignedURLCacheMaxAgeSec :: Lens' BackendServiceCdnPolicy (Maybe Int64)
-bscpSignedURLCacheMaxAgeSec
-  = lens _bscpSignedURLCacheMaxAgeSec
-      (\ s a -> s{_bscpSignedURLCacheMaxAgeSec = a})
-      . mapping _Coerce
-
--- | [Output Only] Names of the keys for signing request URLs.
-bscpSignedURLKeyNames :: Lens' BackendServiceCdnPolicy [Text]
-bscpSignedURLKeyNames
-  = lens _bscpSignedURLKeyNames
-      (\ s a -> s{_bscpSignedURLKeyNames = a})
-      . _Default
-      . _Coerce
-
--- | The CacheKeyPolicy for this CdnPolicy.
-bscpCacheKeyPolicy :: Lens' BackendServiceCdnPolicy (Maybe CacheKeyPolicy)
-bscpCacheKeyPolicy
-  = lens _bscpCacheKeyPolicy
-      (\ s a -> s{_bscpCacheKeyPolicy = a})
-
-instance FromJSON BackendServiceCdnPolicy where
-        parseJSON
-          = withObject "BackendServiceCdnPolicy"
-              (\ o ->
-                 BackendServiceCdnPolicy' <$>
-                   (o .:? "signedUrlCacheMaxAgeSec") <*>
-                     (o .:? "signedUrlKeyNames" .!= mempty)
-                     <*> (o .:? "cacheKeyPolicy"))
-
-instance ToJSON BackendServiceCdnPolicy where
-        toJSON BackendServiceCdnPolicy'{..}
-          = object
-              (catMaybes
-                 [("signedUrlCacheMaxAgeSec" .=) <$>
-                    _bscpSignedURLCacheMaxAgeSec,
-                  ("signedUrlKeyNames" .=) <$> _bscpSignedURLKeyNames,
-                  ("cacheKeyPolicy" .=) <$> _bscpCacheKeyPolicy])
-
---
--- /See:/ 'routeWarningsItemDataItem' smart constructor.
-data RouteWarningsItemDataItem =
-  RouteWarningsItemDataItem'
-    { _rwidiValue :: !(Maybe Text)
-    , _rwidiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouteWarningsItemDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rwidiValue'
---
--- * 'rwidiKey'
-routeWarningsItemDataItem
-    :: RouteWarningsItemDataItem
-routeWarningsItemDataItem =
-  RouteWarningsItemDataItem' {_rwidiValue = Nothing, _rwidiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rwidiValue :: Lens' RouteWarningsItemDataItem (Maybe Text)
-rwidiValue
-  = lens _rwidiValue (\ s a -> s{_rwidiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rwidiKey :: Lens' RouteWarningsItemDataItem (Maybe Text)
-rwidiKey = lens _rwidiKey (\ s a -> s{_rwidiKey = a})
-
-instance FromJSON RouteWarningsItemDataItem where
-        parseJSON
-          = withObject "RouteWarningsItemDataItem"
-              (\ o ->
-                 RouteWarningsItemDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RouteWarningsItemDataItem where
-        toJSON RouteWarningsItemDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rwidiValue,
-                  ("key" .=) <$> _rwidiKey])
-
---
--- /See:/ 'nodeGroupAggregatedList' smart constructor.
-data NodeGroupAggregatedList =
-  NodeGroupAggregatedList'
-    { _ngalNextPageToken :: !(Maybe Text)
-    , _ngalKind          :: !Text
-    , _ngalItems         :: !(Maybe NodeGroupAggregatedListItems)
-    , _ngalSelfLink      :: !(Maybe Text)
-    , _ngalWarning       :: !(Maybe NodeGroupAggregatedListWarning)
-    , _ngalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngalNextPageToken'
---
--- * 'ngalKind'
---
--- * 'ngalItems'
---
--- * 'ngalSelfLink'
---
--- * 'ngalWarning'
---
--- * 'ngalId'
-nodeGroupAggregatedList
-    :: NodeGroupAggregatedList
-nodeGroupAggregatedList =
-  NodeGroupAggregatedList'
-    { _ngalNextPageToken = Nothing
-    , _ngalKind = "compute#nodeGroupAggregatedList"
-    , _ngalItems = Nothing
-    , _ngalSelfLink = Nothing
-    , _ngalWarning = Nothing
-    , _ngalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ngalNextPageToken :: Lens' NodeGroupAggregatedList (Maybe Text)
-ngalNextPageToken
-  = lens _ngalNextPageToken
-      (\ s a -> s{_ngalNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeGroupAggregatedList
--- for aggregated lists of node groups.
-ngalKind :: Lens' NodeGroupAggregatedList Text
-ngalKind = lens _ngalKind (\ s a -> s{_ngalKind = a})
-
--- | A list of NodeGroupsScopedList resources.
-ngalItems :: Lens' NodeGroupAggregatedList (Maybe NodeGroupAggregatedListItems)
-ngalItems
-  = lens _ngalItems (\ s a -> s{_ngalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-ngalSelfLink :: Lens' NodeGroupAggregatedList (Maybe Text)
-ngalSelfLink
-  = lens _ngalSelfLink (\ s a -> s{_ngalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ngalWarning :: Lens' NodeGroupAggregatedList (Maybe NodeGroupAggregatedListWarning)
-ngalWarning
-  = lens _ngalWarning (\ s a -> s{_ngalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ngalId :: Lens' NodeGroupAggregatedList (Maybe Text)
-ngalId = lens _ngalId (\ s a -> s{_ngalId = a})
-
-instance FromJSON NodeGroupAggregatedList where
-        parseJSON
-          = withObject "NodeGroupAggregatedList"
-              (\ o ->
-                 NodeGroupAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeGroupAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeGroupAggregatedList where
-        toJSON NodeGroupAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ngalNextPageToken,
-                  Just ("kind" .= _ngalKind),
-                  ("items" .=) <$> _ngalItems,
-                  ("selfLink" .=) <$> _ngalSelfLink,
-                  ("warning" .=) <$> _ngalWarning,
-                  ("id" .=) <$> _ngalId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'vpnTunnelListWarning' smart constructor.
-data VPNTunnelListWarning =
-  VPNTunnelListWarning'
-    { _vtlwData    :: !(Maybe [VPNTunnelListWarningDataItem])
-    , _vtlwCode    :: !(Maybe VPNTunnelListWarningCode)
-    , _vtlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtlwData'
---
--- * 'vtlwCode'
---
--- * 'vtlwMessage'
-vpnTunnelListWarning
-    :: VPNTunnelListWarning
-vpnTunnelListWarning =
-  VPNTunnelListWarning'
-    {_vtlwData = Nothing, _vtlwCode = Nothing, _vtlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-vtlwData :: Lens' VPNTunnelListWarning [VPNTunnelListWarningDataItem]
-vtlwData
-  = lens _vtlwData (\ s a -> s{_vtlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-vtlwCode :: Lens' VPNTunnelListWarning (Maybe VPNTunnelListWarningCode)
-vtlwCode = lens _vtlwCode (\ s a -> s{_vtlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-vtlwMessage :: Lens' VPNTunnelListWarning (Maybe Text)
-vtlwMessage
-  = lens _vtlwMessage (\ s a -> s{_vtlwMessage = a})
-
-instance FromJSON VPNTunnelListWarning where
-        parseJSON
-          = withObject "VPNTunnelListWarning"
-              (\ o ->
-                 VPNTunnelListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON VPNTunnelListWarning where
-        toJSON VPNTunnelListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _vtlwData,
-                  ("code" .=) <$> _vtlwCode,
-                  ("message" .=) <$> _vtlwMessage])
-
--- | A list of BackendServicesScopedList resources.
---
--- /See:/ 'backendServiceAggregatedListItems' smart constructor.
-newtype BackendServiceAggregatedListItems =
-  BackendServiceAggregatedListItems'
-    { _bsaliAddtional :: HashMap Text BackendServicesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsaliAddtional'
-backendServiceAggregatedListItems
-    :: HashMap Text BackendServicesScopedList -- ^ 'bsaliAddtional'
-    -> BackendServiceAggregatedListItems
-backendServiceAggregatedListItems pBsaliAddtional_ =
-  BackendServiceAggregatedListItems'
-    {_bsaliAddtional = _Coerce # pBsaliAddtional_}
-
-
--- | Name of the scope containing this set of BackendServices.
-bsaliAddtional :: Lens' BackendServiceAggregatedListItems (HashMap Text BackendServicesScopedList)
-bsaliAddtional
-  = lens _bsaliAddtional
-      (\ s a -> s{_bsaliAddtional = a})
-      . _Coerce
-
-instance FromJSON BackendServiceAggregatedListItems
-         where
-        parseJSON
-          = withObject "BackendServiceAggregatedListItems"
-              (\ o ->
-                 BackendServiceAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON BackendServiceAggregatedListItems
-         where
-        toJSON = toJSON . _bsaliAddtional
-
--- | A list of InstancesScopedList resources.
---
--- /See:/ 'instanceAggregatedListItems' smart constructor.
-newtype InstanceAggregatedListItems =
-  InstanceAggregatedListItems'
-    { _ialiAddtional :: HashMap Text InstancesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialiAddtional'
-instanceAggregatedListItems
-    :: HashMap Text InstancesScopedList -- ^ 'ialiAddtional'
-    -> InstanceAggregatedListItems
-instanceAggregatedListItems pIaliAddtional_ =
-  InstanceAggregatedListItems' {_ialiAddtional = _Coerce # pIaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of instances.
-ialiAddtional :: Lens' InstanceAggregatedListItems (HashMap Text InstancesScopedList)
-ialiAddtional
-  = lens _ialiAddtional
-      (\ s a -> s{_ialiAddtional = a})
-      . _Coerce
-
-instance FromJSON InstanceAggregatedListItems where
-        parseJSON
-          = withObject "InstanceAggregatedListItems"
-              (\ o ->
-                 InstanceAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON InstanceAggregatedListItems where
-        toJSON = toJSON . _ialiAddtional
-
--- | [Output Only] Informational warning which replaces the list of
--- autoscalers when the list is empty.
---
--- /See:/ 'autoscalersScopedListWarning' smart constructor.
-data AutoscalersScopedListWarning =
-  AutoscalersScopedListWarning'
-    { _aslwData    :: !(Maybe [AutoscalersScopedListWarningDataItem])
-    , _aslwCode    :: !(Maybe AutoscalersScopedListWarningCode)
-    , _aslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aslwData'
---
--- * 'aslwCode'
---
--- * 'aslwMessage'
-autoscalersScopedListWarning
-    :: AutoscalersScopedListWarning
-autoscalersScopedListWarning =
-  AutoscalersScopedListWarning'
-    {_aslwData = Nothing, _aslwCode = Nothing, _aslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-aslwData :: Lens' AutoscalersScopedListWarning [AutoscalersScopedListWarningDataItem]
-aslwData
-  = lens _aslwData (\ s a -> s{_aslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-aslwCode :: Lens' AutoscalersScopedListWarning (Maybe AutoscalersScopedListWarningCode)
-aslwCode = lens _aslwCode (\ s a -> s{_aslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-aslwMessage :: Lens' AutoscalersScopedListWarning (Maybe Text)
-aslwMessage
-  = lens _aslwMessage (\ s a -> s{_aslwMessage = a})
-
-instance FromJSON AutoscalersScopedListWarning where
-        parseJSON
-          = withObject "AutoscalersScopedListWarning"
-              (\ o ->
-                 AutoscalersScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AutoscalersScopedListWarning where
-        toJSON AutoscalersScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _aslwData,
-                  ("code" .=) <$> _aslwCode,
-                  ("message" .=) <$> _aslwMessage])
-
--- | A specification of the desired way to instantiate a disk in the instance
--- template when its created from a source instance.
---
--- /See:/ 'diskInstantiationConfig' smart constructor.
-data DiskInstantiationConfig =
-  DiskInstantiationConfig'
-    { _dicAutoDelete      :: !(Maybe Bool)
-    , _dicInstantiateFrom :: !(Maybe DiskInstantiationConfigInstantiateFrom)
-    , _dicCustomImage     :: !(Maybe Text)
-    , _dicDeviceName      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskInstantiationConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dicAutoDelete'
---
--- * 'dicInstantiateFrom'
---
--- * 'dicCustomImage'
---
--- * 'dicDeviceName'
-diskInstantiationConfig
-    :: DiskInstantiationConfig
-diskInstantiationConfig =
-  DiskInstantiationConfig'
-    { _dicAutoDelete = Nothing
-    , _dicInstantiateFrom = Nothing
-    , _dicCustomImage = Nothing
-    , _dicDeviceName = Nothing
-    }
-
-
--- | Specifies whether the disk will be auto-deleted when the instance is
--- deleted (but not when the disk is detached from the instance).
-dicAutoDelete :: Lens' DiskInstantiationConfig (Maybe Bool)
-dicAutoDelete
-  = lens _dicAutoDelete
-      (\ s a -> s{_dicAutoDelete = a})
-
--- | Specifies whether to include the disk and what image to use. Possible
--- values are: - source-image: to use the same image that was used to
--- create the source instance\'s corresponding disk. Applicable to the boot
--- disk and additional read-write disks. - source-image-family: to use the
--- same image family that was used to create the source instance\'s
--- corresponding disk. Applicable to the boot disk and additional
--- read-write disks. - custom-image: to use a user-provided image url for
--- disk creation. Applicable to the boot disk and additional read-write
--- disks. - attach-read-only: to attach a read-only disk. Applicable to
--- read-only disks. - do-not-include: to exclude a disk from the template.
--- Applicable to additional read-write disks, local SSDs, and read-only
--- disks.
-dicInstantiateFrom :: Lens' DiskInstantiationConfig (Maybe DiskInstantiationConfigInstantiateFrom)
-dicInstantiateFrom
-  = lens _dicInstantiateFrom
-      (\ s a -> s{_dicInstantiateFrom = a})
-
--- | The custom source image to be used to restore this disk when
--- instantiating this instance template.
-dicCustomImage :: Lens' DiskInstantiationConfig (Maybe Text)
-dicCustomImage
-  = lens _dicCustomImage
-      (\ s a -> s{_dicCustomImage = a})
-
--- | Specifies the device name of the disk to which the configurations apply
--- to.
-dicDeviceName :: Lens' DiskInstantiationConfig (Maybe Text)
-dicDeviceName
-  = lens _dicDeviceName
-      (\ s a -> s{_dicDeviceName = a})
-
-instance FromJSON DiskInstantiationConfig where
-        parseJSON
-          = withObject "DiskInstantiationConfig"
-              (\ o ->
-                 DiskInstantiationConfig' <$>
-                   (o .:? "autoDelete") <*> (o .:? "instantiateFrom")
-                     <*> (o .:? "customImage")
-                     <*> (o .:? "deviceName"))
-
-instance ToJSON DiskInstantiationConfig where
-        toJSON DiskInstantiationConfig'{..}
-          = object
-              (catMaybes
-                 [("autoDelete" .=) <$> _dicAutoDelete,
-                  ("instantiateFrom" .=) <$> _dicInstantiateFrom,
-                  ("customImage" .=) <$> _dicCustomImage,
-                  ("deviceName" .=) <$> _dicDeviceName])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'diskTypeAggregatedListWarning' smart constructor.
-data DiskTypeAggregatedListWarning =
-  DiskTypeAggregatedListWarning'
-    { _dtalwData    :: !(Maybe [DiskTypeAggregatedListWarningDataItem])
-    , _dtalwCode    :: !(Maybe DiskTypeAggregatedListWarningCode)
-    , _dtalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtalwData'
---
--- * 'dtalwCode'
---
--- * 'dtalwMessage'
-diskTypeAggregatedListWarning
-    :: DiskTypeAggregatedListWarning
-diskTypeAggregatedListWarning =
-  DiskTypeAggregatedListWarning'
-    {_dtalwData = Nothing, _dtalwCode = Nothing, _dtalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dtalwData :: Lens' DiskTypeAggregatedListWarning [DiskTypeAggregatedListWarningDataItem]
-dtalwData
-  = lens _dtalwData (\ s a -> s{_dtalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dtalwCode :: Lens' DiskTypeAggregatedListWarning (Maybe DiskTypeAggregatedListWarningCode)
-dtalwCode
-  = lens _dtalwCode (\ s a -> s{_dtalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dtalwMessage :: Lens' DiskTypeAggregatedListWarning (Maybe Text)
-dtalwMessage
-  = lens _dtalwMessage (\ s a -> s{_dtalwMessage = a})
-
-instance FromJSON DiskTypeAggregatedListWarning where
-        parseJSON
-          = withObject "DiskTypeAggregatedListWarning"
-              (\ o ->
-                 DiskTypeAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DiskTypeAggregatedListWarning where
-        toJSON DiskTypeAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dtalwData,
-                  ("code" .=) <$> _dtalwCode,
-                  ("message" .=) <$> _dtalwMessage])
-
---
--- /See:/ 'diskTypeListWarningDataItem' smart constructor.
-data DiskTypeListWarningDataItem =
-  DiskTypeListWarningDataItem'
-    { _dtlwdiValue :: !(Maybe Text)
-    , _dtlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtlwdiValue'
---
--- * 'dtlwdiKey'
-diskTypeListWarningDataItem
-    :: DiskTypeListWarningDataItem
-diskTypeListWarningDataItem =
-  DiskTypeListWarningDataItem' {_dtlwdiValue = Nothing, _dtlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dtlwdiValue :: Lens' DiskTypeListWarningDataItem (Maybe Text)
-dtlwdiValue
-  = lens _dtlwdiValue (\ s a -> s{_dtlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dtlwdiKey :: Lens' DiskTypeListWarningDataItem (Maybe Text)
-dtlwdiKey
-  = lens _dtlwdiKey (\ s a -> s{_dtlwdiKey = a})
-
-instance FromJSON DiskTypeListWarningDataItem where
-        parseJSON
-          = withObject "DiskTypeListWarningDataItem"
-              (\ o ->
-                 DiskTypeListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DiskTypeListWarningDataItem where
-        toJSON DiskTypeListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dtlwdiValue,
-                  ("key" .=) <$> _dtlwdiKey])
-
--- | Represents a rule that describes one or more match conditions along with
--- the action to be taken when traffic matches this condition (allow or
--- deny).
---
--- /See:/ 'securityPolicyRule' smart constructor.
-data SecurityPolicyRule =
-  SecurityPolicyRule'
-    { _sprPriority    :: !(Maybe (Textual Int32))
-    , _sprKind        :: !Text
-    , _sprAction      :: !(Maybe Text)
-    , _sprPreview     :: !(Maybe Bool)
-    , _sprMatch       :: !(Maybe SecurityPolicyRuleMatcher)
-    , _sprDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprPriority'
---
--- * 'sprKind'
---
--- * 'sprAction'
---
--- * 'sprPreview'
---
--- * 'sprMatch'
---
--- * 'sprDescription'
-securityPolicyRule
-    :: SecurityPolicyRule
-securityPolicyRule =
-  SecurityPolicyRule'
-    { _sprPriority = Nothing
-    , _sprKind = "compute#securityPolicyRule"
-    , _sprAction = Nothing
-    , _sprPreview = Nothing
-    , _sprMatch = Nothing
-    , _sprDescription = Nothing
-    }
-
-
--- | An integer indicating the priority of a rule in the list. The priority
--- must be a positive value between 0 and 2147483647. Rules are evaluated
--- from highest to lowest priority where 0 is the highest priority and
--- 2147483647 is the lowest prority.
-sprPriority :: Lens' SecurityPolicyRule (Maybe Int32)
-sprPriority
-  = lens _sprPriority (\ s a -> s{_sprPriority = a}) .
-      mapping _Coerce
-
--- | [Output only] Type of the resource. Always compute#securityPolicyRule
--- for security policy rules
-sprKind :: Lens' SecurityPolicyRule Text
-sprKind = lens _sprKind (\ s a -> s{_sprKind = a})
-
--- | The Action to preform when the client connection triggers the rule. Can
--- currently be either \"allow\" or \"deny()\" where valid values for
--- status are 403, 404, and 502.
-sprAction :: Lens' SecurityPolicyRule (Maybe Text)
-sprAction
-  = lens _sprAction (\ s a -> s{_sprAction = a})
-
--- | If set to true, the specified action is not enforced.
-sprPreview :: Lens' SecurityPolicyRule (Maybe Bool)
-sprPreview
-  = lens _sprPreview (\ s a -> s{_sprPreview = a})
-
--- | A match condition that incoming traffic is evaluated against. If it
--- evaluates to true, the corresponding ?action? is enforced.
-sprMatch :: Lens' SecurityPolicyRule (Maybe SecurityPolicyRuleMatcher)
-sprMatch = lens _sprMatch (\ s a -> s{_sprMatch = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-sprDescription :: Lens' SecurityPolicyRule (Maybe Text)
-sprDescription
-  = lens _sprDescription
-      (\ s a -> s{_sprDescription = a})
-
-instance FromJSON SecurityPolicyRule where
-        parseJSON
-          = withObject "SecurityPolicyRule"
-              (\ o ->
-                 SecurityPolicyRule' <$>
-                   (o .:? "priority") <*>
-                     (o .:? "kind" .!= "compute#securityPolicyRule")
-                     <*> (o .:? "action")
-                     <*> (o .:? "preview")
-                     <*> (o .:? "match")
-                     <*> (o .:? "description"))
-
-instance ToJSON SecurityPolicyRule where
-        toJSON SecurityPolicyRule'{..}
-          = object
-              (catMaybes
-                 [("priority" .=) <$> _sprPriority,
-                  Just ("kind" .= _sprKind),
-                  ("action" .=) <$> _sprAction,
-                  ("preview" .=) <$> _sprPreview,
-                  ("match" .=) <$> _sprMatch,
-                  ("description" .=) <$> _sprDescription])
-
--- | Response for the InterconnectsGetDiagnosticsRequest.
---
--- /See:/ 'interconnectsGetDiagnosticsResponse' smart constructor.
-newtype InterconnectsGetDiagnosticsResponse =
-  InterconnectsGetDiagnosticsResponse'
-    { _igdrResult :: Maybe InterconnectDiagnostics
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsGetDiagnosticsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igdrResult'
-interconnectsGetDiagnosticsResponse
-    :: InterconnectsGetDiagnosticsResponse
-interconnectsGetDiagnosticsResponse =
-  InterconnectsGetDiagnosticsResponse' {_igdrResult = Nothing}
-
-
-igdrResult :: Lens' InterconnectsGetDiagnosticsResponse (Maybe InterconnectDiagnostics)
-igdrResult
-  = lens _igdrResult (\ s a -> s{_igdrResult = a})
-
-instance FromJSON InterconnectsGetDiagnosticsResponse
-         where
-        parseJSON
-          = withObject "InterconnectsGetDiagnosticsResponse"
-              (\ o ->
-                 InterconnectsGetDiagnosticsResponse' <$>
-                   (o .:? "result"))
-
-instance ToJSON InterconnectsGetDiagnosticsResponse
-         where
-        toJSON InterconnectsGetDiagnosticsResponse'{..}
-          = object (catMaybes [("result" .=) <$> _igdrResult])
-
---
--- /See:/ 'vpnTunnelAggregatedListWarningDataItem' smart constructor.
-data VPNTunnelAggregatedListWarningDataItem =
-  VPNTunnelAggregatedListWarningDataItem'
-    { _vtalwdiValue :: !(Maybe Text)
-    , _vtalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtalwdiValue'
---
--- * 'vtalwdiKey'
-vpnTunnelAggregatedListWarningDataItem
-    :: VPNTunnelAggregatedListWarningDataItem
-vpnTunnelAggregatedListWarningDataItem =
-  VPNTunnelAggregatedListWarningDataItem'
-    {_vtalwdiValue = Nothing, _vtalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-vtalwdiValue :: Lens' VPNTunnelAggregatedListWarningDataItem (Maybe Text)
-vtalwdiValue
-  = lens _vtalwdiValue (\ s a -> s{_vtalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-vtalwdiKey :: Lens' VPNTunnelAggregatedListWarningDataItem (Maybe Text)
-vtalwdiKey
-  = lens _vtalwdiKey (\ s a -> s{_vtalwdiKey = a})
-
-instance FromJSON
-           VPNTunnelAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "VPNTunnelAggregatedListWarningDataItem"
-              (\ o ->
-                 VPNTunnelAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           VPNTunnelAggregatedListWarningDataItem
-         where
-        toJSON VPNTunnelAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _vtalwdiValue,
-                  ("key" .=) <$> _vtalwdiKey])
-
--- | Encapsulates numeric value that can be either absolute or relative.
---
--- /See:/ 'fixedOrPercent' smart constructor.
-data FixedOrPercent =
-  FixedOrPercent'
-    { _fopCalculated :: !(Maybe (Textual Int32))
-    , _fopPercent    :: !(Maybe (Textual Int32))
-    , _fopFixed      :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FixedOrPercent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fopCalculated'
---
--- * 'fopPercent'
---
--- * 'fopFixed'
-fixedOrPercent
-    :: FixedOrPercent
-fixedOrPercent =
-  FixedOrPercent'
-    {_fopCalculated = Nothing, _fopPercent = Nothing, _fopFixed = Nothing}
-
-
--- | [Output Only] Absolute value of VM instances calculated based on the
--- specific mode. - If the value is fixed, then the calculated value is
--- equal to the fixed value. - If the value is a percent, then the
--- calculated value is percent\/100 * targetSize. For example, the
--- calculated value of a 80% of a managed instance group with 150 instances
--- would be (80\/100 * 150) = 120 VM instances. If there is a remainder,
--- the number is rounded up.
-fopCalculated :: Lens' FixedOrPercent (Maybe Int32)
-fopCalculated
-  = lens _fopCalculated
-      (\ s a -> s{_fopCalculated = a})
-      . mapping _Coerce
-
--- | Specifies a percentage of instances between 0 to 100%, inclusive. For
--- example, specify 80 for 80%.
-fopPercent :: Lens' FixedOrPercent (Maybe Int32)
-fopPercent
-  = lens _fopPercent (\ s a -> s{_fopPercent = a}) .
-      mapping _Coerce
-
--- | Specifies a fixed number of VM instances. This must be a positive
--- integer.
-fopFixed :: Lens' FixedOrPercent (Maybe Int32)
-fopFixed
-  = lens _fopFixed (\ s a -> s{_fopFixed = a}) .
-      mapping _Coerce
-
-instance FromJSON FixedOrPercent where
-        parseJSON
-          = withObject "FixedOrPercent"
-              (\ o ->
-                 FixedOrPercent' <$>
-                   (o .:? "calculated") <*> (o .:? "percent") <*>
-                     (o .:? "fixed"))
-
-instance ToJSON FixedOrPercent where
-        toJSON FixedOrPercent'{..}
-          = object
-              (catMaybes
-                 [("calculated" .=) <$> _fopCalculated,
-                  ("percent" .=) <$> _fopPercent,
-                  ("fixed" .=) <$> _fopFixed])
-
--- | The available logging options for a firewall rule.
---
--- /See:/ 'firewallLogConfig' smart constructor.
-newtype FirewallLogConfig =
-  FirewallLogConfig'
-    { _flcEnable :: Maybe Bool
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallLogConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flcEnable'
-firewallLogConfig
-    :: FirewallLogConfig
-firewallLogConfig = FirewallLogConfig' {_flcEnable = Nothing}
-
-
--- | This field denotes whether to enable logging for a particular firewall
--- rule.
-flcEnable :: Lens' FirewallLogConfig (Maybe Bool)
-flcEnable
-  = lens _flcEnable (\ s a -> s{_flcEnable = a})
-
-instance FromJSON FirewallLogConfig where
-        parseJSON
-          = withObject "FirewallLogConfig"
-              (\ o -> FirewallLogConfig' <$> (o .:? "enable"))
-
-instance ToJSON FirewallLogConfig where
-        toJSON FirewallLogConfig'{..}
-          = object (catMaybes [("enable" .=) <$> _flcEnable])
-
--- | The policy describes the baseline against which Instance boot integrity
--- is measured.
---
--- /See:/ 'shieldedInstanceIntegrityPolicy' smart constructor.
-newtype ShieldedInstanceIntegrityPolicy =
-  ShieldedInstanceIntegrityPolicy'
-    { _siipUpdateAutoLearnPolicy :: Maybe Bool
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ShieldedInstanceIntegrityPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'siipUpdateAutoLearnPolicy'
-shieldedInstanceIntegrityPolicy
-    :: ShieldedInstanceIntegrityPolicy
-shieldedInstanceIntegrityPolicy =
-  ShieldedInstanceIntegrityPolicy' {_siipUpdateAutoLearnPolicy = Nothing}
-
-
--- | Updates the integrity policy baseline using the measurements from the VM
--- instance\'s most recent boot.
-siipUpdateAutoLearnPolicy :: Lens' ShieldedInstanceIntegrityPolicy (Maybe Bool)
-siipUpdateAutoLearnPolicy
-  = lens _siipUpdateAutoLearnPolicy
-      (\ s a -> s{_siipUpdateAutoLearnPolicy = a})
-
-instance FromJSON ShieldedInstanceIntegrityPolicy
-         where
-        parseJSON
-          = withObject "ShieldedInstanceIntegrityPolicy"
-              (\ o ->
-                 ShieldedInstanceIntegrityPolicy' <$>
-                   (o .:? "updateAutoLearnPolicy"))
-
-instance ToJSON ShieldedInstanceIntegrityPolicy where
-        toJSON ShieldedInstanceIntegrityPolicy'{..}
-          = object
-              (catMaybes
-                 [("updateAutoLearnPolicy" .=) <$>
-                    _siipUpdateAutoLearnPolicy])
-
--- | Represents a Nat resource. It enables the VMs within the specified
--- subnetworks to access Internet without external IP addresses. It
--- specifies a list of subnetworks (and the ranges within) that want to use
--- NAT. Customers can also provide the external IPs that would be used for
--- NAT. GCP would auto-allocate ephemeral IPs if no external IPs are
--- provided.
---
--- /See:/ 'routerNAT' smart constructor.
-data RouterNAT =
-  RouterNAT'
-    { _rnatNATIPAllocateOption           :: !(Maybe RouterNATNATIPAllocateOption)
-    , _rnatICMPIdleTimeoutSec            :: !(Maybe (Textual Int32))
-    , _rnatUdpIdleTimeoutSec             :: !(Maybe (Textual Int32))
-    , _rnatNATIPs                        :: !(Maybe [Text])
-    , _rnatSubnetworks                   :: !(Maybe [RouterNATSubnetworkToNAT])
-    , _rnatMinPortsPerVM                 :: !(Maybe (Textual Int32))
-    , _rnatName                          :: !(Maybe Text)
-    , _rnatSourceSubnetworkIPRangesToNAT :: !(Maybe RouterNATSourceSubnetworkIPRangesToNAT)
-    , _rnatTCPEstablishedIdleTimeoutSec  :: !(Maybe (Textual Int32))
-    , _rnatTCPTransitoryIdleTimeoutSec   :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterNAT' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rnatNATIPAllocateOption'
---
--- * 'rnatICMPIdleTimeoutSec'
---
--- * 'rnatUdpIdleTimeoutSec'
---
--- * 'rnatNATIPs'
---
--- * 'rnatSubnetworks'
---
--- * 'rnatMinPortsPerVM'
---
--- * 'rnatName'
---
--- * 'rnatSourceSubnetworkIPRangesToNAT'
---
--- * 'rnatTCPEstablishedIdleTimeoutSec'
---
--- * 'rnatTCPTransitoryIdleTimeoutSec'
-routerNAT
-    :: RouterNAT
-routerNAT =
-  RouterNAT'
-    { _rnatNATIPAllocateOption = Nothing
-    , _rnatICMPIdleTimeoutSec = Nothing
-    , _rnatUdpIdleTimeoutSec = Nothing
-    , _rnatNATIPs = Nothing
-    , _rnatSubnetworks = Nothing
-    , _rnatMinPortsPerVM = Nothing
-    , _rnatName = Nothing
-    , _rnatSourceSubnetworkIPRangesToNAT = Nothing
-    , _rnatTCPEstablishedIdleTimeoutSec = Nothing
-    , _rnatTCPTransitoryIdleTimeoutSec = Nothing
-    }
-
-
--- | Specify the NatIpAllocateOption. If it is AUTO_ONLY, then nat_ip should
--- be empty.
-rnatNATIPAllocateOption :: Lens' RouterNAT (Maybe RouterNATNATIPAllocateOption)
-rnatNATIPAllocateOption
-  = lens _rnatNATIPAllocateOption
-      (\ s a -> s{_rnatNATIPAllocateOption = a})
-
--- | Timeout (in seconds) for ICMP connections. Defaults to 30s if not set.
-rnatICMPIdleTimeoutSec :: Lens' RouterNAT (Maybe Int32)
-rnatICMPIdleTimeoutSec
-  = lens _rnatICMPIdleTimeoutSec
-      (\ s a -> s{_rnatICMPIdleTimeoutSec = a})
-      . mapping _Coerce
-
--- | Timeout (in seconds) for UDP connections. Defaults to 30s if not set.
-rnatUdpIdleTimeoutSec :: Lens' RouterNAT (Maybe Int32)
-rnatUdpIdleTimeoutSec
-  = lens _rnatUdpIdleTimeoutSec
-      (\ s a -> s{_rnatUdpIdleTimeoutSec = a})
-      . mapping _Coerce
-
--- | A list of URLs of the IP resources used for this Nat service. These IPs
--- must be valid static external IP addresses assigned to the project.
--- max_length is subject to change post alpha.
-rnatNATIPs :: Lens' RouterNAT [Text]
-rnatNATIPs
-  = lens _rnatNATIPs (\ s a -> s{_rnatNATIPs = a}) .
-      _Default
-      . _Coerce
-
--- | A list of Subnetwork resources whose traffic should be translated by NAT
--- Gateway. It is used only when LIST_OF_SUBNETWORKS is selected for the
--- SubnetworkIpRangeToNatOption above.
-rnatSubnetworks :: Lens' RouterNAT [RouterNATSubnetworkToNAT]
-rnatSubnetworks
-  = lens _rnatSubnetworks
-      (\ s a -> s{_rnatSubnetworks = a})
-      . _Default
-      . _Coerce
-
--- | Minimum number of ports allocated to a VM from this NAT config. If not
--- set, a default number of ports is allocated to a VM. This gets rounded
--- up to the nearest power of 2. Eg. if the value of this field is 50, at
--- least 64 ports will be allocated to a VM.
-rnatMinPortsPerVM :: Lens' RouterNAT (Maybe Int32)
-rnatMinPortsPerVM
-  = lens _rnatMinPortsPerVM
-      (\ s a -> s{_rnatMinPortsPerVM = a})
-      . mapping _Coerce
-
--- | Unique name of this Nat service. The name must be 1-63 characters long
--- and comply with RFC1035.
-rnatName :: Lens' RouterNAT (Maybe Text)
-rnatName = lens _rnatName (\ s a -> s{_rnatName = a})
-
--- | Specify the Nat option. If this field contains
--- ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES,
--- then there should not be any other Router.Nat section in any Router for
--- this network in this region.
-rnatSourceSubnetworkIPRangesToNAT :: Lens' RouterNAT (Maybe RouterNATSourceSubnetworkIPRangesToNAT)
-rnatSourceSubnetworkIPRangesToNAT
-  = lens _rnatSourceSubnetworkIPRangesToNAT
-      (\ s a -> s{_rnatSourceSubnetworkIPRangesToNAT = a})
-
--- | Timeout (in seconds) for TCP established connections. Defaults to 1200s
--- if not set.
-rnatTCPEstablishedIdleTimeoutSec :: Lens' RouterNAT (Maybe Int32)
-rnatTCPEstablishedIdleTimeoutSec
-  = lens _rnatTCPEstablishedIdleTimeoutSec
-      (\ s a -> s{_rnatTCPEstablishedIdleTimeoutSec = a})
-      . mapping _Coerce
-
--- | Timeout (in seconds) for TCP transitory connections. Defaults to 30s if
--- not set.
-rnatTCPTransitoryIdleTimeoutSec :: Lens' RouterNAT (Maybe Int32)
-rnatTCPTransitoryIdleTimeoutSec
-  = lens _rnatTCPTransitoryIdleTimeoutSec
-      (\ s a -> s{_rnatTCPTransitoryIdleTimeoutSec = a})
-      . mapping _Coerce
-
-instance FromJSON RouterNAT where
-        parseJSON
-          = withObject "RouterNAT"
-              (\ o ->
-                 RouterNAT' <$>
-                   (o .:? "natIpAllocateOption") <*>
-                     (o .:? "icmpIdleTimeoutSec")
-                     <*> (o .:? "udpIdleTimeoutSec")
-                     <*> (o .:? "natIps" .!= mempty)
-                     <*> (o .:? "subnetworks" .!= mempty)
-                     <*> (o .:? "minPortsPerVm")
-                     <*> (o .:? "name")
-                     <*> (o .:? "sourceSubnetworkIpRangesToNat")
-                     <*> (o .:? "tcpEstablishedIdleTimeoutSec")
-                     <*> (o .:? "tcpTransitoryIdleTimeoutSec"))
-
-instance ToJSON RouterNAT where
-        toJSON RouterNAT'{..}
-          = object
-              (catMaybes
-                 [("natIpAllocateOption" .=) <$>
-                    _rnatNATIPAllocateOption,
-                  ("icmpIdleTimeoutSec" .=) <$>
-                    _rnatICMPIdleTimeoutSec,
-                  ("udpIdleTimeoutSec" .=) <$> _rnatUdpIdleTimeoutSec,
-                  ("natIps" .=) <$> _rnatNATIPs,
-                  ("subnetworks" .=) <$> _rnatSubnetworks,
-                  ("minPortsPerVm" .=) <$> _rnatMinPortsPerVM,
-                  ("name" .=) <$> _rnatName,
-                  ("sourceSubnetworkIpRangesToNat" .=) <$>
-                    _rnatSourceSubnetworkIPRangesToNAT,
-                  ("tcpEstablishedIdleTimeoutSec" .=) <$>
-                    _rnatTCPEstablishedIdleTimeoutSec,
-                  ("tcpTransitoryIdleTimeoutSec" .=) <$>
-                    _rnatTCPTransitoryIdleTimeoutSec])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'autoscalerAggregatedListWarning' smart constructor.
-data AutoscalerAggregatedListWarning =
-  AutoscalerAggregatedListWarning'
-    { _aalwData    :: !(Maybe [AutoscalerAggregatedListWarningDataItem])
-    , _aalwCode    :: !(Maybe AutoscalerAggregatedListWarningCode)
-    , _aalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aalwData'
---
--- * 'aalwCode'
---
--- * 'aalwMessage'
-autoscalerAggregatedListWarning
-    :: AutoscalerAggregatedListWarning
-autoscalerAggregatedListWarning =
-  AutoscalerAggregatedListWarning'
-    {_aalwData = Nothing, _aalwCode = Nothing, _aalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-aalwData :: Lens' AutoscalerAggregatedListWarning [AutoscalerAggregatedListWarningDataItem]
-aalwData
-  = lens _aalwData (\ s a -> s{_aalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-aalwCode :: Lens' AutoscalerAggregatedListWarning (Maybe AutoscalerAggregatedListWarningCode)
-aalwCode = lens _aalwCode (\ s a -> s{_aalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-aalwMessage :: Lens' AutoscalerAggregatedListWarning (Maybe Text)
-aalwMessage
-  = lens _aalwMessage (\ s a -> s{_aalwMessage = a})
-
-instance FromJSON AutoscalerAggregatedListWarning
-         where
-        parseJSON
-          = withObject "AutoscalerAggregatedListWarning"
-              (\ o ->
-                 AutoscalerAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AutoscalerAggregatedListWarning where
-        toJSON AutoscalerAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _aalwData,
-                  ("code" .=) <$> _aalwCode,
-                  ("message" .=) <$> _aalwMessage])
-
---
--- /See:/ 'autoscalerListWarningDataItem' smart constructor.
-data AutoscalerListWarningDataItem =
-  AutoscalerListWarningDataItem'
-    { _alwdiValue :: !(Maybe Text)
-    , _alwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alwdiValue'
---
--- * 'alwdiKey'
-autoscalerListWarningDataItem
-    :: AutoscalerListWarningDataItem
-autoscalerListWarningDataItem =
-  AutoscalerListWarningDataItem' {_alwdiValue = Nothing, _alwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-alwdiValue :: Lens' AutoscalerListWarningDataItem (Maybe Text)
-alwdiValue
-  = lens _alwdiValue (\ s a -> s{_alwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-alwdiKey :: Lens' AutoscalerListWarningDataItem (Maybe Text)
-alwdiKey = lens _alwdiKey (\ s a -> s{_alwdiKey = a})
-
-instance FromJSON AutoscalerListWarningDataItem where
-        parseJSON
-          = withObject "AutoscalerListWarningDataItem"
-              (\ o ->
-                 AutoscalerListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AutoscalerListWarningDataItem where
-        toJSON AutoscalerListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _alwdiValue,
-                  ("key" .=) <$> _alwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeTypeListWarning' smart constructor.
-data NodeTypeListWarning =
-  NodeTypeListWarning'
-    { _ntlwData    :: !(Maybe [NodeTypeListWarningDataItem])
-    , _ntlwCode    :: !(Maybe NodeTypeListWarningCode)
-    , _ntlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntlwData'
---
--- * 'ntlwCode'
---
--- * 'ntlwMessage'
-nodeTypeListWarning
-    :: NodeTypeListWarning
-nodeTypeListWarning =
-  NodeTypeListWarning'
-    {_ntlwData = Nothing, _ntlwCode = Nothing, _ntlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ntlwData :: Lens' NodeTypeListWarning [NodeTypeListWarningDataItem]
-ntlwData
-  = lens _ntlwData (\ s a -> s{_ntlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ntlwCode :: Lens' NodeTypeListWarning (Maybe NodeTypeListWarningCode)
-ntlwCode = lens _ntlwCode (\ s a -> s{_ntlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ntlwMessage :: Lens' NodeTypeListWarning (Maybe Text)
-ntlwMessage
-  = lens _ntlwMessage (\ s a -> s{_ntlwMessage = a})
-
-instance FromJSON NodeTypeListWarning where
-        parseJSON
-          = withObject "NodeTypeListWarning"
-              (\ o ->
-                 NodeTypeListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTypeListWarning where
-        toJSON NodeTypeListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ntlwData,
-                  ("code" .=) <$> _ntlwCode,
-                  ("message" .=) <$> _ntlwMessage])
-
--- | Contains a list of HealthCheck resources.
---
--- /See:/ 'healthCheckList' smart constructor.
-data HealthCheckList =
-  HealthCheckList'
-    { _hclNextPageToken :: !(Maybe Text)
-    , _hclKind          :: !Text
-    , _hclItems         :: !(Maybe [HealthCheck])
-    , _hclSelfLink      :: !(Maybe Text)
-    , _hclWarning       :: !(Maybe HealthCheckListWarning)
-    , _hclId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthCheckList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hclNextPageToken'
---
--- * 'hclKind'
---
--- * 'hclItems'
---
--- * 'hclSelfLink'
---
--- * 'hclWarning'
---
--- * 'hclId'
-healthCheckList
-    :: HealthCheckList
-healthCheckList =
-  HealthCheckList'
-    { _hclNextPageToken = Nothing
-    , _hclKind = "compute#healthCheckList"
-    , _hclItems = Nothing
-    , _hclSelfLink = Nothing
-    , _hclWarning = Nothing
-    , _hclId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-hclNextPageToken :: Lens' HealthCheckList (Maybe Text)
-hclNextPageToken
-  = lens _hclNextPageToken
-      (\ s a -> s{_hclNextPageToken = a})
-
--- | Type of resource.
-hclKind :: Lens' HealthCheckList Text
-hclKind = lens _hclKind (\ s a -> s{_hclKind = a})
-
--- | A list of HealthCheck resources.
-hclItems :: Lens' HealthCheckList [HealthCheck]
-hclItems
-  = lens _hclItems (\ s a -> s{_hclItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-hclSelfLink :: Lens' HealthCheckList (Maybe Text)
-hclSelfLink
-  = lens _hclSelfLink (\ s a -> s{_hclSelfLink = a})
-
--- | [Output Only] Informational warning message.
-hclWarning :: Lens' HealthCheckList (Maybe HealthCheckListWarning)
-hclWarning
-  = lens _hclWarning (\ s a -> s{_hclWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-hclId :: Lens' HealthCheckList (Maybe Text)
-hclId = lens _hclId (\ s a -> s{_hclId = a})
-
-instance FromJSON HealthCheckList where
-        parseJSON
-          = withObject "HealthCheckList"
-              (\ o ->
-                 HealthCheckList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#healthCheckList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON HealthCheckList where
-        toJSON HealthCheckList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _hclNextPageToken,
-                  Just ("kind" .= _hclKind),
-                  ("items" .=) <$> _hclItems,
-                  ("selfLink" .=) <$> _hclSelfLink,
-                  ("warning" .=) <$> _hclWarning,
-                  ("id" .=) <$> _hclId])
-
--- | [Output Only] Encountered errors during the last attempt to create or
--- delete the instance.
---
--- /See:/ 'managedInstanceLastAttemptErrors' smart constructor.
-newtype ManagedInstanceLastAttemptErrors =
-  ManagedInstanceLastAttemptErrors'
-    { _milaeErrors :: Maybe [ManagedInstanceLastAttemptErrorsErrorsItem]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedInstanceLastAttemptErrors' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'milaeErrors'
-managedInstanceLastAttemptErrors
-    :: ManagedInstanceLastAttemptErrors
-managedInstanceLastAttemptErrors =
-  ManagedInstanceLastAttemptErrors' {_milaeErrors = Nothing}
-
-
--- | [Output Only] The array of errors encountered while processing this
--- operation.
-milaeErrors :: Lens' ManagedInstanceLastAttemptErrors [ManagedInstanceLastAttemptErrorsErrorsItem]
-milaeErrors
-  = lens _milaeErrors (\ s a -> s{_milaeErrors = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ManagedInstanceLastAttemptErrors
-         where
-        parseJSON
-          = withObject "ManagedInstanceLastAttemptErrors"
-              (\ o ->
-                 ManagedInstanceLastAttemptErrors' <$>
-                   (o .:? "errors" .!= mempty))
-
-instance ToJSON ManagedInstanceLastAttemptErrors
-         where
-        toJSON ManagedInstanceLastAttemptErrors'{..}
-          = object (catMaybes [("errors" .=) <$> _milaeErrors])
-
--- | Status of a NAT contained in this router. Next tag: 9
---
--- /See:/ 'routerStatusNATStatus' smart constructor.
-data RouterStatusNATStatus =
-  RouterStatusNATStatus'
-    { _rsnatsUserAllocatedNATIPResources   :: !(Maybe [Text])
-    , _rsnatsName                          :: !(Maybe Text)
-    , _rsnatsAutoAllocatedNATIPs           :: !(Maybe [Text])
-    , _rsnatsMinExtraNATIPsNeeded          :: !(Maybe (Textual Int32))
-    , _rsnatsNumVMEndpointsWithNATMAppings :: !(Maybe (Textual Int32))
-    , _rsnatsUserAllocatedNATIPs           :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterStatusNATStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsnatsUserAllocatedNATIPResources'
---
--- * 'rsnatsName'
---
--- * 'rsnatsAutoAllocatedNATIPs'
---
--- * 'rsnatsMinExtraNATIPsNeeded'
---
--- * 'rsnatsNumVMEndpointsWithNATMAppings'
---
--- * 'rsnatsUserAllocatedNATIPs'
-routerStatusNATStatus
-    :: RouterStatusNATStatus
-routerStatusNATStatus =
-  RouterStatusNATStatus'
-    { _rsnatsUserAllocatedNATIPResources = Nothing
-    , _rsnatsName = Nothing
-    , _rsnatsAutoAllocatedNATIPs = Nothing
-    , _rsnatsMinExtraNATIPsNeeded = Nothing
-    , _rsnatsNumVMEndpointsWithNATMAppings = Nothing
-    , _rsnatsUserAllocatedNATIPs = Nothing
-    }
-
-
--- | A list of fully qualified URLs of reserved IP address resources.
-rsnatsUserAllocatedNATIPResources :: Lens' RouterStatusNATStatus [Text]
-rsnatsUserAllocatedNATIPResources
-  = lens _rsnatsUserAllocatedNATIPResources
-      (\ s a -> s{_rsnatsUserAllocatedNATIPResources = a})
-      . _Default
-      . _Coerce
-
--- | Unique name of this NAT.
-rsnatsName :: Lens' RouterStatusNATStatus (Maybe Text)
-rsnatsName
-  = lens _rsnatsName (\ s a -> s{_rsnatsName = a})
-
--- | A list of IPs auto-allocated for NAT. Example: [\"1.1.1.1\",
--- \"129.2.16.89\"]
-rsnatsAutoAllocatedNATIPs :: Lens' RouterStatusNATStatus [Text]
-rsnatsAutoAllocatedNATIPs
-  = lens _rsnatsAutoAllocatedNATIPs
-      (\ s a -> s{_rsnatsAutoAllocatedNATIPs = a})
-      . _Default
-      . _Coerce
-
--- | The number of extra IPs to allocate. This will be greater than 0 only if
--- user-specified IPs are NOT enough to allow all configured VMs to use
--- NAT. This value is meaningful only when auto-allocation of NAT IPs is
--- *not* used.
-rsnatsMinExtraNATIPsNeeded :: Lens' RouterStatusNATStatus (Maybe Int32)
-rsnatsMinExtraNATIPsNeeded
-  = lens _rsnatsMinExtraNATIPsNeeded
-      (\ s a -> s{_rsnatsMinExtraNATIPsNeeded = a})
-      . mapping _Coerce
-
--- | Number of VM endpoints (i.e., Nics) that can use NAT.
-rsnatsNumVMEndpointsWithNATMAppings :: Lens' RouterStatusNATStatus (Maybe Int32)
-rsnatsNumVMEndpointsWithNATMAppings
-  = lens _rsnatsNumVMEndpointsWithNATMAppings
-      (\ s a ->
-         s{_rsnatsNumVMEndpointsWithNATMAppings = a})
-      . mapping _Coerce
-
--- | A list of IPs user-allocated for NAT. They will be raw IP strings like
--- \"179.12.26.133\".
-rsnatsUserAllocatedNATIPs :: Lens' RouterStatusNATStatus [Text]
-rsnatsUserAllocatedNATIPs
-  = lens _rsnatsUserAllocatedNATIPs
-      (\ s a -> s{_rsnatsUserAllocatedNATIPs = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RouterStatusNATStatus where
-        parseJSON
-          = withObject "RouterStatusNATStatus"
-              (\ o ->
-                 RouterStatusNATStatus' <$>
-                   (o .:? "userAllocatedNatIpResources" .!= mempty) <*>
-                     (o .:? "name")
-                     <*> (o .:? "autoAllocatedNatIps" .!= mempty)
-                     <*> (o .:? "minExtraNatIpsNeeded")
-                     <*> (o .:? "numVmEndpointsWithNatMappings")
-                     <*> (o .:? "userAllocatedNatIps" .!= mempty))
-
-instance ToJSON RouterStatusNATStatus where
-        toJSON RouterStatusNATStatus'{..}
-          = object
-              (catMaybes
-                 [("userAllocatedNatIpResources" .=) <$>
-                    _rsnatsUserAllocatedNATIPResources,
-                  ("name" .=) <$> _rsnatsName,
-                  ("autoAllocatedNatIps" .=) <$>
-                    _rsnatsAutoAllocatedNATIPs,
-                  ("minExtraNatIpsNeeded" .=) <$>
-                    _rsnatsMinExtraNATIPsNeeded,
-                  ("numVmEndpointsWithNatMappings" .=) <$>
-                    _rsnatsNumVMEndpointsWithNATMAppings,
-                  ("userAllocatedNatIps" .=) <$>
-                    _rsnatsUserAllocatedNATIPs])
-
---
--- /See:/ 'targetPoolsRemoveInstanceRequest' smart constructor.
-newtype TargetPoolsRemoveInstanceRequest =
-  TargetPoolsRemoveInstanceRequest'
-    { _tprirInstances :: Maybe [InstanceReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsRemoveInstanceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tprirInstances'
-targetPoolsRemoveInstanceRequest
-    :: TargetPoolsRemoveInstanceRequest
-targetPoolsRemoveInstanceRequest =
-  TargetPoolsRemoveInstanceRequest' {_tprirInstances = Nothing}
-
-
--- | URLs of the instances to be removed from target pool.
-tprirInstances :: Lens' TargetPoolsRemoveInstanceRequest [InstanceReference]
-tprirInstances
-  = lens _tprirInstances
-      (\ s a -> s{_tprirInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolsRemoveInstanceRequest
-         where
-        parseJSON
-          = withObject "TargetPoolsRemoveInstanceRequest"
-              (\ o ->
-                 TargetPoolsRemoveInstanceRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON TargetPoolsRemoveInstanceRequest
-         where
-        toJSON TargetPoolsRemoveInstanceRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _tprirInstances])
-
---
--- /See:/ 'nodeTypeAggregatedListWarningDataItem' smart constructor.
-data NodeTypeAggregatedListWarningDataItem =
-  NodeTypeAggregatedListWarningDataItem'
-    { _nValue :: !(Maybe Text)
-    , _nKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nValue'
---
--- * 'nKey'
-nodeTypeAggregatedListWarningDataItem
-    :: NodeTypeAggregatedListWarningDataItem
-nodeTypeAggregatedListWarningDataItem =
-  NodeTypeAggregatedListWarningDataItem' {_nValue = Nothing, _nKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-nValue :: Lens' NodeTypeAggregatedListWarningDataItem (Maybe Text)
-nValue = lens _nValue (\ s a -> s{_nValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-nKey :: Lens' NodeTypeAggregatedListWarningDataItem (Maybe Text)
-nKey = lens _nKey (\ s a -> s{_nKey = a})
-
-instance FromJSON
-           NodeTypeAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeTypeAggregatedListWarningDataItem"
-              (\ o ->
-                 NodeTypeAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeTypeAggregatedListWarningDataItem
-         where
-        toJSON NodeTypeAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _nValue, ("key" .=) <$> _nKey])
-
---
--- /See:/ 'targetInstancesScopedListWarningDataItem' smart constructor.
-data TargetInstancesScopedListWarningDataItem =
-  TargetInstancesScopedListWarningDataItem'
-    { _tislwdiValue :: !(Maybe Text)
-    , _tislwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tislwdiValue'
---
--- * 'tislwdiKey'
-targetInstancesScopedListWarningDataItem
-    :: TargetInstancesScopedListWarningDataItem
-targetInstancesScopedListWarningDataItem =
-  TargetInstancesScopedListWarningDataItem'
-    {_tislwdiValue = Nothing, _tislwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tislwdiValue :: Lens' TargetInstancesScopedListWarningDataItem (Maybe Text)
-tislwdiValue
-  = lens _tislwdiValue (\ s a -> s{_tislwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tislwdiKey :: Lens' TargetInstancesScopedListWarningDataItem (Maybe Text)
-tislwdiKey
-  = lens _tislwdiKey (\ s a -> s{_tislwdiKey = a})
-
-instance FromJSON
-           TargetInstancesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "TargetInstancesScopedListWarningDataItem"
-              (\ o ->
-                 TargetInstancesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           TargetInstancesScopedListWarningDataItem
-         where
-        toJSON TargetInstancesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tislwdiValue,
-                  ("key" .=) <$> _tislwdiKey])
-
--- | [Output Only] An informational warning that appears when the machine
--- types list is empty.
---
--- /See:/ 'machineTypesScopedListWarning' smart constructor.
-data MachineTypesScopedListWarning =
-  MachineTypesScopedListWarning'
-    { _mtslwData    :: !(Maybe [MachineTypesScopedListWarningDataItem])
-    , _mtslwCode    :: !(Maybe MachineTypesScopedListWarningCode)
-    , _mtslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtslwData'
---
--- * 'mtslwCode'
---
--- * 'mtslwMessage'
-machineTypesScopedListWarning
-    :: MachineTypesScopedListWarning
-machineTypesScopedListWarning =
-  MachineTypesScopedListWarning'
-    {_mtslwData = Nothing, _mtslwCode = Nothing, _mtslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-mtslwData :: Lens' MachineTypesScopedListWarning [MachineTypesScopedListWarningDataItem]
-mtslwData
-  = lens _mtslwData (\ s a -> s{_mtslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-mtslwCode :: Lens' MachineTypesScopedListWarning (Maybe MachineTypesScopedListWarningCode)
-mtslwCode
-  = lens _mtslwCode (\ s a -> s{_mtslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-mtslwMessage :: Lens' MachineTypesScopedListWarning (Maybe Text)
-mtslwMessage
-  = lens _mtslwMessage (\ s a -> s{_mtslwMessage = a})
-
-instance FromJSON MachineTypesScopedListWarning where
-        parseJSON
-          = withObject "MachineTypesScopedListWarning"
-              (\ o ->
-                 MachineTypesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON MachineTypesScopedListWarning where
-        toJSON MachineTypesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _mtslwData,
-                  ("code" .=) <$> _mtslwCode,
-                  ("message" .=) <$> _mtslwMessage])
-
---
--- /See:/ 'zoneSetLabelsRequest' smart constructor.
-data ZoneSetLabelsRequest =
-  ZoneSetLabelsRequest'
-    { _zslrLabels           :: !(Maybe ZoneSetLabelsRequestLabels)
-    , _zslrLabelFingerprint :: !(Maybe Bytes)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneSetLabelsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zslrLabels'
---
--- * 'zslrLabelFingerprint'
-zoneSetLabelsRequest
-    :: ZoneSetLabelsRequest
-zoneSetLabelsRequest =
-  ZoneSetLabelsRequest' {_zslrLabels = Nothing, _zslrLabelFingerprint = Nothing}
-
-
--- | The labels to set for this resource.
-zslrLabels :: Lens' ZoneSetLabelsRequest (Maybe ZoneSetLabelsRequestLabels)
-zslrLabels
-  = lens _zslrLabels (\ s a -> s{_zslrLabels = a})
-
--- | The fingerprint of the previous set of labels for this resource, used to
--- detect conflicts. The fingerprint is initially generated by Compute
--- Engine and changes after every request to modify or update labels. You
--- must always provide an up-to-date fingerprint hash in order to update or
--- change labels. Make a get() request to the resource to get the latest
--- fingerprint.
-zslrLabelFingerprint :: Lens' ZoneSetLabelsRequest (Maybe ByteString)
-zslrLabelFingerprint
-  = lens _zslrLabelFingerprint
-      (\ s a -> s{_zslrLabelFingerprint = a})
-      . mapping _Bytes
-
-instance FromJSON ZoneSetLabelsRequest where
-        parseJSON
-          = withObject "ZoneSetLabelsRequest"
-              (\ o ->
-                 ZoneSetLabelsRequest' <$>
-                   (o .:? "labels") <*> (o .:? "labelFingerprint"))
-
-instance ToJSON ZoneSetLabelsRequest where
-        toJSON ZoneSetLabelsRequest'{..}
-          = object
-              (catMaybes
-                 [("labels" .=) <$> _zslrLabels,
-                  ("labelFingerprint" .=) <$> _zslrLabelFingerprint])
-
--- | A TargetInstance resource. This resource defines an endpoint instance
--- that terminates traffic of certain protocols. (== resource_for
--- beta.targetInstances ==) (== resource_for v1.targetInstances ==)
---
--- /See:/ 'targetInstance' smart constructor.
-data TargetInstance =
-  TargetInstance'
-    { _tiKind              :: !Text
-    , _tiNATPolicy         :: !(Maybe TargetInstanceNATPolicy)
-    , _tiZone              :: !(Maybe Text)
-    , _tiSelfLink          :: !(Maybe Text)
-    , _tiName              :: !(Maybe Text)
-    , _tiCreationTimestamp :: !(Maybe Text)
-    , _tiId                :: !(Maybe (Textual Word64))
-    , _tiDescription       :: !(Maybe Text)
-    , _tiInstance          :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tiKind'
---
--- * 'tiNATPolicy'
---
--- * 'tiZone'
---
--- * 'tiSelfLink'
---
--- * 'tiName'
---
--- * 'tiCreationTimestamp'
---
--- * 'tiId'
---
--- * 'tiDescription'
---
--- * 'tiInstance'
-targetInstance
-    :: TargetInstance
-targetInstance =
-  TargetInstance'
-    { _tiKind = "compute#targetInstance"
-    , _tiNATPolicy = Nothing
-    , _tiZone = Nothing
-    , _tiSelfLink = Nothing
-    , _tiName = Nothing
-    , _tiCreationTimestamp = Nothing
-    , _tiId = Nothing
-    , _tiDescription = Nothing
-    , _tiInstance = Nothing
-    }
-
-
--- | [Output Only] The type of the resource. Always compute#targetInstance
--- for target instances.
-tiKind :: Lens' TargetInstance Text
-tiKind = lens _tiKind (\ s a -> s{_tiKind = a})
-
--- | NAT option controlling how IPs are NAT\'ed to the instance. Currently
--- only NO_NAT (default value) is supported.
-tiNATPolicy :: Lens' TargetInstance (Maybe TargetInstanceNATPolicy)
-tiNATPolicy
-  = lens _tiNATPolicy (\ s a -> s{_tiNATPolicy = a})
-
--- | [Output Only] URL of the zone where the target instance resides. You
--- must specify this field as part of the HTTP request URL. It is not
--- settable as a field in the request body.
-tiZone :: Lens' TargetInstance (Maybe Text)
-tiZone = lens _tiZone (\ s a -> s{_tiZone = a})
-
--- | [Output Only] Server-defined URL for the resource.
-tiSelfLink :: Lens' TargetInstance (Maybe Text)
-tiSelfLink
-  = lens _tiSelfLink (\ s a -> s{_tiSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-tiName :: Lens' TargetInstance (Maybe Text)
-tiName = lens _tiName (\ s a -> s{_tiName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-tiCreationTimestamp :: Lens' TargetInstance (Maybe Text)
-tiCreationTimestamp
-  = lens _tiCreationTimestamp
-      (\ s a -> s{_tiCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-tiId :: Lens' TargetInstance (Maybe Word64)
-tiId
-  = lens _tiId (\ s a -> s{_tiId = a}) .
-      mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-tiDescription :: Lens' TargetInstance (Maybe Text)
-tiDescription
-  = lens _tiDescription
-      (\ s a -> s{_tiDescription = a})
-
--- | A URL to the virtual machine instance that handles traffic for this
--- target instance. When creating a target instance, you can provide the
--- fully-qualified URL or a valid partial URL to the desired virtual
--- machine. For example, the following are all valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/instance
--- - projects\/project\/zones\/zone\/instances\/instance -
--- zones\/zone\/instances\/instance
-tiInstance :: Lens' TargetInstance (Maybe Text)
-tiInstance
-  = lens _tiInstance (\ s a -> s{_tiInstance = a})
-
-instance FromJSON TargetInstance where
-        parseJSON
-          = withObject "TargetInstance"
-              (\ o ->
-                 TargetInstance' <$>
-                   (o .:? "kind" .!= "compute#targetInstance") <*>
-                     (o .:? "natPolicy")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description")
-                     <*> (o .:? "instance"))
-
-instance ToJSON TargetInstance where
-        toJSON TargetInstance'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _tiKind),
-                  ("natPolicy" .=) <$> _tiNATPolicy,
-                  ("zone" .=) <$> _tiZone,
-                  ("selfLink" .=) <$> _tiSelfLink,
-                  ("name" .=) <$> _tiName,
-                  ("creationTimestamp" .=) <$> _tiCreationTimestamp,
-                  ("id" .=) <$> _tiId,
-                  ("description" .=) <$> _tiDescription,
-                  ("instance" .=) <$> _tiInstance])
-
---
--- /See:/ 'targetPoolInstanceHealth' smart constructor.
-data TargetPoolInstanceHealth =
-  TargetPoolInstanceHealth'
-    { _tpihKind         :: !Text
-    , _tpihHealthStatus :: !(Maybe [HealthStatus])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolInstanceHealth' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpihKind'
---
--- * 'tpihHealthStatus'
-targetPoolInstanceHealth
-    :: TargetPoolInstanceHealth
-targetPoolInstanceHealth =
-  TargetPoolInstanceHealth'
-    { _tpihKind = "compute#targetPoolInstanceHealth"
-    , _tpihHealthStatus = Nothing
-    }
-
-
--- | [Output Only] Type of resource. Always compute#targetPoolInstanceHealth
--- when checking the health of an instance.
-tpihKind :: Lens' TargetPoolInstanceHealth Text
-tpihKind = lens _tpihKind (\ s a -> s{_tpihKind = a})
-
-tpihHealthStatus :: Lens' TargetPoolInstanceHealth [HealthStatus]
-tpihHealthStatus
-  = lens _tpihHealthStatus
-      (\ s a -> s{_tpihHealthStatus = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolInstanceHealth where
-        parseJSON
-          = withObject "TargetPoolInstanceHealth"
-              (\ o ->
-                 TargetPoolInstanceHealth' <$>
-                   (o .:? "kind" .!= "compute#targetPoolInstanceHealth")
-                     <*> (o .:? "healthStatus" .!= mempty))
-
-instance ToJSON TargetPoolInstanceHealth where
-        toJSON TargetPoolInstanceHealth'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _tpihKind),
-                  ("healthStatus" .=) <$> _tpihHealthStatus])
-
---
--- /See:/ 'acceleratorTypeAggregatedList' smart constructor.
-data AcceleratorTypeAggregatedList =
-  AcceleratorTypeAggregatedList'
-    { _atalNextPageToken :: !(Maybe Text)
-    , _atalKind          :: !Text
-    , _atalItems         :: !(Maybe AcceleratorTypeAggregatedListItems)
-    , _atalSelfLink      :: !(Maybe Text)
-    , _atalWarning       :: !(Maybe AcceleratorTypeAggregatedListWarning)
-    , _atalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atalNextPageToken'
---
--- * 'atalKind'
---
--- * 'atalItems'
---
--- * 'atalSelfLink'
---
--- * 'atalWarning'
---
--- * 'atalId'
-acceleratorTypeAggregatedList
-    :: AcceleratorTypeAggregatedList
-acceleratorTypeAggregatedList =
-  AcceleratorTypeAggregatedList'
-    { _atalNextPageToken = Nothing
-    , _atalKind = "compute#acceleratorTypeAggregatedList"
-    , _atalItems = Nothing
-    , _atalSelfLink = Nothing
-    , _atalWarning = Nothing
-    , _atalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-atalNextPageToken :: Lens' AcceleratorTypeAggregatedList (Maybe Text)
-atalNextPageToken
-  = lens _atalNextPageToken
-      (\ s a -> s{_atalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always
--- compute#acceleratorTypeAggregatedList for aggregated lists of
--- accelerator types.
-atalKind :: Lens' AcceleratorTypeAggregatedList Text
-atalKind = lens _atalKind (\ s a -> s{_atalKind = a})
-
--- | A list of AcceleratorTypesScopedList resources.
-atalItems :: Lens' AcceleratorTypeAggregatedList (Maybe AcceleratorTypeAggregatedListItems)
-atalItems
-  = lens _atalItems (\ s a -> s{_atalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-atalSelfLink :: Lens' AcceleratorTypeAggregatedList (Maybe Text)
-atalSelfLink
-  = lens _atalSelfLink (\ s a -> s{_atalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-atalWarning :: Lens' AcceleratorTypeAggregatedList (Maybe AcceleratorTypeAggregatedListWarning)
-atalWarning
-  = lens _atalWarning (\ s a -> s{_atalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-atalId :: Lens' AcceleratorTypeAggregatedList (Maybe Text)
-atalId = lens _atalId (\ s a -> s{_atalId = a})
-
-instance FromJSON AcceleratorTypeAggregatedList where
-        parseJSON
-          = withObject "AcceleratorTypeAggregatedList"
-              (\ o ->
-                 AcceleratorTypeAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#acceleratorTypeAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AcceleratorTypeAggregatedList where
-        toJSON AcceleratorTypeAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _atalNextPageToken,
-                  Just ("kind" .= _atalKind),
-                  ("items" .=) <$> _atalItems,
-                  ("selfLink" .=) <$> _atalSelfLink,
-                  ("warning" .=) <$> _atalWarning,
-                  ("id" .=) <$> _atalId])
-
--- | A routing configuration attached to a network resource. The message
--- includes the list of routers associated with the network, and a flag
--- indicating the type of routing behavior to enforce network-wide.
---
--- /See:/ 'networkRoutingConfig' smart constructor.
-newtype NetworkRoutingConfig =
-  NetworkRoutingConfig'
-    { _nrcRoutingMode :: Maybe NetworkRoutingConfigRoutingMode
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkRoutingConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nrcRoutingMode'
-networkRoutingConfig
-    :: NetworkRoutingConfig
-networkRoutingConfig = NetworkRoutingConfig' {_nrcRoutingMode = Nothing}
-
-
--- | The network-wide routing mode to use. If set to REGIONAL, this
--- network\'s cloud routers will only advertise routes with subnets of this
--- network in the same region as the router. If set to GLOBAL, this
--- network\'s cloud routers will advertise routes with all subnets of this
--- network, across regions.
-nrcRoutingMode :: Lens' NetworkRoutingConfig (Maybe NetworkRoutingConfigRoutingMode)
-nrcRoutingMode
-  = lens _nrcRoutingMode
-      (\ s a -> s{_nrcRoutingMode = a})
-
-instance FromJSON NetworkRoutingConfig where
-        parseJSON
-          = withObject "NetworkRoutingConfig"
-              (\ o ->
-                 NetworkRoutingConfig' <$> (o .:? "routingMode"))
-
-instance ToJSON NetworkRoutingConfig where
-        toJSON NetworkRoutingConfig'{..}
-          = object
-              (catMaybes [("routingMode" .=) <$> _nrcRoutingMode])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeTemplateListWarning' smart constructor.
-data NodeTemplateListWarning =
-  NodeTemplateListWarning'
-    { _nodData    :: !(Maybe [NodeTemplateListWarningDataItem])
-    , _nodCode    :: !(Maybe NodeTemplateListWarningCode)
-    , _nodMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nodData'
---
--- * 'nodCode'
---
--- * 'nodMessage'
-nodeTemplateListWarning
-    :: NodeTemplateListWarning
-nodeTemplateListWarning =
-  NodeTemplateListWarning'
-    {_nodData = Nothing, _nodCode = Nothing, _nodMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-nodData :: Lens' NodeTemplateListWarning [NodeTemplateListWarningDataItem]
-nodData
-  = lens _nodData (\ s a -> s{_nodData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-nodCode :: Lens' NodeTemplateListWarning (Maybe NodeTemplateListWarningCode)
-nodCode = lens _nodCode (\ s a -> s{_nodCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-nodMessage :: Lens' NodeTemplateListWarning (Maybe Text)
-nodMessage
-  = lens _nodMessage (\ s a -> s{_nodMessage = a})
-
-instance FromJSON NodeTemplateListWarning where
-        parseJSON
-          = withObject "NodeTemplateListWarning"
-              (\ o ->
-                 NodeTemplateListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTemplateListWarning where
-        toJSON NodeTemplateListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _nodData, ("code" .=) <$> _nodCode,
-                  ("message" .=) <$> _nodMessage])
-
---
--- /See:/ 'instanceGroupManagersListManagedInstancesResponse' smart constructor.
-newtype InstanceGroupManagersListManagedInstancesResponse =
-  InstanceGroupManagersListManagedInstancesResponse'
-    { _igmlmirManagedInstances :: Maybe [ManagedInstance]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersListManagedInstancesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlmirManagedInstances'
-instanceGroupManagersListManagedInstancesResponse
-    :: InstanceGroupManagersListManagedInstancesResponse
-instanceGroupManagersListManagedInstancesResponse =
-  InstanceGroupManagersListManagedInstancesResponse'
-    {_igmlmirManagedInstances = Nothing}
-
-
--- | [Output Only] The list of instances in the managed instance group.
-igmlmirManagedInstances :: Lens' InstanceGroupManagersListManagedInstancesResponse [ManagedInstance]
-igmlmirManagedInstances
-  = lens _igmlmirManagedInstances
-      (\ s a -> s{_igmlmirManagedInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagersListManagedInstancesResponse
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersListManagedInstancesResponse"
-              (\ o ->
-                 InstanceGroupManagersListManagedInstancesResponse'
-                   <$> (o .:? "managedInstances" .!= mempty))
-
-instance ToJSON
-           InstanceGroupManagersListManagedInstancesResponse
-         where
-        toJSON
-          InstanceGroupManagersListManagedInstancesResponse'{..}
-          = object
-              (catMaybes
-                 [("managedInstances" .=) <$>
-                    _igmlmirManagedInstances])
-
--- |
---
--- /See:/ 'instanceProperties' smart constructor.
-data InstanceProperties =
-  InstanceProperties'
-    { _ipServiceAccounts        :: !(Maybe [ServiceAccount])
-    , _ipNetworkInterfaces      :: !(Maybe [NetworkInterface])
-    , _ipGuestAccelerators      :: !(Maybe [AcceleratorConfig])
-    , _ipMachineType            :: !(Maybe Text)
-    , _ipMetadata               :: !(Maybe Metadata)
-    , _ipShieldedInstanceConfig :: !(Maybe ShieldedInstanceConfig)
-    , _ipLabels                 :: !(Maybe InstancePropertiesLabels)
-    , _ipScheduling             :: !(Maybe Scheduling)
-    , _ipMinCPUPlatform         :: !(Maybe Text)
-    , _ipDisks                  :: !(Maybe [AttachedDisk])
-    , _ipCanIPForward           :: !(Maybe Bool)
-    , _ipDescription            :: !(Maybe Text)
-    , _ipTags                   :: !(Maybe Tags)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceProperties' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ipServiceAccounts'
---
--- * 'ipNetworkInterfaces'
---
--- * 'ipGuestAccelerators'
---
--- * 'ipMachineType'
---
--- * 'ipMetadata'
---
--- * 'ipShieldedInstanceConfig'
---
--- * 'ipLabels'
---
--- * 'ipScheduling'
---
--- * 'ipMinCPUPlatform'
---
--- * 'ipDisks'
---
--- * 'ipCanIPForward'
---
--- * 'ipDescription'
---
--- * 'ipTags'
-instanceProperties
-    :: InstanceProperties
-instanceProperties =
-  InstanceProperties'
-    { _ipServiceAccounts = Nothing
-    , _ipNetworkInterfaces = Nothing
-    , _ipGuestAccelerators = Nothing
-    , _ipMachineType = Nothing
-    , _ipMetadata = Nothing
-    , _ipShieldedInstanceConfig = Nothing
-    , _ipLabels = Nothing
-    , _ipScheduling = Nothing
-    , _ipMinCPUPlatform = Nothing
-    , _ipDisks = Nothing
-    , _ipCanIPForward = Nothing
-    , _ipDescription = Nothing
-    , _ipTags = Nothing
-    }
-
-
--- | A list of service accounts with specified scopes. Access tokens for
--- these service accounts are available to the instances that are created
--- from this template. Use metadata queries to obtain the access tokens for
--- these instances.
-ipServiceAccounts :: Lens' InstanceProperties [ServiceAccount]
-ipServiceAccounts
-  = lens _ipServiceAccounts
-      (\ s a -> s{_ipServiceAccounts = a})
-      . _Default
-      . _Coerce
-
--- | An array of network access configurations for this interface.
-ipNetworkInterfaces :: Lens' InstanceProperties [NetworkInterface]
-ipNetworkInterfaces
-  = lens _ipNetworkInterfaces
-      (\ s a -> s{_ipNetworkInterfaces = a})
-      . _Default
-      . _Coerce
-
--- | A list of guest accelerator cards\' type and count to use for instances
--- created from the instance template.
-ipGuestAccelerators :: Lens' InstanceProperties [AcceleratorConfig]
-ipGuestAccelerators
-  = lens _ipGuestAccelerators
-      (\ s a -> s{_ipGuestAccelerators = a})
-      . _Default
-      . _Coerce
-
--- | The machine type to use for instances that are created from this
--- template.
-ipMachineType :: Lens' InstanceProperties (Maybe Text)
-ipMachineType
-  = lens _ipMachineType
-      (\ s a -> s{_ipMachineType = a})
-
--- | The metadata key\/value pairs to assign to instances that are created
--- from this template. These pairs can consist of custom metadata or
--- predefined keys. See Project and instance metadata for more information.
-ipMetadata :: Lens' InstanceProperties (Maybe Metadata)
-ipMetadata
-  = lens _ipMetadata (\ s a -> s{_ipMetadata = a})
-
-ipShieldedInstanceConfig :: Lens' InstanceProperties (Maybe ShieldedInstanceConfig)
-ipShieldedInstanceConfig
-  = lens _ipShieldedInstanceConfig
-      (\ s a -> s{_ipShieldedInstanceConfig = a})
-
--- | Labels to apply to instances that are created from this template.
-ipLabels :: Lens' InstanceProperties (Maybe InstancePropertiesLabels)
-ipLabels = lens _ipLabels (\ s a -> s{_ipLabels = a})
-
--- | Specifies the scheduling options for the instances that are created from
--- this template.
-ipScheduling :: Lens' InstanceProperties (Maybe Scheduling)
-ipScheduling
-  = lens _ipScheduling (\ s a -> s{_ipScheduling = a})
-
--- | Minimum cpu\/platform to be used by this instance. The instance may be
--- scheduled on the specified or newer cpu\/platform. Applicable values are
--- the friendly names of CPU platforms, such as minCpuPlatform: \"Intel
--- Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\". For more
--- information, read Specifying a Minimum CPU Platform.
-ipMinCPUPlatform :: Lens' InstanceProperties (Maybe Text)
-ipMinCPUPlatform
-  = lens _ipMinCPUPlatform
-      (\ s a -> s{_ipMinCPUPlatform = a})
-
--- | An array of disks that are associated with the instances that are
--- created from this template.
-ipDisks :: Lens' InstanceProperties [AttachedDisk]
-ipDisks
-  = lens _ipDisks (\ s a -> s{_ipDisks = a}) . _Default
-      . _Coerce
-
--- | Enables instances created based on this template to send packets with
--- source IP addresses other than their own and receive packets with
--- destination IP addresses other than their own. If these instances will
--- be used as an IP gateway or it will be set as the next-hop in a Route
--- resource, specify true. If unsure, leave this set to false. See the
--- Enable IP forwarding documentation for more information.
-ipCanIPForward :: Lens' InstanceProperties (Maybe Bool)
-ipCanIPForward
-  = lens _ipCanIPForward
-      (\ s a -> s{_ipCanIPForward = a})
-
--- | An optional text description for the instances that are created from
--- this instance template.
-ipDescription :: Lens' InstanceProperties (Maybe Text)
-ipDescription
-  = lens _ipDescription
-      (\ s a -> s{_ipDescription = a})
-
--- | A list of tags to apply to the instances that are created from this
--- template. The tags identify valid sources or targets for network
--- firewalls. The setTags method can modify this list of tags. Each tag
--- within the list must comply with RFC1035.
-ipTags :: Lens' InstanceProperties (Maybe Tags)
-ipTags = lens _ipTags (\ s a -> s{_ipTags = a})
-
-instance FromJSON InstanceProperties where
-        parseJSON
-          = withObject "InstanceProperties"
-              (\ o ->
-                 InstanceProperties' <$>
-                   (o .:? "serviceAccounts" .!= mempty) <*>
-                     (o .:? "networkInterfaces" .!= mempty)
-                     <*> (o .:? "guestAccelerators" .!= mempty)
-                     <*> (o .:? "machineType")
-                     <*> (o .:? "metadata")
-                     <*> (o .:? "shieldedInstanceConfig")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "scheduling")
-                     <*> (o .:? "minCpuPlatform")
-                     <*> (o .:? "disks" .!= mempty)
-                     <*> (o .:? "canIpForward")
-                     <*> (o .:? "description")
-                     <*> (o .:? "tags"))
-
-instance ToJSON InstanceProperties where
-        toJSON InstanceProperties'{..}
-          = object
-              (catMaybes
-                 [("serviceAccounts" .=) <$> _ipServiceAccounts,
-                  ("networkInterfaces" .=) <$> _ipNetworkInterfaces,
-                  ("guestAccelerators" .=) <$> _ipGuestAccelerators,
-                  ("machineType" .=) <$> _ipMachineType,
-                  ("metadata" .=) <$> _ipMetadata,
-                  ("shieldedInstanceConfig" .=) <$>
-                    _ipShieldedInstanceConfig,
-                  ("labels" .=) <$> _ipLabels,
-                  ("scheduling" .=) <$> _ipScheduling,
-                  ("minCpuPlatform" .=) <$> _ipMinCPUPlatform,
-                  ("disks" .=) <$> _ipDisks,
-                  ("canIpForward" .=) <$> _ipCanIPForward,
-                  ("description" .=) <$> _ipDescription,
-                  ("tags" .=) <$> _ipTags])
-
---
--- /See:/ 'projectsListXpnHostsRequest' smart constructor.
-newtype ProjectsListXpnHostsRequest =
-  ProjectsListXpnHostsRequest'
-    { _plxhrOrganization :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsListXpnHostsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plxhrOrganization'
-projectsListXpnHostsRequest
-    :: ProjectsListXpnHostsRequest
-projectsListXpnHostsRequest =
-  ProjectsListXpnHostsRequest' {_plxhrOrganization = Nothing}
-
-
--- | Optional organization ID managed by Cloud Resource Manager, for which to
--- list shared VPC host projects. If not specified, the organization will
--- be inferred from the project.
-plxhrOrganization :: Lens' ProjectsListXpnHostsRequest (Maybe Text)
-plxhrOrganization
-  = lens _plxhrOrganization
-      (\ s a -> s{_plxhrOrganization = a})
-
-instance FromJSON ProjectsListXpnHostsRequest where
-        parseJSON
-          = withObject "ProjectsListXpnHostsRequest"
-              (\ o ->
-                 ProjectsListXpnHostsRequest' <$>
-                   (o .:? "organization"))
-
-instance ToJSON ProjectsListXpnHostsRequest where
-        toJSON ProjectsListXpnHostsRequest'{..}
-          = object
-              (catMaybes
-                 [("organization" .=) <$> _plxhrOrganization])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionListWarning' smart constructor.
-data RegionListWarning =
-  RegionListWarning'
-    { _rlwData    :: !(Maybe [RegionListWarningDataItem])
-    , _rlwCode    :: !(Maybe RegionListWarningCode)
-    , _rlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlwData'
---
--- * 'rlwCode'
---
--- * 'rlwMessage'
-regionListWarning
-    :: RegionListWarning
-regionListWarning =
-  RegionListWarning'
-    {_rlwData = Nothing, _rlwCode = Nothing, _rlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rlwData :: Lens' RegionListWarning [RegionListWarningDataItem]
-rlwData
-  = lens _rlwData (\ s a -> s{_rlwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rlwCode :: Lens' RegionListWarning (Maybe RegionListWarningCode)
-rlwCode = lens _rlwCode (\ s a -> s{_rlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rlwMessage :: Lens' RegionListWarning (Maybe Text)
-rlwMessage
-  = lens _rlwMessage (\ s a -> s{_rlwMessage = a})
-
-instance FromJSON RegionListWarning where
-        parseJSON
-          = withObject "RegionListWarning"
-              (\ o ->
-                 RegionListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RegionListWarning where
-        toJSON RegionListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rlwData, ("code" .=) <$> _rlwCode,
-                  ("message" .=) <$> _rlwMessage])
-
---
--- /See:/ 'hTTP2HealthCheck' smart constructor.
-data HTTP2HealthCheck =
-  HTTP2HealthCheck'
-    { _httphcResponse          :: !(Maybe Text)
-    , _httphcPortSpecification :: !(Maybe HTTP2HealthCheckPortSpecification)
-    , _httphcRequestPath       :: !(Maybe Text)
-    , _httphcHost              :: !(Maybe Text)
-    , _httphcProxyHeader       :: !(Maybe HTTP2HealthCheckProxyHeader)
-    , _httphcPortName          :: !(Maybe Text)
-    , _httphcPort              :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTP2HealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphcResponse'
---
--- * 'httphcPortSpecification'
---
--- * 'httphcRequestPath'
---
--- * 'httphcHost'
---
--- * 'httphcProxyHeader'
---
--- * 'httphcPortName'
---
--- * 'httphcPort'
-hTTP2HealthCheck
-    :: HTTP2HealthCheck
-hTTP2HealthCheck =
-  HTTP2HealthCheck'
-    { _httphcResponse = Nothing
-    , _httphcPortSpecification = Nothing
-    , _httphcRequestPath = Nothing
-    , _httphcHost = Nothing
-    , _httphcProxyHeader = Nothing
-    , _httphcPortName = Nothing
-    , _httphcPort = Nothing
-    }
-
-
--- | The string to match anywhere in the first 1024 bytes of the response
--- body. If left empty (the default value), the status code determines
--- health. The response data can only be ASCII.
-httphcResponse :: Lens' HTTP2HealthCheck (Maybe Text)
-httphcResponse
-  = lens _httphcResponse
-      (\ s a -> s{_httphcResponse = a})
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTP2 health check follows
--- behavior specified in port and portName fields.
-httphcPortSpecification :: Lens' HTTP2HealthCheck (Maybe HTTP2HealthCheckPortSpecification)
-httphcPortSpecification
-  = lens _httphcPortSpecification
-      (\ s a -> s{_httphcPortSpecification = a})
-
--- | The request path of the HTTP\/2 health check request. The default value
--- is \/.
-httphcRequestPath :: Lens' HTTP2HealthCheck (Maybe Text)
-httphcRequestPath
-  = lens _httphcRequestPath
-      (\ s a -> s{_httphcRequestPath = a})
-
--- | The value of the host header in the HTTP\/2 health check request. If
--- left empty (default value), the IP on behalf of which this health check
--- is performed will be used.
-httphcHost :: Lens' HTTP2HealthCheck (Maybe Text)
-httphcHost
-  = lens _httphcHost (\ s a -> s{_httphcHost = a})
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-httphcProxyHeader :: Lens' HTTP2HealthCheck (Maybe HTTP2HealthCheckProxyHeader)
-httphcProxyHeader
-  = lens _httphcProxyHeader
-      (\ s a -> s{_httphcProxyHeader = a})
-
--- | Port name as defined in InstanceGroup#NamedPort#name. If both port and
--- port_name are defined, port takes precedence.
-httphcPortName :: Lens' HTTP2HealthCheck (Maybe Text)
-httphcPortName
-  = lens _httphcPortName
-      (\ s a -> s{_httphcPortName = a})
-
--- | The TCP port number for the health check request. The default value is
--- 443. Valid values are 1 through 65535.
-httphcPort :: Lens' HTTP2HealthCheck (Maybe Int32)
-httphcPort
-  = lens _httphcPort (\ s a -> s{_httphcPort = a}) .
-      mapping _Coerce
-
-instance FromJSON HTTP2HealthCheck where
-        parseJSON
-          = withObject "HTTP2HealthCheck"
-              (\ o ->
-                 HTTP2HealthCheck' <$>
-                   (o .:? "response") <*> (o .:? "portSpecification")
-                     <*> (o .:? "requestPath")
-                     <*> (o .:? "host")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "port"))
-
-instance ToJSON HTTP2HealthCheck where
-        toJSON HTTP2HealthCheck'{..}
-          = object
-              (catMaybes
-                 [("response" .=) <$> _httphcResponse,
-                  ("portSpecification" .=) <$>
-                    _httphcPortSpecification,
-                  ("requestPath" .=) <$> _httphcRequestPath,
-                  ("host" .=) <$> _httphcHost,
-                  ("proxyHeader" .=) <$> _httphcProxyHeader,
-                  ("portName" .=) <$> _httphcPortName,
-                  ("port" .=) <$> _httphcPort])
-
---
--- /See:/ 'nodeGroupsScopedList' smart constructor.
-data NodeGroupsScopedList =
-  NodeGroupsScopedList'
-    { _ngslNodeGroups :: !(Maybe [NodeGroup])
-    , _ngslWarning    :: !(Maybe NodeGroupsScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngslNodeGroups'
---
--- * 'ngslWarning'
-nodeGroupsScopedList
-    :: NodeGroupsScopedList
-nodeGroupsScopedList =
-  NodeGroupsScopedList' {_ngslNodeGroups = Nothing, _ngslWarning = Nothing}
-
-
--- | [Output Only] A list of node groups contained in this scope.
-ngslNodeGroups :: Lens' NodeGroupsScopedList [NodeGroup]
-ngslNodeGroups
-  = lens _ngslNodeGroups
-      (\ s a -> s{_ngslNodeGroups = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that appears when the nodeGroup
--- list is empty.
-ngslWarning :: Lens' NodeGroupsScopedList (Maybe NodeGroupsScopedListWarning)
-ngslWarning
-  = lens _ngslWarning (\ s a -> s{_ngslWarning = a})
-
-instance FromJSON NodeGroupsScopedList where
-        parseJSON
-          = withObject "NodeGroupsScopedList"
-              (\ o ->
-                 NodeGroupsScopedList' <$>
-                   (o .:? "nodeGroups" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON NodeGroupsScopedList where
-        toJSON NodeGroupsScopedList'{..}
-          = object
-              (catMaybes
-                 [("nodeGroups" .=) <$> _ngslNodeGroups,
-                  ("warning" .=) <$> _ngslWarning])
-
--- | [Output Only] Informational warning which replaces the list of disk
--- types when the list is empty.
---
--- /See:/ 'diskTypesScopedListWarning' smart constructor.
-data DiskTypesScopedListWarning =
-  DiskTypesScopedListWarning'
-    { _dtslwData    :: !(Maybe [DiskTypesScopedListWarningDataItem])
-    , _dtslwCode    :: !(Maybe DiskTypesScopedListWarningCode)
-    , _dtslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtslwData'
---
--- * 'dtslwCode'
---
--- * 'dtslwMessage'
-diskTypesScopedListWarning
-    :: DiskTypesScopedListWarning
-diskTypesScopedListWarning =
-  DiskTypesScopedListWarning'
-    {_dtslwData = Nothing, _dtslwCode = Nothing, _dtslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dtslwData :: Lens' DiskTypesScopedListWarning [DiskTypesScopedListWarningDataItem]
-dtslwData
-  = lens _dtslwData (\ s a -> s{_dtslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dtslwCode :: Lens' DiskTypesScopedListWarning (Maybe DiskTypesScopedListWarningCode)
-dtslwCode
-  = lens _dtslwCode (\ s a -> s{_dtslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dtslwMessage :: Lens' DiskTypesScopedListWarning (Maybe Text)
-dtslwMessage
-  = lens _dtslwMessage (\ s a -> s{_dtslwMessage = a})
-
-instance FromJSON DiskTypesScopedListWarning where
-        parseJSON
-          = withObject "DiskTypesScopedListWarning"
-              (\ o ->
-                 DiskTypesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DiskTypesScopedListWarning where
-        toJSON DiskTypesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dtslwData,
-                  ("code" .=) <$> _dtslwCode,
-                  ("message" .=) <$> _dtslwMessage])
-
---
--- /See:/ 'regionInstanceGroupManagerListWarningDataItem' smart constructor.
-data RegionInstanceGroupManagerListWarningDataItem =
-  RegionInstanceGroupManagerListWarningDataItem'
-    { _rigmlwdiValue :: !(Maybe Text)
-    , _rigmlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagerListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlwdiValue'
---
--- * 'rigmlwdiKey'
-regionInstanceGroupManagerListWarningDataItem
-    :: RegionInstanceGroupManagerListWarningDataItem
-regionInstanceGroupManagerListWarningDataItem =
-  RegionInstanceGroupManagerListWarningDataItem'
-    {_rigmlwdiValue = Nothing, _rigmlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rigmlwdiValue :: Lens' RegionInstanceGroupManagerListWarningDataItem (Maybe Text)
-rigmlwdiValue
-  = lens _rigmlwdiValue
-      (\ s a -> s{_rigmlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rigmlwdiKey :: Lens' RegionInstanceGroupManagerListWarningDataItem (Maybe Text)
-rigmlwdiKey
-  = lens _rigmlwdiKey (\ s a -> s{_rigmlwdiKey = a})
-
-instance FromJSON
-           RegionInstanceGroupManagerListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagerListWarningDataItem"
-              (\ o ->
-                 RegionInstanceGroupManagerListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           RegionInstanceGroupManagerListWarningDataItem
-         where
-        toJSON
-          RegionInstanceGroupManagerListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rigmlwdiValue,
-                  ("key" .=) <$> _rigmlwdiKey])
-
--- | [Input Only] Specifies the parameters for a new disk that will be
--- created alongside the new instance. Use initialization parameters to
--- create boot disks or local SSDs attached to the new instance. This
--- property is mutually exclusive with the source property; you can only
--- define one or the other, but not both.
---
--- /See:/ 'attachedDiskInitializeParams' smart constructor.
-data AttachedDiskInitializeParams =
-  AttachedDiskInitializeParams'
-    { _adipSourceImage              :: !(Maybe Text)
-    , _adipDiskSizeGb               :: !(Maybe (Textual Int64))
-    , _adipDiskName                 :: !(Maybe Text)
-    , _adipSourceImageEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _adipDiskType                 :: !(Maybe Text)
-    , _adipLabels                   :: !(Maybe AttachedDiskInitializeParamsLabels)
-    , _adipDescription              :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AttachedDiskInitializeParams' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adipSourceImage'
---
--- * 'adipDiskSizeGb'
---
--- * 'adipDiskName'
---
--- * 'adipSourceImageEncryptionKey'
---
--- * 'adipDiskType'
---
--- * 'adipLabels'
---
--- * 'adipDescription'
-attachedDiskInitializeParams
-    :: AttachedDiskInitializeParams
-attachedDiskInitializeParams =
-  AttachedDiskInitializeParams'
-    { _adipSourceImage = Nothing
-    , _adipDiskSizeGb = Nothing
-    , _adipDiskName = Nothing
-    , _adipSourceImageEncryptionKey = Nothing
-    , _adipDiskType = Nothing
-    , _adipLabels = Nothing
-    , _adipDescription = Nothing
-    }
-
-
--- | The source image to create this disk. When creating a new instance, one
--- of initializeParams.sourceImage or disks.source is required except for
--- local SSD. To create a disk with one of the public operating system
--- images, specify the image by its family name. For example, specify
--- family\/debian-9 to use the latest Debian 9 image:
--- projects\/debian-cloud\/global\/images\/family\/debian-9 Alternatively,
--- use a specific version of a public operating system image:
--- projects\/debian-cloud\/global\/images\/debian-9-stretch-vYYYYMMDD To
--- create a disk with a custom image that you created, specify the image
--- name in the following format: global\/images\/my-custom-image You can
--- also specify a custom image by its image family, which returns the
--- latest version of the image in that family. Replace the image name with
--- family\/family-name: global\/images\/family\/my-image-family If the
--- source image is deleted later, this field will not be set.
-adipSourceImage :: Lens' AttachedDiskInitializeParams (Maybe Text)
-adipSourceImage
-  = lens _adipSourceImage
-      (\ s a -> s{_adipSourceImage = a})
-
--- | Specifies the size of the disk in base-2 GB.
-adipDiskSizeGb :: Lens' AttachedDiskInitializeParams (Maybe Int64)
-adipDiskSizeGb
-  = lens _adipDiskSizeGb
-      (\ s a -> s{_adipDiskSizeGb = a})
-      . mapping _Coerce
-
--- | Specifies the disk name. If not specified, the default is to use the
--- name of the instance. If the disk with the instance name exists already
--- in the given zone\/region, a new name will be automatically generated.
-adipDiskName :: Lens' AttachedDiskInitializeParams (Maybe Text)
-adipDiskName
-  = lens _adipDiskName (\ s a -> s{_adipDiskName = a})
-
--- | The customer-supplied encryption key of the source image. Required if
--- the source image is protected by a customer-supplied encryption key.
--- Instance templates do not store customer-supplied encryption keys, so
--- you cannot create disks for instances in a managed instance group if the
--- source images are encrypted with your own keys.
-adipSourceImageEncryptionKey :: Lens' AttachedDiskInitializeParams (Maybe CustomerEncryptionKey)
-adipSourceImageEncryptionKey
-  = lens _adipSourceImageEncryptionKey
-      (\ s a -> s{_adipSourceImageEncryptionKey = a})
-
--- | Specifies the disk type to use to create the instance. If not specified,
--- the default is pd-standard, specified using the full URL. For example:
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/diskTypes\/pd-standard
--- Other values include pd-ssd and local-ssd. If you define this field, you
--- can provide either the full or partial URL. For example, the following
--- are valid values: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/diskTypes\/diskType
--- - projects\/project\/zones\/zone\/diskTypes\/diskType -
--- zones\/zone\/diskTypes\/diskType Note that for InstanceTemplate, this is
--- the name of the disk type, not URL.
-adipDiskType :: Lens' AttachedDiskInitializeParams (Maybe Text)
-adipDiskType
-  = lens _adipDiskType (\ s a -> s{_adipDiskType = a})
-
--- | Labels to apply to this disk. These can be later modified by the
--- disks.setLabels method. This field is only applicable for persistent
--- disks.
-adipLabels :: Lens' AttachedDiskInitializeParams (Maybe AttachedDiskInitializeParamsLabels)
-adipLabels
-  = lens _adipLabels (\ s a -> s{_adipLabels = a})
-
--- | An optional description. Provide this property when creating the disk.
-adipDescription :: Lens' AttachedDiskInitializeParams (Maybe Text)
-adipDescription
-  = lens _adipDescription
-      (\ s a -> s{_adipDescription = a})
-
-instance FromJSON AttachedDiskInitializeParams where
-        parseJSON
-          = withObject "AttachedDiskInitializeParams"
-              (\ o ->
-                 AttachedDiskInitializeParams' <$>
-                   (o .:? "sourceImage") <*> (o .:? "diskSizeGb") <*>
-                     (o .:? "diskName")
-                     <*> (o .:? "sourceImageEncryptionKey")
-                     <*> (o .:? "diskType")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "description"))
-
-instance ToJSON AttachedDiskInitializeParams where
-        toJSON AttachedDiskInitializeParams'{..}
-          = object
-              (catMaybes
-                 [("sourceImage" .=) <$> _adipSourceImage,
-                  ("diskSizeGb" .=) <$> _adipDiskSizeGb,
-                  ("diskName" .=) <$> _adipDiskName,
-                  ("sourceImageEncryptionKey" .=) <$>
-                    _adipSourceImageEncryptionKey,
-                  ("diskType" .=) <$> _adipDiskType,
-                  ("labels" .=) <$> _adipLabels,
-                  ("description" .=) <$> _adipDescription])
-
--- | Secondary IP range of a usable subnetwork.
---
--- /See:/ 'usableSubnetworkSecondaryRange' smart constructor.
-data UsableSubnetworkSecondaryRange =
-  UsableSubnetworkSecondaryRange'
-    { _ussrRangeName   :: !(Maybe Text)
-    , _ussrIPCIdRRange :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsableSubnetworkSecondaryRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ussrRangeName'
---
--- * 'ussrIPCIdRRange'
-usableSubnetworkSecondaryRange
-    :: UsableSubnetworkSecondaryRange
-usableSubnetworkSecondaryRange =
-  UsableSubnetworkSecondaryRange'
-    {_ussrRangeName = Nothing, _ussrIPCIdRRange = Nothing}
-
-
--- | The name associated with this subnetwork secondary range, used when
--- adding an alias IP range to a VM instance. The name must be 1-63
--- characters long, and comply with RFC1035. The name must be unique within
--- the subnetwork.
-ussrRangeName :: Lens' UsableSubnetworkSecondaryRange (Maybe Text)
-ussrRangeName
-  = lens _ussrRangeName
-      (\ s a -> s{_ussrRangeName = a})
-
--- | The range of IP addresses belonging to this subnetwork secondary range.
-ussrIPCIdRRange :: Lens' UsableSubnetworkSecondaryRange (Maybe Text)
-ussrIPCIdRRange
-  = lens _ussrIPCIdRRange
-      (\ s a -> s{_ussrIPCIdRRange = a})
-
-instance FromJSON UsableSubnetworkSecondaryRange
-         where
-        parseJSON
-          = withObject "UsableSubnetworkSecondaryRange"
-              (\ o ->
-                 UsableSubnetworkSecondaryRange' <$>
-                   (o .:? "rangeName") <*> (o .:? "ipCidrRange"))
-
-instance ToJSON UsableSubnetworkSecondaryRange where
-        toJSON UsableSubnetworkSecondaryRange'{..}
-          = object
-              (catMaybes
-                 [("rangeName" .=) <$> _ussrRangeName,
-                  ("ipCidrRange" .=) <$> _ussrIPCIdRRange])
-
---
--- /See:/ 'networkEndpointGroupsAttachEndpointsRequest' smart constructor.
-newtype NetworkEndpointGroupsAttachEndpointsRequest =
-  NetworkEndpointGroupsAttachEndpointsRequest'
-    { _negaerNetworkEndpoints :: Maybe [NetworkEndpoint]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsAttachEndpointsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negaerNetworkEndpoints'
-networkEndpointGroupsAttachEndpointsRequest
-    :: NetworkEndpointGroupsAttachEndpointsRequest
-networkEndpointGroupsAttachEndpointsRequest =
-  NetworkEndpointGroupsAttachEndpointsRequest'
-    {_negaerNetworkEndpoints = Nothing}
-
-
--- | The list of network endpoints to be attached.
-negaerNetworkEndpoints :: Lens' NetworkEndpointGroupsAttachEndpointsRequest [NetworkEndpoint]
-negaerNetworkEndpoints
-  = lens _negaerNetworkEndpoints
-      (\ s a -> s{_negaerNetworkEndpoints = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           NetworkEndpointGroupsAttachEndpointsRequest
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsAttachEndpointsRequest"
-              (\ o ->
-                 NetworkEndpointGroupsAttachEndpointsRequest' <$>
-                   (o .:? "networkEndpoints" .!= mempty))
-
-instance ToJSON
-           NetworkEndpointGroupsAttachEndpointsRequest
-         where
-        toJSON
-          NetworkEndpointGroupsAttachEndpointsRequest'{..}
-          = object
-              (catMaybes
-                 [("networkEndpoints" .=) <$>
-                    _negaerNetworkEndpoints])
-
---
--- /See:/ 'addressesScopedListWarningDataItem' smart constructor.
-data AddressesScopedListWarningDataItem =
-  AddressesScopedListWarningDataItem'
-    { _aslwdiValue :: !(Maybe Text)
-    , _aslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aslwdiValue'
---
--- * 'aslwdiKey'
-addressesScopedListWarningDataItem
-    :: AddressesScopedListWarningDataItem
-addressesScopedListWarningDataItem =
-  AddressesScopedListWarningDataItem'
-    {_aslwdiValue = Nothing, _aslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-aslwdiValue :: Lens' AddressesScopedListWarningDataItem (Maybe Text)
-aslwdiValue
-  = lens _aslwdiValue (\ s a -> s{_aslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-aslwdiKey :: Lens' AddressesScopedListWarningDataItem (Maybe Text)
-aslwdiKey
-  = lens _aslwdiKey (\ s a -> s{_aslwdiKey = a})
-
-instance FromJSON AddressesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "AddressesScopedListWarningDataItem"
-              (\ o ->
-                 AddressesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AddressesScopedListWarningDataItem
-         where
-        toJSON AddressesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _aslwdiValue,
-                  ("key" .=) <$> _aslwdiKey])
-
---
--- /See:/ 'instanceGroupListWarningDataItem' smart constructor.
-data InstanceGroupListWarningDataItem =
-  InstanceGroupListWarningDataItem'
-    { _iglwdiValue :: !(Maybe Text)
-    , _iglwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iglwdiValue'
---
--- * 'iglwdiKey'
-instanceGroupListWarningDataItem
-    :: InstanceGroupListWarningDataItem
-instanceGroupListWarningDataItem =
-  InstanceGroupListWarningDataItem'
-    {_iglwdiValue = Nothing, _iglwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-iglwdiValue :: Lens' InstanceGroupListWarningDataItem (Maybe Text)
-iglwdiValue
-  = lens _iglwdiValue (\ s a -> s{_iglwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-iglwdiKey :: Lens' InstanceGroupListWarningDataItem (Maybe Text)
-iglwdiKey
-  = lens _iglwdiKey (\ s a -> s{_iglwdiKey = a})
-
-instance FromJSON InstanceGroupListWarningDataItem
-         where
-        parseJSON
-          = withObject "InstanceGroupListWarningDataItem"
-              (\ o ->
-                 InstanceGroupListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstanceGroupListWarningDataItem
-         where
-        toJSON InstanceGroupListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _iglwdiValue,
-                  ("key" .=) <$> _iglwdiKey])
-
--- | A network interface resource attached to an instance.
---
--- /See:/ 'networkInterface' smart constructor.
-data NetworkInterface =
-  NetworkInterface'
-    { _niKind          :: !Text
-    , _niFingerprint   :: !(Maybe Bytes)
-    , _niAliasIPRanges :: !(Maybe [AliasIPRange])
-    , _niNetwork       :: !(Maybe Text)
-    , _niName          :: !(Maybe Text)
-    , _niNetworkIP     :: !(Maybe Text)
-    , _niSubnetwork    :: !(Maybe Text)
-    , _niAccessConfigs :: !(Maybe [AccessConfig])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkInterface' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'niKind'
---
--- * 'niFingerprint'
---
--- * 'niAliasIPRanges'
---
--- * 'niNetwork'
---
--- * 'niName'
---
--- * 'niNetworkIP'
---
--- * 'niSubnetwork'
---
--- * 'niAccessConfigs'
-networkInterface
-    :: NetworkInterface
-networkInterface =
-  NetworkInterface'
-    { _niKind = "compute#networkInterface"
-    , _niFingerprint = Nothing
-    , _niAliasIPRanges = Nothing
-    , _niNetwork = Nothing
-    , _niName = Nothing
-    , _niNetworkIP = Nothing
-    , _niSubnetwork = Nothing
-    , _niAccessConfigs = Nothing
-    }
-
-
--- | [Output Only] Type of the resource. Always compute#networkInterface for
--- network interfaces.
-niKind :: Lens' NetworkInterface Text
-niKind = lens _niKind (\ s a -> s{_niKind = a})
-
--- | Fingerprint hash of contents stored in this network interface. This
--- field will be ignored when inserting an Instance or adding a
--- NetworkInterface. An up-to-date fingerprint must be provided in order to
--- update the NetworkInterface, otherwise the request will fail with error
--- 412 conditionNotMet.
-niFingerprint :: Lens' NetworkInterface (Maybe ByteString)
-niFingerprint
-  = lens _niFingerprint
-      (\ s a -> s{_niFingerprint = a})
-      . mapping _Bytes
-
--- | An array of alias IP ranges for this network interface. Can only be
--- specified for network interfaces on subnet-mode networks.
-niAliasIPRanges :: Lens' NetworkInterface [AliasIPRange]
-niAliasIPRanges
-  = lens _niAliasIPRanges
-      (\ s a -> s{_niAliasIPRanges = a})
-      . _Default
-      . _Coerce
-
--- | URL of the network resource for this instance. When creating an
--- instance, if neither the network nor the subnetwork is specified, the
--- default network global\/networks\/default is used; if the network is not
--- specified but the subnetwork is specified, the network is inferred. This
--- field is optional when creating a firewall rule. If not specified when
--- creating a firewall rule, the default network global\/networks\/default
--- is used. If you specify this property, you can specify the network as a
--- full or partial URL. For example, the following are all valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/networks\/network
--- - projects\/project\/global\/networks\/network -
--- global\/networks\/default
-niNetwork :: Lens' NetworkInterface (Maybe Text)
-niNetwork
-  = lens _niNetwork (\ s a -> s{_niNetwork = a})
-
--- | [Output Only] The name of the network interface, generated by the
--- server. For network devices, these are eth0, eth1, etc.
-niName :: Lens' NetworkInterface (Maybe Text)
-niName = lens _niName (\ s a -> s{_niName = a})
-
--- | An IPv4 internal network address to assign to the instance for this
--- network interface. If not specified by the user, an unused internal IP
--- is assigned by the system.
-niNetworkIP :: Lens' NetworkInterface (Maybe Text)
-niNetworkIP
-  = lens _niNetworkIP (\ s a -> s{_niNetworkIP = a})
-
--- | The URL of the Subnetwork resource for this instance. If the network
--- resource is in legacy mode, do not provide this property. If the network
--- is in auto subnet mode, providing the subnetwork is optional. If the
--- network is in custom subnet mode, then this field should be specified.
--- If you specify this property, you can specify the subnetwork as a full
--- or partial URL. For example, the following are all valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/regions\/region\/subnetworks\/subnetwork
--- - regions\/region\/subnetworks\/subnetwork
-niSubnetwork :: Lens' NetworkInterface (Maybe Text)
-niSubnetwork
-  = lens _niSubnetwork (\ s a -> s{_niSubnetwork = a})
-
--- | An array of configurations for this interface. Currently, only one
--- access config, ONE_TO_ONE_NAT, is supported. If there are no
--- accessConfigs specified, then this instance will have no external
--- internet access.
-niAccessConfigs :: Lens' NetworkInterface [AccessConfig]
-niAccessConfigs
-  = lens _niAccessConfigs
-      (\ s a -> s{_niAccessConfigs = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON NetworkInterface where
-        parseJSON
-          = withObject "NetworkInterface"
-              (\ o ->
-                 NetworkInterface' <$>
-                   (o .:? "kind" .!= "compute#networkInterface") <*>
-                     (o .:? "fingerprint")
-                     <*> (o .:? "aliasIpRanges" .!= mempty)
-                     <*> (o .:? "network")
-                     <*> (o .:? "name")
-                     <*> (o .:? "networkIP")
-                     <*> (o .:? "subnetwork")
-                     <*> (o .:? "accessConfigs" .!= mempty))
-
-instance ToJSON NetworkInterface where
-        toJSON NetworkInterface'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _niKind),
-                  ("fingerprint" .=) <$> _niFingerprint,
-                  ("aliasIpRanges" .=) <$> _niAliasIPRanges,
-                  ("network" .=) <$> _niNetwork,
-                  ("name" .=) <$> _niName,
-                  ("networkIP" .=) <$> _niNetworkIP,
-                  ("subnetwork" .=) <$> _niSubnetwork,
-                  ("accessConfigs" .=) <$> _niAccessConfigs])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'routerListWarning' smart constructor.
-data RouterListWarning =
-  RouterListWarning'
-    { _rData    :: !(Maybe [RouterListWarningDataItem])
-    , _rCode    :: !(Maybe RouterListWarningCode)
-    , _rMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rData'
---
--- * 'rCode'
---
--- * 'rMessage'
-routerListWarning
-    :: RouterListWarning
-routerListWarning =
-  RouterListWarning' {_rData = Nothing, _rCode = Nothing, _rMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rData :: Lens' RouterListWarning [RouterListWarningDataItem]
-rData
-  = lens _rData (\ s a -> s{_rData = a}) . _Default .
-      _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rCode :: Lens' RouterListWarning (Maybe RouterListWarningCode)
-rCode = lens _rCode (\ s a -> s{_rCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rMessage :: Lens' RouterListWarning (Maybe Text)
-rMessage = lens _rMessage (\ s a -> s{_rMessage = a})
-
-instance FromJSON RouterListWarning where
-        parseJSON
-          = withObject "RouterListWarning"
-              (\ o ->
-                 RouterListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RouterListWarning where
-        toJSON RouterListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rData, ("code" .=) <$> _rCode,
-                  ("message" .=) <$> _rMessage])
-
---
--- /See:/ 'firewallListWarningDataItem' smart constructor.
-data FirewallListWarningDataItem =
-  FirewallListWarningDataItem'
-    { _flwdiValue :: !(Maybe Text)
-    , _flwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flwdiValue'
---
--- * 'flwdiKey'
-firewallListWarningDataItem
-    :: FirewallListWarningDataItem
-firewallListWarningDataItem =
-  FirewallListWarningDataItem' {_flwdiValue = Nothing, _flwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-flwdiValue :: Lens' FirewallListWarningDataItem (Maybe Text)
-flwdiValue
-  = lens _flwdiValue (\ s a -> s{_flwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-flwdiKey :: Lens' FirewallListWarningDataItem (Maybe Text)
-flwdiKey = lens _flwdiKey (\ s a -> s{_flwdiKey = a})
-
-instance FromJSON FirewallListWarningDataItem where
-        parseJSON
-          = withObject "FirewallListWarningDataItem"
-              (\ o ->
-                 FirewallListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON FirewallListWarningDataItem where
-        toJSON FirewallListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _flwdiValue,
-                  ("key" .=) <$> _flwdiKey])
-
---
--- /See:/ 'targetPoolsRemoveHealthCheckRequest' smart constructor.
-newtype TargetPoolsRemoveHealthCheckRequest =
-  TargetPoolsRemoveHealthCheckRequest'
-    { _tprhcrHealthChecks :: Maybe [HealthCheckReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsRemoveHealthCheckRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tprhcrHealthChecks'
-targetPoolsRemoveHealthCheckRequest
-    :: TargetPoolsRemoveHealthCheckRequest
-targetPoolsRemoveHealthCheckRequest =
-  TargetPoolsRemoveHealthCheckRequest' {_tprhcrHealthChecks = Nothing}
-
-
--- | Health check URL to be removed. This can be a full or valid partial URL.
--- For example, the following are valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/beta\/projects\/project\/global\/httpHealthChecks\/health-check
--- - projects\/project\/global\/httpHealthChecks\/health-check -
--- global\/httpHealthChecks\/health-check
-tprhcrHealthChecks :: Lens' TargetPoolsRemoveHealthCheckRequest [HealthCheckReference]
-tprhcrHealthChecks
-  = lens _tprhcrHealthChecks
-      (\ s a -> s{_tprhcrHealthChecks = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolsRemoveHealthCheckRequest
-         where
-        parseJSON
-          = withObject "TargetPoolsRemoveHealthCheckRequest"
-              (\ o ->
-                 TargetPoolsRemoveHealthCheckRequest' <$>
-                   (o .:? "healthChecks" .!= mempty))
-
-instance ToJSON TargetPoolsRemoveHealthCheckRequest
-         where
-        toJSON TargetPoolsRemoveHealthCheckRequest'{..}
-          = object
-              (catMaybes
-                 [("healthChecks" .=) <$> _tprhcrHealthChecks])
-
---
--- /See:/ 'regionInstanceGroupManagersSetTargetPoolsRequest' smart constructor.
-data RegionInstanceGroupManagersSetTargetPoolsRequest =
-  RegionInstanceGroupManagersSetTargetPoolsRequest'
-    { _rigmstprFingerprint :: !(Maybe Bytes)
-    , _rigmstprTargetPools :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersSetTargetPoolsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmstprFingerprint'
---
--- * 'rigmstprTargetPools'
-regionInstanceGroupManagersSetTargetPoolsRequest
-    :: RegionInstanceGroupManagersSetTargetPoolsRequest
-regionInstanceGroupManagersSetTargetPoolsRequest =
-  RegionInstanceGroupManagersSetTargetPoolsRequest'
-    {_rigmstprFingerprint = Nothing, _rigmstprTargetPools = Nothing}
-
-
--- | Fingerprint of the target pools information, which is a hash of the
--- contents. This field is used for optimistic locking when you update the
--- target pool entries. This field is optional.
-rigmstprFingerprint :: Lens' RegionInstanceGroupManagersSetTargetPoolsRequest (Maybe ByteString)
-rigmstprFingerprint
-  = lens _rigmstprFingerprint
-      (\ s a -> s{_rigmstprFingerprint = a})
-      . mapping _Bytes
-
--- | The URL of all TargetPool resources to which instances in the
--- instanceGroup field are added. The target pools automatically apply to
--- all of the instances in the managed instance group.
-rigmstprTargetPools :: Lens' RegionInstanceGroupManagersSetTargetPoolsRequest [Text]
-rigmstprTargetPools
-  = lens _rigmstprTargetPools
-      (\ s a -> s{_rigmstprTargetPools = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupManagersSetTargetPoolsRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersSetTargetPoolsRequest"
-              (\ o ->
-                 RegionInstanceGroupManagersSetTargetPoolsRequest' <$>
-                   (o .:? "fingerprint") <*>
-                     (o .:? "targetPools" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupManagersSetTargetPoolsRequest
-         where
-        toJSON
-          RegionInstanceGroupManagersSetTargetPoolsRequest'{..}
-          = object
-              (catMaybes
-                 [("fingerprint" .=) <$> _rigmstprFingerprint,
-                  ("targetPools" .=) <$> _rigmstprTargetPools])
-
--- | Message containing Cloud CDN configuration for a backend bucket.
---
--- /See:/ 'backendBucketCdnPolicy' smart constructor.
-data BackendBucketCdnPolicy =
-  BackendBucketCdnPolicy'
-    { _bbcpSignedURLCacheMaxAgeSec :: !(Maybe (Textual Int64))
-    , _bbcpSignedURLKeyNames       :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketCdnPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbcpSignedURLCacheMaxAgeSec'
---
--- * 'bbcpSignedURLKeyNames'
-backendBucketCdnPolicy
-    :: BackendBucketCdnPolicy
-backendBucketCdnPolicy =
-  BackendBucketCdnPolicy'
-    {_bbcpSignedURLCacheMaxAgeSec = Nothing, _bbcpSignedURLKeyNames = Nothing}
-
-
--- | Maximum number of seconds the response to a signed URL request will be
--- considered fresh. After this time period, the response will be
--- revalidated before being served. Defaults to 1hr (3600s). When serving
--- responses to signed URL requests, Cloud CDN will internally behave as
--- though all responses from this backend had a \"Cache-Control: public,
--- max-age=[TTL]\" header, regardless of any existing Cache-Control header.
--- The actual headers served in responses will not be altered.
-bbcpSignedURLCacheMaxAgeSec :: Lens' BackendBucketCdnPolicy (Maybe Int64)
-bbcpSignedURLCacheMaxAgeSec
-  = lens _bbcpSignedURLCacheMaxAgeSec
-      (\ s a -> s{_bbcpSignedURLCacheMaxAgeSec = a})
-      . mapping _Coerce
-
--- | [Output Only] Names of the keys for signing request URLs.
-bbcpSignedURLKeyNames :: Lens' BackendBucketCdnPolicy [Text]
-bbcpSignedURLKeyNames
-  = lens _bbcpSignedURLKeyNames
-      (\ s a -> s{_bbcpSignedURLKeyNames = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON BackendBucketCdnPolicy where
-        parseJSON
-          = withObject "BackendBucketCdnPolicy"
-              (\ o ->
-                 BackendBucketCdnPolicy' <$>
-                   (o .:? "signedUrlCacheMaxAgeSec") <*>
-                     (o .:? "signedUrlKeyNames" .!= mempty))
-
-instance ToJSON BackendBucketCdnPolicy where
-        toJSON BackendBucketCdnPolicy'{..}
-          = object
-              (catMaybes
-                 [("signedUrlCacheMaxAgeSec" .=) <$>
-                    _bbcpSignedURLCacheMaxAgeSec,
-                  ("signedUrlKeyNames" .=) <$> _bbcpSignedURLKeyNames])
-
--- | Contains a list of TargetSslProxy resources.
---
--- /See:/ 'targetSSLProxyList' smart constructor.
-data TargetSSLProxyList =
-  TargetSSLProxyList'
-    { _tsplNextPageToken :: !(Maybe Text)
-    , _tsplKind          :: !Text
-    , _tsplItems         :: !(Maybe [TargetSSLProxy])
-    , _tsplSelfLink      :: !(Maybe Text)
-    , _tsplWarning       :: !(Maybe TargetSSLProxyListWarning)
-    , _tsplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxyList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsplNextPageToken'
---
--- * 'tsplKind'
---
--- * 'tsplItems'
---
--- * 'tsplSelfLink'
---
--- * 'tsplWarning'
---
--- * 'tsplId'
-targetSSLProxyList
-    :: TargetSSLProxyList
-targetSSLProxyList =
-  TargetSSLProxyList'
-    { _tsplNextPageToken = Nothing
-    , _tsplKind = "compute#targetSslProxyList"
-    , _tsplItems = Nothing
-    , _tsplSelfLink = Nothing
-    , _tsplWarning = Nothing
-    , _tsplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tsplNextPageToken :: Lens' TargetSSLProxyList (Maybe Text)
-tsplNextPageToken
-  = lens _tsplNextPageToken
-      (\ s a -> s{_tsplNextPageToken = a})
-
--- | Type of resource.
-tsplKind :: Lens' TargetSSLProxyList Text
-tsplKind = lens _tsplKind (\ s a -> s{_tsplKind = a})
-
--- | A list of TargetSslProxy resources.
-tsplItems :: Lens' TargetSSLProxyList [TargetSSLProxy]
-tsplItems
-  = lens _tsplItems (\ s a -> s{_tsplItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-tsplSelfLink :: Lens' TargetSSLProxyList (Maybe Text)
-tsplSelfLink
-  = lens _tsplSelfLink (\ s a -> s{_tsplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tsplWarning :: Lens' TargetSSLProxyList (Maybe TargetSSLProxyListWarning)
-tsplWarning
-  = lens _tsplWarning (\ s a -> s{_tsplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tsplId :: Lens' TargetSSLProxyList (Maybe Text)
-tsplId = lens _tsplId (\ s a -> s{_tsplId = a})
-
-instance FromJSON TargetSSLProxyList where
-        parseJSON
-          = withObject "TargetSSLProxyList"
-              (\ o ->
-                 TargetSSLProxyList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetSslProxyList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetSSLProxyList where
-        toJSON TargetSSLProxyList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tsplNextPageToken,
-                  Just ("kind" .= _tsplKind),
-                  ("items" .=) <$> _tsplItems,
-                  ("selfLink" .=) <$> _tsplSelfLink,
-                  ("warning" .=) <$> _tsplWarning,
-                  ("id" .=) <$> _tsplId])
-
---
--- /See:/ 'customerEncryptionKeyProtectedDisk' smart constructor.
-data CustomerEncryptionKeyProtectedDisk =
-  CustomerEncryptionKeyProtectedDisk'
-    { _cekpdDiskEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _cekpdSource            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CustomerEncryptionKeyProtectedDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cekpdDiskEncryptionKey'
---
--- * 'cekpdSource'
-customerEncryptionKeyProtectedDisk
-    :: CustomerEncryptionKeyProtectedDisk
-customerEncryptionKeyProtectedDisk =
-  CustomerEncryptionKeyProtectedDisk'
-    {_cekpdDiskEncryptionKey = Nothing, _cekpdSource = Nothing}
-
-
--- | Decrypts data associated with the disk with a customer-supplied
--- encryption key.
-cekpdDiskEncryptionKey :: Lens' CustomerEncryptionKeyProtectedDisk (Maybe CustomerEncryptionKey)
-cekpdDiskEncryptionKey
-  = lens _cekpdDiskEncryptionKey
-      (\ s a -> s{_cekpdDiskEncryptionKey = a})
-
--- | Specifies a valid partial or full URL to an existing Persistent Disk
--- resource. This field is only applicable for persistent disks.
-cekpdSource :: Lens' CustomerEncryptionKeyProtectedDisk (Maybe Text)
-cekpdSource
-  = lens _cekpdSource (\ s a -> s{_cekpdSource = a})
-
-instance FromJSON CustomerEncryptionKeyProtectedDisk
-         where
-        parseJSON
-          = withObject "CustomerEncryptionKeyProtectedDisk"
-              (\ o ->
-                 CustomerEncryptionKeyProtectedDisk' <$>
-                   (o .:? "diskEncryptionKey") <*> (o .:? "source"))
-
-instance ToJSON CustomerEncryptionKeyProtectedDisk
-         where
-        toJSON CustomerEncryptionKeyProtectedDisk'{..}
-          = object
-              (catMaybes
-                 [("diskEncryptionKey" .=) <$>
-                    _cekpdDiskEncryptionKey,
-                  ("source" .=) <$> _cekpdSource])
-
--- | A list of instance templates.
---
--- /See:/ 'instanceTemplateList' smart constructor.
-data InstanceTemplateList =
-  InstanceTemplateList'
-    { _itlNextPageToken :: !(Maybe Text)
-    , _itlKind          :: !Text
-    , _itlItems         :: !(Maybe [InstanceTemplate])
-    , _itlSelfLink      :: !(Maybe Text)
-    , _itlWarning       :: !(Maybe InstanceTemplateListWarning)
-    , _itlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplateList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itlNextPageToken'
---
--- * 'itlKind'
---
--- * 'itlItems'
---
--- * 'itlSelfLink'
---
--- * 'itlWarning'
---
--- * 'itlId'
-instanceTemplateList
-    :: InstanceTemplateList
-instanceTemplateList =
-  InstanceTemplateList'
-    { _itlNextPageToken = Nothing
-    , _itlKind = "compute#instanceTemplateList"
-    , _itlItems = Nothing
-    , _itlSelfLink = Nothing
-    , _itlWarning = Nothing
-    , _itlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-itlNextPageToken :: Lens' InstanceTemplateList (Maybe Text)
-itlNextPageToken
-  = lens _itlNextPageToken
-      (\ s a -> s{_itlNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceTemplatesListResponse for instance template lists.
-itlKind :: Lens' InstanceTemplateList Text
-itlKind = lens _itlKind (\ s a -> s{_itlKind = a})
-
--- | A list of InstanceTemplate resources.
-itlItems :: Lens' InstanceTemplateList [InstanceTemplate]
-itlItems
-  = lens _itlItems (\ s a -> s{_itlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-itlSelfLink :: Lens' InstanceTemplateList (Maybe Text)
-itlSelfLink
-  = lens _itlSelfLink (\ s a -> s{_itlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-itlWarning :: Lens' InstanceTemplateList (Maybe InstanceTemplateListWarning)
-itlWarning
-  = lens _itlWarning (\ s a -> s{_itlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-itlId :: Lens' InstanceTemplateList (Maybe Text)
-itlId = lens _itlId (\ s a -> s{_itlId = a})
-
-instance FromJSON InstanceTemplateList where
-        parseJSON
-          = withObject "InstanceTemplateList"
-              (\ o ->
-                 InstanceTemplateList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceTemplateList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceTemplateList where
-        toJSON InstanceTemplateList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _itlNextPageToken,
-                  Just ("kind" .= _itlKind),
-                  ("items" .=) <$> _itlItems,
-                  ("selfLink" .=) <$> _itlSelfLink,
-                  ("warning" .=) <$> _itlWarning,
-                  ("id" .=) <$> _itlId])
-
--- | Represents a reference to a resource.
---
--- /See:/ 'reference' smart constructor.
-data Reference =
-  Reference'
-    { _refKind          :: !Text
-    , _refReferrer      :: !(Maybe Text)
-    , _refReferenceType :: !(Maybe Text)
-    , _refTarget        :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Reference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'refKind'
---
--- * 'refReferrer'
---
--- * 'refReferenceType'
---
--- * 'refTarget'
-reference
-    :: Reference
-reference =
-  Reference'
-    { _refKind = "compute#reference"
-    , _refReferrer = Nothing
-    , _refReferenceType = Nothing
-    , _refTarget = Nothing
-    }
-
-
--- | [Output Only] Type of the resource. Always compute#reference for
--- references.
-refKind :: Lens' Reference Text
-refKind = lens _refKind (\ s a -> s{_refKind = a})
-
--- | URL of the resource which refers to the target.
-refReferrer :: Lens' Reference (Maybe Text)
-refReferrer
-  = lens _refReferrer (\ s a -> s{_refReferrer = a})
-
--- | A description of the reference type with no implied semantics. Possible
--- values include: - MEMBER_OF
-refReferenceType :: Lens' Reference (Maybe Text)
-refReferenceType
-  = lens _refReferenceType
-      (\ s a -> s{_refReferenceType = a})
-
--- | URL of the resource to which this reference points.
-refTarget :: Lens' Reference (Maybe Text)
-refTarget
-  = lens _refTarget (\ s a -> s{_refTarget = a})
-
-instance FromJSON Reference where
-        parseJSON
-          = withObject "Reference"
-              (\ o ->
-                 Reference' <$>
-                   (o .:? "kind" .!= "compute#reference") <*>
-                     (o .:? "referrer")
-                     <*> (o .:? "referenceType")
-                     <*> (o .:? "target"))
-
-instance ToJSON Reference where
-        toJSON Reference'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _refKind),
-                  ("referrer" .=) <$> _refReferrer,
-                  ("referenceType" .=) <$> _refReferenceType,
-                  ("target" .=) <$> _refTarget])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceGroupAggregatedListWarning' smart constructor.
-data InstanceGroupAggregatedListWarning =
-  InstanceGroupAggregatedListWarning'
-    { _igalwData    :: !(Maybe [InstanceGroupAggregatedListWarningDataItem])
-    , _igalwCode    :: !(Maybe InstanceGroupAggregatedListWarningCode)
-    , _igalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igalwData'
---
--- * 'igalwCode'
---
--- * 'igalwMessage'
-instanceGroupAggregatedListWarning
-    :: InstanceGroupAggregatedListWarning
-instanceGroupAggregatedListWarning =
-  InstanceGroupAggregatedListWarning'
-    {_igalwData = Nothing, _igalwCode = Nothing, _igalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igalwData :: Lens' InstanceGroupAggregatedListWarning [InstanceGroupAggregatedListWarningDataItem]
-igalwData
-  = lens _igalwData (\ s a -> s{_igalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igalwCode :: Lens' InstanceGroupAggregatedListWarning (Maybe InstanceGroupAggregatedListWarningCode)
-igalwCode
-  = lens _igalwCode (\ s a -> s{_igalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igalwMessage :: Lens' InstanceGroupAggregatedListWarning (Maybe Text)
-igalwMessage
-  = lens _igalwMessage (\ s a -> s{_igalwMessage = a})
-
-instance FromJSON InstanceGroupAggregatedListWarning
-         where
-        parseJSON
-          = withObject "InstanceGroupAggregatedListWarning"
-              (\ o ->
-                 InstanceGroupAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceGroupAggregatedListWarning
-         where
-        toJSON InstanceGroupAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igalwData,
-                  ("code" .=) <$> _igalwCode,
-                  ("message" .=) <$> _igalwMessage])
-
--- | Contains a list of Route resources.
---
--- /See:/ 'routeList' smart constructor.
-data RouteList =
-  RouteList'
-    { _rlNextPageToken :: !(Maybe Text)
-    , _rlKind          :: !Text
-    , _rlItems         :: !(Maybe [Route])
-    , _rlSelfLink      :: !(Maybe Text)
-    , _rlWarning       :: !(Maybe RouteListWarning)
-    , _rlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouteList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlNextPageToken'
---
--- * 'rlKind'
---
--- * 'rlItems'
---
--- * 'rlSelfLink'
---
--- * 'rlWarning'
---
--- * 'rlId'
-routeList
-    :: RouteList
-routeList =
-  RouteList'
-    { _rlNextPageToken = Nothing
-    , _rlKind = "compute#routeList"
-    , _rlItems = Nothing
-    , _rlSelfLink = Nothing
-    , _rlWarning = Nothing
-    , _rlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rlNextPageToken :: Lens' RouteList (Maybe Text)
-rlNextPageToken
-  = lens _rlNextPageToken
-      (\ s a -> s{_rlNextPageToken = a})
-
--- | Type of resource.
-rlKind :: Lens' RouteList Text
-rlKind = lens _rlKind (\ s a -> s{_rlKind = a})
-
--- | A list of Route resources.
-rlItems :: Lens' RouteList [Route]
-rlItems
-  = lens _rlItems (\ s a -> s{_rlItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rlSelfLink :: Lens' RouteList (Maybe Text)
-rlSelfLink
-  = lens _rlSelfLink (\ s a -> s{_rlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rlWarning :: Lens' RouteList (Maybe RouteListWarning)
-rlWarning
-  = lens _rlWarning (\ s a -> s{_rlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rlId :: Lens' RouteList (Maybe Text)
-rlId = lens _rlId (\ s a -> s{_rlId = a})
-
-instance FromJSON RouteList where
-        parseJSON
-          = withObject "RouteList"
-              (\ o ->
-                 RouteList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#routeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RouteList where
-        toJSON RouteList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rlNextPageToken,
-                  Just ("kind" .= _rlKind), ("items" .=) <$> _rlItems,
-                  ("selfLink" .=) <$> _rlSelfLink,
-                  ("warning" .=) <$> _rlWarning, ("id" .=) <$> _rlId])
-
--- | Contains a list of instance referrers.
---
--- /See:/ 'instanceListReferrers' smart constructor.
-data InstanceListReferrers =
-  InstanceListReferrers'
-    { _ilrNextPageToken :: !(Maybe Text)
-    , _ilrKind          :: !Text
-    , _ilrItems         :: !(Maybe [Reference])
-    , _ilrSelfLink      :: !(Maybe Text)
-    , _ilrWarning       :: !(Maybe InstanceListReferrersWarning)
-    , _ilrId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceListReferrers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilrNextPageToken'
---
--- * 'ilrKind'
---
--- * 'ilrItems'
---
--- * 'ilrSelfLink'
---
--- * 'ilrWarning'
---
--- * 'ilrId'
-instanceListReferrers
-    :: InstanceListReferrers
-instanceListReferrers =
-  InstanceListReferrers'
-    { _ilrNextPageToken = Nothing
-    , _ilrKind = "compute#instanceListReferrers"
-    , _ilrItems = Nothing
-    , _ilrSelfLink = Nothing
-    , _ilrWarning = Nothing
-    , _ilrId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ilrNextPageToken :: Lens' InstanceListReferrers (Maybe Text)
-ilrNextPageToken
-  = lens _ilrNextPageToken
-      (\ s a -> s{_ilrNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#instanceListReferrers for
--- lists of Instance referrers.
-ilrKind :: Lens' InstanceListReferrers Text
-ilrKind = lens _ilrKind (\ s a -> s{_ilrKind = a})
-
--- | A list of Reference resources.
-ilrItems :: Lens' InstanceListReferrers [Reference]
-ilrItems
-  = lens _ilrItems (\ s a -> s{_ilrItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ilrSelfLink :: Lens' InstanceListReferrers (Maybe Text)
-ilrSelfLink
-  = lens _ilrSelfLink (\ s a -> s{_ilrSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ilrWarning :: Lens' InstanceListReferrers (Maybe InstanceListReferrersWarning)
-ilrWarning
-  = lens _ilrWarning (\ s a -> s{_ilrWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ilrId :: Lens' InstanceListReferrers (Maybe Text)
-ilrId = lens _ilrId (\ s a -> s{_ilrId = a})
-
-instance FromJSON InstanceListReferrers where
-        parseJSON
-          = withObject "InstanceListReferrers"
-              (\ o ->
-                 InstanceListReferrers' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceListReferrers")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceListReferrers where
-        toJSON InstanceListReferrers'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ilrNextPageToken,
-                  Just ("kind" .= _ilrKind),
-                  ("items" .=) <$> _ilrItems,
-                  ("selfLink" .=) <$> _ilrSelfLink,
-                  ("warning" .=) <$> _ilrWarning,
-                  ("id" .=) <$> _ilrId])
-
--- | Router resource.
---
--- /See:/ 'router' smart constructor.
-data Router =
-  Router'
-    { _rouBGPPeers          :: !(Maybe [RouterBGPPeer])
-    , _rouBGP               :: !(Maybe RouterBGP)
-    , _rouKind              :: !Text
-    , _rouNetwork           :: !(Maybe Text)
-    , _rouInterfaces        :: !(Maybe [RouterInterface])
-    , _rouSelfLink          :: !(Maybe Text)
-    , _rouName              :: !(Maybe Text)
-    , _rouCreationTimestamp :: !(Maybe Text)
-    , _rouId                :: !(Maybe (Textual Word64))
-    , _rouRegion            :: !(Maybe Text)
-    , _rouNATs              :: !(Maybe [RouterNAT])
-    , _rouDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Router' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rouBGPPeers'
---
--- * 'rouBGP'
---
--- * 'rouKind'
---
--- * 'rouNetwork'
---
--- * 'rouInterfaces'
---
--- * 'rouSelfLink'
---
--- * 'rouName'
---
--- * 'rouCreationTimestamp'
---
--- * 'rouId'
---
--- * 'rouRegion'
---
--- * 'rouNATs'
---
--- * 'rouDescription'
-router
-    :: Router
-router =
-  Router'
-    { _rouBGPPeers = Nothing
-    , _rouBGP = Nothing
-    , _rouKind = "compute#router"
-    , _rouNetwork = Nothing
-    , _rouInterfaces = Nothing
-    , _rouSelfLink = Nothing
-    , _rouName = Nothing
-    , _rouCreationTimestamp = Nothing
-    , _rouId = Nothing
-    , _rouRegion = Nothing
-    , _rouNATs = Nothing
-    , _rouDescription = Nothing
-    }
-
-
--- | BGP information that needs to be configured into the routing stack to
--- establish the BGP peering. It must specify peer ASN and either interface
--- name, IP, or peer IP. Please refer to RFC4273.
-rouBGPPeers :: Lens' Router [RouterBGPPeer]
-rouBGPPeers
-  = lens _rouBGPPeers (\ s a -> s{_rouBGPPeers = a}) .
-      _Default
-      . _Coerce
-
--- | BGP information specific to this router.
-rouBGP :: Lens' Router (Maybe RouterBGP)
-rouBGP = lens _rouBGP (\ s a -> s{_rouBGP = a})
-
--- | [Output Only] Type of resource. Always compute#router for routers.
-rouKind :: Lens' Router Text
-rouKind = lens _rouKind (\ s a -> s{_rouKind = a})
-
--- | URI of the network to which this router belongs.
-rouNetwork :: Lens' Router (Maybe Text)
-rouNetwork
-  = lens _rouNetwork (\ s a -> s{_rouNetwork = a})
-
--- | Router interfaces. Each interface requires either one linked resource
--- (e.g. linkedVpnTunnel), or IP address and IP address range (e.g.
--- ipRange), or both.
-rouInterfaces :: Lens' Router [RouterInterface]
-rouInterfaces
-  = lens _rouInterfaces
-      (\ s a -> s{_rouInterfaces = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-rouSelfLink :: Lens' Router (Maybe Text)
-rouSelfLink
-  = lens _rouSelfLink (\ s a -> s{_rouSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-rouName :: Lens' Router (Maybe Text)
-rouName = lens _rouName (\ s a -> s{_rouName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-rouCreationTimestamp :: Lens' Router (Maybe Text)
-rouCreationTimestamp
-  = lens _rouCreationTimestamp
-      (\ s a -> s{_rouCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-rouId :: Lens' Router (Maybe Word64)
-rouId
-  = lens _rouId (\ s a -> s{_rouId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URI of the region where the router resides. You must
--- specify this field as part of the HTTP request URL. It is not settable
--- as a field in the request body.
-rouRegion :: Lens' Router (Maybe Text)
-rouRegion
-  = lens _rouRegion (\ s a -> s{_rouRegion = a})
-
--- | A list of Nat services created in this router.
-rouNATs :: Lens' Router [RouterNAT]
-rouNATs
-  = lens _rouNATs (\ s a -> s{_rouNATs = a}) . _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-rouDescription :: Lens' Router (Maybe Text)
-rouDescription
-  = lens _rouDescription
-      (\ s a -> s{_rouDescription = a})
-
-instance FromJSON Router where
-        parseJSON
-          = withObject "Router"
-              (\ o ->
-                 Router' <$>
-                   (o .:? "bgpPeers" .!= mempty) <*> (o .:? "bgp") <*>
-                     (o .:? "kind" .!= "compute#router")
-                     <*> (o .:? "network")
-                     <*> (o .:? "interfaces" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "nats" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON Router where
-        toJSON Router'{..}
-          = object
-              (catMaybes
-                 [("bgpPeers" .=) <$> _rouBGPPeers,
-                  ("bgp" .=) <$> _rouBGP, Just ("kind" .= _rouKind),
-                  ("network" .=) <$> _rouNetwork,
-                  ("interfaces" .=) <$> _rouInterfaces,
-                  ("selfLink" .=) <$> _rouSelfLink,
-                  ("name" .=) <$> _rouName,
-                  ("creationTimestamp" .=) <$> _rouCreationTimestamp,
-                  ("id" .=) <$> _rouId, ("region" .=) <$> _rouRegion,
-                  ("nats" .=) <$> _rouNATs,
-                  ("description" .=) <$> _rouDescription])
-
---
--- /See:/ 'routerAggregatedListWarningDataItem' smart constructor.
-data RouterAggregatedListWarningDataItem =
-  RouterAggregatedListWarningDataItem'
-    { _ralwdiValue :: !(Maybe Text)
-    , _ralwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ralwdiValue'
---
--- * 'ralwdiKey'
-routerAggregatedListWarningDataItem
-    :: RouterAggregatedListWarningDataItem
-routerAggregatedListWarningDataItem =
-  RouterAggregatedListWarningDataItem'
-    {_ralwdiValue = Nothing, _ralwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ralwdiValue :: Lens' RouterAggregatedListWarningDataItem (Maybe Text)
-ralwdiValue
-  = lens _ralwdiValue (\ s a -> s{_ralwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ralwdiKey :: Lens' RouterAggregatedListWarningDataItem (Maybe Text)
-ralwdiKey
-  = lens _ralwdiKey (\ s a -> s{_ralwdiKey = a})
-
-instance FromJSON RouterAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "RouterAggregatedListWarningDataItem"
-              (\ o ->
-                 RouterAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RouterAggregatedListWarningDataItem
-         where
-        toJSON RouterAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ralwdiValue,
-                  ("key" .=) <$> _ralwdiKey])
-
---
--- /See:/ 'routersScopedListWarningDataItem' smart constructor.
-data RoutersScopedListWarningDataItem =
-  RoutersScopedListWarningDataItem'
-    { _rslwdiValue :: !(Maybe Text)
-    , _rslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rslwdiValue'
---
--- * 'rslwdiKey'
-routersScopedListWarningDataItem
-    :: RoutersScopedListWarningDataItem
-routersScopedListWarningDataItem =
-  RoutersScopedListWarningDataItem'
-    {_rslwdiValue = Nothing, _rslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rslwdiValue :: Lens' RoutersScopedListWarningDataItem (Maybe Text)
-rslwdiValue
-  = lens _rslwdiValue (\ s a -> s{_rslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rslwdiKey :: Lens' RoutersScopedListWarningDataItem (Maybe Text)
-rslwdiKey
-  = lens _rslwdiKey (\ s a -> s{_rslwdiKey = a})
-
-instance FromJSON RoutersScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "RoutersScopedListWarningDataItem"
-              (\ o ->
-                 RoutersScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RoutersScopedListWarningDataItem
-         where
-        toJSON RoutersScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rslwdiValue,
-                  ("key" .=) <$> _rslwdiKey])
-
---
--- /See:/ 'subnetworksSetPrivateIPGoogleAccessRequest' smart constructor.
-newtype SubnetworksSetPrivateIPGoogleAccessRequest =
-  SubnetworksSetPrivateIPGoogleAccessRequest'
-    { _sspigarPrivateIPGoogleAccess :: Maybe Bool
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksSetPrivateIPGoogleAccessRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sspigarPrivateIPGoogleAccess'
-subnetworksSetPrivateIPGoogleAccessRequest
-    :: SubnetworksSetPrivateIPGoogleAccessRequest
-subnetworksSetPrivateIPGoogleAccessRequest =
-  SubnetworksSetPrivateIPGoogleAccessRequest'
-    {_sspigarPrivateIPGoogleAccess = Nothing}
-
-
-sspigarPrivateIPGoogleAccess :: Lens' SubnetworksSetPrivateIPGoogleAccessRequest (Maybe Bool)
-sspigarPrivateIPGoogleAccess
-  = lens _sspigarPrivateIPGoogleAccess
-      (\ s a -> s{_sspigarPrivateIPGoogleAccess = a})
-
-instance FromJSON
-           SubnetworksSetPrivateIPGoogleAccessRequest
-         where
-        parseJSON
-          = withObject
-              "SubnetworksSetPrivateIPGoogleAccessRequest"
-              (\ o ->
-                 SubnetworksSetPrivateIPGoogleAccessRequest' <$>
-                   (o .:? "privateIpGoogleAccess"))
-
-instance ToJSON
-           SubnetworksSetPrivateIPGoogleAccessRequest
-         where
-        toJSON
-          SubnetworksSetPrivateIPGoogleAccessRequest'{..}
-          = object
-              (catMaybes
-                 [("privateIpGoogleAccess" .=) <$>
-                    _sspigarPrivateIPGoogleAccess])
-
---
--- /See:/ 'targetHTTPSProxyListWarningDataItem' smart constructor.
-data TargetHTTPSProxyListWarningDataItem =
-  TargetHTTPSProxyListWarningDataItem'
-    { _thplwdiValue :: !(Maybe Text)
-    , _thplwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxyListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thplwdiValue'
---
--- * 'thplwdiKey'
-targetHTTPSProxyListWarningDataItem
-    :: TargetHTTPSProxyListWarningDataItem
-targetHTTPSProxyListWarningDataItem =
-  TargetHTTPSProxyListWarningDataItem'
-    {_thplwdiValue = Nothing, _thplwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-thplwdiValue :: Lens' TargetHTTPSProxyListWarningDataItem (Maybe Text)
-thplwdiValue
-  = lens _thplwdiValue (\ s a -> s{_thplwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-thplwdiKey :: Lens' TargetHTTPSProxyListWarningDataItem (Maybe Text)
-thplwdiKey
-  = lens _thplwdiKey (\ s a -> s{_thplwdiKey = a})
-
-instance FromJSON TargetHTTPSProxyListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetHTTPSProxyListWarningDataItem"
-              (\ o ->
-                 TargetHTTPSProxyListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetHTTPSProxyListWarningDataItem
-         where
-        toJSON TargetHTTPSProxyListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _thplwdiValue,
-                  ("key" .=) <$> _thplwdiKey])
-
--- | Contains a list of TargetVpnGateway resources.
---
--- /See:/ 'targetVPNGatewayList' smart constructor.
-data TargetVPNGatewayList =
-  TargetVPNGatewayList'
-    { _tvglNextPageToken :: !(Maybe Text)
-    , _tvglKind          :: !Text
-    , _tvglItems         :: !(Maybe [TargetVPNGateway])
-    , _tvglSelfLink      :: !(Maybe Text)
-    , _tvglWarning       :: !(Maybe TargetVPNGatewayListWarning)
-    , _tvglId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvglNextPageToken'
---
--- * 'tvglKind'
---
--- * 'tvglItems'
---
--- * 'tvglSelfLink'
---
--- * 'tvglWarning'
---
--- * 'tvglId'
-targetVPNGatewayList
-    :: TargetVPNGatewayList
-targetVPNGatewayList =
-  TargetVPNGatewayList'
-    { _tvglNextPageToken = Nothing
-    , _tvglKind = "compute#targetVpnGatewayList"
-    , _tvglItems = Nothing
-    , _tvglSelfLink = Nothing
-    , _tvglWarning = Nothing
-    , _tvglId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tvglNextPageToken :: Lens' TargetVPNGatewayList (Maybe Text)
-tvglNextPageToken
-  = lens _tvglNextPageToken
-      (\ s a -> s{_tvglNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#targetVpnGateway for
--- target VPN gateways.
-tvglKind :: Lens' TargetVPNGatewayList Text
-tvglKind = lens _tvglKind (\ s a -> s{_tvglKind = a})
-
--- | A list of TargetVpnGateway resources.
-tvglItems :: Lens' TargetVPNGatewayList [TargetVPNGateway]
-tvglItems
-  = lens _tvglItems (\ s a -> s{_tvglItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-tvglSelfLink :: Lens' TargetVPNGatewayList (Maybe Text)
-tvglSelfLink
-  = lens _tvglSelfLink (\ s a -> s{_tvglSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tvglWarning :: Lens' TargetVPNGatewayList (Maybe TargetVPNGatewayListWarning)
-tvglWarning
-  = lens _tvglWarning (\ s a -> s{_tvglWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tvglId :: Lens' TargetVPNGatewayList (Maybe Text)
-tvglId = lens _tvglId (\ s a -> s{_tvglId = a})
-
-instance FromJSON TargetVPNGatewayList where
-        parseJSON
-          = withObject "TargetVPNGatewayList"
-              (\ o ->
-                 TargetVPNGatewayList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetVpnGatewayList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetVPNGatewayList where
-        toJSON TargetVPNGatewayList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tvglNextPageToken,
-                  Just ("kind" .= _tvglKind),
-                  ("items" .=) <$> _tvglItems,
-                  ("selfLink" .=) <$> _tvglSelfLink,
-                  ("warning" .=) <$> _tvglWarning,
-                  ("id" .=) <$> _tvglId])
-
--- | Contains a list of SslCertificate resources.
---
--- /See:/ 'sslCertificateList' smart constructor.
-data SSLCertificateList =
-  SSLCertificateList'
-    { _sclNextPageToken :: !(Maybe Text)
-    , _sclKind          :: !Text
-    , _sclItems         :: !(Maybe [SSLCertificate])
-    , _sclSelfLink      :: !(Maybe Text)
-    , _sclWarning       :: !(Maybe SSLCertificateListWarning)
-    , _sclId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificateList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sclNextPageToken'
---
--- * 'sclKind'
---
--- * 'sclItems'
---
--- * 'sclSelfLink'
---
--- * 'sclWarning'
---
--- * 'sclId'
-sslCertificateList
-    :: SSLCertificateList
-sslCertificateList =
-  SSLCertificateList'
-    { _sclNextPageToken = Nothing
-    , _sclKind = "compute#sslCertificateList"
-    , _sclItems = Nothing
-    , _sclSelfLink = Nothing
-    , _sclWarning = Nothing
-    , _sclId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-sclNextPageToken :: Lens' SSLCertificateList (Maybe Text)
-sclNextPageToken
-  = lens _sclNextPageToken
-      (\ s a -> s{_sclNextPageToken = a})
-
--- | Type of resource.
-sclKind :: Lens' SSLCertificateList Text
-sclKind = lens _sclKind (\ s a -> s{_sclKind = a})
-
--- | A list of SslCertificate resources.
-sclItems :: Lens' SSLCertificateList [SSLCertificate]
-sclItems
-  = lens _sclItems (\ s a -> s{_sclItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-sclSelfLink :: Lens' SSLCertificateList (Maybe Text)
-sclSelfLink
-  = lens _sclSelfLink (\ s a -> s{_sclSelfLink = a})
-
--- | [Output Only] Informational warning message.
-sclWarning :: Lens' SSLCertificateList (Maybe SSLCertificateListWarning)
-sclWarning
-  = lens _sclWarning (\ s a -> s{_sclWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-sclId :: Lens' SSLCertificateList (Maybe Text)
-sclId = lens _sclId (\ s a -> s{_sclId = a})
-
-instance FromJSON SSLCertificateList where
-        parseJSON
-          = withObject "SSLCertificateList"
-              (\ o ->
-                 SSLCertificateList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#sslCertificateList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SSLCertificateList where
-        toJSON SSLCertificateList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _sclNextPageToken,
-                  Just ("kind" .= _sclKind),
-                  ("items" .=) <$> _sclItems,
-                  ("selfLink" .=) <$> _sclSelfLink,
-                  ("warning" .=) <$> _sclWarning,
-                  ("id" .=) <$> _sclId])
-
---
--- /See:/ 'firewallAllowedItem' smart constructor.
-data FirewallAllowedItem =
-  FirewallAllowedItem'
-    { _faiIPProtocol :: !(Maybe Text)
-    , _faiPorts      :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallAllowedItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'faiIPProtocol'
---
--- * 'faiPorts'
-firewallAllowedItem
-    :: FirewallAllowedItem
-firewallAllowedItem =
-  FirewallAllowedItem' {_faiIPProtocol = Nothing, _faiPorts = Nothing}
-
-
--- | The IP protocol to which this rule applies. The protocol type is
--- required when creating a firewall rule. This value can either be one of
--- the following well known protocol strings (tcp, udp, icmp, esp, ah,
--- ipip, sctp), or the IP protocol number.
-faiIPProtocol :: Lens' FirewallAllowedItem (Maybe Text)
-faiIPProtocol
-  = lens _faiIPProtocol
-      (\ s a -> s{_faiIPProtocol = a})
-
--- | An optional list of ports to which this rule applies. This field is only
--- applicable for UDP or TCP protocol. Each entry must be either an integer
--- or a range. If not specified, this rule applies to connections through
--- any port. Example inputs include: [\"22\"], [\"80\",\"443\"], and
--- [\"12345-12349\"].
-faiPorts :: Lens' FirewallAllowedItem [Text]
-faiPorts
-  = lens _faiPorts (\ s a -> s{_faiPorts = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON FirewallAllowedItem where
-        parseJSON
-          = withObject "FirewallAllowedItem"
-              (\ o ->
-                 FirewallAllowedItem' <$>
-                   (o .:? "IPProtocol") <*> (o .:? "ports" .!= mempty))
-
-instance ToJSON FirewallAllowedItem where
-        toJSON FirewallAllowedItem'{..}
-          = object
-              (catMaybes
-                 [("IPProtocol" .=) <$> _faiIPProtocol,
-                  ("ports" .=) <$> _faiPorts])
-
--- | Description-tagged IP ranges for the router to advertise.
---
--- /See:/ 'routerAdvertisedIPRange' smart constructor.
-data RouterAdvertisedIPRange =
-  RouterAdvertisedIPRange'
-    { _rairRange       :: !(Maybe Text)
-    , _rairDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterAdvertisedIPRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rairRange'
---
--- * 'rairDescription'
-routerAdvertisedIPRange
-    :: RouterAdvertisedIPRange
-routerAdvertisedIPRange =
-  RouterAdvertisedIPRange' {_rairRange = Nothing, _rairDescription = Nothing}
-
-
--- | The IP range to advertise. The value must be a CIDR-formatted string.
-rairRange :: Lens' RouterAdvertisedIPRange (Maybe Text)
-rairRange
-  = lens _rairRange (\ s a -> s{_rairRange = a})
-
--- | User-specified description for the IP range.
-rairDescription :: Lens' RouterAdvertisedIPRange (Maybe Text)
-rairDescription
-  = lens _rairDescription
-      (\ s a -> s{_rairDescription = a})
-
-instance FromJSON RouterAdvertisedIPRange where
-        parseJSON
-          = withObject "RouterAdvertisedIPRange"
-              (\ o ->
-                 RouterAdvertisedIPRange' <$>
-                   (o .:? "range") <*> (o .:? "description"))
-
-instance ToJSON RouterAdvertisedIPRange where
-        toJSON RouterAdvertisedIPRange'{..}
-          = object
-              (catMaybes
-                 [("range" .=) <$> _rairRange,
-                  ("description" .=) <$> _rairDescription])
-
---
--- /See:/ 'routerListWarningDataItem' smart constructor.
-data RouterListWarningDataItem =
-  RouterListWarningDataItem'
-    { _rlwdiValue :: !(Maybe Text)
-    , _rlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlwdiValue'
---
--- * 'rlwdiKey'
-routerListWarningDataItem
-    :: RouterListWarningDataItem
-routerListWarningDataItem =
-  RouterListWarningDataItem' {_rlwdiValue = Nothing, _rlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rlwdiValue :: Lens' RouterListWarningDataItem (Maybe Text)
-rlwdiValue
-  = lens _rlwdiValue (\ s a -> s{_rlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rlwdiKey :: Lens' RouterListWarningDataItem (Maybe Text)
-rlwdiKey = lens _rlwdiKey (\ s a -> s{_rlwdiKey = a})
-
-instance FromJSON RouterListWarningDataItem where
-        parseJSON
-          = withObject "RouterListWarningDataItem"
-              (\ o ->
-                 RouterListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RouterListWarningDataItem where
-        toJSON RouterListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rlwdiValue,
-                  ("key" .=) <$> _rlwdiKey])
-
--- | A rule to be applied in a Policy.
---
--- /See:/ 'rule' smart constructor.
-data Rule =
-  Rule'
-    { _rAction      :: !(Maybe RuleAction)
-    , _rNotIns      :: !(Maybe [Text])
-    , _rIns         :: !(Maybe [Text])
-    , _rLogConfigs  :: !(Maybe [LogConfig])
-    , _rConditions  :: !(Maybe [Condition])
-    , _rPermissions :: !(Maybe [Text])
-    , _rDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Rule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rAction'
---
--- * 'rNotIns'
---
--- * 'rIns'
---
--- * 'rLogConfigs'
---
--- * 'rConditions'
---
--- * 'rPermissions'
---
--- * 'rDescription'
-rule
-    :: Rule
-rule =
-  Rule'
-    { _rAction = Nothing
-    , _rNotIns = Nothing
-    , _rIns = Nothing
-    , _rLogConfigs = Nothing
-    , _rConditions = Nothing
-    , _rPermissions = Nothing
-    , _rDescription = Nothing
-    }
-
-
--- | Required
-rAction :: Lens' Rule (Maybe RuleAction)
-rAction = lens _rAction (\ s a -> s{_rAction = a})
-
--- | If one or more \'not_in\' clauses are specified, the rule matches if the
--- PRINCIPAL\/AUTHORITY_SELECTOR is in none of the entries.
-rNotIns :: Lens' Rule [Text]
-rNotIns
-  = lens _rNotIns (\ s a -> s{_rNotIns = a}) . _Default
-      . _Coerce
-
--- | If one or more \'in\' clauses are specified, the rule matches if the
--- PRINCIPAL\/AUTHORITY_SELECTOR is in at least one of these entries.
-rIns :: Lens' Rule [Text]
-rIns
-  = lens _rIns (\ s a -> s{_rIns = a}) . _Default .
-      _Coerce
-
--- | The config returned to callers of tech.iam.IAM.CheckPolicy for any
--- entries that match the LOG action.
-rLogConfigs :: Lens' Rule [LogConfig]
-rLogConfigs
-  = lens _rLogConfigs (\ s a -> s{_rLogConfigs = a}) .
-      _Default
-      . _Coerce
-
--- | Additional restrictions that must be met. All conditions must pass for
--- the rule to match.
-rConditions :: Lens' Rule [Condition]
-rConditions
-  = lens _rConditions (\ s a -> s{_rConditions = a}) .
-      _Default
-      . _Coerce
-
--- | A permission is a string of form \'..\' (e.g.,
--- \'storage.buckets.list\'). A value of \'*\' matches all permissions, and
--- a verb part of \'*\' (e.g., \'storage.buckets.*\') matches all verbs.
-rPermissions :: Lens' Rule [Text]
-rPermissions
-  = lens _rPermissions (\ s a -> s{_rPermissions = a})
-      . _Default
-      . _Coerce
-
--- | Human-readable description of the rule.
-rDescription :: Lens' Rule (Maybe Text)
-rDescription
-  = lens _rDescription (\ s a -> s{_rDescription = a})
-
-instance FromJSON Rule where
-        parseJSON
-          = withObject "Rule"
-              (\ o ->
-                 Rule' <$>
-                   (o .:? "action") <*> (o .:? "notIns" .!= mempty) <*>
-                     (o .:? "ins" .!= mempty)
-                     <*> (o .:? "logConfigs" .!= mempty)
-                     <*> (o .:? "conditions" .!= mempty)
-                     <*> (o .:? "permissions" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON Rule where
-        toJSON Rule'{..}
-          = object
-              (catMaybes
-                 [("action" .=) <$> _rAction,
-                  ("notIns" .=) <$> _rNotIns, ("ins" .=) <$> _rIns,
-                  ("logConfigs" .=) <$> _rLogConfigs,
-                  ("conditions" .=) <$> _rConditions,
-                  ("permissions" .=) <$> _rPermissions,
-                  ("description" .=) <$> _rDescription])
-
--- | Contains a list of BackendServicesScopedList.
---
--- /See:/ 'backendServiceAggregatedList' smart constructor.
-data BackendServiceAggregatedList =
-  BackendServiceAggregatedList'
-    { _bsalNextPageToken :: !(Maybe Text)
-    , _bsalKind          :: !Text
-    , _bsalItems         :: !(Maybe BackendServiceAggregatedListItems)
-    , _bsalSelfLink      :: !(Maybe Text)
-    , _bsalWarning       :: !(Maybe BackendServiceAggregatedListWarning)
-    , _bsalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsalNextPageToken'
---
--- * 'bsalKind'
---
--- * 'bsalItems'
---
--- * 'bsalSelfLink'
---
--- * 'bsalWarning'
---
--- * 'bsalId'
-backendServiceAggregatedList
-    :: BackendServiceAggregatedList
-backendServiceAggregatedList =
-  BackendServiceAggregatedList'
-    { _bsalNextPageToken = Nothing
-    , _bsalKind = "compute#backendServiceAggregatedList"
-    , _bsalItems = Nothing
-    , _bsalSelfLink = Nothing
-    , _bsalWarning = Nothing
-    , _bsalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-bsalNextPageToken :: Lens' BackendServiceAggregatedList (Maybe Text)
-bsalNextPageToken
-  = lens _bsalNextPageToken
-      (\ s a -> s{_bsalNextPageToken = a})
-
--- | Type of resource.
-bsalKind :: Lens' BackendServiceAggregatedList Text
-bsalKind = lens _bsalKind (\ s a -> s{_bsalKind = a})
-
--- | A list of BackendServicesScopedList resources.
-bsalItems :: Lens' BackendServiceAggregatedList (Maybe BackendServiceAggregatedListItems)
-bsalItems
-  = lens _bsalItems (\ s a -> s{_bsalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-bsalSelfLink :: Lens' BackendServiceAggregatedList (Maybe Text)
-bsalSelfLink
-  = lens _bsalSelfLink (\ s a -> s{_bsalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-bsalWarning :: Lens' BackendServiceAggregatedList (Maybe BackendServiceAggregatedListWarning)
-bsalWarning
-  = lens _bsalWarning (\ s a -> s{_bsalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-bsalId :: Lens' BackendServiceAggregatedList (Maybe Text)
-bsalId = lens _bsalId (\ s a -> s{_bsalId = a})
-
-instance FromJSON BackendServiceAggregatedList where
-        parseJSON
-          = withObject "BackendServiceAggregatedList"
-              (\ o ->
-                 BackendServiceAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#backendServiceAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON BackendServiceAggregatedList where
-        toJSON BackendServiceAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _bsalNextPageToken,
-                  Just ("kind" .= _bsalKind),
-                  ("items" .=) <$> _bsalItems,
-                  ("selfLink" .=) <$> _bsalSelfLink,
-                  ("warning" .=) <$> _bsalWarning,
-                  ("id" .=) <$> _bsalId])
-
--- | Represents a Network resource. Read Virtual Private Cloud (VPC) Network
--- Overview for more information. (== resource_for v1.networks ==) (==
--- resource_for beta.networks ==)
---
--- /See:/ 'network' smart constructor.
-data Network =
-  Network'
-    { _nAutoCreateSubnetworks :: !(Maybe Bool)
-    , _nKind                  :: !Text
-    , _nRoutingConfig         :: !(Maybe NetworkRoutingConfig)
-    , _nSubnetworks           :: !(Maybe [Text])
-    , _nIPv4Range             :: !(Maybe Text)
-    , _nSelfLink              :: !(Maybe Text)
-    , _nName                  :: !(Maybe Text)
-    , _nCreationTimestamp     :: !(Maybe Text)
-    , _nId                    :: !(Maybe (Textual Word64))
-    , _nGatewayIPv4           :: !(Maybe Text)
-    , _nDescription           :: !(Maybe Text)
-    , _nPeerings              :: !(Maybe [NetworkPeering])
-    }
-  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:
---
--- * 'nAutoCreateSubnetworks'
---
--- * 'nKind'
---
--- * 'nRoutingConfig'
---
--- * 'nSubnetworks'
---
--- * 'nIPv4Range'
---
--- * 'nSelfLink'
---
--- * 'nName'
---
--- * 'nCreationTimestamp'
---
--- * 'nId'
---
--- * 'nGatewayIPv4'
---
--- * 'nDescription'
---
--- * 'nPeerings'
-network
-    :: Network
-network =
-  Network'
-    { _nAutoCreateSubnetworks = Nothing
-    , _nKind = "compute#network"
-    , _nRoutingConfig = Nothing
-    , _nSubnetworks = Nothing
-    , _nIPv4Range = Nothing
-    , _nSelfLink = Nothing
-    , _nName = Nothing
-    , _nCreationTimestamp = Nothing
-    , _nId = Nothing
-    , _nGatewayIPv4 = Nothing
-    , _nDescription = Nothing
-    , _nPeerings = Nothing
-    }
-
-
--- | When set to true, the VPC network is created in \"auto\" mode. When set
--- to false, the VPC network is created in \"custom\" mode. An auto mode
--- VPC network starts with one subnet per region. Each subnet has a
--- predetermined range as described in Auto mode VPC network IP ranges.
-nAutoCreateSubnetworks :: Lens' Network (Maybe Bool)
-nAutoCreateSubnetworks
-  = lens _nAutoCreateSubnetworks
-      (\ s a -> s{_nAutoCreateSubnetworks = a})
-
--- | [Output Only] Type of the resource. Always compute#network for networks.
-nKind :: Lens' Network Text
-nKind = lens _nKind (\ s a -> s{_nKind = a})
-
--- | The network-level routing configuration for this network. Used by Cloud
--- Router to determine what type of network-wide routing behavior to
--- enforce.
-nRoutingConfig :: Lens' Network (Maybe NetworkRoutingConfig)
-nRoutingConfig
-  = lens _nRoutingConfig
-      (\ s a -> s{_nRoutingConfig = a})
-
--- | [Output Only] Server-defined fully-qualified URLs for all subnetworks in
--- this VPC network.
-nSubnetworks :: Lens' Network [Text]
-nSubnetworks
-  = lens _nSubnetworks (\ s a -> s{_nSubnetworks = a})
-      . _Default
-      . _Coerce
-
--- | Deprecated in favor of subnet mode networks. The range of internal
--- addresses that are legal on this network. This range is a CIDR
--- specification, for example: 192.168.0.0\/16. Provided by the client when
--- the network is created.
-nIPv4Range :: Lens' Network (Maybe Text)
-nIPv4Range
-  = lens _nIPv4Range (\ s a -> s{_nIPv4Range = a})
-
--- | [Output Only] Server-defined URL for the resource.
-nSelfLink :: Lens' Network (Maybe Text)
-nSelfLink
-  = lens _nSelfLink (\ s a -> s{_nSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-nName :: Lens' Network (Maybe Text)
-nName = lens _nName (\ s a -> s{_nName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-nCreationTimestamp :: Lens' Network (Maybe Text)
-nCreationTimestamp
-  = lens _nCreationTimestamp
-      (\ s a -> s{_nCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-nId :: Lens' Network (Maybe Word64)
-nId
-  = lens _nId (\ s a -> s{_nId = a}) . mapping _Coerce
-
--- | [Output Only] The gateway address for default routing out of the
--- network. This value is read only and is selected by GCP.
-nGatewayIPv4 :: Lens' Network (Maybe Text)
-nGatewayIPv4
-  = lens _nGatewayIPv4 (\ s a -> s{_nGatewayIPv4 = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-nDescription :: Lens' Network (Maybe Text)
-nDescription
-  = lens _nDescription (\ s a -> s{_nDescription = a})
-
--- | [Output Only] A list of network peerings for the resource.
-nPeerings :: Lens' Network [NetworkPeering]
-nPeerings
-  = lens _nPeerings (\ s a -> s{_nPeerings = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON Network where
-        parseJSON
-          = withObject "Network"
-              (\ o ->
-                 Network' <$>
-                   (o .:? "autoCreateSubnetworks") <*>
-                     (o .:? "kind" .!= "compute#network")
-                     <*> (o .:? "routingConfig")
-                     <*> (o .:? "subnetworks" .!= mempty)
-                     <*> (o .:? "IPv4Range")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "gatewayIPv4")
-                     <*> (o .:? "description")
-                     <*> (o .:? "peerings" .!= mempty))
-
-instance ToJSON Network where
-        toJSON Network'{..}
-          = object
-              (catMaybes
-                 [("autoCreateSubnetworks" .=) <$>
-                    _nAutoCreateSubnetworks,
-                  Just ("kind" .= _nKind),
-                  ("routingConfig" .=) <$> _nRoutingConfig,
-                  ("subnetworks" .=) <$> _nSubnetworks,
-                  ("IPv4Range" .=) <$> _nIPv4Range,
-                  ("selfLink" .=) <$> _nSelfLink,
-                  ("name" .=) <$> _nName,
-                  ("creationTimestamp" .=) <$> _nCreationTimestamp,
-                  ("id" .=) <$> _nId,
-                  ("gatewayIPv4" .=) <$> _nGatewayIPv4,
-                  ("description" .=) <$> _nDescription,
-                  ("peerings" .=) <$> _nPeerings])
-
--- | Informational warning which replaces the list of routers when the list
--- is empty.
---
--- /See:/ 'routersScopedListWarning' smart constructor.
-data RoutersScopedListWarning =
-  RoutersScopedListWarning'
-    { _rslwData    :: !(Maybe [RoutersScopedListWarningDataItem])
-    , _rslwCode    :: !(Maybe RoutersScopedListWarningCode)
-    , _rslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rslwData'
---
--- * 'rslwCode'
---
--- * 'rslwMessage'
-routersScopedListWarning
-    :: RoutersScopedListWarning
-routersScopedListWarning =
-  RoutersScopedListWarning'
-    {_rslwData = Nothing, _rslwCode = Nothing, _rslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rslwData :: Lens' RoutersScopedListWarning [RoutersScopedListWarningDataItem]
-rslwData
-  = lens _rslwData (\ s a -> s{_rslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rslwCode :: Lens' RoutersScopedListWarning (Maybe RoutersScopedListWarningCode)
-rslwCode = lens _rslwCode (\ s a -> s{_rslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rslwMessage :: Lens' RoutersScopedListWarning (Maybe Text)
-rslwMessage
-  = lens _rslwMessage (\ s a -> s{_rslwMessage = a})
-
-instance FromJSON RoutersScopedListWarning where
-        parseJSON
-          = withObject "RoutersScopedListWarning"
-              (\ o ->
-                 RoutersScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RoutersScopedListWarning where
-        toJSON RoutersScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rslwData,
-                  ("code" .=) <$> _rslwCode,
-                  ("message" .=) <$> _rslwMessage])
-
--- | Subnetwork which the current user has compute.subnetworks.use permission
--- on.
---
--- /See:/ 'usableSubnetwork' smart constructor.
-data UsableSubnetwork =
-  UsableSubnetwork'
-    { _usNetwork           :: !(Maybe Text)
-    , _usSecondaryIPRanges :: !(Maybe [UsableSubnetworkSecondaryRange])
-    , _usIPCIdRRange       :: !(Maybe Text)
-    , _usSubnetwork        :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsableSubnetwork' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usNetwork'
---
--- * 'usSecondaryIPRanges'
---
--- * 'usIPCIdRRange'
---
--- * 'usSubnetwork'
-usableSubnetwork
-    :: UsableSubnetwork
-usableSubnetwork =
-  UsableSubnetwork'
-    { _usNetwork = Nothing
-    , _usSecondaryIPRanges = Nothing
-    , _usIPCIdRRange = Nothing
-    , _usSubnetwork = Nothing
-    }
-
-
--- | Network URL.
-usNetwork :: Lens' UsableSubnetwork (Maybe Text)
-usNetwork
-  = lens _usNetwork (\ s a -> s{_usNetwork = a})
-
--- | Secondary IP ranges.
-usSecondaryIPRanges :: Lens' UsableSubnetwork [UsableSubnetworkSecondaryRange]
-usSecondaryIPRanges
-  = lens _usSecondaryIPRanges
-      (\ s a -> s{_usSecondaryIPRanges = a})
-      . _Default
-      . _Coerce
-
--- | The range of internal addresses that are owned by this subnetwork.
-usIPCIdRRange :: Lens' UsableSubnetwork (Maybe Text)
-usIPCIdRRange
-  = lens _usIPCIdRRange
-      (\ s a -> s{_usIPCIdRRange = a})
-
--- | Subnetwork URL.
-usSubnetwork :: Lens' UsableSubnetwork (Maybe Text)
-usSubnetwork
-  = lens _usSubnetwork (\ s a -> s{_usSubnetwork = a})
-
-instance FromJSON UsableSubnetwork where
-        parseJSON
-          = withObject "UsableSubnetwork"
-              (\ o ->
-                 UsableSubnetwork' <$>
-                   (o .:? "network") <*>
-                     (o .:? "secondaryIpRanges" .!= mempty)
-                     <*> (o .:? "ipCidrRange")
-                     <*> (o .:? "subnetwork"))
-
-instance ToJSON UsableSubnetwork where
-        toJSON UsableSubnetwork'{..}
-          = object
-              (catMaybes
-                 [("network" .=) <$> _usNetwork,
-                  ("secondaryIpRanges" .=) <$> _usSecondaryIPRanges,
-                  ("ipCidrRange" .=) <$> _usIPCIdRRange,
-                  ("subnetwork" .=) <$> _usSubnetwork])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetHTTPSProxyListWarning' smart constructor.
-data TargetHTTPSProxyListWarning =
-  TargetHTTPSProxyListWarning'
-    { _thplwData    :: !(Maybe [TargetHTTPSProxyListWarningDataItem])
-    , _thplwCode    :: !(Maybe TargetHTTPSProxyListWarningCode)
-    , _thplwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxyListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thplwData'
---
--- * 'thplwCode'
---
--- * 'thplwMessage'
-targetHTTPSProxyListWarning
-    :: TargetHTTPSProxyListWarning
-targetHTTPSProxyListWarning =
-  TargetHTTPSProxyListWarning'
-    {_thplwData = Nothing, _thplwCode = Nothing, _thplwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-thplwData :: Lens' TargetHTTPSProxyListWarning [TargetHTTPSProxyListWarningDataItem]
-thplwData
-  = lens _thplwData (\ s a -> s{_thplwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-thplwCode :: Lens' TargetHTTPSProxyListWarning (Maybe TargetHTTPSProxyListWarningCode)
-thplwCode
-  = lens _thplwCode (\ s a -> s{_thplwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-thplwMessage :: Lens' TargetHTTPSProxyListWarning (Maybe Text)
-thplwMessage
-  = lens _thplwMessage (\ s a -> s{_thplwMessage = a})
-
-instance FromJSON TargetHTTPSProxyListWarning where
-        parseJSON
-          = withObject "TargetHTTPSProxyListWarning"
-              (\ o ->
-                 TargetHTTPSProxyListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetHTTPSProxyListWarning where
-        toJSON TargetHTTPSProxyListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _thplwData,
-                  ("code" .=) <$> _thplwCode,
-                  ("message" .=) <$> _thplwMessage])
-
--- | [Output Only] Informational warning which replaces the list of addresses
--- when the list is empty.
---
--- /See:/ 'addressesScopedListWarning' smart constructor.
-data AddressesScopedListWarning =
-  AddressesScopedListWarning'
-    { _aData    :: !(Maybe [AddressesScopedListWarningDataItem])
-    , _aCode    :: !(Maybe AddressesScopedListWarningCode)
-    , _aMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aData'
---
--- * 'aCode'
---
--- * 'aMessage'
-addressesScopedListWarning
-    :: AddressesScopedListWarning
-addressesScopedListWarning =
-  AddressesScopedListWarning'
-    {_aData = Nothing, _aCode = Nothing, _aMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-aData :: Lens' AddressesScopedListWarning [AddressesScopedListWarningDataItem]
-aData
-  = lens _aData (\ s a -> s{_aData = a}) . _Default .
-      _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-aCode :: Lens' AddressesScopedListWarning (Maybe AddressesScopedListWarningCode)
-aCode = lens _aCode (\ s a -> s{_aCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-aMessage :: Lens' AddressesScopedListWarning (Maybe Text)
-aMessage = lens _aMessage (\ s a -> s{_aMessage = a})
-
-instance FromJSON AddressesScopedListWarning where
-        parseJSON
-          = withObject "AddressesScopedListWarning"
-              (\ o ->
-                 AddressesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AddressesScopedListWarning where
-        toJSON AddressesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _aData, ("code" .=) <$> _aCode,
-                  ("message" .=) <$> _aMessage])
-
--- | A security policy is comprised of one or more rules. It can also be
--- associated with one or more \'targets\'. (== resource_for
--- v1.securityPolicies ==) (== resource_for beta.securityPolicies ==)
---
--- /See:/ 'securityPolicy' smart constructor.
-data SecurityPolicy =
-  SecurityPolicy'
-    { _secRules             :: !(Maybe [SecurityPolicyRule])
-    , _secKind              :: !Text
-    , _secFingerprint       :: !(Maybe Bytes)
-    , _secSelfLink          :: !(Maybe Text)
-    , _secName              :: !(Maybe Text)
-    , _secCreationTimestamp :: !(Maybe Text)
-    , _secId                :: !(Maybe (Textual Word64))
-    , _secDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'secRules'
---
--- * 'secKind'
---
--- * 'secFingerprint'
---
--- * 'secSelfLink'
---
--- * 'secName'
---
--- * 'secCreationTimestamp'
---
--- * 'secId'
---
--- * 'secDescription'
-securityPolicy
-    :: SecurityPolicy
-securityPolicy =
-  SecurityPolicy'
-    { _secRules = Nothing
-    , _secKind = "compute#securityPolicy"
-    , _secFingerprint = Nothing
-    , _secSelfLink = Nothing
-    , _secName = Nothing
-    , _secCreationTimestamp = Nothing
-    , _secId = Nothing
-    , _secDescription = Nothing
-    }
-
-
--- | A list of rules that belong to this policy. There must always be a
--- default rule (rule with priority 2147483647 and match \"*\"). If no
--- rules are provided when creating a security policy, a default rule with
--- action \"allow\" will be added.
-secRules :: Lens' SecurityPolicy [SecurityPolicyRule]
-secRules
-  = lens _secRules (\ s a -> s{_secRules = a}) .
-      _Default
-      . _Coerce
-
--- | [Output only] Type of the resource. Always compute#securityPolicyfor
--- security policies
-secKind :: Lens' SecurityPolicy Text
-secKind = lens _secKind (\ s a -> s{_secKind = a})
-
--- | Specifies a fingerprint for this resource, which is essentially a hash
--- of the metadata\'s contents and used for optimistic locking. The
--- fingerprint is initially generated by Compute Engine and changes after
--- every request to modify or update metadata. You must always provide an
--- up-to-date fingerprint hash in order to update or change metadata,
--- otherwise the request will fail with error 412 conditionNotMet. To see
--- the latest fingerprint, make get() request to the security policy.
-secFingerprint :: Lens' SecurityPolicy (Maybe ByteString)
-secFingerprint
-  = lens _secFingerprint
-      (\ s a -> s{_secFingerprint = a})
-      . mapping _Bytes
-
--- | [Output Only] Server-defined URL for the resource.
-secSelfLink :: Lens' SecurityPolicy (Maybe Text)
-secSelfLink
-  = lens _secSelfLink (\ s a -> s{_secSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-secName :: Lens' SecurityPolicy (Maybe Text)
-secName = lens _secName (\ s a -> s{_secName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-secCreationTimestamp :: Lens' SecurityPolicy (Maybe Text)
-secCreationTimestamp
-  = lens _secCreationTimestamp
-      (\ s a -> s{_secCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-secId :: Lens' SecurityPolicy (Maybe Word64)
-secId
-  = lens _secId (\ s a -> s{_secId = a}) .
-      mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-secDescription :: Lens' SecurityPolicy (Maybe Text)
-secDescription
-  = lens _secDescription
-      (\ s a -> s{_secDescription = a})
-
-instance FromJSON SecurityPolicy where
-        parseJSON
-          = withObject "SecurityPolicy"
-              (\ o ->
-                 SecurityPolicy' <$>
-                   (o .:? "rules" .!= mempty) <*>
-                     (o .:? "kind" .!= "compute#securityPolicy")
-                     <*> (o .:? "fingerprint")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description"))
-
-instance ToJSON SecurityPolicy where
-        toJSON SecurityPolicy'{..}
-          = object
-              (catMaybes
-                 [("rules" .=) <$> _secRules,
-                  Just ("kind" .= _secKind),
-                  ("fingerprint" .=) <$> _secFingerprint,
-                  ("selfLink" .=) <$> _secSelfLink,
-                  ("name" .=) <$> _secName,
-                  ("creationTimestamp" .=) <$> _secCreationTimestamp,
-                  ("id" .=) <$> _secId,
-                  ("description" .=) <$> _secDescription])
-
---
--- /See:/ 'instanceGroupAggregatedListWarningDataItem' smart constructor.
-data InstanceGroupAggregatedListWarningDataItem =
-  InstanceGroupAggregatedListWarningDataItem'
-    { _igalwdiValue :: !(Maybe Text)
-    , _igalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igalwdiValue'
---
--- * 'igalwdiKey'
-instanceGroupAggregatedListWarningDataItem
-    :: InstanceGroupAggregatedListWarningDataItem
-instanceGroupAggregatedListWarningDataItem =
-  InstanceGroupAggregatedListWarningDataItem'
-    {_igalwdiValue = Nothing, _igalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igalwdiValue :: Lens' InstanceGroupAggregatedListWarningDataItem (Maybe Text)
-igalwdiValue
-  = lens _igalwdiValue (\ s a -> s{_igalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igalwdiKey :: Lens' InstanceGroupAggregatedListWarningDataItem (Maybe Text)
-igalwdiKey
-  = lens _igalwdiKey (\ s a -> s{_igalwdiKey = a})
-
-instance FromJSON
-           InstanceGroupAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupAggregatedListWarningDataItem"
-              (\ o ->
-                 InstanceGroupAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupAggregatedListWarningDataItem
-         where
-        toJSON
-          InstanceGroupAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igalwdiValue,
-                  ("key" .=) <$> _igalwdiKey])
-
--- | The parameters of the raw disk image.
---
--- /See:/ 'imageRawDisk' smart constructor.
-data ImageRawDisk =
-  ImageRawDisk'
-    { _irdContainerType :: !(Maybe ImageRawDiskContainerType)
-    , _irdSource        :: !(Maybe Text)
-    , _irdSha1Checksum  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImageRawDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'irdContainerType'
---
--- * 'irdSource'
---
--- * 'irdSha1Checksum'
-imageRawDisk
-    :: ImageRawDisk
-imageRawDisk =
-  ImageRawDisk'
-    { _irdContainerType = Nothing
-    , _irdSource = Nothing
-    , _irdSha1Checksum = Nothing
-    }
-
-
--- | The format used to encode and transmit the block device, which should be
--- TAR. This is just a container and transmission format and not a runtime
--- format. Provided by the client when the disk image is created.
-irdContainerType :: Lens' ImageRawDisk (Maybe ImageRawDiskContainerType)
-irdContainerType
-  = lens _irdContainerType
-      (\ s a -> s{_irdContainerType = a})
-
--- | The full Google Cloud Storage URL where the disk image is stored. You
--- must provide either this property or the sourceDisk property but not
--- both.
-irdSource :: Lens' ImageRawDisk (Maybe Text)
-irdSource
-  = lens _irdSource (\ s a -> s{_irdSource = a})
-
--- | An optional SHA1 checksum of the disk image before unpackaging provided
--- by the client when the disk image is created.
-irdSha1Checksum :: Lens' ImageRawDisk (Maybe Text)
-irdSha1Checksum
-  = lens _irdSha1Checksum
-      (\ s a -> s{_irdSha1Checksum = a})
-
-instance FromJSON ImageRawDisk where
-        parseJSON
-          = withObject "ImageRawDisk"
-              (\ o ->
-                 ImageRawDisk' <$>
-                   (o .:? "containerType") <*> (o .:? "source") <*>
-                     (o .:? "sha1Checksum"))
-
-instance ToJSON ImageRawDisk where
-        toJSON ImageRawDisk'{..}
-          = object
-              (catMaybes
-                 [("containerType" .=) <$> _irdContainerType,
-                  ("source" .=) <$> _irdSource,
-                  ("sha1Checksum" .=) <$> _irdSha1Checksum])
-
---
--- /See:/ 'instanceAggregatedList' smart constructor.
-data InstanceAggregatedList =
-  InstanceAggregatedList'
-    { _ialNextPageToken :: !(Maybe Text)
-    , _ialKind          :: !Text
-    , _ialItems         :: !(Maybe InstanceAggregatedListItems)
-    , _ialSelfLink      :: !(Maybe Text)
-    , _ialWarning       :: !(Maybe InstanceAggregatedListWarning)
-    , _ialId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialNextPageToken'
---
--- * 'ialKind'
---
--- * 'ialItems'
---
--- * 'ialSelfLink'
---
--- * 'ialWarning'
---
--- * 'ialId'
-instanceAggregatedList
-    :: InstanceAggregatedList
-instanceAggregatedList =
-  InstanceAggregatedList'
-    { _ialNextPageToken = Nothing
-    , _ialKind = "compute#instanceAggregatedList"
-    , _ialItems = Nothing
-    , _ialSelfLink = Nothing
-    , _ialWarning = Nothing
-    , _ialId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ialNextPageToken :: Lens' InstanceAggregatedList (Maybe Text)
-ialNextPageToken
-  = lens _ialNextPageToken
-      (\ s a -> s{_ialNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#instanceAggregatedList
--- for aggregated lists of Instance resources.
-ialKind :: Lens' InstanceAggregatedList Text
-ialKind = lens _ialKind (\ s a -> s{_ialKind = a})
-
--- | A list of InstancesScopedList resources.
-ialItems :: Lens' InstanceAggregatedList (Maybe InstanceAggregatedListItems)
-ialItems = lens _ialItems (\ s a -> s{_ialItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-ialSelfLink :: Lens' InstanceAggregatedList (Maybe Text)
-ialSelfLink
-  = lens _ialSelfLink (\ s a -> s{_ialSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ialWarning :: Lens' InstanceAggregatedList (Maybe InstanceAggregatedListWarning)
-ialWarning
-  = lens _ialWarning (\ s a -> s{_ialWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ialId :: Lens' InstanceAggregatedList (Maybe Text)
-ialId = lens _ialId (\ s a -> s{_ialId = a})
-
-instance FromJSON InstanceAggregatedList where
-        parseJSON
-          = withObject "InstanceAggregatedList"
-              (\ o ->
-                 InstanceAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceAggregatedList where
-        toJSON InstanceAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ialNextPageToken,
-                  Just ("kind" .= _ialKind),
-                  ("items" .=) <$> _ialItems,
-                  ("selfLink" .=) <$> _ialSelfLink,
-                  ("warning" .=) <$> _ialWarning,
-                  ("id" .=) <$> _ialId])
-
---
--- /See:/ 'forwardingRuleReference' smart constructor.
-newtype ForwardingRuleReference =
-  ForwardingRuleReference'
-    { _frrForwardingRule :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frrForwardingRule'
-forwardingRuleReference
-    :: ForwardingRuleReference
-forwardingRuleReference =
-  ForwardingRuleReference' {_frrForwardingRule = Nothing}
-
-
-frrForwardingRule :: Lens' ForwardingRuleReference (Maybe Text)
-frrForwardingRule
-  = lens _frrForwardingRule
-      (\ s a -> s{_frrForwardingRule = a})
-
-instance FromJSON ForwardingRuleReference where
-        parseJSON
-          = withObject "ForwardingRuleReference"
-              (\ o ->
-                 ForwardingRuleReference' <$>
-                   (o .:? "forwardingRule"))
-
-instance ToJSON ForwardingRuleReference where
-        toJSON ForwardingRuleReference'{..}
-          = object
-              (catMaybes
-                 [("forwardingRule" .=) <$> _frrForwardingRule])
-
---
--- /See:/ 'targetTCPProxiesSetBackendServiceRequest' smart constructor.
-newtype TargetTCPProxiesSetBackendServiceRequest =
-  TargetTCPProxiesSetBackendServiceRequest'
-    { _ttpsbsrService :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesSetBackendServiceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpsbsrService'
-targetTCPProxiesSetBackendServiceRequest
-    :: TargetTCPProxiesSetBackendServiceRequest
-targetTCPProxiesSetBackendServiceRequest =
-  TargetTCPProxiesSetBackendServiceRequest' {_ttpsbsrService = Nothing}
-
-
--- | The URL of the new BackendService resource for the targetTcpProxy.
-ttpsbsrService :: Lens' TargetTCPProxiesSetBackendServiceRequest (Maybe Text)
-ttpsbsrService
-  = lens _ttpsbsrService
-      (\ s a -> s{_ttpsbsrService = a})
-
-instance FromJSON
-           TargetTCPProxiesSetBackendServiceRequest
-         where
-        parseJSON
-          = withObject
-              "TargetTCPProxiesSetBackendServiceRequest"
-              (\ o ->
-                 TargetTCPProxiesSetBackendServiceRequest' <$>
-                   (o .:? "service"))
-
-instance ToJSON
-           TargetTCPProxiesSetBackendServiceRequest
-         where
-        toJSON TargetTCPProxiesSetBackendServiceRequest'{..}
-          = object
-              (catMaybes [("service" .=) <$> _ttpsbsrService])
-
---
--- /See:/ 'sslHealthCheck' smart constructor.
-data SSLHealthCheck =
-  SSLHealthCheck'
-    { _shcResponse          :: !(Maybe Text)
-    , _shcPortSpecification :: !(Maybe SSLHealthCheckPortSpecification)
-    , _shcProxyHeader       :: !(Maybe SSLHealthCheckProxyHeader)
-    , _shcPortName          :: !(Maybe Text)
-    , _shcPort              :: !(Maybe (Textual Int32))
-    , _shcRequest           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'shcResponse'
---
--- * 'shcPortSpecification'
---
--- * 'shcProxyHeader'
---
--- * 'shcPortName'
---
--- * 'shcPort'
---
--- * 'shcRequest'
-sslHealthCheck
-    :: SSLHealthCheck
-sslHealthCheck =
-  SSLHealthCheck'
-    { _shcResponse = Nothing
-    , _shcPortSpecification = Nothing
-    , _shcProxyHeader = Nothing
-    , _shcPortName = Nothing
-    , _shcPort = Nothing
-    , _shcRequest = Nothing
-    }
-
-
--- | The bytes to match against the beginning of the response data. If left
--- empty (the default value), any response will indicate health. The
--- response data can only be ASCII.
-shcResponse :: Lens' SSLHealthCheck (Maybe Text)
-shcResponse
-  = lens _shcResponse (\ s a -> s{_shcResponse = a})
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, SSL health check follows
--- behavior specified in port and portName fields.
-shcPortSpecification :: Lens' SSLHealthCheck (Maybe SSLHealthCheckPortSpecification)
-shcPortSpecification
-  = lens _shcPortSpecification
-      (\ s a -> s{_shcPortSpecification = a})
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-shcProxyHeader :: Lens' SSLHealthCheck (Maybe SSLHealthCheckProxyHeader)
-shcProxyHeader
-  = lens _shcProxyHeader
-      (\ s a -> s{_shcProxyHeader = a})
-
--- | Port name as defined in InstanceGroup#NamedPort#name. If both port and
--- port_name are defined, port takes precedence.
-shcPortName :: Lens' SSLHealthCheck (Maybe Text)
-shcPortName
-  = lens _shcPortName (\ s a -> s{_shcPortName = a})
-
--- | The TCP port number for the health check request. The default value is
--- 443. Valid values are 1 through 65535.
-shcPort :: Lens' SSLHealthCheck (Maybe Int32)
-shcPort
-  = lens _shcPort (\ s a -> s{_shcPort = a}) .
-      mapping _Coerce
-
--- | The application data to send once the SSL connection has been
--- established (default value is empty). If both request and response are
--- empty, the connection establishment alone will indicate health. The
--- request data can only be ASCII.
-shcRequest :: Lens' SSLHealthCheck (Maybe Text)
-shcRequest
-  = lens _shcRequest (\ s a -> s{_shcRequest = a})
-
-instance FromJSON SSLHealthCheck where
-        parseJSON
-          = withObject "SSLHealthCheck"
-              (\ o ->
-                 SSLHealthCheck' <$>
-                   (o .:? "response") <*> (o .:? "portSpecification")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "port")
-                     <*> (o .:? "request"))
-
-instance ToJSON SSLHealthCheck where
-        toJSON SSLHealthCheck'{..}
-          = object
-              (catMaybes
-                 [("response" .=) <$> _shcResponse,
-                  ("portSpecification" .=) <$> _shcPortSpecification,
-                  ("proxyHeader" .=) <$> _shcProxyHeader,
-                  ("portName" .=) <$> _shcPortName,
-                  ("port" .=) <$> _shcPort,
-                  ("request" .=) <$> _shcRequest])
-
--- | A reserved address resource. (== resource_for beta.addresses ==) (==
--- resource_for v1.addresses ==) (== resource_for beta.globalAddresses ==)
--- (== resource_for v1.globalAddresses ==)
---
--- /See:/ 'address' smart constructor.
-data Address =
-  Address'
-    { _aPrefixLength      :: !(Maybe (Textual Int32))
-    , _aNetworkTier       :: !(Maybe AddressNetworkTier)
-    , _aStatus            :: !(Maybe AddressStatus)
-    , _aUsers             :: !(Maybe [Text])
-    , _aKind              :: !Text
-    , _aIPVersion         :: !(Maybe AddressIPVersion)
-    , _aNetwork           :: !(Maybe Text)
-    , _aAddress           :: !(Maybe Text)
-    , _aPurpose           :: !(Maybe AddressPurpose)
-    , _aSelfLink          :: !(Maybe Text)
-    , _aName              :: !(Maybe Text)
-    , _aCreationTimestamp :: !(Maybe Text)
-    , _aSubnetwork        :: !(Maybe Text)
-    , _aId                :: !(Maybe (Textual Word64))
-    , _aRegion            :: !(Maybe Text)
-    , _aDescription       :: !(Maybe Text)
-    , _aAddressType       :: !(Maybe AddressAddressType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Address' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aPrefixLength'
---
--- * 'aNetworkTier'
---
--- * 'aStatus'
---
--- * 'aUsers'
---
--- * 'aKind'
---
--- * 'aIPVersion'
---
--- * 'aNetwork'
---
--- * 'aAddress'
---
--- * 'aPurpose'
---
--- * 'aSelfLink'
---
--- * 'aName'
---
--- * 'aCreationTimestamp'
---
--- * 'aSubnetwork'
---
--- * 'aId'
---
--- * 'aRegion'
---
--- * 'aDescription'
---
--- * 'aAddressType'
-address
-    :: Address
-address =
-  Address'
-    { _aPrefixLength = Nothing
-    , _aNetworkTier = Nothing
-    , _aStatus = Nothing
-    , _aUsers = Nothing
-    , _aKind = "compute#address"
-    , _aIPVersion = Nothing
-    , _aNetwork = Nothing
-    , _aAddress = Nothing
-    , _aPurpose = Nothing
-    , _aSelfLink = Nothing
-    , _aName = Nothing
-    , _aCreationTimestamp = Nothing
-    , _aSubnetwork = Nothing
-    , _aId = Nothing
-    , _aRegion = Nothing
-    , _aDescription = Nothing
-    , _aAddressType = Nothing
-    }
-
-
--- | The prefix length if the resource reprensents an IP range.
-aPrefixLength :: Lens' Address (Maybe Int32)
-aPrefixLength
-  = lens _aPrefixLength
-      (\ s a -> s{_aPrefixLength = a})
-      . mapping _Coerce
-
--- | This signifies the networking tier used for configuring this Address and
--- can only take the following values: PREMIUM, STANDARD. Global forwarding
--- rules can only be Premium Tier. Regional forwarding rules can be either
--- Premium or Standard Tier. Standard Tier addresses applied to regional
--- forwarding rules can be used with any external load balancer. Regional
--- forwarding rules in Premium Tier can only be used with a Network load
--- balancer. If this field is not specified, it is assumed to be PREMIUM.
-aNetworkTier :: Lens' Address (Maybe AddressNetworkTier)
-aNetworkTier
-  = lens _aNetworkTier (\ s a -> s{_aNetworkTier = a})
-
--- | [Output Only] The status of the address, which can be one of RESERVING,
--- RESERVED, or IN_USE. An address that is RESERVING is currently in the
--- process of being reserved. A RESERVED address is currently reserved and
--- available to use. An IN_USE address is currently being used by another
--- resource and is not available.
-aStatus :: Lens' Address (Maybe AddressStatus)
-aStatus = lens _aStatus (\ s a -> s{_aStatus = a})
-
--- | [Output Only] The URLs of the resources that are using this address.
-aUsers :: Lens' Address [Text]
-aUsers
-  = lens _aUsers (\ s a -> s{_aUsers = a}) . _Default .
-      _Coerce
-
--- | [Output Only] Type of the resource. Always compute#address for
--- addresses.
-aKind :: Lens' Address Text
-aKind = lens _aKind (\ s a -> s{_aKind = a})
-
--- | The IP Version that will be used by this address. Valid options are IPV4
--- or IPV6. This can only be specified for a global address.
-aIPVersion :: Lens' Address (Maybe AddressIPVersion)
-aIPVersion
-  = lens _aIPVersion (\ s a -> s{_aIPVersion = a})
-
--- | The URL of the network in which to reserve the address. This field can
--- only be used with INTERNAL type with VPC_PEERING purpose.
-aNetwork :: Lens' Address (Maybe Text)
-aNetwork = lens _aNetwork (\ s a -> s{_aNetwork = a})
-
--- | The static IP address represented by this resource.
-aAddress :: Lens' Address (Maybe Text)
-aAddress = lens _aAddress (\ s a -> s{_aAddress = a})
-
--- | The purpose of resource, only used with INTERNAL type.
-aPurpose :: Lens' Address (Maybe AddressPurpose)
-aPurpose = lens _aPurpose (\ s a -> s{_aPurpose = a})
-
--- | [Output Only] Server-defined URL for the resource.
-aSelfLink :: Lens' Address (Maybe Text)
-aSelfLink
-  = lens _aSelfLink (\ s a -> s{_aSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-aName :: Lens' Address (Maybe Text)
-aName = lens _aName (\ s a -> s{_aName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-aCreationTimestamp :: Lens' Address (Maybe Text)
-aCreationTimestamp
-  = lens _aCreationTimestamp
-      (\ s a -> s{_aCreationTimestamp = a})
-
--- | The URL of the subnetwork in which to reserve the address. If an IP
--- address is specified, it must be within the subnetwork\'s IP range. This
--- field can only be used with INTERNAL type with
--- GCE_ENDPOINT\/DNS_RESOLVER purposes.
-aSubnetwork :: Lens' Address (Maybe Text)
-aSubnetwork
-  = lens _aSubnetwork (\ s a -> s{_aSubnetwork = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-aId :: Lens' Address (Maybe Word64)
-aId
-  = lens _aId (\ s a -> s{_aId = a}) . mapping _Coerce
-
--- | [Output Only] URL of the region where the regional address resides. This
--- field is not applicable to global addresses. You must specify this field
--- as part of the HTTP request URL. You cannot set this field in the
--- request body.
-aRegion :: Lens' Address (Maybe Text)
-aRegion = lens _aRegion (\ s a -> s{_aRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-aDescription :: Lens' Address (Maybe Text)
-aDescription
-  = lens _aDescription (\ s a -> s{_aDescription = a})
-
--- | The type of address to reserve, either INTERNAL or EXTERNAL. If
--- unspecified, defaults to EXTERNAL.
-aAddressType :: Lens' Address (Maybe AddressAddressType)
-aAddressType
-  = lens _aAddressType (\ s a -> s{_aAddressType = a})
-
-instance FromJSON Address where
-        parseJSON
-          = withObject "Address"
-              (\ o ->
-                 Address' <$>
-                   (o .:? "prefixLength") <*> (o .:? "networkTier") <*>
-                     (o .:? "status")
-                     <*> (o .:? "users" .!= mempty)
-                     <*> (o .:? "kind" .!= "compute#address")
-                     <*> (o .:? "ipVersion")
-                     <*> (o .:? "network")
-                     <*> (o .:? "address")
-                     <*> (o .:? "purpose")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "subnetwork")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "addressType"))
-
-instance ToJSON Address where
-        toJSON Address'{..}
-          = object
-              (catMaybes
-                 [("prefixLength" .=) <$> _aPrefixLength,
-                  ("networkTier" .=) <$> _aNetworkTier,
-                  ("status" .=) <$> _aStatus, ("users" .=) <$> _aUsers,
-                  Just ("kind" .= _aKind),
-                  ("ipVersion" .=) <$> _aIPVersion,
-                  ("network" .=) <$> _aNetwork,
-                  ("address" .=) <$> _aAddress,
-                  ("purpose" .=) <$> _aPurpose,
-                  ("selfLink" .=) <$> _aSelfLink,
-                  ("name" .=) <$> _aName,
-                  ("creationTimestamp" .=) <$> _aCreationTimestamp,
-                  ("subnetwork" .=) <$> _aSubnetwork,
-                  ("id" .=) <$> _aId, ("region" .=) <$> _aRegion,
-                  ("description" .=) <$> _aDescription,
-                  ("addressType" .=) <$> _aAddressType])
-
--- | A list of NodeGroupsScopedList resources.
---
--- /See:/ 'nodeGroupAggregatedListItems' smart constructor.
-newtype NodeGroupAggregatedListItems =
-  NodeGroupAggregatedListItems'
-    { _ngaliAddtional :: HashMap Text NodeGroupsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngaliAddtional'
-nodeGroupAggregatedListItems
-    :: HashMap Text NodeGroupsScopedList -- ^ 'ngaliAddtional'
-    -> NodeGroupAggregatedListItems
-nodeGroupAggregatedListItems pNgaliAddtional_ =
-  NodeGroupAggregatedListItems' {_ngaliAddtional = _Coerce # pNgaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of node groups.
-ngaliAddtional :: Lens' NodeGroupAggregatedListItems (HashMap Text NodeGroupsScopedList)
-ngaliAddtional
-  = lens _ngaliAddtional
-      (\ s a -> s{_ngaliAddtional = a})
-      . _Coerce
-
-instance FromJSON NodeGroupAggregatedListItems where
-        parseJSON
-          = withObject "NodeGroupAggregatedListItems"
-              (\ o ->
-                 NodeGroupAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON NodeGroupAggregatedListItems where
-        toJSON = toJSON . _ngaliAddtional
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceGroupListWarning' smart constructor.
-data InstanceGroupListWarning =
-  InstanceGroupListWarning'
-    { _iglwData    :: !(Maybe [InstanceGroupListWarningDataItem])
-    , _iglwCode    :: !(Maybe InstanceGroupListWarningCode)
-    , _iglwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iglwData'
---
--- * 'iglwCode'
---
--- * 'iglwMessage'
-instanceGroupListWarning
-    :: InstanceGroupListWarning
-instanceGroupListWarning =
-  InstanceGroupListWarning'
-    {_iglwData = Nothing, _iglwCode = Nothing, _iglwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-iglwData :: Lens' InstanceGroupListWarning [InstanceGroupListWarningDataItem]
-iglwData
-  = lens _iglwData (\ s a -> s{_iglwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-iglwCode :: Lens' InstanceGroupListWarning (Maybe InstanceGroupListWarningCode)
-iglwCode = lens _iglwCode (\ s a -> s{_iglwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-iglwMessage :: Lens' InstanceGroupListWarning (Maybe Text)
-iglwMessage
-  = lens _iglwMessage (\ s a -> s{_iglwMessage = a})
-
-instance FromJSON InstanceGroupListWarning where
-        parseJSON
-          = withObject "InstanceGroupListWarning"
-              (\ o ->
-                 InstanceGroupListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceGroupListWarning where
-        toJSON InstanceGroupListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _iglwData,
-                  ("code" .=) <$> _iglwCode,
-                  ("message" .=) <$> _iglwMessage])
-
--- | Labels to apply to this disk. These can be later modified by the
--- disks.setLabels method. This field is only applicable for persistent
--- disks.
---
--- /See:/ 'attachedDiskInitializeParamsLabels' smart constructor.
-newtype AttachedDiskInitializeParamsLabels =
-  AttachedDiskInitializeParamsLabels'
-    { _adiplAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AttachedDiskInitializeParamsLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adiplAddtional'
-attachedDiskInitializeParamsLabels
-    :: HashMap Text Text -- ^ 'adiplAddtional'
-    -> AttachedDiskInitializeParamsLabels
-attachedDiskInitializeParamsLabels pAdiplAddtional_ =
-  AttachedDiskInitializeParamsLabels'
-    {_adiplAddtional = _Coerce # pAdiplAddtional_}
-
-
-adiplAddtional :: Lens' AttachedDiskInitializeParamsLabels (HashMap Text Text)
-adiplAddtional
-  = lens _adiplAddtional
-      (\ s a -> s{_adiplAddtional = a})
-      . _Coerce
-
-instance FromJSON AttachedDiskInitializeParamsLabels
-         where
-        parseJSON
-          = withObject "AttachedDiskInitializeParamsLabels"
-              (\ o ->
-                 AttachedDiskInitializeParamsLabels' <$>
-                   (parseJSONObject o))
-
-instance ToJSON AttachedDiskInitializeParamsLabels
-         where
-        toJSON = toJSON . _adiplAddtional
-
--- | A Zone resource. (== resource_for beta.zones ==) (== resource_for
--- v1.zones ==) Next ID: 17
---
--- /See:/ 'zone' smart constructor.
-data Zone =
-  Zone'
-    { _zStatus                :: !(Maybe ZoneStatus)
-    , _zKind                  :: !Text
-    , _zSelfLink              :: !(Maybe Text)
-    , _zName                  :: !(Maybe Text)
-    , _zCreationTimestamp     :: !(Maybe Text)
-    , _zId                    :: !(Maybe (Textual Word64))
-    , _zRegion                :: !(Maybe Text)
-    , _zAvailableCPUPlatforms :: !(Maybe [Text])
-    , _zDescription           :: !(Maybe Text)
-    , _zDeprecated            :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Zone' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zStatus'
---
--- * 'zKind'
---
--- * 'zSelfLink'
---
--- * 'zName'
---
--- * 'zCreationTimestamp'
---
--- * 'zId'
---
--- * 'zRegion'
---
--- * 'zAvailableCPUPlatforms'
---
--- * 'zDescription'
---
--- * 'zDeprecated'
-zone
-    :: Zone
-zone =
-  Zone'
-    { _zStatus = Nothing
-    , _zKind = "compute#zone"
-    , _zSelfLink = Nothing
-    , _zName = Nothing
-    , _zCreationTimestamp = Nothing
-    , _zId = Nothing
-    , _zRegion = Nothing
-    , _zAvailableCPUPlatforms = Nothing
-    , _zDescription = Nothing
-    , _zDeprecated = Nothing
-    }
-
-
--- | [Output Only] Status of the zone, either UP or DOWN.
-zStatus :: Lens' Zone (Maybe ZoneStatus)
-zStatus = lens _zStatus (\ s a -> s{_zStatus = a})
-
--- | [Output Only] Type of the resource. Always compute#zone for zones.
-zKind :: Lens' Zone Text
-zKind = lens _zKind (\ s a -> s{_zKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-zSelfLink :: Lens' Zone (Maybe Text)
-zSelfLink
-  = lens _zSelfLink (\ s a -> s{_zSelfLink = a})
-
--- | [Output Only] Name of the resource.
-zName :: Lens' Zone (Maybe Text)
-zName = lens _zName (\ s a -> s{_zName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-zCreationTimestamp :: Lens' Zone (Maybe Text)
-zCreationTimestamp
-  = lens _zCreationTimestamp
-      (\ s a -> s{_zCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-zId :: Lens' Zone (Maybe Word64)
-zId
-  = lens _zId (\ s a -> s{_zId = a}) . mapping _Coerce
-
--- | [Output Only] Full URL reference to the region which hosts the zone.
-zRegion :: Lens' Zone (Maybe Text)
-zRegion = lens _zRegion (\ s a -> s{_zRegion = a})
-
--- | [Output Only] Available cpu\/platform selections for the zone.
-zAvailableCPUPlatforms :: Lens' Zone [Text]
-zAvailableCPUPlatforms
-  = lens _zAvailableCPUPlatforms
-      (\ s a -> s{_zAvailableCPUPlatforms = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Textual description of the resource.
-zDescription :: Lens' Zone (Maybe Text)
-zDescription
-  = lens _zDescription (\ s a -> s{_zDescription = a})
-
--- | [Output Only] The deprecation status associated with this zone.
-zDeprecated :: Lens' Zone (Maybe DeprecationStatus)
-zDeprecated
-  = lens _zDeprecated (\ s a -> s{_zDeprecated = a})
-
-instance FromJSON Zone where
-        parseJSON
-          = withObject "Zone"
-              (\ o ->
-                 Zone' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "availableCpuPlatforms" .!= mempty)
-                     <*> (o .:? "description")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON Zone where
-        toJSON Zone'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _zStatus, Just ("kind" .= _zKind),
-                  ("selfLink" .=) <$> _zSelfLink,
-                  ("name" .=) <$> _zName,
-                  ("creationTimestamp" .=) <$> _zCreationTimestamp,
-                  ("id" .=) <$> _zId, ("region" .=) <$> _zRegion,
-                  ("availableCpuPlatforms" .=) <$>
-                    _zAvailableCPUPlatforms,
-                  ("description" .=) <$> _zDescription,
-                  ("deprecated" .=) <$> _zDeprecated])
-
---
--- /See:/ 'routerBGP' smart constructor.
-data RouterBGP =
-  RouterBGP'
-    { _rbASN                :: !(Maybe (Textual Word32))
-    , _rbAdvertiseMode      :: !(Maybe RouterBGPAdvertiseMode)
-    , _rbAdvertisedGroups   :: !(Maybe [RouterBGPAdvertisedGroupsItem])
-    , _rbAdvertisedIPRanges :: !(Maybe [RouterAdvertisedIPRange])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterBGP' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbASN'
---
--- * 'rbAdvertiseMode'
---
--- * 'rbAdvertisedGroups'
---
--- * 'rbAdvertisedIPRanges'
-routerBGP
-    :: RouterBGP
-routerBGP =
-  RouterBGP'
-    { _rbASN = Nothing
-    , _rbAdvertiseMode = Nothing
-    , _rbAdvertisedGroups = Nothing
-    , _rbAdvertisedIPRanges = Nothing
-    }
-
-
--- | Local BGP Autonomous System Number (ASN). Must be an RFC6996 private
--- ASN, either 16-bit or 32-bit. The value will be fixed for this router
--- resource. All VPN tunnels that link to this router will have the same
--- local ASN.
-rbASN :: Lens' RouterBGP (Maybe Word32)
-rbASN
-  = lens _rbASN (\ s a -> s{_rbASN = a}) .
-      mapping _Coerce
-
--- | User-specified flag to indicate which mode to use for advertisement.
-rbAdvertiseMode :: Lens' RouterBGP (Maybe RouterBGPAdvertiseMode)
-rbAdvertiseMode
-  = lens _rbAdvertiseMode
-      (\ s a -> s{_rbAdvertiseMode = a})
-
--- | User-specified list of prefix groups to advertise in custom mode. This
--- field can only be populated if advertise_mode is CUSTOM and is
--- advertised to all peers of the router. These groups will be advertised
--- in addition to any specified prefixes. Leave this field blank to
--- advertise no custom groups.
-rbAdvertisedGroups :: Lens' RouterBGP [RouterBGPAdvertisedGroupsItem]
-rbAdvertisedGroups
-  = lens _rbAdvertisedGroups
-      (\ s a -> s{_rbAdvertisedGroups = a})
-      . _Default
-      . _Coerce
-
--- | User-specified list of individual IP ranges to advertise in custom mode.
--- This field can only be populated if advertise_mode is CUSTOM and is
--- advertised to all peers of the router. These IP ranges will be
--- advertised in addition to any specified groups. Leave this field blank
--- to advertise no custom IP ranges.
-rbAdvertisedIPRanges :: Lens' RouterBGP [RouterAdvertisedIPRange]
-rbAdvertisedIPRanges
-  = lens _rbAdvertisedIPRanges
-      (\ s a -> s{_rbAdvertisedIPRanges = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RouterBGP where
-        parseJSON
-          = withObject "RouterBGP"
-              (\ o ->
-                 RouterBGP' <$>
-                   (o .:? "asn") <*> (o .:? "advertiseMode") <*>
-                     (o .:? "advertisedGroups" .!= mempty)
-                     <*> (o .:? "advertisedIpRanges" .!= mempty))
-
-instance ToJSON RouterBGP where
-        toJSON RouterBGP'{..}
-          = object
-              (catMaybes
-                 [("asn" .=) <$> _rbASN,
-                  ("advertiseMode" .=) <$> _rbAdvertiseMode,
-                  ("advertisedGroups" .=) <$> _rbAdvertisedGroups,
-                  ("advertisedIpRanges" .=) <$> _rbAdvertisedIPRanges])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'firewallListWarning' smart constructor.
-data FirewallListWarning =
-  FirewallListWarning'
-    { _flwData    :: !(Maybe [FirewallListWarningDataItem])
-    , _flwCode    :: !(Maybe FirewallListWarningCode)
-    , _flwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flwData'
---
--- * 'flwCode'
---
--- * 'flwMessage'
-firewallListWarning
-    :: FirewallListWarning
-firewallListWarning =
-  FirewallListWarning'
-    {_flwData = Nothing, _flwCode = Nothing, _flwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-flwData :: Lens' FirewallListWarning [FirewallListWarningDataItem]
-flwData
-  = lens _flwData (\ s a -> s{_flwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-flwCode :: Lens' FirewallListWarning (Maybe FirewallListWarningCode)
-flwCode = lens _flwCode (\ s a -> s{_flwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-flwMessage :: Lens' FirewallListWarning (Maybe Text)
-flwMessage
-  = lens _flwMessage (\ s a -> s{_flwMessage = a})
-
-instance FromJSON FirewallListWarning where
-        parseJSON
-          = withObject "FirewallListWarning"
-              (\ o ->
-                 FirewallListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON FirewallListWarning where
-        toJSON FirewallListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _flwData, ("code" .=) <$> _flwCode,
-                  ("message" .=) <$> _flwMessage])
-
---
--- /See:/ 'backendServicesScopedList' smart constructor.
-data BackendServicesScopedList =
-  BackendServicesScopedList'
-    { _bsslWarning         :: !(Maybe BackendServicesScopedListWarning)
-    , _bsslBackendServices :: !(Maybe [BackendService])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsslWarning'
---
--- * 'bsslBackendServices'
-backendServicesScopedList
-    :: BackendServicesScopedList
-backendServicesScopedList =
-  BackendServicesScopedList'
-    {_bsslWarning = Nothing, _bsslBackendServices = Nothing}
-
-
--- | Informational warning which replaces the list of backend services when
--- the list is empty.
-bsslWarning :: Lens' BackendServicesScopedList (Maybe BackendServicesScopedListWarning)
-bsslWarning
-  = lens _bsslWarning (\ s a -> s{_bsslWarning = a})
-
--- | A list of BackendServices contained in this scope.
-bsslBackendServices :: Lens' BackendServicesScopedList [BackendService]
-bsslBackendServices
-  = lens _bsslBackendServices
-      (\ s a -> s{_bsslBackendServices = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON BackendServicesScopedList where
-        parseJSON
-          = withObject "BackendServicesScopedList"
-              (\ o ->
-                 BackendServicesScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "backendServices" .!= mempty))
-
-instance ToJSON BackendServicesScopedList where
-        toJSON BackendServicesScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _bsslWarning,
-                  ("backendServices" .=) <$> _bsslBackendServices])
-
---
--- /See:/ 'instanceGroupManagersRecreateInstancesRequest' smart constructor.
-newtype InstanceGroupManagersRecreateInstancesRequest =
-  InstanceGroupManagersRecreateInstancesRequest'
-    { _igmrirInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersRecreateInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmrirInstances'
-instanceGroupManagersRecreateInstancesRequest
-    :: InstanceGroupManagersRecreateInstancesRequest
-instanceGroupManagersRecreateInstancesRequest =
-  InstanceGroupManagersRecreateInstancesRequest' {_igmrirInstances = Nothing}
-
-
--- | The URLs of one or more instances to recreate. This can be a full URL or
--- a partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-igmrirInstances :: Lens' InstanceGroupManagersRecreateInstancesRequest [Text]
-igmrirInstances
-  = lens _igmrirInstances
-      (\ s a -> s{_igmrirInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagersRecreateInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersRecreateInstancesRequest"
-              (\ o ->
-                 InstanceGroupManagersRecreateInstancesRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           InstanceGroupManagersRecreateInstancesRequest
-         where
-        toJSON
-          InstanceGroupManagersRecreateInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _igmrirInstances])
-
---
--- /See:/ 'targetSSLProxiesSetSSLCertificatesRequest' smart constructor.
-newtype TargetSSLProxiesSetSSLCertificatesRequest =
-  TargetSSLProxiesSetSSLCertificatesRequest'
-    { _tspsscrSSLCertificates :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetSSLCertificatesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsscrSSLCertificates'
-targetSSLProxiesSetSSLCertificatesRequest
-    :: TargetSSLProxiesSetSSLCertificatesRequest
-targetSSLProxiesSetSSLCertificatesRequest =
-  TargetSSLProxiesSetSSLCertificatesRequest' {_tspsscrSSLCertificates = Nothing}
-
-
--- | New set of URLs to SslCertificate resources to associate with this
--- TargetSslProxy. Currently exactly one ssl certificate must be specified.
-tspsscrSSLCertificates :: Lens' TargetSSLProxiesSetSSLCertificatesRequest [Text]
-tspsscrSSLCertificates
-  = lens _tspsscrSSLCertificates
-      (\ s a -> s{_tspsscrSSLCertificates = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           TargetSSLProxiesSetSSLCertificatesRequest
-         where
-        parseJSON
-          = withObject
-              "TargetSSLProxiesSetSSLCertificatesRequest"
-              (\ o ->
-                 TargetSSLProxiesSetSSLCertificatesRequest' <$>
-                   (o .:? "sslCertificates" .!= mempty))
-
-instance ToJSON
-           TargetSSLProxiesSetSSLCertificatesRequest
-         where
-        toJSON TargetSSLProxiesSetSSLCertificatesRequest'{..}
-          = object
-              (catMaybes
-                 [("sslCertificates" .=) <$> _tspsscrSSLCertificates])
-
---
--- /See:/ 'healthStatusForNetworkEndpoint' smart constructor.
-data HealthStatusForNetworkEndpoint =
-  HealthStatusForNetworkEndpoint'
-    { _hsfneHealthCheck    :: !(Maybe HealthCheckReference)
-    , _hsfneForwardingRule :: !(Maybe ForwardingRuleReference)
-    , _hsfneHealthState    :: !(Maybe HealthStatusForNetworkEndpointHealthState)
-    , _hsfneBackendService :: !(Maybe BackendServiceReference)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthStatusForNetworkEndpoint' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hsfneHealthCheck'
---
--- * 'hsfneForwardingRule'
---
--- * 'hsfneHealthState'
---
--- * 'hsfneBackendService'
-healthStatusForNetworkEndpoint
-    :: HealthStatusForNetworkEndpoint
-healthStatusForNetworkEndpoint =
-  HealthStatusForNetworkEndpoint'
-    { _hsfneHealthCheck = Nothing
-    , _hsfneForwardingRule = Nothing
-    , _hsfneHealthState = Nothing
-    , _hsfneBackendService = Nothing
-    }
-
-
--- | URL of the health check associated with the health state of the network
--- endpoint.
-hsfneHealthCheck :: Lens' HealthStatusForNetworkEndpoint (Maybe HealthCheckReference)
-hsfneHealthCheck
-  = lens _hsfneHealthCheck
-      (\ s a -> s{_hsfneHealthCheck = a})
-
--- | URL of the forwarding rule associated with the health state of the
--- network endpoint.
-hsfneForwardingRule :: Lens' HealthStatusForNetworkEndpoint (Maybe ForwardingRuleReference)
-hsfneForwardingRule
-  = lens _hsfneForwardingRule
-      (\ s a -> s{_hsfneForwardingRule = a})
-
--- | Health state of the network endpoint determined based on the health
--- checks configured.
-hsfneHealthState :: Lens' HealthStatusForNetworkEndpoint (Maybe HealthStatusForNetworkEndpointHealthState)
-hsfneHealthState
-  = lens _hsfneHealthState
-      (\ s a -> s{_hsfneHealthState = a})
-
--- | URL of the backend service associated with the health state of the
--- network endpoint.
-hsfneBackendService :: Lens' HealthStatusForNetworkEndpoint (Maybe BackendServiceReference)
-hsfneBackendService
-  = lens _hsfneBackendService
-      (\ s a -> s{_hsfneBackendService = a})
-
-instance FromJSON HealthStatusForNetworkEndpoint
-         where
-        parseJSON
-          = withObject "HealthStatusForNetworkEndpoint"
-              (\ o ->
-                 HealthStatusForNetworkEndpoint' <$>
-                   (o .:? "healthCheck") <*> (o .:? "forwardingRule")
-                     <*> (o .:? "healthState")
-                     <*> (o .:? "backendService"))
-
-instance ToJSON HealthStatusForNetworkEndpoint where
-        toJSON HealthStatusForNetworkEndpoint'{..}
-          = object
-              (catMaybes
-                 [("healthCheck" .=) <$> _hsfneHealthCheck,
-                  ("forwardingRule" .=) <$> _hsfneForwardingRule,
-                  ("healthState" .=) <$> _hsfneHealthState,
-                  ("backendService" .=) <$> _hsfneBackendService])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'routerAggregatedListWarning' smart constructor.
-data RouterAggregatedListWarning =
-  RouterAggregatedListWarning'
-    { _rouData    :: !(Maybe [RouterAggregatedListWarningDataItem])
-    , _rouCode    :: !(Maybe RouterAggregatedListWarningCode)
-    , _rouMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rouData'
---
--- * 'rouCode'
---
--- * 'rouMessage'
-routerAggregatedListWarning
-    :: RouterAggregatedListWarning
-routerAggregatedListWarning =
-  RouterAggregatedListWarning'
-    {_rouData = Nothing, _rouCode = Nothing, _rouMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rouData :: Lens' RouterAggregatedListWarning [RouterAggregatedListWarningDataItem]
-rouData
-  = lens _rouData (\ s a -> s{_rouData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rouCode :: Lens' RouterAggregatedListWarning (Maybe RouterAggregatedListWarningCode)
-rouCode = lens _rouCode (\ s a -> s{_rouCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rouMessage :: Lens' RouterAggregatedListWarning (Maybe Text)
-rouMessage
-  = lens _rouMessage (\ s a -> s{_rouMessage = a})
-
-instance FromJSON RouterAggregatedListWarning where
-        parseJSON
-          = withObject "RouterAggregatedListWarning"
-              (\ o ->
-                 RouterAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RouterAggregatedListWarning where
-        toJSON RouterAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rouData, ("code" .=) <$> _rouCode,
-                  ("message" .=) <$> _rouMessage])
-
---
--- /See:/ 'instancesScopedList' smart constructor.
-data InstancesScopedList =
-  InstancesScopedList'
-    { _islWarning   :: !(Maybe InstancesScopedListWarning)
-    , _islInstances :: !(Maybe [Instance])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islWarning'
---
--- * 'islInstances'
-instancesScopedList
-    :: InstancesScopedList
-instancesScopedList =
-  InstancesScopedList' {_islWarning = Nothing, _islInstances = Nothing}
-
-
--- | [Output Only] Informational warning which replaces the list of instances
--- when the list is empty.
-islWarning :: Lens' InstancesScopedList (Maybe InstancesScopedListWarning)
-islWarning
-  = lens _islWarning (\ s a -> s{_islWarning = a})
-
--- | [Output Only] A list of instances contained in this scope.
-islInstances :: Lens' InstancesScopedList [Instance]
-islInstances
-  = lens _islInstances (\ s a -> s{_islInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstancesScopedList where
-        parseJSON
-          = withObject "InstancesScopedList"
-              (\ o ->
-                 InstancesScopedList' <$>
-                   (o .:? "warning") <*> (o .:? "instances" .!= mempty))
-
-instance ToJSON InstancesScopedList where
-        toJSON InstancesScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _islWarning,
-                  ("instances" .=) <$> _islInstances])
-
--- | A list of AcceleratorTypesScopedList resources.
---
--- /See:/ 'acceleratorTypeAggregatedListItems' smart constructor.
-newtype AcceleratorTypeAggregatedListItems =
-  AcceleratorTypeAggregatedListItems'
-    { _ataliAddtional :: HashMap Text AcceleratorTypesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ataliAddtional'
-acceleratorTypeAggregatedListItems
-    :: HashMap Text AcceleratorTypesScopedList -- ^ 'ataliAddtional'
-    -> AcceleratorTypeAggregatedListItems
-acceleratorTypeAggregatedListItems pAtaliAddtional_ =
-  AcceleratorTypeAggregatedListItems'
-    {_ataliAddtional = _Coerce # pAtaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of accelerator
--- types.
-ataliAddtional :: Lens' AcceleratorTypeAggregatedListItems (HashMap Text AcceleratorTypesScopedList)
-ataliAddtional
-  = lens _ataliAddtional
-      (\ s a -> s{_ataliAddtional = a})
-      . _Coerce
-
-instance FromJSON AcceleratorTypeAggregatedListItems
-         where
-        parseJSON
-          = withObject "AcceleratorTypeAggregatedListItems"
-              (\ o ->
-                 AcceleratorTypeAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON AcceleratorTypeAggregatedListItems
-         where
-        toJSON = toJSON . _ataliAddtional
-
---
--- /See:/ 'targetVPNGatewayAggregatedListWarningDataItem' smart constructor.
-data TargetVPNGatewayAggregatedListWarningDataItem =
-  TargetVPNGatewayAggregatedListWarningDataItem'
-    { _tvgalwdiValue :: !(Maybe Text)
-    , _tvgalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgalwdiValue'
---
--- * 'tvgalwdiKey'
-targetVPNGatewayAggregatedListWarningDataItem
-    :: TargetVPNGatewayAggregatedListWarningDataItem
-targetVPNGatewayAggregatedListWarningDataItem =
-  TargetVPNGatewayAggregatedListWarningDataItem'
-    {_tvgalwdiValue = Nothing, _tvgalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tvgalwdiValue :: Lens' TargetVPNGatewayAggregatedListWarningDataItem (Maybe Text)
-tvgalwdiValue
-  = lens _tvgalwdiValue
-      (\ s a -> s{_tvgalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tvgalwdiKey :: Lens' TargetVPNGatewayAggregatedListWarningDataItem (Maybe Text)
-tvgalwdiKey
-  = lens _tvgalwdiKey (\ s a -> s{_tvgalwdiKey = a})
-
-instance FromJSON
-           TargetVPNGatewayAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "TargetVPNGatewayAggregatedListWarningDataItem"
-              (\ o ->
-                 TargetVPNGatewayAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           TargetVPNGatewayAggregatedListWarningDataItem
-         where
-        toJSON
-          TargetVPNGatewayAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tvgalwdiValue,
-                  ("key" .=) <$> _tvgalwdiKey])
-
--- | A full or valid partial URL to a health check. For example, the
--- following are valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/beta\/projects\/project-id\/global\/httpHealthChecks\/health-check
--- - projects\/project-id\/global\/httpHealthChecks\/health-check -
--- global\/httpHealthChecks\/health-check
---
--- /See:/ 'healthCheckReference' smart constructor.
-newtype HealthCheckReference =
-  HealthCheckReference'
-    { _hcrHealthCheck :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthCheckReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcrHealthCheck'
-healthCheckReference
-    :: HealthCheckReference
-healthCheckReference = HealthCheckReference' {_hcrHealthCheck = Nothing}
-
-
-hcrHealthCheck :: Lens' HealthCheckReference (Maybe Text)
-hcrHealthCheck
-  = lens _hcrHealthCheck
-      (\ s a -> s{_hcrHealthCheck = a})
-
-instance FromJSON HealthCheckReference where
-        parseJSON
-          = withObject "HealthCheckReference"
-              (\ o ->
-                 HealthCheckReference' <$> (o .:? "healthCheck"))
-
-instance ToJSON HealthCheckReference where
-        toJSON HealthCheckReference'{..}
-          = object
-              (catMaybes [("healthCheck" .=) <$> _hcrHealthCheck])
-
--- | A list of TargetInstance resources.
---
--- /See:/ 'targetInstanceAggregatedListItems' smart constructor.
-newtype TargetInstanceAggregatedListItems =
-  TargetInstanceAggregatedListItems'
-    { _tialiAddtional :: HashMap Text TargetInstancesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tialiAddtional'
-targetInstanceAggregatedListItems
-    :: HashMap Text TargetInstancesScopedList -- ^ 'tialiAddtional'
-    -> TargetInstanceAggregatedListItems
-targetInstanceAggregatedListItems pTialiAddtional_ =
-  TargetInstanceAggregatedListItems'
-    {_tialiAddtional = _Coerce # pTialiAddtional_}
-
-
--- | Name of the scope containing this set of target instances.
-tialiAddtional :: Lens' TargetInstanceAggregatedListItems (HashMap Text TargetInstancesScopedList)
-tialiAddtional
-  = lens _tialiAddtional
-      (\ s a -> s{_tialiAddtional = a})
-      . _Coerce
-
-instance FromJSON TargetInstanceAggregatedListItems
-         where
-        parseJSON
-          = withObject "TargetInstanceAggregatedListItems"
-              (\ o ->
-                 TargetInstanceAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON TargetInstanceAggregatedListItems
-         where
-        toJSON = toJSON . _tialiAddtional
-
---
--- /See:/ 'targetHTTPSProxiesSetQuicOverrideRequest' smart constructor.
-newtype TargetHTTPSProxiesSetQuicOverrideRequest =
-  TargetHTTPSProxiesSetQuicOverrideRequest'
-    { _thpsqorQuicOverride :: Maybe TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetQuicOverrideRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsqorQuicOverride'
-targetHTTPSProxiesSetQuicOverrideRequest
-    :: TargetHTTPSProxiesSetQuicOverrideRequest
-targetHTTPSProxiesSetQuicOverrideRequest =
-  TargetHTTPSProxiesSetQuicOverrideRequest' {_thpsqorQuicOverride = Nothing}
-
-
--- | QUIC policy for the TargetHttpsProxy resource.
-thpsqorQuicOverride :: Lens' TargetHTTPSProxiesSetQuicOverrideRequest (Maybe TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride)
-thpsqorQuicOverride
-  = lens _thpsqorQuicOverride
-      (\ s a -> s{_thpsqorQuicOverride = a})
-
-instance FromJSON
-           TargetHTTPSProxiesSetQuicOverrideRequest
-         where
-        parseJSON
-          = withObject
-              "TargetHTTPSProxiesSetQuicOverrideRequest"
-              (\ o ->
-                 TargetHTTPSProxiesSetQuicOverrideRequest' <$>
-                   (o .:? "quicOverride"))
-
-instance ToJSON
-           TargetHTTPSProxiesSetQuicOverrideRequest
-         where
-        toJSON TargetHTTPSProxiesSetQuicOverrideRequest'{..}
-          = object
-              (catMaybes
-                 [("quicOverride" .=) <$> _thpsqorQuicOverride])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetSSLProxyListWarning' smart constructor.
-data TargetSSLProxyListWarning =
-  TargetSSLProxyListWarning'
-    { _tsplwData    :: !(Maybe [TargetSSLProxyListWarningDataItem])
-    , _tsplwCode    :: !(Maybe TargetSSLProxyListWarningCode)
-    , _tsplwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxyListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsplwData'
---
--- * 'tsplwCode'
---
--- * 'tsplwMessage'
-targetSSLProxyListWarning
-    :: TargetSSLProxyListWarning
-targetSSLProxyListWarning =
-  TargetSSLProxyListWarning'
-    {_tsplwData = Nothing, _tsplwCode = Nothing, _tsplwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tsplwData :: Lens' TargetSSLProxyListWarning [TargetSSLProxyListWarningDataItem]
-tsplwData
-  = lens _tsplwData (\ s a -> s{_tsplwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tsplwCode :: Lens' TargetSSLProxyListWarning (Maybe TargetSSLProxyListWarningCode)
-tsplwCode
-  = lens _tsplwCode (\ s a -> s{_tsplwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tsplwMessage :: Lens' TargetSSLProxyListWarning (Maybe Text)
-tsplwMessage
-  = lens _tsplwMessage (\ s a -> s{_tsplwMessage = a})
-
-instance FromJSON TargetSSLProxyListWarning where
-        parseJSON
-          = withObject "TargetSSLProxyListWarning"
-              (\ o ->
-                 TargetSSLProxyListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetSSLProxyListWarning where
-        toJSON TargetSSLProxyListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tsplwData,
-                  ("code" .=) <$> _tsplwCode,
-                  ("message" .=) <$> _tsplwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceTemplateListWarning' smart constructor.
-data InstanceTemplateListWarning =
-  InstanceTemplateListWarning'
-    { _itlwData    :: !(Maybe [InstanceTemplateListWarningDataItem])
-    , _itlwCode    :: !(Maybe InstanceTemplateListWarningCode)
-    , _itlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplateListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itlwData'
---
--- * 'itlwCode'
---
--- * 'itlwMessage'
-instanceTemplateListWarning
-    :: InstanceTemplateListWarning
-instanceTemplateListWarning =
-  InstanceTemplateListWarning'
-    {_itlwData = Nothing, _itlwCode = Nothing, _itlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-itlwData :: Lens' InstanceTemplateListWarning [InstanceTemplateListWarningDataItem]
-itlwData
-  = lens _itlwData (\ s a -> s{_itlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-itlwCode :: Lens' InstanceTemplateListWarning (Maybe InstanceTemplateListWarningCode)
-itlwCode = lens _itlwCode (\ s a -> s{_itlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-itlwMessage :: Lens' InstanceTemplateListWarning (Maybe Text)
-itlwMessage
-  = lens _itlwMessage (\ s a -> s{_itlwMessage = a})
-
-instance FromJSON InstanceTemplateListWarning where
-        parseJSON
-          = withObject "InstanceTemplateListWarning"
-              (\ o ->
-                 InstanceTemplateListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceTemplateListWarning where
-        toJSON InstanceTemplateListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _itlwData,
-                  ("code" .=) <$> _itlwCode,
-                  ("message" .=) <$> _itlwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceListReferrersWarning' smart constructor.
-data InstanceListReferrersWarning =
-  InstanceListReferrersWarning'
-    { _ilrwData    :: !(Maybe [InstanceListReferrersWarningDataItem])
-    , _ilrwCode    :: !(Maybe InstanceListReferrersWarningCode)
-    , _ilrwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceListReferrersWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilrwData'
---
--- * 'ilrwCode'
---
--- * 'ilrwMessage'
-instanceListReferrersWarning
-    :: InstanceListReferrersWarning
-instanceListReferrersWarning =
-  InstanceListReferrersWarning'
-    {_ilrwData = Nothing, _ilrwCode = Nothing, _ilrwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ilrwData :: Lens' InstanceListReferrersWarning [InstanceListReferrersWarningDataItem]
-ilrwData
-  = lens _ilrwData (\ s a -> s{_ilrwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ilrwCode :: Lens' InstanceListReferrersWarning (Maybe InstanceListReferrersWarningCode)
-ilrwCode = lens _ilrwCode (\ s a -> s{_ilrwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ilrwMessage :: Lens' InstanceListReferrersWarning (Maybe Text)
-ilrwMessage
-  = lens _ilrwMessage (\ s a -> s{_ilrwMessage = a})
-
-instance FromJSON InstanceListReferrersWarning where
-        parseJSON
-          = withObject "InstanceListReferrersWarning"
-              (\ o ->
-                 InstanceListReferrersWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceListReferrersWarning where
-        toJSON InstanceListReferrersWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ilrwData,
-                  ("code" .=) <$> _ilrwCode,
-                  ("message" .=) <$> _ilrwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'routeListWarning' smart constructor.
-data RouteListWarning =
-  RouteListWarning'
-    { _rlwlData    :: !(Maybe [RouteListWarningDataItem])
-    , _rlwlCode    :: !(Maybe RouteListWarningCode)
-    , _rlwlMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouteListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlwlData'
---
--- * 'rlwlCode'
---
--- * 'rlwlMessage'
-routeListWarning
-    :: RouteListWarning
-routeListWarning =
-  RouteListWarning'
-    {_rlwlData = Nothing, _rlwlCode = Nothing, _rlwlMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rlwlData :: Lens' RouteListWarning [RouteListWarningDataItem]
-rlwlData
-  = lens _rlwlData (\ s a -> s{_rlwlData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rlwlCode :: Lens' RouteListWarning (Maybe RouteListWarningCode)
-rlwlCode = lens _rlwlCode (\ s a -> s{_rlwlCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rlwlMessage :: Lens' RouteListWarning (Maybe Text)
-rlwlMessage
-  = lens _rlwlMessage (\ s a -> s{_rlwlMessage = a})
-
-instance FromJSON RouteListWarning where
-        parseJSON
-          = withObject "RouteListWarning"
-              (\ o ->
-                 RouteListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RouteListWarning where
-        toJSON RouteListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rlwlData,
-                  ("code" .=) <$> _rlwlCode,
-                  ("message" .=) <$> _rlwlMessage])
-
---
--- /See:/ 'instanceGroupAggregatedList' smart constructor.
-data InstanceGroupAggregatedList =
-  InstanceGroupAggregatedList'
-    { _igalNextPageToken :: !(Maybe Text)
-    , _igalKind          :: !Text
-    , _igalItems         :: !(Maybe InstanceGroupAggregatedListItems)
-    , _igalSelfLink      :: !(Maybe Text)
-    , _igalWarning       :: !(Maybe InstanceGroupAggregatedListWarning)
-    , _igalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igalNextPageToken'
---
--- * 'igalKind'
---
--- * 'igalItems'
---
--- * 'igalSelfLink'
---
--- * 'igalWarning'
---
--- * 'igalId'
-instanceGroupAggregatedList
-    :: InstanceGroupAggregatedList
-instanceGroupAggregatedList =
-  InstanceGroupAggregatedList'
-    { _igalNextPageToken = Nothing
-    , _igalKind = "compute#instanceGroupAggregatedList"
-    , _igalItems = Nothing
-    , _igalSelfLink = Nothing
-    , _igalWarning = Nothing
-    , _igalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-igalNextPageToken :: Lens' InstanceGroupAggregatedList (Maybe Text)
-igalNextPageToken
-  = lens _igalNextPageToken
-      (\ s a -> s{_igalNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupAggregatedList for aggregated lists of instance
--- groups.
-igalKind :: Lens' InstanceGroupAggregatedList Text
-igalKind = lens _igalKind (\ s a -> s{_igalKind = a})
-
--- | A list of InstanceGroupsScopedList resources.
-igalItems :: Lens' InstanceGroupAggregatedList (Maybe InstanceGroupAggregatedListItems)
-igalItems
-  = lens _igalItems (\ s a -> s{_igalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-igalSelfLink :: Lens' InstanceGroupAggregatedList (Maybe Text)
-igalSelfLink
-  = lens _igalSelfLink (\ s a -> s{_igalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-igalWarning :: Lens' InstanceGroupAggregatedList (Maybe InstanceGroupAggregatedListWarning)
-igalWarning
-  = lens _igalWarning (\ s a -> s{_igalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-igalId :: Lens' InstanceGroupAggregatedList (Maybe Text)
-igalId = lens _igalId (\ s a -> s{_igalId = a})
-
-instance FromJSON InstanceGroupAggregatedList where
-        parseJSON
-          = withObject "InstanceGroupAggregatedList"
-              (\ o ->
-                 InstanceGroupAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#instanceGroupAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceGroupAggregatedList where
-        toJSON InstanceGroupAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _igalNextPageToken,
-                  Just ("kind" .= _igalKind),
-                  ("items" .=) <$> _igalItems,
-                  ("selfLink" .=) <$> _igalSelfLink,
-                  ("warning" .=) <$> _igalWarning,
-                  ("id" .=) <$> _igalId])
-
--- | Represents a Route resource. A route specifies how certain packets
--- should be handled by the network. Routes are associated with instances
--- by tags and the set of routes for a particular instance is called its
--- routing table. For each packet leaving an instance, the system searches
--- that instance\'s routing table for a single best matching route. Routes
--- match packets by destination IP address, preferring smaller or more
--- specific ranges over larger ones. If there is a tie, the system selects
--- the route with the smallest priority value. If there is still a tie, it
--- uses the layer three and four packet headers to select just one of the
--- remaining matching routes. The packet is then forwarded as specified by
--- the nextHop field of the winning route - either to another instance
--- destination, an instance gateway, or a Google Compute Engine-operated
--- gateway. Packets that do not match any route in the sending instance\'s
--- routing table are dropped. (== resource_for beta.routes ==) (==
--- resource_for v1.routes ==)
---
--- /See:/ 'route' smart constructor.
-data Route =
-  Route'
-    { _rrNextHopPeering    :: !(Maybe Text)
-    , _rrPriority          :: !(Maybe (Textual Word32))
-    , _rrKind              :: !Text
-    , _rrNextHopGateway    :: !(Maybe Text)
-    , _rrNextHopNetwork    :: !(Maybe Text)
-    , _rrNetwork           :: !(Maybe Text)
-    , _rrWarnings          :: !(Maybe [RouteWarningsItem])
-    , _rrNextHopIP         :: !(Maybe Text)
-    , _rrDestRange         :: !(Maybe Text)
-    , _rrSelfLink          :: !(Maybe Text)
-    , _rrName              :: !(Maybe Text)
-    , _rrCreationTimestamp :: !(Maybe Text)
-    , _rrId                :: !(Maybe (Textual Word64))
-    , _rrNextHopVPNTunnel  :: !(Maybe Text)
-    , _rrDescription       :: !(Maybe Text)
-    , _rrTags              :: !(Maybe [Text])
-    , _rrNextHopInstance   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Route' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrNextHopPeering'
---
--- * 'rrPriority'
---
--- * 'rrKind'
---
--- * 'rrNextHopGateway'
---
--- * 'rrNextHopNetwork'
---
--- * 'rrNetwork'
---
--- * 'rrWarnings'
---
--- * 'rrNextHopIP'
---
--- * 'rrDestRange'
---
--- * 'rrSelfLink'
---
--- * 'rrName'
---
--- * 'rrCreationTimestamp'
---
--- * 'rrId'
---
--- * 'rrNextHopVPNTunnel'
---
--- * 'rrDescription'
---
--- * 'rrTags'
---
--- * 'rrNextHopInstance'
-route
-    :: Route
-route =
-  Route'
-    { _rrNextHopPeering = Nothing
-    , _rrPriority = Nothing
-    , _rrKind = "compute#route"
-    , _rrNextHopGateway = Nothing
-    , _rrNextHopNetwork = Nothing
-    , _rrNetwork = Nothing
-    , _rrWarnings = Nothing
-    , _rrNextHopIP = Nothing
-    , _rrDestRange = Nothing
-    , _rrSelfLink = Nothing
-    , _rrName = Nothing
-    , _rrCreationTimestamp = Nothing
-    , _rrId = Nothing
-    , _rrNextHopVPNTunnel = Nothing
-    , _rrDescription = Nothing
-    , _rrTags = Nothing
-    , _rrNextHopInstance = Nothing
-    }
-
-
--- | [Output Only] The network peering name that should handle matching
--- packets, which should conform to RFC1035.
-rrNextHopPeering :: Lens' Route (Maybe Text)
-rrNextHopPeering
-  = lens _rrNextHopPeering
-      (\ s a -> s{_rrNextHopPeering = a})
-
--- | The priority of this route. Priority is used to break ties in cases
--- where there is more than one matching route of equal prefix length. In
--- the case of two routes with equal prefix length, the one with the
--- lowest-numbered priority value wins. Default value is 1000. Valid range
--- is 0 through 65535.
-rrPriority :: Lens' Route (Maybe Word32)
-rrPriority
-  = lens _rrPriority (\ s a -> s{_rrPriority = a}) .
-      mapping _Coerce
-
--- | [Output Only] Type of this resource. Always compute#routes for Route
--- resources.
-rrKind :: Lens' Route Text
-rrKind = lens _rrKind (\ s a -> s{_rrKind = a})
-
--- | The URL to a gateway that should handle matching packets. You can only
--- specify the internet gateway using a full or partial valid URL:
--- projects\/\/global\/gateways\/default-internet-gateway
-rrNextHopGateway :: Lens' Route (Maybe Text)
-rrNextHopGateway
-  = lens _rrNextHopGateway
-      (\ s a -> s{_rrNextHopGateway = a})
-
--- | The URL of the local network if it should handle matching packets.
-rrNextHopNetwork :: Lens' Route (Maybe Text)
-rrNextHopNetwork
-  = lens _rrNextHopNetwork
-      (\ s a -> s{_rrNextHopNetwork = a})
-
--- | Fully-qualified URL of the network that this route applies to.
-rrNetwork :: Lens' Route (Maybe Text)
-rrNetwork
-  = lens _rrNetwork (\ s a -> s{_rrNetwork = a})
-
--- | [Output Only] If potential misconfigurations are detected for this
--- route, this field will be populated with warning messages.
-rrWarnings :: Lens' Route [RouteWarningsItem]
-rrWarnings
-  = lens _rrWarnings (\ s a -> s{_rrWarnings = a}) .
-      _Default
-      . _Coerce
-
--- | The network IP address of an instance that should handle matching
--- packets. Only IPv4 is supported.
-rrNextHopIP :: Lens' Route (Maybe Text)
-rrNextHopIP
-  = lens _rrNextHopIP (\ s a -> s{_rrNextHopIP = a})
-
--- | The destination range of outgoing packets that this route applies to.
--- Only IPv4 is supported.
-rrDestRange :: Lens' Route (Maybe Text)
-rrDestRange
-  = lens _rrDestRange (\ s a -> s{_rrDestRange = a})
-
--- | [Output Only] Server-defined fully-qualified URL for this resource.
-rrSelfLink :: Lens' Route (Maybe Text)
-rrSelfLink
-  = lens _rrSelfLink (\ s a -> s{_rrSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-rrName :: Lens' Route (Maybe Text)
-rrName = lens _rrName (\ s a -> s{_rrName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-rrCreationTimestamp :: Lens' Route (Maybe Text)
-rrCreationTimestamp
-  = lens _rrCreationTimestamp
-      (\ s a -> s{_rrCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-rrId :: Lens' Route (Maybe Word64)
-rrId
-  = lens _rrId (\ s a -> s{_rrId = a}) .
-      mapping _Coerce
-
--- | The URL to a VpnTunnel that should handle matching packets.
-rrNextHopVPNTunnel :: Lens' Route (Maybe Text)
-rrNextHopVPNTunnel
-  = lens _rrNextHopVPNTunnel
-      (\ s a -> s{_rrNextHopVPNTunnel = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-rrDescription :: Lens' Route (Maybe Text)
-rrDescription
-  = lens _rrDescription
-      (\ s a -> s{_rrDescription = a})
-
--- | A list of instance tags to which this route applies.
-rrTags :: Lens' Route [Text]
-rrTags
-  = lens _rrTags (\ s a -> s{_rrTags = a}) . _Default .
-      _Coerce
-
--- | The URL to an instance that should handle matching packets. You can
--- specify this as a full or partial URL. For example:
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/
-rrNextHopInstance :: Lens' Route (Maybe Text)
-rrNextHopInstance
-  = lens _rrNextHopInstance
-      (\ s a -> s{_rrNextHopInstance = a})
-
-instance FromJSON Route where
-        parseJSON
-          = withObject "Route"
-              (\ o ->
-                 Route' <$>
-                   (o .:? "nextHopPeering") <*> (o .:? "priority") <*>
-                     (o .:? "kind" .!= "compute#route")
-                     <*> (o .:? "nextHopGateway")
-                     <*> (o .:? "nextHopNetwork")
-                     <*> (o .:? "network")
-                     <*> (o .:? "warnings" .!= mempty)
-                     <*> (o .:? "nextHopIp")
-                     <*> (o .:? "destRange")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "nextHopVpnTunnel")
-                     <*> (o .:? "description")
-                     <*> (o .:? "tags" .!= mempty)
-                     <*> (o .:? "nextHopInstance"))
-
-instance ToJSON Route where
-        toJSON Route'{..}
-          = object
-              (catMaybes
-                 [("nextHopPeering" .=) <$> _rrNextHopPeering,
-                  ("priority" .=) <$> _rrPriority,
-                  Just ("kind" .= _rrKind),
-                  ("nextHopGateway" .=) <$> _rrNextHopGateway,
-                  ("nextHopNetwork" .=) <$> _rrNextHopNetwork,
-                  ("network" .=) <$> _rrNetwork,
-                  ("warnings" .=) <$> _rrWarnings,
-                  ("nextHopIp" .=) <$> _rrNextHopIP,
-                  ("destRange" .=) <$> _rrDestRange,
-                  ("selfLink" .=) <$> _rrSelfLink,
-                  ("name" .=) <$> _rrName,
-                  ("creationTimestamp" .=) <$> _rrCreationTimestamp,
-                  ("id" .=) <$> _rrId,
-                  ("nextHopVpnTunnel" .=) <$> _rrNextHopVPNTunnel,
-                  ("description" .=) <$> _rrDescription,
-                  ("tags" .=) <$> _rrTags,
-                  ("nextHopInstance" .=) <$> _rrNextHopInstance])
-
---
--- /See:/ 'targetVPNGatewaysScopedListWarningDataItem' smart constructor.
-data TargetVPNGatewaysScopedListWarningDataItem =
-  TargetVPNGatewaysScopedListWarningDataItem'
-    { _tvgslwdiValue :: !(Maybe Text)
-    , _tvgslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgslwdiValue'
---
--- * 'tvgslwdiKey'
-targetVPNGatewaysScopedListWarningDataItem
-    :: TargetVPNGatewaysScopedListWarningDataItem
-targetVPNGatewaysScopedListWarningDataItem =
-  TargetVPNGatewaysScopedListWarningDataItem'
-    {_tvgslwdiValue = Nothing, _tvgslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tvgslwdiValue :: Lens' TargetVPNGatewaysScopedListWarningDataItem (Maybe Text)
-tvgslwdiValue
-  = lens _tvgslwdiValue
-      (\ s a -> s{_tvgslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tvgslwdiKey :: Lens' TargetVPNGatewaysScopedListWarningDataItem (Maybe Text)
-tvgslwdiKey
-  = lens _tvgslwdiKey (\ s a -> s{_tvgslwdiKey = a})
-
-instance FromJSON
-           TargetVPNGatewaysScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "TargetVPNGatewaysScopedListWarningDataItem"
-              (\ o ->
-                 TargetVPNGatewaysScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           TargetVPNGatewaysScopedListWarningDataItem
-         where
-        toJSON
-          TargetVPNGatewaysScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tvgslwdiValue,
-                  ("key" .=) <$> _tvgslwdiKey])
-
--- | Information about any potential InterconnectAttachments between an
--- Interconnect at a specific InterconnectLocation, and a specific Cloud
--- Region.
---
--- /See:/ 'interconnectLocationRegionInfo' smart constructor.
-data InterconnectLocationRegionInfo =
-  InterconnectLocationRegionInfo'
-    { _ilriLocationPresence :: !(Maybe InterconnectLocationRegionInfoLocationPresence)
-    , _ilriExpectedRttMs    :: !(Maybe (Textual Int64))
-    , _ilriRegion           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationRegionInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilriLocationPresence'
---
--- * 'ilriExpectedRttMs'
---
--- * 'ilriRegion'
-interconnectLocationRegionInfo
-    :: InterconnectLocationRegionInfo
-interconnectLocationRegionInfo =
-  InterconnectLocationRegionInfo'
-    { _ilriLocationPresence = Nothing
-    , _ilriExpectedRttMs = Nothing
-    , _ilriRegion = Nothing
-    }
-
-
--- | Identifies the network presence of this location.
-ilriLocationPresence :: Lens' InterconnectLocationRegionInfo (Maybe InterconnectLocationRegionInfoLocationPresence)
-ilriLocationPresence
-  = lens _ilriLocationPresence
-      (\ s a -> s{_ilriLocationPresence = a})
-
--- | Expected round-trip time in milliseconds, from this InterconnectLocation
--- to a VM in this region.
-ilriExpectedRttMs :: Lens' InterconnectLocationRegionInfo (Maybe Int64)
-ilriExpectedRttMs
-  = lens _ilriExpectedRttMs
-      (\ s a -> s{_ilriExpectedRttMs = a})
-      . mapping _Coerce
-
--- | URL for the region of this location.
-ilriRegion :: Lens' InterconnectLocationRegionInfo (Maybe Text)
-ilriRegion
-  = lens _ilriRegion (\ s a -> s{_ilriRegion = a})
-
-instance FromJSON InterconnectLocationRegionInfo
-         where
-        parseJSON
-          = withObject "InterconnectLocationRegionInfo"
-              (\ o ->
-                 InterconnectLocationRegionInfo' <$>
-                   (o .:? "locationPresence") <*>
-                     (o .:? "expectedRttMs")
-                     <*> (o .:? "region"))
-
-instance ToJSON InterconnectLocationRegionInfo where
-        toJSON InterconnectLocationRegionInfo'{..}
-          = object
-              (catMaybes
-                 [("locationPresence" .=) <$> _ilriLocationPresence,
-                  ("expectedRttMs" .=) <$> _ilriExpectedRttMs,
-                  ("region" .=) <$> _ilriRegion])
-
---
--- /See:/ 'targetHTTPSProxiesSetSSLCertificatesRequest' smart constructor.
-newtype TargetHTTPSProxiesSetSSLCertificatesRequest =
-  TargetHTTPSProxiesSetSSLCertificatesRequest'
-    { _thpsscrSSLCertificates :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetSSLCertificatesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsscrSSLCertificates'
-targetHTTPSProxiesSetSSLCertificatesRequest
-    :: TargetHTTPSProxiesSetSSLCertificatesRequest
-targetHTTPSProxiesSetSSLCertificatesRequest =
-  TargetHTTPSProxiesSetSSLCertificatesRequest'
-    {_thpsscrSSLCertificates = Nothing}
-
-
--- | New set of SslCertificate resources to associate with this
--- TargetHttpsProxy resource. Currently exactly one SslCertificate resource
--- must be specified.
-thpsscrSSLCertificates :: Lens' TargetHTTPSProxiesSetSSLCertificatesRequest [Text]
-thpsscrSSLCertificates
-  = lens _thpsscrSSLCertificates
-      (\ s a -> s{_thpsscrSSLCertificates = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           TargetHTTPSProxiesSetSSLCertificatesRequest
-         where
-        parseJSON
-          = withObject
-              "TargetHTTPSProxiesSetSSLCertificatesRequest"
-              (\ o ->
-                 TargetHTTPSProxiesSetSSLCertificatesRequest' <$>
-                   (o .:? "sslCertificates" .!= mempty))
-
-instance ToJSON
-           TargetHTTPSProxiesSetSSLCertificatesRequest
-         where
-        toJSON
-          TargetHTTPSProxiesSetSSLCertificatesRequest'{..}
-          = object
-              (catMaybes
-                 [("sslCertificates" .=) <$> _thpsscrSSLCertificates])
-
--- | An Instance Template resource. (== resource_for beta.instanceTemplates
--- ==) (== resource_for v1.instanceTemplates ==)
---
--- /See:/ 'instanceTemplate' smart constructor.
-data InstanceTemplate =
-  InstanceTemplate'
-    { _itSourceInstance       :: !(Maybe Text)
-    , _itKind                 :: !Text
-    , _itSelfLink             :: !(Maybe Text)
-    , _itName                 :: !(Maybe Text)
-    , _itCreationTimestamp    :: !(Maybe Text)
-    , _itId                   :: !(Maybe (Textual Word64))
-    , _itSourceInstanceParams :: !(Maybe SourceInstanceParams)
-    , _itDescription          :: !(Maybe Text)
-    , _itProperties           :: !(Maybe InstanceProperties)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itSourceInstance'
---
--- * 'itKind'
---
--- * 'itSelfLink'
---
--- * 'itName'
---
--- * 'itCreationTimestamp'
---
--- * 'itId'
---
--- * 'itSourceInstanceParams'
---
--- * 'itDescription'
---
--- * 'itProperties'
-instanceTemplate
-    :: InstanceTemplate
-instanceTemplate =
-  InstanceTemplate'
-    { _itSourceInstance = Nothing
-    , _itKind = "compute#instanceTemplate"
-    , _itSelfLink = Nothing
-    , _itName = Nothing
-    , _itCreationTimestamp = Nothing
-    , _itId = Nothing
-    , _itSourceInstanceParams = Nothing
-    , _itDescription = Nothing
-    , _itProperties = Nothing
-    }
-
-
--- | The source instance used to create the template. You can provide this as
--- a partial or full URL to the resource. For example, the following are
--- valid values: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/instance
--- - projects\/project\/zones\/zone\/instances\/instance
-itSourceInstance :: Lens' InstanceTemplate (Maybe Text)
-itSourceInstance
-  = lens _itSourceInstance
-      (\ s a -> s{_itSourceInstance = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceTemplate for instance templates.
-itKind :: Lens' InstanceTemplate Text
-itKind = lens _itKind (\ s a -> s{_itKind = a})
-
--- | [Output Only] The URL for this instance template. The server defines
--- this URL.
-itSelfLink :: Lens' InstanceTemplate (Maybe Text)
-itSelfLink
-  = lens _itSelfLink (\ s a -> s{_itSelfLink = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-itName :: Lens' InstanceTemplate (Maybe Text)
-itName = lens _itName (\ s a -> s{_itName = a})
-
--- | [Output Only] The creation timestamp for this instance template in
--- RFC3339 text format.
-itCreationTimestamp :: Lens' InstanceTemplate (Maybe Text)
-itCreationTimestamp
-  = lens _itCreationTimestamp
-      (\ s a -> s{_itCreationTimestamp = a})
-
--- | [Output Only] A unique identifier for this instance template. The server
--- defines this identifier.
-itId :: Lens' InstanceTemplate (Maybe Word64)
-itId
-  = lens _itId (\ s a -> s{_itId = a}) .
-      mapping _Coerce
-
--- | The source instance params to use to create this instance template.
-itSourceInstanceParams :: Lens' InstanceTemplate (Maybe SourceInstanceParams)
-itSourceInstanceParams
-  = lens _itSourceInstanceParams
-      (\ s a -> s{_itSourceInstanceParams = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-itDescription :: Lens' InstanceTemplate (Maybe Text)
-itDescription
-  = lens _itDescription
-      (\ s a -> s{_itDescription = a})
-
--- | The instance properties for this instance template.
-itProperties :: Lens' InstanceTemplate (Maybe InstanceProperties)
-itProperties
-  = lens _itProperties (\ s a -> s{_itProperties = a})
-
-instance FromJSON InstanceTemplate where
-        parseJSON
-          = withObject "InstanceTemplate"
-              (\ o ->
-                 InstanceTemplate' <$>
-                   (o .:? "sourceInstance") <*>
-                     (o .:? "kind" .!= "compute#instanceTemplate")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "sourceInstanceParams")
-                     <*> (o .:? "description")
-                     <*> (o .:? "properties"))
-
-instance ToJSON InstanceTemplate where
-        toJSON InstanceTemplate'{..}
-          = object
-              (catMaybes
-                 [("sourceInstance" .=) <$> _itSourceInstance,
-                  Just ("kind" .= _itKind),
-                  ("selfLink" .=) <$> _itSelfLink,
-                  ("name" .=) <$> _itName,
-                  ("creationTimestamp" .=) <$> _itCreationTimestamp,
-                  ("id" .=) <$> _itId,
-                  ("sourceInstanceParams" .=) <$>
-                    _itSourceInstanceParams,
-                  ("description" .=) <$> _itDescription,
-                  ("properties" .=) <$> _itProperties])
-
--- | Service resource (a.k.a service project) ID.
---
--- /See:/ 'xpnResourceId' smart constructor.
-data XpnResourceId =
-  XpnResourceId'
-    { _xriId   :: !(Maybe Text)
-    , _xriType :: !(Maybe XpnResourceIdType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'XpnResourceId' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'xriId'
---
--- * 'xriType'
-xpnResourceId
-    :: XpnResourceId
-xpnResourceId = XpnResourceId' {_xriId = Nothing, _xriType = Nothing}
-
-
--- | The ID of the service resource. In the case of projects, this field
--- supports project id (e.g., my-project-123) and project number (e.g.
--- 12345678).
-xriId :: Lens' XpnResourceId (Maybe Text)
-xriId = lens _xriId (\ s a -> s{_xriId = a})
-
--- | The type of the service resource.
-xriType :: Lens' XpnResourceId (Maybe XpnResourceIdType)
-xriType = lens _xriType (\ s a -> s{_xriType = a})
-
-instance FromJSON XpnResourceId where
-        parseJSON
-          = withObject "XpnResourceId"
-              (\ o ->
-                 XpnResourceId' <$> (o .:? "id") <*> (o .:? "type"))
-
-instance ToJSON XpnResourceId where
-        toJSON XpnResourceId'{..}
-          = object
-              (catMaybes
-                 [("id" .=) <$> _xriId, ("type" .=) <$> _xriType])
-
--- | Contains a list of Router resources.
---
--- /See:/ 'routerList' smart constructor.
-data RouterList =
-  RouterList'
-    { _rllNextPageToken :: !(Maybe Text)
-    , _rllKind          :: !Text
-    , _rllItems         :: !(Maybe [Router])
-    , _rllSelfLink      :: !(Maybe Text)
-    , _rllWarning       :: !(Maybe RouterListWarning)
-    , _rllId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rllNextPageToken'
---
--- * 'rllKind'
---
--- * 'rllItems'
---
--- * 'rllSelfLink'
---
--- * 'rllWarning'
---
--- * 'rllId'
-routerList
-    :: RouterList
-routerList =
-  RouterList'
-    { _rllNextPageToken = Nothing
-    , _rllKind = "compute#routerList"
-    , _rllItems = Nothing
-    , _rllSelfLink = Nothing
-    , _rllWarning = Nothing
-    , _rllId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rllNextPageToken :: Lens' RouterList (Maybe Text)
-rllNextPageToken
-  = lens _rllNextPageToken
-      (\ s a -> s{_rllNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#router for routers.
-rllKind :: Lens' RouterList Text
-rllKind = lens _rllKind (\ s a -> s{_rllKind = a})
-
--- | A list of Router resources.
-rllItems :: Lens' RouterList [Router]
-rllItems
-  = lens _rllItems (\ s a -> s{_rllItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rllSelfLink :: Lens' RouterList (Maybe Text)
-rllSelfLink
-  = lens _rllSelfLink (\ s a -> s{_rllSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rllWarning :: Lens' RouterList (Maybe RouterListWarning)
-rllWarning
-  = lens _rllWarning (\ s a -> s{_rllWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rllId :: Lens' RouterList (Maybe Text)
-rllId = lens _rllId (\ s a -> s{_rllId = a})
-
-instance FromJSON RouterList where
-        parseJSON
-          = withObject "RouterList"
-              (\ o ->
-                 RouterList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#routerList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RouterList where
-        toJSON RouterList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rllNextPageToken,
-                  Just ("kind" .= _rllKind),
-                  ("items" .=) <$> _rllItems,
-                  ("selfLink" .=) <$> _rllSelfLink,
-                  ("warning" .=) <$> _rllWarning,
-                  ("id" .=) <$> _rllId])
-
--- | A TargetSslProxy resource. This resource defines an SSL proxy. (==
--- resource_for beta.targetSslProxies ==) (== resource_for
--- v1.targetSslProxies ==)
---
--- /See:/ 'targetSSLProxy' smart constructor.
-data TargetSSLProxy =
-  TargetSSLProxy'
-    { _tspSSLPolicy         :: !(Maybe Text)
-    , _tspSSLCertificates   :: !(Maybe [Text])
-    , _tspService           :: !(Maybe Text)
-    , _tspKind              :: !Text
-    , _tspSelfLink          :: !(Maybe Text)
-    , _tspName              :: !(Maybe Text)
-    , _tspCreationTimestamp :: !(Maybe Text)
-    , _tspId                :: !(Maybe (Textual Word64))
-    , _tspProxyHeader       :: !(Maybe TargetSSLProxyProxyHeader)
-    , _tspDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspSSLPolicy'
---
--- * 'tspSSLCertificates'
---
--- * 'tspService'
---
--- * 'tspKind'
---
--- * 'tspSelfLink'
---
--- * 'tspName'
---
--- * 'tspCreationTimestamp'
---
--- * 'tspId'
---
--- * 'tspProxyHeader'
---
--- * 'tspDescription'
-targetSSLProxy
-    :: TargetSSLProxy
-targetSSLProxy =
-  TargetSSLProxy'
-    { _tspSSLPolicy = Nothing
-    , _tspSSLCertificates = Nothing
-    , _tspService = Nothing
-    , _tspKind = "compute#targetSslProxy"
-    , _tspSelfLink = Nothing
-    , _tspName = Nothing
-    , _tspCreationTimestamp = Nothing
-    , _tspId = Nothing
-    , _tspProxyHeader = Nothing
-    , _tspDescription = Nothing
-    }
-
-
--- | URL of SslPolicy resource that will be associated with the
--- TargetSslProxy resource. If not set, the TargetSslProxy resource will
--- not have any SSL policy configured.
-tspSSLPolicy :: Lens' TargetSSLProxy (Maybe Text)
-tspSSLPolicy
-  = lens _tspSSLPolicy (\ s a -> s{_tspSSLPolicy = a})
-
--- | URLs to SslCertificate resources that are used to authenticate
--- connections to Backends. At least one SSL certificate must be specified.
--- Currently, you may specify up to 15 SSL certificates.
-tspSSLCertificates :: Lens' TargetSSLProxy [Text]
-tspSSLCertificates
-  = lens _tspSSLCertificates
-      (\ s a -> s{_tspSSLCertificates = a})
-      . _Default
-      . _Coerce
-
--- | URL to the BackendService resource.
-tspService :: Lens' TargetSSLProxy (Maybe Text)
-tspService
-  = lens _tspService (\ s a -> s{_tspService = a})
-
--- | [Output Only] Type of the resource. Always compute#targetSslProxy for
--- target SSL proxies.
-tspKind :: Lens' TargetSSLProxy Text
-tspKind = lens _tspKind (\ s a -> s{_tspKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-tspSelfLink :: Lens' TargetSSLProxy (Maybe Text)
-tspSelfLink
-  = lens _tspSelfLink (\ s a -> s{_tspSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-tspName :: Lens' TargetSSLProxy (Maybe Text)
-tspName = lens _tspName (\ s a -> s{_tspName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-tspCreationTimestamp :: Lens' TargetSSLProxy (Maybe Text)
-tspCreationTimestamp
-  = lens _tspCreationTimestamp
-      (\ s a -> s{_tspCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-tspId :: Lens' TargetSSLProxy (Maybe Word64)
-tspId
-  = lens _tspId (\ s a -> s{_tspId = a}) .
-      mapping _Coerce
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-tspProxyHeader :: Lens' TargetSSLProxy (Maybe TargetSSLProxyProxyHeader)
-tspProxyHeader
-  = lens _tspProxyHeader
-      (\ s a -> s{_tspProxyHeader = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-tspDescription :: Lens' TargetSSLProxy (Maybe Text)
-tspDescription
-  = lens _tspDescription
-      (\ s a -> s{_tspDescription = a})
-
-instance FromJSON TargetSSLProxy where
-        parseJSON
-          = withObject "TargetSSLProxy"
-              (\ o ->
-                 TargetSSLProxy' <$>
-                   (o .:? "sslPolicy") <*>
-                     (o .:? "sslCertificates" .!= mempty)
-                     <*> (o .:? "service")
-                     <*> (o .:? "kind" .!= "compute#targetSslProxy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "description"))
-
-instance ToJSON TargetSSLProxy where
-        toJSON TargetSSLProxy'{..}
-          = object
-              (catMaybes
-                 [("sslPolicy" .=) <$> _tspSSLPolicy,
-                  ("sslCertificates" .=) <$> _tspSSLCertificates,
-                  ("service" .=) <$> _tspService,
-                  Just ("kind" .= _tspKind),
-                  ("selfLink" .=) <$> _tspSelfLink,
-                  ("name" .=) <$> _tspName,
-                  ("creationTimestamp" .=) <$> _tspCreationTimestamp,
-                  ("id" .=) <$> _tspId,
-                  ("proxyHeader" .=) <$> _tspProxyHeader,
-                  ("description" .=) <$> _tspDescription])
-
---
--- /See:/ 'instanceGroupManagerStatus' smart constructor.
-newtype InstanceGroupManagerStatus =
-  InstanceGroupManagerStatus'
-    { _igmsIsStable :: Maybe Bool
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmsIsStable'
-instanceGroupManagerStatus
-    :: InstanceGroupManagerStatus
-instanceGroupManagerStatus =
-  InstanceGroupManagerStatus' {_igmsIsStable = Nothing}
-
-
--- | [Output Only] A bit indicating whether the managed instance group is in
--- a stable state. A stable state means that: none of the instances in the
--- managed instance group is currently undergoing any type of change (for
--- example, creation, restart, or deletion); no future changes are
--- scheduled for instances in the managed instance group; and the managed
--- instance group itself is not being modified.
-igmsIsStable :: Lens' InstanceGroupManagerStatus (Maybe Bool)
-igmsIsStable
-  = lens _igmsIsStable (\ s a -> s{_igmsIsStable = a})
-
-instance FromJSON InstanceGroupManagerStatus where
-        parseJSON
-          = withObject "InstanceGroupManagerStatus"
-              (\ o ->
-                 InstanceGroupManagerStatus' <$> (o .:? "isStable"))
-
-instance ToJSON InstanceGroupManagerStatus where
-        toJSON InstanceGroupManagerStatus'{..}
-          = object
-              (catMaybes [("isStable" .=) <$> _igmsIsStable])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'sslCertificateListWarning' smart constructor.
-data SSLCertificateListWarning =
-  SSLCertificateListWarning'
-    { _sclwData    :: !(Maybe [SSLCertificateListWarningDataItem])
-    , _sclwCode    :: !(Maybe SSLCertificateListWarningCode)
-    , _sclwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificateListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sclwData'
---
--- * 'sclwCode'
---
--- * 'sclwMessage'
-sslCertificateListWarning
-    :: SSLCertificateListWarning
-sslCertificateListWarning =
-  SSLCertificateListWarning'
-    {_sclwData = Nothing, _sclwCode = Nothing, _sclwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-sclwData :: Lens' SSLCertificateListWarning [SSLCertificateListWarningDataItem]
-sclwData
-  = lens _sclwData (\ s a -> s{_sclwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-sclwCode :: Lens' SSLCertificateListWarning (Maybe SSLCertificateListWarningCode)
-sclwCode = lens _sclwCode (\ s a -> s{_sclwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-sclwMessage :: Lens' SSLCertificateListWarning (Maybe Text)
-sclwMessage
-  = lens _sclwMessage (\ s a -> s{_sclwMessage = a})
-
-instance FromJSON SSLCertificateListWarning where
-        parseJSON
-          = withObject "SSLCertificateListWarning"
-              (\ o ->
-                 SSLCertificateListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SSLCertificateListWarning where
-        toJSON SSLCertificateListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _sclwData,
-                  ("code" .=) <$> _sclwCode,
-                  ("message" .=) <$> _sclwMessage])
-
---
--- /See:/ 'snapshotListWarningDataItem' smart constructor.
-data SnapshotListWarningDataItem =
-  SnapshotListWarningDataItem'
-    { _slwdiValue :: !(Maybe Text)
-    , _slwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slwdiValue'
---
--- * 'slwdiKey'
-snapshotListWarningDataItem
-    :: SnapshotListWarningDataItem
-snapshotListWarningDataItem =
-  SnapshotListWarningDataItem' {_slwdiValue = Nothing, _slwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-slwdiValue :: Lens' SnapshotListWarningDataItem (Maybe Text)
-slwdiValue
-  = lens _slwdiValue (\ s a -> s{_slwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-slwdiKey :: Lens' SnapshotListWarningDataItem (Maybe Text)
-slwdiKey = lens _slwdiKey (\ s a -> s{_slwdiKey = a})
-
-instance FromJSON SnapshotListWarningDataItem where
-        parseJSON
-          = withObject "SnapshotListWarningDataItem"
-              (\ o ->
-                 SnapshotListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SnapshotListWarningDataItem where
-        toJSON SnapshotListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _slwdiValue,
-                  ("key" .=) <$> _slwdiKey])
-
--- | Represents a Target VPN gateway resource. (== resource_for
--- beta.targetVpnGateways ==) (== resource_for v1.targetVpnGateways ==)
---
--- /See:/ 'targetVPNGateway' smart constructor.
-data TargetVPNGateway =
-  TargetVPNGateway'
-    { _tvgStatus            :: !(Maybe TargetVPNGatewayStatus)
-    , _tvgKind              :: !Text
-    , _tvgNetwork           :: !(Maybe Text)
-    , _tvgSelfLink          :: !(Maybe Text)
-    , _tvgName              :: !(Maybe Text)
-    , _tvgCreationTimestamp :: !(Maybe Text)
-    , _tvgId                :: !(Maybe (Textual Word64))
-    , _tvgRegion            :: !(Maybe Text)
-    , _tvgTunnels           :: !(Maybe [Text])
-    , _tvgDescription       :: !(Maybe Text)
-    , _tvgForwardingRules   :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGateway' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgStatus'
---
--- * 'tvgKind'
---
--- * 'tvgNetwork'
---
--- * 'tvgSelfLink'
---
--- * 'tvgName'
---
--- * 'tvgCreationTimestamp'
---
--- * 'tvgId'
---
--- * 'tvgRegion'
---
--- * 'tvgTunnels'
---
--- * 'tvgDescription'
---
--- * 'tvgForwardingRules'
-targetVPNGateway
-    :: TargetVPNGateway
-targetVPNGateway =
-  TargetVPNGateway'
-    { _tvgStatus = Nothing
-    , _tvgKind = "compute#targetVpnGateway"
-    , _tvgNetwork = Nothing
-    , _tvgSelfLink = Nothing
-    , _tvgName = Nothing
-    , _tvgCreationTimestamp = Nothing
-    , _tvgId = Nothing
-    , _tvgRegion = Nothing
-    , _tvgTunnels = Nothing
-    , _tvgDescription = Nothing
-    , _tvgForwardingRules = Nothing
-    }
-
-
--- | [Output Only] The status of the VPN gateway, which can be one of the
--- following: CREATING, READY, FAILED, or DELETING.
-tvgStatus :: Lens' TargetVPNGateway (Maybe TargetVPNGatewayStatus)
-tvgStatus
-  = lens _tvgStatus (\ s a -> s{_tvgStatus = a})
-
--- | [Output Only] Type of resource. Always compute#targetVpnGateway for
--- target VPN gateways.
-tvgKind :: Lens' TargetVPNGateway Text
-tvgKind = lens _tvgKind (\ s a -> s{_tvgKind = a})
-
--- | URL of the network to which this VPN gateway is attached. Provided by
--- the client when the VPN gateway is created.
-tvgNetwork :: Lens' TargetVPNGateway (Maybe Text)
-tvgNetwork
-  = lens _tvgNetwork (\ s a -> s{_tvgNetwork = a})
-
--- | [Output Only] Server-defined URL for the resource.
-tvgSelfLink :: Lens' TargetVPNGateway (Maybe Text)
-tvgSelfLink
-  = lens _tvgSelfLink (\ s a -> s{_tvgSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-tvgName :: Lens' TargetVPNGateway (Maybe Text)
-tvgName = lens _tvgName (\ s a -> s{_tvgName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-tvgCreationTimestamp :: Lens' TargetVPNGateway (Maybe Text)
-tvgCreationTimestamp
-  = lens _tvgCreationTimestamp
-      (\ s a -> s{_tvgCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-tvgId :: Lens' TargetVPNGateway (Maybe Word64)
-tvgId
-  = lens _tvgId (\ s a -> s{_tvgId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL of the region where the target VPN gateway resides.
--- You must specify this field as part of the HTTP request URL. It is not
--- settable as a field in the request body.
-tvgRegion :: Lens' TargetVPNGateway (Maybe Text)
-tvgRegion
-  = lens _tvgRegion (\ s a -> s{_tvgRegion = a})
-
--- | [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels are
--- created using the compute.vpntunnels.insert method and associated with a
--- VPN gateway.
-tvgTunnels :: Lens' TargetVPNGateway [Text]
-tvgTunnels
-  = lens _tvgTunnels (\ s a -> s{_tvgTunnels = a}) .
-      _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-tvgDescription :: Lens' TargetVPNGateway (Maybe Text)
-tvgDescription
-  = lens _tvgDescription
-      (\ s a -> s{_tvgDescription = a})
-
--- | [Output Only] A list of URLs to the ForwardingRule resources.
--- ForwardingRules are created using compute.forwardingRules.insert and
--- associated with a VPN gateway.
-tvgForwardingRules :: Lens' TargetVPNGateway [Text]
-tvgForwardingRules
-  = lens _tvgForwardingRules
-      (\ s a -> s{_tvgForwardingRules = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetVPNGateway where
-        parseJSON
-          = withObject "TargetVPNGateway"
-              (\ o ->
-                 TargetVPNGateway' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#targetVpnGateway")
-                     <*> (o .:? "network")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "tunnels" .!= mempty)
-                     <*> (o .:? "description")
-                     <*> (o .:? "forwardingRules" .!= mempty))
-
-instance ToJSON TargetVPNGateway where
-        toJSON TargetVPNGateway'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _tvgStatus,
-                  Just ("kind" .= _tvgKind),
-                  ("network" .=) <$> _tvgNetwork,
-                  ("selfLink" .=) <$> _tvgSelfLink,
-                  ("name" .=) <$> _tvgName,
-                  ("creationTimestamp" .=) <$> _tvgCreationTimestamp,
-                  ("id" .=) <$> _tvgId, ("region" .=) <$> _tvgRegion,
-                  ("tunnels" .=) <$> _tvgTunnels,
-                  ("description" .=) <$> _tvgDescription,
-                  ("forwardingRules" .=) <$> _tvgForwardingRules])
-
--- | Commitment for a particular resource (a Commitment is composed of one or
--- more of these).
---
--- /See:/ 'resourceCommitment' smart constructor.
-data ResourceCommitment =
-  ResourceCommitment'
-    { _rcAmount :: !(Maybe (Textual Int64))
-    , _rcType   :: !(Maybe ResourceCommitmentType)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResourceCommitment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcAmount'
---
--- * 'rcType'
-resourceCommitment
-    :: ResourceCommitment
-resourceCommitment =
-  ResourceCommitment' {_rcAmount = Nothing, _rcType = Nothing}
-
-
--- | The amount of the resource purchased (in a type-dependent unit, such as
--- bytes). For vCPUs, this can just be an integer. For memory, this must be
--- provided in MB. Memory must be a multiple of 256 MB, with up to 6.5GB of
--- memory per every vCPU.
-rcAmount :: Lens' ResourceCommitment (Maybe Int64)
-rcAmount
-  = lens _rcAmount (\ s a -> s{_rcAmount = a}) .
-      mapping _Coerce
-
--- | Type of resource for which this commitment applies. Possible values are
--- VCPU and MEMORY
-rcType :: Lens' ResourceCommitment (Maybe ResourceCommitmentType)
-rcType = lens _rcType (\ s a -> s{_rcType = a})
-
-instance FromJSON ResourceCommitment where
-        parseJSON
-          = withObject "ResourceCommitment"
-              (\ o ->
-                 ResourceCommitment' <$>
-                   (o .:? "amount") <*> (o .:? "type"))
-
-instance ToJSON ResourceCommitment where
-        toJSON ResourceCommitment'{..}
-          = object
-              (catMaybes
-                 [("amount" .=) <$> _rcAmount,
-                  ("type" .=) <$> _rcType])
-
--- | Identity-Aware Proxy
---
--- /See:/ 'backendServiceIAP' smart constructor.
-data BackendServiceIAP =
-  BackendServiceIAP'
-    { _bsiapEnabled                  :: !(Maybe Bool)
-    , _bsiapOAuth2ClientSecretSha256 :: !(Maybe Text)
-    , _bsiapOAuth2ClientSecret       :: !(Maybe Text)
-    , _bsiapOAuth2ClientId           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceIAP' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsiapEnabled'
---
--- * 'bsiapOAuth2ClientSecretSha256'
---
--- * 'bsiapOAuth2ClientSecret'
---
--- * 'bsiapOAuth2ClientId'
-backendServiceIAP
-    :: BackendServiceIAP
-backendServiceIAP =
-  BackendServiceIAP'
-    { _bsiapEnabled = Nothing
-    , _bsiapOAuth2ClientSecretSha256 = Nothing
-    , _bsiapOAuth2ClientSecret = Nothing
-    , _bsiapOAuth2ClientId = Nothing
-    }
-
-
-bsiapEnabled :: Lens' BackendServiceIAP (Maybe Bool)
-bsiapEnabled
-  = lens _bsiapEnabled (\ s a -> s{_bsiapEnabled = a})
-
--- | [Output Only] SHA256 hash value for the field oauth2_client_secret
--- above.
-bsiapOAuth2ClientSecretSha256 :: Lens' BackendServiceIAP (Maybe Text)
-bsiapOAuth2ClientSecretSha256
-  = lens _bsiapOAuth2ClientSecretSha256
-      (\ s a -> s{_bsiapOAuth2ClientSecretSha256 = a})
-
-bsiapOAuth2ClientSecret :: Lens' BackendServiceIAP (Maybe Text)
-bsiapOAuth2ClientSecret
-  = lens _bsiapOAuth2ClientSecret
-      (\ s a -> s{_bsiapOAuth2ClientSecret = a})
-
-bsiapOAuth2ClientId :: Lens' BackendServiceIAP (Maybe Text)
-bsiapOAuth2ClientId
-  = lens _bsiapOAuth2ClientId
-      (\ s a -> s{_bsiapOAuth2ClientId = a})
-
-instance FromJSON BackendServiceIAP where
-        parseJSON
-          = withObject "BackendServiceIAP"
-              (\ o ->
-                 BackendServiceIAP' <$>
-                   (o .:? "enabled") <*>
-                     (o .:? "oauth2ClientSecretSha256")
-                     <*> (o .:? "oauth2ClientSecret")
-                     <*> (o .:? "oauth2ClientId"))
-
-instance ToJSON BackendServiceIAP where
-        toJSON BackendServiceIAP'{..}
-          = object
-              (catMaybes
-                 [("enabled" .=) <$> _bsiapEnabled,
-                  ("oauth2ClientSecretSha256" .=) <$>
-                    _bsiapOAuth2ClientSecretSha256,
-                  ("oauth2ClientSecret" .=) <$>
-                    _bsiapOAuth2ClientSecret,
-                  ("oauth2ClientId" .=) <$> _bsiapOAuth2ClientId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetVPNGatewayListWarning' smart constructor.
-data TargetVPNGatewayListWarning =
-  TargetVPNGatewayListWarning'
-    { _tvglwData    :: !(Maybe [TargetVPNGatewayListWarningDataItem])
-    , _tvglwCode    :: !(Maybe TargetVPNGatewayListWarningCode)
-    , _tvglwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvglwData'
---
--- * 'tvglwCode'
---
--- * 'tvglwMessage'
-targetVPNGatewayListWarning
-    :: TargetVPNGatewayListWarning
-targetVPNGatewayListWarning =
-  TargetVPNGatewayListWarning'
-    {_tvglwData = Nothing, _tvglwCode = Nothing, _tvglwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tvglwData :: Lens' TargetVPNGatewayListWarning [TargetVPNGatewayListWarningDataItem]
-tvglwData
-  = lens _tvglwData (\ s a -> s{_tvglwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tvglwCode :: Lens' TargetVPNGatewayListWarning (Maybe TargetVPNGatewayListWarningCode)
-tvglwCode
-  = lens _tvglwCode (\ s a -> s{_tvglwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tvglwMessage :: Lens' TargetVPNGatewayListWarning (Maybe Text)
-tvglwMessage
-  = lens _tvglwMessage (\ s a -> s{_tvglwMessage = a})
-
-instance FromJSON TargetVPNGatewayListWarning where
-        parseJSON
-          = withObject "TargetVPNGatewayListWarning"
-              (\ o ->
-                 TargetVPNGatewayListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetVPNGatewayListWarning where
-        toJSON TargetVPNGatewayListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tvglwData,
-                  ("code" .=) <$> _tvglwCode,
-                  ("message" .=) <$> _tvglwMessage])
-
---
--- /See:/ 'vMEndpointNATMAppingsListWarningDataItem' smart constructor.
-data VMEndpointNATMAppingsListWarningDataItem =
-  VMEndpointNATMAppingsListWarningDataItem'
-    { _vmenatmalwdiValue :: !(Maybe Text)
-    , _vmenatmalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VMEndpointNATMAppingsListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vmenatmalwdiValue'
---
--- * 'vmenatmalwdiKey'
-vMEndpointNATMAppingsListWarningDataItem
-    :: VMEndpointNATMAppingsListWarningDataItem
-vMEndpointNATMAppingsListWarningDataItem =
-  VMEndpointNATMAppingsListWarningDataItem'
-    {_vmenatmalwdiValue = Nothing, _vmenatmalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-vmenatmalwdiValue :: Lens' VMEndpointNATMAppingsListWarningDataItem (Maybe Text)
-vmenatmalwdiValue
-  = lens _vmenatmalwdiValue
-      (\ s a -> s{_vmenatmalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-vmenatmalwdiKey :: Lens' VMEndpointNATMAppingsListWarningDataItem (Maybe Text)
-vmenatmalwdiKey
-  = lens _vmenatmalwdiKey
-      (\ s a -> s{_vmenatmalwdiKey = a})
-
-instance FromJSON
-           VMEndpointNATMAppingsListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "VMEndpointNATMAppingsListWarningDataItem"
-              (\ o ->
-                 VMEndpointNATMAppingsListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           VMEndpointNATMAppingsListWarningDataItem
-         where
-        toJSON VMEndpointNATMAppingsListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _vmenatmalwdiValue,
-                  ("key" .=) <$> _vmenatmalwdiKey])
-
---
--- /See:/ 'urlMapsValidateResponse' smart constructor.
-newtype URLMapsValidateResponse =
-  URLMapsValidateResponse'
-    { _umvrResult :: Maybe URLMapValidationResult
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsValidateResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umvrResult'
-urlMapsValidateResponse
-    :: URLMapsValidateResponse
-urlMapsValidateResponse = URLMapsValidateResponse' {_umvrResult = Nothing}
-
-
-umvrResult :: Lens' URLMapsValidateResponse (Maybe URLMapValidationResult)
-umvrResult
-  = lens _umvrResult (\ s a -> s{_umvrResult = a})
-
-instance FromJSON URLMapsValidateResponse where
-        parseJSON
-          = withObject "URLMapsValidateResponse"
-              (\ o ->
-                 URLMapsValidateResponse' <$> (o .:? "result"))
-
-instance ToJSON URLMapsValidateResponse where
-        toJSON URLMapsValidateResponse'{..}
-          = object (catMaybes [("result" .=) <$> _umvrResult])
-
--- | An SslCertificate resource. This resource provides a mechanism to upload
--- an SSL key and certificate to the load balancer to serve secure
--- connections from the user. (== resource_for beta.sslCertificates ==) (==
--- resource_for v1.sslCertificates ==)
---
--- /See:/ 'sslCertificate' smart constructor.
-data SSLCertificate =
-  SSLCertificate'
-    { _scPrivateKey        :: !(Maybe Text)
-    , _scKind              :: !Text
-    , _scSelfLink          :: !(Maybe Text)
-    , _scName              :: !(Maybe Text)
-    , _scCreationTimestamp :: !(Maybe Text)
-    , _scId                :: !(Maybe (Textual Word64))
-    , _scCertificate       :: !(Maybe Text)
-    , _scDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'scPrivateKey'
---
--- * 'scKind'
---
--- * 'scSelfLink'
---
--- * 'scName'
---
--- * 'scCreationTimestamp'
---
--- * 'scId'
---
--- * 'scCertificate'
---
--- * 'scDescription'
-sslCertificate
-    :: SSLCertificate
-sslCertificate =
-  SSLCertificate'
-    { _scPrivateKey = Nothing
-    , _scKind = "compute#sslCertificate"
-    , _scSelfLink = Nothing
-    , _scName = Nothing
-    , _scCreationTimestamp = Nothing
-    , _scId = Nothing
-    , _scCertificate = Nothing
-    , _scDescription = Nothing
-    }
-
-
--- | A write-only private key in PEM format. Only insert requests will
--- include this field.
-scPrivateKey :: Lens' SSLCertificate (Maybe Text)
-scPrivateKey
-  = lens _scPrivateKey (\ s a -> s{_scPrivateKey = a})
-
--- | [Output Only] Type of the resource. Always compute#sslCertificate for
--- SSL certificates.
-scKind :: Lens' SSLCertificate Text
-scKind = lens _scKind (\ s a -> s{_scKind = a})
-
--- | [Output only] Server-defined URL for the resource.
-scSelfLink :: Lens' SSLCertificate (Maybe Text)
-scSelfLink
-  = lens _scSelfLink (\ s a -> s{_scSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-scName :: Lens' SSLCertificate (Maybe Text)
-scName = lens _scName (\ s a -> s{_scName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-scCreationTimestamp :: Lens' SSLCertificate (Maybe Text)
-scCreationTimestamp
-  = lens _scCreationTimestamp
-      (\ s a -> s{_scCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-scId :: Lens' SSLCertificate (Maybe Word64)
-scId
-  = lens _scId (\ s a -> s{_scId = a}) .
-      mapping _Coerce
-
--- | A local certificate file. The certificate must be in PEM format. The
--- certificate chain must be no greater than 5 certs long. The chain must
--- include at least one intermediate cert.
-scCertificate :: Lens' SSLCertificate (Maybe Text)
-scCertificate
-  = lens _scCertificate
-      (\ s a -> s{_scCertificate = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-scDescription :: Lens' SSLCertificate (Maybe Text)
-scDescription
-  = lens _scDescription
-      (\ s a -> s{_scDescription = a})
-
-instance FromJSON SSLCertificate where
-        parseJSON
-          = withObject "SSLCertificate"
-              (\ o ->
-                 SSLCertificate' <$>
-                   (o .:? "privateKey") <*>
-                     (o .:? "kind" .!= "compute#sslCertificate")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "certificate")
-                     <*> (o .:? "description"))
-
-instance ToJSON SSLCertificate where
-        toJSON SSLCertificate'{..}
-          = object
-              (catMaybes
-                 [("privateKey" .=) <$> _scPrivateKey,
-                  Just ("kind" .= _scKind),
-                  ("selfLink" .=) <$> _scSelfLink,
-                  ("name" .=) <$> _scName,
-                  ("creationTimestamp" .=) <$> _scCreationTimestamp,
-                  ("id" .=) <$> _scId,
-                  ("certificate" .=) <$> _scCertificate,
-                  ("description" .=) <$> _scDescription])
-
---
--- /See:/ 'routerStatusBGPPeerStatus' smart constructor.
-data RouterStatusBGPPeerStatus =
-  RouterStatusBGPPeerStatus'
-    { _rsbpsStatus           :: !(Maybe RouterStatusBGPPeerStatusStatus)
-    , _rsbpsIPAddress        :: !(Maybe Text)
-    , _rsbpsState            :: !(Maybe Text)
-    , _rsbpsPeerIPAddress    :: !(Maybe Text)
-    , _rsbpsUptime           :: !(Maybe Text)
-    , _rsbpsNumLearnedRoutes :: !(Maybe (Textual Word32))
-    , _rsbpsName             :: !(Maybe Text)
-    , _rsbpsUptimeSeconds    :: !(Maybe Text)
-    , _rsbpsAdvertisedRoutes :: !(Maybe [Route])
-    , _rsbpsLinkedVPNTunnel  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterStatusBGPPeerStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsbpsStatus'
---
--- * 'rsbpsIPAddress'
---
--- * 'rsbpsState'
---
--- * 'rsbpsPeerIPAddress'
---
--- * 'rsbpsUptime'
---
--- * 'rsbpsNumLearnedRoutes'
---
--- * 'rsbpsName'
---
--- * 'rsbpsUptimeSeconds'
---
--- * 'rsbpsAdvertisedRoutes'
---
--- * 'rsbpsLinkedVPNTunnel'
-routerStatusBGPPeerStatus
-    :: RouterStatusBGPPeerStatus
-routerStatusBGPPeerStatus =
-  RouterStatusBGPPeerStatus'
-    { _rsbpsStatus = Nothing
-    , _rsbpsIPAddress = Nothing
-    , _rsbpsState = Nothing
-    , _rsbpsPeerIPAddress = Nothing
-    , _rsbpsUptime = Nothing
-    , _rsbpsNumLearnedRoutes = Nothing
-    , _rsbpsName = Nothing
-    , _rsbpsUptimeSeconds = Nothing
-    , _rsbpsAdvertisedRoutes = Nothing
-    , _rsbpsLinkedVPNTunnel = Nothing
-    }
-
-
--- | Status of the BGP peer: {UP, DOWN}
-rsbpsStatus :: Lens' RouterStatusBGPPeerStatus (Maybe RouterStatusBGPPeerStatusStatus)
-rsbpsStatus
-  = lens _rsbpsStatus (\ s a -> s{_rsbpsStatus = a})
-
--- | IP address of the local BGP interface.
-rsbpsIPAddress :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsIPAddress
-  = lens _rsbpsIPAddress
-      (\ s a -> s{_rsbpsIPAddress = a})
-
--- | BGP state as specified in RFC1771.
-rsbpsState :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsState
-  = lens _rsbpsState (\ s a -> s{_rsbpsState = a})
-
--- | IP address of the remote BGP interface.
-rsbpsPeerIPAddress :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsPeerIPAddress
-  = lens _rsbpsPeerIPAddress
-      (\ s a -> s{_rsbpsPeerIPAddress = a})
-
--- | Time this session has been up. Format: 14 years, 51 weeks, 6 days, 23
--- hours, 59 minutes, 59 seconds
-rsbpsUptime :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsUptime
-  = lens _rsbpsUptime (\ s a -> s{_rsbpsUptime = a})
-
--- | Number of routes learned from the remote BGP Peer.
-rsbpsNumLearnedRoutes :: Lens' RouterStatusBGPPeerStatus (Maybe Word32)
-rsbpsNumLearnedRoutes
-  = lens _rsbpsNumLearnedRoutes
-      (\ s a -> s{_rsbpsNumLearnedRoutes = a})
-      . mapping _Coerce
-
--- | Name of this BGP peer. Unique within the Routers resource.
-rsbpsName :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsName
-  = lens _rsbpsName (\ s a -> s{_rsbpsName = a})
-
--- | Time this session has been up, in seconds. Format: 145
-rsbpsUptimeSeconds :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsUptimeSeconds
-  = lens _rsbpsUptimeSeconds
-      (\ s a -> s{_rsbpsUptimeSeconds = a})
-
--- | Routes that were advertised to the remote BGP peer
-rsbpsAdvertisedRoutes :: Lens' RouterStatusBGPPeerStatus [Route]
-rsbpsAdvertisedRoutes
-  = lens _rsbpsAdvertisedRoutes
-      (\ s a -> s{_rsbpsAdvertisedRoutes = a})
-      . _Default
-      . _Coerce
-
--- | URL of the VPN tunnel that this BGP peer controls.
-rsbpsLinkedVPNTunnel :: Lens' RouterStatusBGPPeerStatus (Maybe Text)
-rsbpsLinkedVPNTunnel
-  = lens _rsbpsLinkedVPNTunnel
-      (\ s a -> s{_rsbpsLinkedVPNTunnel = a})
-
-instance FromJSON RouterStatusBGPPeerStatus where
-        parseJSON
-          = withObject "RouterStatusBGPPeerStatus"
-              (\ o ->
-                 RouterStatusBGPPeerStatus' <$>
-                   (o .:? "status") <*> (o .:? "ipAddress") <*>
-                     (o .:? "state")
-                     <*> (o .:? "peerIpAddress")
-                     <*> (o .:? "uptime")
-                     <*> (o .:? "numLearnedRoutes")
-                     <*> (o .:? "name")
-                     <*> (o .:? "uptimeSeconds")
-                     <*> (o .:? "advertisedRoutes" .!= mempty)
-                     <*> (o .:? "linkedVpnTunnel"))
-
-instance ToJSON RouterStatusBGPPeerStatus where
-        toJSON RouterStatusBGPPeerStatus'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _rsbpsStatus,
-                  ("ipAddress" .=) <$> _rsbpsIPAddress,
-                  ("state" .=) <$> _rsbpsState,
-                  ("peerIpAddress" .=) <$> _rsbpsPeerIPAddress,
-                  ("uptime" .=) <$> _rsbpsUptime,
-                  ("numLearnedRoutes" .=) <$> _rsbpsNumLearnedRoutes,
-                  ("name" .=) <$> _rsbpsName,
-                  ("uptimeSeconds" .=) <$> _rsbpsUptimeSeconds,
-                  ("advertisedRoutes" .=) <$> _rsbpsAdvertisedRoutes,
-                  ("linkedVpnTunnel" .=) <$> _rsbpsLinkedVPNTunnel])
-
---
--- /See:/ 'urlMapReference' smart constructor.
-newtype URLMapReference =
-  URLMapReference'
-    { _umrURLMap :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umrURLMap'
-urlMapReference
-    :: URLMapReference
-urlMapReference = URLMapReference' {_umrURLMap = Nothing}
-
-
-umrURLMap :: Lens' URLMapReference (Maybe Text)
-umrURLMap
-  = lens _umrURLMap (\ s a -> s{_umrURLMap = a})
-
-instance FromJSON URLMapReference where
-        parseJSON
-          = withObject "URLMapReference"
-              (\ o -> URLMapReference' <$> (o .:? "urlMap"))
-
-instance ToJSON URLMapReference where
-        toJSON URLMapReference'{..}
-          = object (catMaybes [("urlMap" .=) <$> _umrURLMap])
-
---
--- /See:/ 'targetPoolsAddHealthCheckRequest' smart constructor.
-newtype TargetPoolsAddHealthCheckRequest =
-  TargetPoolsAddHealthCheckRequest'
-    { _tpahcrHealthChecks :: Maybe [HealthCheckReference]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsAddHealthCheckRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpahcrHealthChecks'
-targetPoolsAddHealthCheckRequest
-    :: TargetPoolsAddHealthCheckRequest
-targetPoolsAddHealthCheckRequest =
-  TargetPoolsAddHealthCheckRequest' {_tpahcrHealthChecks = Nothing}
-
-
--- | The HttpHealthCheck to add to the target pool.
-tpahcrHealthChecks :: Lens' TargetPoolsAddHealthCheckRequest [HealthCheckReference]
-tpahcrHealthChecks
-  = lens _tpahcrHealthChecks
-      (\ s a -> s{_tpahcrHealthChecks = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetPoolsAddHealthCheckRequest
-         where
-        parseJSON
-          = withObject "TargetPoolsAddHealthCheckRequest"
-              (\ o ->
-                 TargetPoolsAddHealthCheckRequest' <$>
-                   (o .:? "healthChecks" .!= mempty))
-
-instance ToJSON TargetPoolsAddHealthCheckRequest
-         where
-        toJSON TargetPoolsAddHealthCheckRequest'{..}
-          = object
-              (catMaybes
-                 [("healthChecks" .=) <$> _tpahcrHealthChecks])
-
---
--- /See:/ 'commitmentsScopedList' smart constructor.
-data CommitmentsScopedList =
-  CommitmentsScopedList'
-    { _cslWarning     :: !(Maybe CommitmentsScopedListWarning)
-    , _cslCommitments :: !(Maybe [Commitment])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cslWarning'
---
--- * 'cslCommitments'
-commitmentsScopedList
-    :: CommitmentsScopedList
-commitmentsScopedList =
-  CommitmentsScopedList' {_cslWarning = Nothing, _cslCommitments = Nothing}
-
-
--- | [Output Only] Informational warning which replaces the list of
--- commitments when the list is empty.
-cslWarning :: Lens' CommitmentsScopedList (Maybe CommitmentsScopedListWarning)
-cslWarning
-  = lens _cslWarning (\ s a -> s{_cslWarning = a})
-
--- | [Output Only] A list of commitments contained in this scope.
-cslCommitments :: Lens' CommitmentsScopedList [Commitment]
-cslCommitments
-  = lens _cslCommitments
-      (\ s a -> s{_cslCommitments = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON CommitmentsScopedList where
-        parseJSON
-          = withObject "CommitmentsScopedList"
-              (\ o ->
-                 CommitmentsScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "commitments" .!= mempty))
-
-instance ToJSON CommitmentsScopedList where
-        toJSON CommitmentsScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _cslWarning,
-                  ("commitments" .=) <$> _cslCommitments])
-
--- | A list of DisksScopedList resources.
---
--- /See:/ 'diskAggregatedListItems' smart constructor.
-newtype DiskAggregatedListItems =
-  DiskAggregatedListItems'
-    { _daliAddtional :: HashMap Text DisksScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'daliAddtional'
-diskAggregatedListItems
-    :: HashMap Text DisksScopedList -- ^ 'daliAddtional'
-    -> DiskAggregatedListItems
-diskAggregatedListItems pDaliAddtional_ =
-  DiskAggregatedListItems' {_daliAddtional = _Coerce # pDaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of disks.
-daliAddtional :: Lens' DiskAggregatedListItems (HashMap Text DisksScopedList)
-daliAddtional
-  = lens _daliAddtional
-      (\ s a -> s{_daliAddtional = a})
-      . _Coerce
-
-instance FromJSON DiskAggregatedListItems where
-        parseJSON
-          = withObject "DiskAggregatedListItems"
-              (\ o ->
-                 DiskAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON DiskAggregatedListItems where
-        toJSON = toJSON . _daliAddtional
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetVPNGatewayAggregatedListWarning' smart constructor.
-data TargetVPNGatewayAggregatedListWarning =
-  TargetVPNGatewayAggregatedListWarning'
-    { _tvgalwData    :: !(Maybe [TargetVPNGatewayAggregatedListWarningDataItem])
-    , _tvgalwCode    :: !(Maybe TargetVPNGatewayAggregatedListWarningCode)
-    , _tvgalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgalwData'
---
--- * 'tvgalwCode'
---
--- * 'tvgalwMessage'
-targetVPNGatewayAggregatedListWarning
-    :: TargetVPNGatewayAggregatedListWarning
-targetVPNGatewayAggregatedListWarning =
-  TargetVPNGatewayAggregatedListWarning'
-    {_tvgalwData = Nothing, _tvgalwCode = Nothing, _tvgalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tvgalwData :: Lens' TargetVPNGatewayAggregatedListWarning [TargetVPNGatewayAggregatedListWarningDataItem]
-tvgalwData
-  = lens _tvgalwData (\ s a -> s{_tvgalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tvgalwCode :: Lens' TargetVPNGatewayAggregatedListWarning (Maybe TargetVPNGatewayAggregatedListWarningCode)
-tvgalwCode
-  = lens _tvgalwCode (\ s a -> s{_tvgalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tvgalwMessage :: Lens' TargetVPNGatewayAggregatedListWarning (Maybe Text)
-tvgalwMessage
-  = lens _tvgalwMessage
-      (\ s a -> s{_tvgalwMessage = a})
-
-instance FromJSON
-           TargetVPNGatewayAggregatedListWarning
-         where
-        parseJSON
-          = withObject "TargetVPNGatewayAggregatedListWarning"
-              (\ o ->
-                 TargetVPNGatewayAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetVPNGatewayAggregatedListWarning
-         where
-        toJSON TargetVPNGatewayAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tvgalwData,
-                  ("code" .=) <$> _tvgalwCode,
-                  ("message" .=) <$> _tvgalwMessage])
-
--- | The location in Cloud Storage and naming method of the daily usage
--- report. Contains bucket_name and report_name prefix.
---
--- /See:/ 'usageExportLocation' smart constructor.
-data UsageExportLocation =
-  UsageExportLocation'
-    { _uelReportNamePrefix :: !(Maybe Text)
-    , _uelBucketName       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsageExportLocation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uelReportNamePrefix'
---
--- * 'uelBucketName'
-usageExportLocation
-    :: UsageExportLocation
-usageExportLocation =
-  UsageExportLocation'
-    {_uelReportNamePrefix = Nothing, _uelBucketName = Nothing}
-
-
--- | An optional prefix for the name of the usage report object stored in
--- bucketName. If not supplied, defaults to usage. The report is stored as
--- a CSV file named report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is
--- the day of the usage according to Pacific Time. If you supply a prefix,
--- it should conform to Cloud Storage object naming conventions.
-uelReportNamePrefix :: Lens' UsageExportLocation (Maybe Text)
-uelReportNamePrefix
-  = lens _uelReportNamePrefix
-      (\ s a -> s{_uelReportNamePrefix = a})
-
--- | The name of an existing bucket in Cloud Storage where the usage report
--- object is stored. The Google Service Account is granted write access to
--- this bucket. This can either be the bucket name by itself, such as
--- example-bucket, or the bucket name with gs:\/\/ or
--- https:\/\/storage.googleapis.com\/ in front of it, such as
--- gs:\/\/example-bucket.
-uelBucketName :: Lens' UsageExportLocation (Maybe Text)
-uelBucketName
-  = lens _uelBucketName
-      (\ s a -> s{_uelBucketName = a})
-
-instance FromJSON UsageExportLocation where
-        parseJSON
-          = withObject "UsageExportLocation"
-              (\ o ->
-                 UsageExportLocation' <$>
-                   (o .:? "reportNamePrefix") <*> (o .:? "bucketName"))
-
-instance ToJSON UsageExportLocation where
-        toJSON UsageExportLocation'{..}
-          = object
-              (catMaybes
-                 [("reportNamePrefix" .=) <$> _uelReportNamePrefix,
-                  ("bucketName" .=) <$> _uelBucketName])
-
--- | Contains a list of zone resources.
---
--- /See:/ 'zoneList' smart constructor.
-data ZoneList =
-  ZoneList'
-    { _zlNextPageToken :: !(Maybe Text)
-    , _zlKind          :: !Text
-    , _zlItems         :: !(Maybe [Zone])
-    , _zlSelfLink      :: !(Maybe Text)
-    , _zlWarning       :: !(Maybe ZoneListWarning)
-    , _zlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zlNextPageToken'
---
--- * 'zlKind'
---
--- * 'zlItems'
---
--- * 'zlSelfLink'
---
--- * 'zlWarning'
---
--- * 'zlId'
-zoneList
-    :: ZoneList
-zoneList =
-  ZoneList'
-    { _zlNextPageToken = Nothing
-    , _zlKind = "compute#zoneList"
-    , _zlItems = Nothing
-    , _zlSelfLink = Nothing
-    , _zlWarning = Nothing
-    , _zlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-zlNextPageToken :: Lens' ZoneList (Maybe Text)
-zlNextPageToken
-  = lens _zlNextPageToken
-      (\ s a -> s{_zlNextPageToken = a})
-
--- | Type of resource.
-zlKind :: Lens' ZoneList Text
-zlKind = lens _zlKind (\ s a -> s{_zlKind = a})
-
--- | A list of Zone resources.
-zlItems :: Lens' ZoneList [Zone]
-zlItems
-  = lens _zlItems (\ s a -> s{_zlItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-zlSelfLink :: Lens' ZoneList (Maybe Text)
-zlSelfLink
-  = lens _zlSelfLink (\ s a -> s{_zlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-zlWarning :: Lens' ZoneList (Maybe ZoneListWarning)
-zlWarning
-  = lens _zlWarning (\ s a -> s{_zlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-zlId :: Lens' ZoneList (Maybe Text)
-zlId = lens _zlId (\ s a -> s{_zlId = a})
-
-instance FromJSON ZoneList where
-        parseJSON
-          = withObject "ZoneList"
-              (\ o ->
-                 ZoneList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#zoneList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON ZoneList where
-        toJSON ZoneList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _zlNextPageToken,
-                  Just ("kind" .= _zlKind), ("items" .=) <$> _zlItems,
-                  ("selfLink" .=) <$> _zlSelfLink,
-                  ("warning" .=) <$> _zlWarning, ("id" .=) <$> _zlId])
-
---
--- /See:/ 'sslCertificateListWarningDataItem' smart constructor.
-data SSLCertificateListWarningDataItem =
-  SSLCertificateListWarningDataItem'
-    { _sclwdiValue :: !(Maybe Text)
-    , _sclwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificateListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sclwdiValue'
---
--- * 'sclwdiKey'
-sslCertificateListWarningDataItem
-    :: SSLCertificateListWarningDataItem
-sslCertificateListWarningDataItem =
-  SSLCertificateListWarningDataItem'
-    {_sclwdiValue = Nothing, _sclwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-sclwdiValue :: Lens' SSLCertificateListWarningDataItem (Maybe Text)
-sclwdiValue
-  = lens _sclwdiValue (\ s a -> s{_sclwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-sclwdiKey :: Lens' SSLCertificateListWarningDataItem (Maybe Text)
-sclwdiKey
-  = lens _sclwdiKey (\ s a -> s{_sclwdiKey = a})
-
-instance FromJSON SSLCertificateListWarningDataItem
-         where
-        parseJSON
-          = withObject "SSLCertificateListWarningDataItem"
-              (\ o ->
-                 SSLCertificateListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SSLCertificateListWarningDataItem
-         where
-        toJSON SSLCertificateListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _sclwdiValue,
-                  ("key" .=) <$> _sclwdiKey])
-
---
--- /See:/ 'distributionPolicyZoneConfiguration' smart constructor.
-newtype DistributionPolicyZoneConfiguration =
-  DistributionPolicyZoneConfiguration'
-    { _dpzcZone :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DistributionPolicyZoneConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dpzcZone'
-distributionPolicyZoneConfiguration
-    :: DistributionPolicyZoneConfiguration
-distributionPolicyZoneConfiguration =
-  DistributionPolicyZoneConfiguration' {_dpzcZone = Nothing}
-
-
--- | The URL of the zone. The zone must exist in the region where the managed
--- instance group is located.
-dpzcZone :: Lens' DistributionPolicyZoneConfiguration (Maybe Text)
-dpzcZone = lens _dpzcZone (\ s a -> s{_dpzcZone = a})
-
-instance FromJSON DistributionPolicyZoneConfiguration
-         where
-        parseJSON
-          = withObject "DistributionPolicyZoneConfiguration"
-              (\ o ->
-                 DistributionPolicyZoneConfiguration' <$>
-                   (o .:? "zone"))
-
-instance ToJSON DistributionPolicyZoneConfiguration
-         where
-        toJSON DistributionPolicyZoneConfiguration'{..}
-          = object (catMaybes [("zone" .=) <$> _dpzcZone])
-
---
--- /See:/ 'targetTCPProxiesSetProxyHeaderRequest' smart constructor.
-newtype TargetTCPProxiesSetProxyHeaderRequest =
-  TargetTCPProxiesSetProxyHeaderRequest'
-    { _ttpsphrProxyHeader :: Maybe TargetTCPProxiesSetProxyHeaderRequestProxyHeader
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesSetProxyHeaderRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpsphrProxyHeader'
-targetTCPProxiesSetProxyHeaderRequest
-    :: TargetTCPProxiesSetProxyHeaderRequest
-targetTCPProxiesSetProxyHeaderRequest =
-  TargetTCPProxiesSetProxyHeaderRequest' {_ttpsphrProxyHeader = Nothing}
-
-
--- | The new type of proxy header to append before sending data to the
--- backend. NONE or PROXY_V1 are allowed.
-ttpsphrProxyHeader :: Lens' TargetTCPProxiesSetProxyHeaderRequest (Maybe TargetTCPProxiesSetProxyHeaderRequestProxyHeader)
-ttpsphrProxyHeader
-  = lens _ttpsphrProxyHeader
-      (\ s a -> s{_ttpsphrProxyHeader = a})
-
-instance FromJSON
-           TargetTCPProxiesSetProxyHeaderRequest
-         where
-        parseJSON
-          = withObject "TargetTCPProxiesSetProxyHeaderRequest"
-              (\ o ->
-                 TargetTCPProxiesSetProxyHeaderRequest' <$>
-                   (o .:? "proxyHeader"))
-
-instance ToJSON TargetTCPProxiesSetProxyHeaderRequest
-         where
-        toJSON TargetTCPProxiesSetProxyHeaderRequest'{..}
-          = object
-              (catMaybes
-                 [("proxyHeader" .=) <$> _ttpsphrProxyHeader])
-
---
--- /See:/ 'routerBGPPeer' smart constructor.
-data RouterBGPPeer =
-  RouterBGPPeer'
-    { _rbpIPAddress               :: !(Maybe Text)
-    , _rbpInterfaceName           :: !(Maybe Text)
-    , _rbpPeerIPAddress           :: !(Maybe Text)
-    , _rbpAdvertisedRoutePriority :: !(Maybe (Textual Word32))
-    , _rbpPeerASN                 :: !(Maybe (Textual Word32))
-    , _rbpAdvertiseMode           :: !(Maybe RouterBGPPeerAdvertiseMode)
-    , _rbpName                    :: !(Maybe Text)
-    , _rbpAdvertisedGroups        :: !(Maybe [RouterBGPPeerAdvertisedGroupsItem])
-    , _rbpManagementType          :: !(Maybe RouterBGPPeerManagementType)
-    , _rbpAdvertisedIPRanges      :: !(Maybe [RouterAdvertisedIPRange])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterBGPPeer' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbpIPAddress'
---
--- * 'rbpInterfaceName'
---
--- * 'rbpPeerIPAddress'
---
--- * 'rbpAdvertisedRoutePriority'
---
--- * 'rbpPeerASN'
---
--- * 'rbpAdvertiseMode'
---
--- * 'rbpName'
---
--- * 'rbpAdvertisedGroups'
---
--- * 'rbpManagementType'
---
--- * 'rbpAdvertisedIPRanges'
-routerBGPPeer
-    :: RouterBGPPeer
-routerBGPPeer =
-  RouterBGPPeer'
-    { _rbpIPAddress = Nothing
-    , _rbpInterfaceName = Nothing
-    , _rbpPeerIPAddress = Nothing
-    , _rbpAdvertisedRoutePriority = Nothing
-    , _rbpPeerASN = Nothing
-    , _rbpAdvertiseMode = Nothing
-    , _rbpName = Nothing
-    , _rbpAdvertisedGroups = Nothing
-    , _rbpManagementType = Nothing
-    , _rbpAdvertisedIPRanges = Nothing
-    }
-
-
--- | IP address of the interface inside Google Cloud Platform. Only IPv4 is
--- supported.
-rbpIPAddress :: Lens' RouterBGPPeer (Maybe Text)
-rbpIPAddress
-  = lens _rbpIPAddress (\ s a -> s{_rbpIPAddress = a})
-
--- | Name of the interface the BGP peer is associated with.
-rbpInterfaceName :: Lens' RouterBGPPeer (Maybe Text)
-rbpInterfaceName
-  = lens _rbpInterfaceName
-      (\ s a -> s{_rbpInterfaceName = a})
-
--- | IP address of the BGP interface outside Google cloud. Only IPv4 is
--- supported.
-rbpPeerIPAddress :: Lens' RouterBGPPeer (Maybe Text)
-rbpPeerIPAddress
-  = lens _rbpPeerIPAddress
-      (\ s a -> s{_rbpPeerIPAddress = a})
-
--- | The priority of routes advertised to this BGP peer. In the case where
--- there is more than one matching route of maximum length, the routes with
--- lowest priority value win.
-rbpAdvertisedRoutePriority :: Lens' RouterBGPPeer (Maybe Word32)
-rbpAdvertisedRoutePriority
-  = lens _rbpAdvertisedRoutePriority
-      (\ s a -> s{_rbpAdvertisedRoutePriority = a})
-      . mapping _Coerce
-
--- | Peer BGP Autonomous System Number (ASN). For VPN use case, this value
--- can be different for every tunnel.
-rbpPeerASN :: Lens' RouterBGPPeer (Maybe Word32)
-rbpPeerASN
-  = lens _rbpPeerASN (\ s a -> s{_rbpPeerASN = a}) .
-      mapping _Coerce
-
--- | User-specified flag to indicate which mode to use for advertisement.
-rbpAdvertiseMode :: Lens' RouterBGPPeer (Maybe RouterBGPPeerAdvertiseMode)
-rbpAdvertiseMode
-  = lens _rbpAdvertiseMode
-      (\ s a -> s{_rbpAdvertiseMode = a})
-
--- | Name of this BGP peer. The name must be 1-63 characters long and comply
--- with RFC1035.
-rbpName :: Lens' RouterBGPPeer (Maybe Text)
-rbpName = lens _rbpName (\ s a -> s{_rbpName = a})
-
--- | User-specified list of prefix groups to advertise in custom mode. This
--- field can only be populated if advertise_mode is CUSTOM and overrides
--- the list defined for the router (in Bgp message). These groups will be
--- advertised in addition to any specified prefixes. Leave this field blank
--- to advertise no custom groups.
-rbpAdvertisedGroups :: Lens' RouterBGPPeer [RouterBGPPeerAdvertisedGroupsItem]
-rbpAdvertisedGroups
-  = lens _rbpAdvertisedGroups
-      (\ s a -> s{_rbpAdvertisedGroups = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The resource that configures and manages this BGP peer.
--- MANAGED_BY_USER is the default value and can be managed by you or other
--- users; MANAGED_BY_ATTACHMENT is a BGP peer that is configured and
--- managed by Cloud Interconnect, specifically by an InterconnectAttachment
--- of type PARTNER. Google will automatically create, update, and delete
--- this type of BGP peer when the PARTNER InterconnectAttachment is
--- created, updated, or deleted.
-rbpManagementType :: Lens' RouterBGPPeer (Maybe RouterBGPPeerManagementType)
-rbpManagementType
-  = lens _rbpManagementType
-      (\ s a -> s{_rbpManagementType = a})
-
--- | User-specified list of individual IP ranges to advertise in custom mode.
--- This field can only be populated if advertise_mode is CUSTOM and
--- overrides the list defined for the router (in Bgp message). These IP
--- ranges will be advertised in addition to any specified groups. Leave
--- this field blank to advertise no custom IP ranges.
-rbpAdvertisedIPRanges :: Lens' RouterBGPPeer [RouterAdvertisedIPRange]
-rbpAdvertisedIPRanges
-  = lens _rbpAdvertisedIPRanges
-      (\ s a -> s{_rbpAdvertisedIPRanges = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RouterBGPPeer where
-        parseJSON
-          = withObject "RouterBGPPeer"
-              (\ o ->
-                 RouterBGPPeer' <$>
-                   (o .:? "ipAddress") <*> (o .:? "interfaceName") <*>
-                     (o .:? "peerIpAddress")
-                     <*> (o .:? "advertisedRoutePriority")
-                     <*> (o .:? "peerAsn")
-                     <*> (o .:? "advertiseMode")
-                     <*> (o .:? "name")
-                     <*> (o .:? "advertisedGroups" .!= mempty)
-                     <*> (o .:? "managementType")
-                     <*> (o .:? "advertisedIpRanges" .!= mempty))
-
-instance ToJSON RouterBGPPeer where
-        toJSON RouterBGPPeer'{..}
-          = object
-              (catMaybes
-                 [("ipAddress" .=) <$> _rbpIPAddress,
-                  ("interfaceName" .=) <$> _rbpInterfaceName,
-                  ("peerIpAddress" .=) <$> _rbpPeerIPAddress,
-                  ("advertisedRoutePriority" .=) <$>
-                    _rbpAdvertisedRoutePriority,
-                  ("peerAsn" .=) <$> _rbpPeerASN,
-                  ("advertiseMode" .=) <$> _rbpAdvertiseMode,
-                  ("name" .=) <$> _rbpName,
-                  ("advertisedGroups" .=) <$> _rbpAdvertisedGroups,
-                  ("managementType" .=) <$> _rbpManagementType,
-                  ("advertisedIpRanges" .=) <$>
-                    _rbpAdvertisedIPRanges])
-
---
--- /See:/ 'subnetworksExpandIPCIdRRangeRequest' smart constructor.
-newtype SubnetworksExpandIPCIdRRangeRequest =
-  SubnetworksExpandIPCIdRRangeRequest'
-    { _seicirrrIPCIdRRange :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksExpandIPCIdRRangeRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'seicirrrIPCIdRRange'
-subnetworksExpandIPCIdRRangeRequest
-    :: SubnetworksExpandIPCIdRRangeRequest
-subnetworksExpandIPCIdRRangeRequest =
-  SubnetworksExpandIPCIdRRangeRequest' {_seicirrrIPCIdRRange = Nothing}
-
-
--- | The IP (in CIDR format or netmask) of internal addresses that are legal
--- on this Subnetwork. This range should be disjoint from other subnetworks
--- within this network. This range can only be larger than (i.e. a superset
--- of) the range previously defined before the update.
-seicirrrIPCIdRRange :: Lens' SubnetworksExpandIPCIdRRangeRequest (Maybe Text)
-seicirrrIPCIdRRange
-  = lens _seicirrrIPCIdRRange
-      (\ s a -> s{_seicirrrIPCIdRRange = a})
-
-instance FromJSON SubnetworksExpandIPCIdRRangeRequest
-         where
-        parseJSON
-          = withObject "SubnetworksExpandIPCIdRRangeRequest"
-              (\ o ->
-                 SubnetworksExpandIPCIdRRangeRequest' <$>
-                   (o .:? "ipCidrRange"))
-
-instance ToJSON SubnetworksExpandIPCIdRRangeRequest
-         where
-        toJSON SubnetworksExpandIPCIdRRangeRequest'{..}
-          = object
-              (catMaybes
-                 [("ipCidrRange" .=) <$> _seicirrrIPCIdRRange])
-
--- | A Managed Instance resource.
---
--- /See:/ 'managedInstance' smart constructor.
-data ManagedInstance =
-  ManagedInstance'
-    { _miLastAttempt    :: !(Maybe ManagedInstanceLastAttempt)
-    , _miCurrentAction  :: !(Maybe ManagedInstanceCurrentAction)
-    , _miVersion        :: !(Maybe ManagedInstanceVersion)
-    , _miId             :: !(Maybe (Textual Word64))
-    , _miInstanceStatus :: !(Maybe ManagedInstanceInstanceStatus)
-    , _miInstance       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'miLastAttempt'
---
--- * 'miCurrentAction'
---
--- * 'miVersion'
---
--- * 'miId'
---
--- * 'miInstanceStatus'
---
--- * 'miInstance'
-managedInstance
-    :: ManagedInstance
-managedInstance =
-  ManagedInstance'
-    { _miLastAttempt = Nothing
-    , _miCurrentAction = Nothing
-    , _miVersion = Nothing
-    , _miId = Nothing
-    , _miInstanceStatus = Nothing
-    , _miInstance = Nothing
-    }
-
-
--- | [Output Only] Information about the last attempt to create or delete the
--- instance.
-miLastAttempt :: Lens' ManagedInstance (Maybe ManagedInstanceLastAttempt)
-miLastAttempt
-  = lens _miLastAttempt
-      (\ s a -> s{_miLastAttempt = a})
-
--- | [Output Only] The current action that the managed instance group has
--- scheduled for the instance. Possible values: - NONE The instance is
--- running, and the managed instance group does not have any scheduled
--- actions for this instance. - CREATING The managed instance group is
--- creating this instance. If the group fails to create this instance, it
--- will try again until it is successful. - CREATING_WITHOUT_RETRIES The
--- managed instance group is attempting to create this instance only once.
--- If the group fails to create this instance, it does not try again and
--- the group\'s targetSize value is decreased instead. - RECREATING The
--- managed instance group is recreating this instance. - DELETING The
--- managed instance group is permanently deleting this instance. -
--- ABANDONING The managed instance group is abandoning this instance. The
--- instance will be removed from the instance group and from any target
--- pools that are associated with this group. - RESTARTING The managed
--- instance group is restarting the instance. - REFRESHING The managed
--- instance group is applying configuration changes to the instance without
--- stopping it. For example, the group can update the target pool list for
--- an instance without stopping that instance. - VERIFYING The managed
--- instance group has created the instance and it is in the process of
--- being verified.
-miCurrentAction :: Lens' ManagedInstance (Maybe ManagedInstanceCurrentAction)
-miCurrentAction
-  = lens _miCurrentAction
-      (\ s a -> s{_miCurrentAction = a})
-
--- | [Output Only] Intended version of this instance.
-miVersion :: Lens' ManagedInstance (Maybe ManagedInstanceVersion)
-miVersion
-  = lens _miVersion (\ s a -> s{_miVersion = a})
-
--- | [Output only] The unique identifier for this resource. This field is
--- empty when instance does not exist.
-miId :: Lens' ManagedInstance (Maybe Word64)
-miId
-  = lens _miId (\ s a -> s{_miId = a}) .
-      mapping _Coerce
-
--- | [Output Only] The status of the instance. This field is empty when the
--- instance does not exist.
-miInstanceStatus :: Lens' ManagedInstance (Maybe ManagedInstanceInstanceStatus)
-miInstanceStatus
-  = lens _miInstanceStatus
-      (\ s a -> s{_miInstanceStatus = a})
-
--- | [Output Only] The URL of the instance. The URL can exist even if the
--- instance has not yet been created.
-miInstance :: Lens' ManagedInstance (Maybe Text)
-miInstance
-  = lens _miInstance (\ s a -> s{_miInstance = a})
-
-instance FromJSON ManagedInstance where
-        parseJSON
-          = withObject "ManagedInstance"
-              (\ o ->
-                 ManagedInstance' <$>
-                   (o .:? "lastAttempt") <*> (o .:? "currentAction") <*>
-                     (o .:? "version")
-                     <*> (o .:? "id")
-                     <*> (o .:? "instanceStatus")
-                     <*> (o .:? "instance"))
-
-instance ToJSON ManagedInstance where
-        toJSON ManagedInstance'{..}
-          = object
-              (catMaybes
-                 [("lastAttempt" .=) <$> _miLastAttempt,
-                  ("currentAction" .=) <$> _miCurrentAction,
-                  ("version" .=) <$> _miVersion, ("id" .=) <$> _miId,
-                  ("instanceStatus" .=) <$> _miInstanceStatus,
-                  ("instance" .=) <$> _miInstance])
-
--- | A list of InstanceGroupManagersScopedList resources.
---
--- /See:/ 'instanceGroupManagerAggregatedListItems' smart constructor.
-newtype InstanceGroupManagerAggregatedListItems =
-  InstanceGroupManagerAggregatedListItems'
-    { _igmaliAddtional :: HashMap Text InstanceGroupManagersScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmaliAddtional'
-instanceGroupManagerAggregatedListItems
-    :: HashMap Text InstanceGroupManagersScopedList -- ^ 'igmaliAddtional'
-    -> InstanceGroupManagerAggregatedListItems
-instanceGroupManagerAggregatedListItems pIgmaliAddtional_ =
-  InstanceGroupManagerAggregatedListItems'
-    {_igmaliAddtional = _Coerce # pIgmaliAddtional_}
-
-
--- | [Output Only] The name of the scope that contains this set of managed
--- instance groups.
-igmaliAddtional :: Lens' InstanceGroupManagerAggregatedListItems (HashMap Text InstanceGroupManagersScopedList)
-igmaliAddtional
-  = lens _igmaliAddtional
-      (\ s a -> s{_igmaliAddtional = a})
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagerAggregatedListItems
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagerAggregatedListItems"
-              (\ o ->
-                 InstanceGroupManagerAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON
-           InstanceGroupManagerAggregatedListItems
-         where
-        toJSON = toJSON . _igmaliAddtional
-
---
--- /See:/ 'instanceGroupManagersDeleteInstancesRequest' smart constructor.
-newtype InstanceGroupManagersDeleteInstancesRequest =
-  InstanceGroupManagersDeleteInstancesRequest'
-    { _igmdirInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersDeleteInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmdirInstances'
-instanceGroupManagersDeleteInstancesRequest
-    :: InstanceGroupManagersDeleteInstancesRequest
-instanceGroupManagersDeleteInstancesRequest =
-  InstanceGroupManagersDeleteInstancesRequest' {_igmdirInstances = Nothing}
-
-
--- | The URLs of one or more instances to delete. This can be a full URL or a
--- partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-igmdirInstances :: Lens' InstanceGroupManagersDeleteInstancesRequest [Text]
-igmdirInstances
-  = lens _igmdirInstances
-      (\ s a -> s{_igmdirInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagersDeleteInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersDeleteInstancesRequest"
-              (\ o ->
-                 InstanceGroupManagersDeleteInstancesRequest' <$>
-                   (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           InstanceGroupManagersDeleteInstancesRequest
-         where
-        toJSON
-          InstanceGroupManagersDeleteInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _igmdirInstances])
-
--- | Message containing information of one individual backend.
---
--- /See:/ 'backend' smart constructor.
-data Backend =
-  Backend'
-    { _bGroup                     :: !(Maybe Text)
-    , _bBalancingMode             :: !(Maybe BackendBalancingMode)
-    , _bMaxUtilization            :: !(Maybe (Textual Double))
-    , _bMaxRate                   :: !(Maybe (Textual Int32))
-    , _bMaxConnections            :: !(Maybe (Textual Int32))
-    , _bMaxConnectionsPerInstance :: !(Maybe (Textual Int32))
-    , _bMaxRatePerEndpoint        :: !(Maybe (Textual Double))
-    , _bMaxConnectionsPerEndpoint :: !(Maybe (Textual Int32))
-    , _bMaxRatePerInstance        :: !(Maybe (Textual Double))
-    , _bDescription               :: !(Maybe Text)
-    , _bCapacityScaler            :: !(Maybe (Textual Double))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Backend' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bGroup'
---
--- * 'bBalancingMode'
---
--- * 'bMaxUtilization'
---
--- * 'bMaxRate'
---
--- * 'bMaxConnections'
---
--- * 'bMaxConnectionsPerInstance'
---
--- * 'bMaxRatePerEndpoint'
---
--- * 'bMaxConnectionsPerEndpoint'
---
--- * 'bMaxRatePerInstance'
---
--- * 'bDescription'
---
--- * 'bCapacityScaler'
-backend
-    :: Backend
-backend =
-  Backend'
-    { _bGroup = Nothing
-    , _bBalancingMode = Nothing
-    , _bMaxUtilization = Nothing
-    , _bMaxRate = Nothing
-    , _bMaxConnections = Nothing
-    , _bMaxConnectionsPerInstance = Nothing
-    , _bMaxRatePerEndpoint = Nothing
-    , _bMaxConnectionsPerEndpoint = Nothing
-    , _bMaxRatePerInstance = Nothing
-    , _bDescription = Nothing
-    , _bCapacityScaler = Nothing
-    }
-
-
--- | The fully-qualified URL of an Instance Group or Network Endpoint Group
--- resource. In case of instance group this defines the list of instances
--- that serve traffic. Member virtual machine instances from each instance
--- group must live in the same zone as the instance group itself. No two
--- backends in a backend service are allowed to use same Instance Group
--- resource. For Network Endpoint Groups this defines list of endpoints.
--- All endpoints of Network Endpoint Group must be hosted on instances
--- located in the same zone as the Network Endpoint Group. Backend service
--- can not contain mix of Instance Group and Network Endpoint Group
--- backends. Note that you must specify an Instance Group or Network
--- Endpoint Group resource using the fully-qualified URL, rather than a
--- partial URL. When the BackendService has load balancing scheme INTERNAL,
--- the instance group must be within the same region as the BackendService.
--- Network Endpoint Groups are not supported for INTERNAL load balancing
--- scheme.
-bGroup :: Lens' Backend (Maybe Text)
-bGroup = lens _bGroup (\ s a -> s{_bGroup = a})
-
--- | Specifies the balancing mode for this backend. For global HTTP(S) or
--- TCP\/SSL load balancing, the default is UTILIZATION. Valid values are
--- UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP\/SSL). For
--- Internal Load Balancing, the default and only supported mode is
--- CONNECTION.
-bBalancingMode :: Lens' Backend (Maybe BackendBalancingMode)
-bBalancingMode
-  = lens _bBalancingMode
-      (\ s a -> s{_bBalancingMode = a})
-
--- | Used when balancingMode is UTILIZATION. This ratio defines the CPU
--- utilization target for the group. The default is 0.8. Valid range is
--- [0.0, 1.0]. This cannot be used for internal load balancing.
-bMaxUtilization :: Lens' Backend (Maybe Double)
-bMaxUtilization
-  = lens _bMaxUtilization
-      (\ s a -> s{_bMaxUtilization = a})
-      . mapping _Coerce
-
--- | The max requests per second (RPS) of the group. Can be used with either
--- RATE or UTILIZATION balancing modes, but required if RATE mode. For RATE
--- mode, either maxRate or maxRatePerInstance must be set. This cannot be
--- used for internal load balancing.
-bMaxRate :: Lens' Backend (Maybe Int32)
-bMaxRate
-  = lens _bMaxRate (\ s a -> s{_bMaxRate = a}) .
-      mapping _Coerce
-
--- | The max number of simultaneous connections for the group. Can be used
--- with either CONNECTION or UTILIZATION balancing modes. For CONNECTION
--- mode, either maxConnections or maxConnectionsPerInstance must be set.
--- This cannot be used for internal load balancing.
-bMaxConnections :: Lens' Backend (Maybe Int32)
-bMaxConnections
-  = lens _bMaxConnections
-      (\ s a -> s{_bMaxConnections = a})
-      . mapping _Coerce
-
--- | The max number of simultaneous connections that a single backend
--- instance can handle. This is used to calculate the capacity of the
--- group. Can be used in either CONNECTION or UTILIZATION balancing modes.
--- For CONNECTION mode, either maxConnections or maxConnectionsPerInstance
--- must be set. This cannot be used for internal load balancing.
-bMaxConnectionsPerInstance :: Lens' Backend (Maybe Int32)
-bMaxConnectionsPerInstance
-  = lens _bMaxConnectionsPerInstance
-      (\ s a -> s{_bMaxConnectionsPerInstance = a})
-      . mapping _Coerce
-
--- | The max requests per second (RPS) that a single backend network endpoint
--- can handle. This is used to calculate the capacity of the group. Can be
--- used in either balancing mode. For RATE mode, either maxRate or
--- maxRatePerEndpoint must be set. This cannot be used for internal load
--- balancing.
-bMaxRatePerEndpoint :: Lens' Backend (Maybe Double)
-bMaxRatePerEndpoint
-  = lens _bMaxRatePerEndpoint
-      (\ s a -> s{_bMaxRatePerEndpoint = a})
-      . mapping _Coerce
-
--- | The max number of simultaneous connections that a single backend network
--- endpoint can handle. This is used to calculate the capacity of the
--- group. Can be used in either CONNECTION or UTILIZATION balancing modes.
--- For CONNECTION mode, either maxConnections or maxConnectionsPerEndpoint
--- must be set. This cannot be used for internal load balancing.
-bMaxConnectionsPerEndpoint :: Lens' Backend (Maybe Int32)
-bMaxConnectionsPerEndpoint
-  = lens _bMaxConnectionsPerEndpoint
-      (\ s a -> s{_bMaxConnectionsPerEndpoint = a})
-      . mapping _Coerce
-
--- | The max requests per second (RPS) that a single backend instance can
--- handle. This is used to calculate the capacity of the group. Can be used
--- in either balancing mode. For RATE mode, either maxRate or
--- maxRatePerInstance must be set. This cannot be used for internal load
--- balancing.
-bMaxRatePerInstance :: Lens' Backend (Maybe Double)
-bMaxRatePerInstance
-  = lens _bMaxRatePerInstance
-      (\ s a -> s{_bMaxRatePerInstance = a})
-      . mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-bDescription :: Lens' Backend (Maybe Text)
-bDescription
-  = lens _bDescription (\ s a -> s{_bDescription = a})
-
--- | A multiplier applied to the group\'s maximum servicing capacity (based
--- on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the
--- group will serve up to 100% of its configured capacity (depending on
--- balancingMode). A setting of 0 means the group is completely drained,
--- offering 0% of its available Capacity. Valid range is [0.0,1.0]. This
--- cannot be used for internal load balancing.
-bCapacityScaler :: Lens' Backend (Maybe Double)
-bCapacityScaler
-  = lens _bCapacityScaler
-      (\ s a -> s{_bCapacityScaler = a})
-      . mapping _Coerce
-
-instance FromJSON Backend where
-        parseJSON
-          = withObject "Backend"
-              (\ o ->
-                 Backend' <$>
-                   (o .:? "group") <*> (o .:? "balancingMode") <*>
-                     (o .:? "maxUtilization")
-                     <*> (o .:? "maxRate")
-                     <*> (o .:? "maxConnections")
-                     <*> (o .:? "maxConnectionsPerInstance")
-                     <*> (o .:? "maxRatePerEndpoint")
-                     <*> (o .:? "maxConnectionsPerEndpoint")
-                     <*> (o .:? "maxRatePerInstance")
-                     <*> (o .:? "description")
-                     <*> (o .:? "capacityScaler"))
-
-instance ToJSON Backend where
-        toJSON Backend'{..}
-          = object
-              (catMaybes
-                 [("group" .=) <$> _bGroup,
-                  ("balancingMode" .=) <$> _bBalancingMode,
-                  ("maxUtilization" .=) <$> _bMaxUtilization,
-                  ("maxRate" .=) <$> _bMaxRate,
-                  ("maxConnections" .=) <$> _bMaxConnections,
-                  ("maxConnectionsPerInstance" .=) <$>
-                    _bMaxConnectionsPerInstance,
-                  ("maxRatePerEndpoint" .=) <$> _bMaxRatePerEndpoint,
-                  ("maxConnectionsPerEndpoint" .=) <$>
-                    _bMaxConnectionsPerEndpoint,
-                  ("maxRatePerInstance" .=) <$> _bMaxRatePerInstance,
-                  ("description" .=) <$> _bDescription,
-                  ("capacityScaler" .=) <$> _bCapacityScaler])
-
--- | [Output Only] Informational warning which replaces the list of addresses
--- when the list is empty.
---
--- /See:/ 'targetVPNGatewaysScopedListWarning' smart constructor.
-data TargetVPNGatewaysScopedListWarning =
-  TargetVPNGatewaysScopedListWarning'
-    { _tvgslwData    :: !(Maybe [TargetVPNGatewaysScopedListWarningDataItem])
-    , _tvgslwCode    :: !(Maybe TargetVPNGatewaysScopedListWarningCode)
-    , _tvgslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgslwData'
---
--- * 'tvgslwCode'
---
--- * 'tvgslwMessage'
-targetVPNGatewaysScopedListWarning
-    :: TargetVPNGatewaysScopedListWarning
-targetVPNGatewaysScopedListWarning =
-  TargetVPNGatewaysScopedListWarning'
-    {_tvgslwData = Nothing, _tvgslwCode = Nothing, _tvgslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tvgslwData :: Lens' TargetVPNGatewaysScopedListWarning [TargetVPNGatewaysScopedListWarningDataItem]
-tvgslwData
-  = lens _tvgslwData (\ s a -> s{_tvgslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tvgslwCode :: Lens' TargetVPNGatewaysScopedListWarning (Maybe TargetVPNGatewaysScopedListWarningCode)
-tvgslwCode
-  = lens _tvgslwCode (\ s a -> s{_tvgslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tvgslwMessage :: Lens' TargetVPNGatewaysScopedListWarning (Maybe Text)
-tvgslwMessage
-  = lens _tvgslwMessage
-      (\ s a -> s{_tvgslwMessage = a})
-
-instance FromJSON TargetVPNGatewaysScopedListWarning
-         where
-        parseJSON
-          = withObject "TargetVPNGatewaysScopedListWarning"
-              (\ o ->
-                 TargetVPNGatewaysScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetVPNGatewaysScopedListWarning
-         where
-        toJSON TargetVPNGatewaysScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tvgslwData,
-                  ("code" .=) <$> _tvgslwCode,
-                  ("message" .=) <$> _tvgslwMessage])
-
--- | Contains a list of addresses.
---
--- /See:/ 'addressList' smart constructor.
-data AddressList =
-  AddressList'
-    { _alNextPageToken :: !(Maybe Text)
-    , _alKind          :: !Text
-    , _alItems         :: !(Maybe [Address])
-    , _alSelfLink      :: !(Maybe Text)
-    , _alWarning       :: !(Maybe AddressListWarning)
-    , _alId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alNextPageToken'
---
--- * 'alKind'
---
--- * 'alItems'
---
--- * 'alSelfLink'
---
--- * 'alWarning'
---
--- * 'alId'
-addressList
-    :: AddressList
-addressList =
-  AddressList'
-    { _alNextPageToken = Nothing
-    , _alKind = "compute#addressList"
-    , _alItems = Nothing
-    , _alSelfLink = Nothing
-    , _alWarning = Nothing
-    , _alId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-alNextPageToken :: Lens' AddressList (Maybe Text)
-alNextPageToken
-  = lens _alNextPageToken
-      (\ s a -> s{_alNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#addressList for lists of
--- addresses.
-alKind :: Lens' AddressList Text
-alKind = lens _alKind (\ s a -> s{_alKind = a})
-
--- | A list of Address resources.
-alItems :: Lens' AddressList [Address]
-alItems
-  = lens _alItems (\ s a -> s{_alItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-alSelfLink :: Lens' AddressList (Maybe Text)
-alSelfLink
-  = lens _alSelfLink (\ s a -> s{_alSelfLink = a})
-
--- | [Output Only] Informational warning message.
-alWarning :: Lens' AddressList (Maybe AddressListWarning)
-alWarning
-  = lens _alWarning (\ s a -> s{_alWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-alId :: Lens' AddressList (Maybe Text)
-alId = lens _alId (\ s a -> s{_alId = a})
-
-instance FromJSON AddressList where
-        parseJSON
-          = withObject "AddressList"
-              (\ o ->
-                 AddressList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#addressList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AddressList where
-        toJSON AddressList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _alNextPageToken,
-                  Just ("kind" .= _alKind), ("items" .=) <$> _alItems,
-                  ("selfLink" .=) <$> _alSelfLink,
-                  ("warning" .=) <$> _alWarning, ("id" .=) <$> _alId])
-
---
--- /See:/ 'targetVPNGatewayListWarningDataItem' smart constructor.
-data TargetVPNGatewayListWarningDataItem =
-  TargetVPNGatewayListWarningDataItem'
-    { _tvglwdiValue :: !(Maybe Text)
-    , _tvglwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvglwdiValue'
---
--- * 'tvglwdiKey'
-targetVPNGatewayListWarningDataItem
-    :: TargetVPNGatewayListWarningDataItem
-targetVPNGatewayListWarningDataItem =
-  TargetVPNGatewayListWarningDataItem'
-    {_tvglwdiValue = Nothing, _tvglwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tvglwdiValue :: Lens' TargetVPNGatewayListWarningDataItem (Maybe Text)
-tvglwdiValue
-  = lens _tvglwdiValue (\ s a -> s{_tvglwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tvglwdiKey :: Lens' TargetVPNGatewayListWarningDataItem (Maybe Text)
-tvglwdiKey
-  = lens _tvglwdiKey (\ s a -> s{_tvglwdiKey = a})
-
-instance FromJSON TargetVPNGatewayListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetVPNGatewayListWarningDataItem"
-              (\ o ->
-                 TargetVPNGatewayListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetVPNGatewayListWarningDataItem
-         where
-        toJSON TargetVPNGatewayListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tvglwdiValue,
-                  ("key" .=) <$> _tvglwdiKey])
-
--- | A list of ForwardingRulesScopedList resources.
---
--- /See:/ 'forwardingRuleAggregatedListItems' smart constructor.
-newtype ForwardingRuleAggregatedListItems =
-  ForwardingRuleAggregatedListItems'
-    { _fraliAddtional :: HashMap Text ForwardingRulesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fraliAddtional'
-forwardingRuleAggregatedListItems
-    :: HashMap Text ForwardingRulesScopedList -- ^ 'fraliAddtional'
-    -> ForwardingRuleAggregatedListItems
-forwardingRuleAggregatedListItems pFraliAddtional_ =
-  ForwardingRuleAggregatedListItems'
-    {_fraliAddtional = _Coerce # pFraliAddtional_}
-
-
--- | Name of the scope containing this set of addresses.
-fraliAddtional :: Lens' ForwardingRuleAggregatedListItems (HashMap Text ForwardingRulesScopedList)
-fraliAddtional
-  = lens _fraliAddtional
-      (\ s a -> s{_fraliAddtional = a})
-      . _Coerce
-
-instance FromJSON ForwardingRuleAggregatedListItems
-         where
-        parseJSON
-          = withObject "ForwardingRuleAggregatedListItems"
-              (\ o ->
-                 ForwardingRuleAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON ForwardingRuleAggregatedListItems
-         where
-        toJSON = toJSON . _fraliAddtional
-
---
--- /See:/ 'interconnectAttachmentAggregatedList' smart constructor.
-data InterconnectAttachmentAggregatedList =
-  InterconnectAttachmentAggregatedList'
-    { _iaalNextPageToken :: !(Maybe Text)
-    , _iaalKind          :: !Text
-    , _iaalItems         :: !(Maybe InterconnectAttachmentAggregatedListItems)
-    , _iaalSelfLink      :: !(Maybe Text)
-    , _iaalWarning       :: !(Maybe InterconnectAttachmentAggregatedListWarning)
-    , _iaalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaalNextPageToken'
---
--- * 'iaalKind'
---
--- * 'iaalItems'
---
--- * 'iaalSelfLink'
---
--- * 'iaalWarning'
---
--- * 'iaalId'
-interconnectAttachmentAggregatedList
-    :: InterconnectAttachmentAggregatedList
-interconnectAttachmentAggregatedList =
-  InterconnectAttachmentAggregatedList'
-    { _iaalNextPageToken = Nothing
-    , _iaalKind = "compute#interconnectAttachmentAggregatedList"
-    , _iaalItems = Nothing
-    , _iaalSelfLink = Nothing
-    , _iaalWarning = Nothing
-    , _iaalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-iaalNextPageToken :: Lens' InterconnectAttachmentAggregatedList (Maybe Text)
-iaalNextPageToken
-  = lens _iaalNextPageToken
-      (\ s a -> s{_iaalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always
--- compute#interconnectAttachmentAggregatedList for aggregated lists of
--- interconnect attachments.
-iaalKind :: Lens' InterconnectAttachmentAggregatedList Text
-iaalKind = lens _iaalKind (\ s a -> s{_iaalKind = a})
-
--- | A list of InterconnectAttachmentsScopedList resources.
-iaalItems :: Lens' InterconnectAttachmentAggregatedList (Maybe InterconnectAttachmentAggregatedListItems)
-iaalItems
-  = lens _iaalItems (\ s a -> s{_iaalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-iaalSelfLink :: Lens' InterconnectAttachmentAggregatedList (Maybe Text)
-iaalSelfLink
-  = lens _iaalSelfLink (\ s a -> s{_iaalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-iaalWarning :: Lens' InterconnectAttachmentAggregatedList (Maybe InterconnectAttachmentAggregatedListWarning)
-iaalWarning
-  = lens _iaalWarning (\ s a -> s{_iaalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-iaalId :: Lens' InterconnectAttachmentAggregatedList (Maybe Text)
-iaalId = lens _iaalId (\ s a -> s{_iaalId = a})
-
-instance FromJSON
-           InterconnectAttachmentAggregatedList
-         where
-        parseJSON
-          = withObject "InterconnectAttachmentAggregatedList"
-              (\ o ->
-                 InterconnectAttachmentAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#interconnectAttachmentAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InterconnectAttachmentAggregatedList
-         where
-        toJSON InterconnectAttachmentAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _iaalNextPageToken,
-                  Just ("kind" .= _iaalKind),
-                  ("items" .=) <$> _iaalItems,
-                  ("selfLink" .=) <$> _iaalSelfLink,
-                  ("warning" .=) <$> _iaalWarning,
-                  ("id" .=) <$> _iaalId])
-
--- | [Output Only] A map of scoped operation lists.
---
--- /See:/ 'operationAggregatedListItems' smart constructor.
-newtype OperationAggregatedListItems =
-  OperationAggregatedListItems'
-    { _oaliAddtional :: HashMap Text OperationsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oaliAddtional'
-operationAggregatedListItems
-    :: HashMap Text OperationsScopedList -- ^ 'oaliAddtional'
-    -> OperationAggregatedListItems
-operationAggregatedListItems pOaliAddtional_ =
-  OperationAggregatedListItems' {_oaliAddtional = _Coerce # pOaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of operations.
-oaliAddtional :: Lens' OperationAggregatedListItems (HashMap Text OperationsScopedList)
-oaliAddtional
-  = lens _oaliAddtional
-      (\ s a -> s{_oaliAddtional = a})
-      . _Coerce
-
-instance FromJSON OperationAggregatedListItems where
-        parseJSON
-          = withObject "OperationAggregatedListItems"
-              (\ o ->
-                 OperationAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON OperationAggregatedListItems where
-        toJSON = toJSON . _oaliAddtional
-
---
--- /See:/ 'instanceGroupManagerActionsSummary' smart constructor.
-data InstanceGroupManagerActionsSummary =
-  InstanceGroupManagerActionsSummary'
-    { _igmasDeleting               :: !(Maybe (Textual Int32))
-    , _igmasRestarting             :: !(Maybe (Textual Int32))
-    , _igmasNone                   :: !(Maybe (Textual Int32))
-    , _igmasCreating               :: !(Maybe (Textual Int32))
-    , _igmasVerifying              :: !(Maybe (Textual Int32))
-    , _igmasRefreshing             :: !(Maybe (Textual Int32))
-    , _igmasCreatingWithoutRetries :: !(Maybe (Textual Int32))
-    , _igmasRecreating             :: !(Maybe (Textual Int32))
-    , _igmasAbandoning             :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerActionsSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmasDeleting'
---
--- * 'igmasRestarting'
---
--- * 'igmasNone'
---
--- * 'igmasCreating'
---
--- * 'igmasVerifying'
---
--- * 'igmasRefreshing'
---
--- * 'igmasCreatingWithoutRetries'
---
--- * 'igmasRecreating'
---
--- * 'igmasAbandoning'
-instanceGroupManagerActionsSummary
-    :: InstanceGroupManagerActionsSummary
-instanceGroupManagerActionsSummary =
-  InstanceGroupManagerActionsSummary'
-    { _igmasDeleting = Nothing
-    , _igmasRestarting = Nothing
-    , _igmasNone = Nothing
-    , _igmasCreating = Nothing
-    , _igmasVerifying = Nothing
-    , _igmasRefreshing = Nothing
-    , _igmasCreatingWithoutRetries = Nothing
-    , _igmasRecreating = Nothing
-    , _igmasAbandoning = Nothing
-    }
-
-
--- | [Output Only] The number of instances in the managed instance group that
--- are scheduled to be deleted or are currently being deleted.
-igmasDeleting :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasDeleting
-  = lens _igmasDeleting
-      (\ s a -> s{_igmasDeleting = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are scheduled to be restarted or are currently being restarted.
-igmasRestarting :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasRestarting
-  = lens _igmasRestarting
-      (\ s a -> s{_igmasRestarting = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are running and have no scheduled actions.
-igmasNone :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasNone
-  = lens _igmasNone (\ s a -> s{_igmasNone = a}) .
-      mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are scheduled to be created or are currently being created. If the group
--- fails to create any of these instances, it tries again until it creates
--- the instance successfully. If you have disabled creation retries, this
--- field will not be populated; instead, the creatingWithoutRetries field
--- will be populated.
-igmasCreating :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasCreating
-  = lens _igmasCreating
-      (\ s a -> s{_igmasCreating = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are being verified. See the managedInstances[].currentAction property in
--- the listManagedInstances method documentation.
-igmasVerifying :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasVerifying
-  = lens _igmasVerifying
-      (\ s a -> s{_igmasVerifying = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are being reconfigured with properties that do not require a restart or
--- a recreate action. For example, setting or removing target pools for the
--- instance.
-igmasRefreshing :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasRefreshing
-  = lens _igmasRefreshing
-      (\ s a -> s{_igmasRefreshing = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances that the managed instance group
--- will attempt to create. The group attempts to create each instance only
--- once. If the group fails to create any of these instances, it decreases
--- the group\'s targetSize value accordingly.
-igmasCreatingWithoutRetries :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasCreatingWithoutRetries
-  = lens _igmasCreatingWithoutRetries
-      (\ s a -> s{_igmasCreatingWithoutRetries = a})
-      . mapping _Coerce
-
--- | [Output Only] The number of instances in the managed instance group that
--- are scheduled to be recreated or are currently being being recreated.
--- Recreating an instance deletes the existing root persistent disk and
--- creates a new disk from the image that is defined in the instance
--- template.
-igmasRecreating :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasRecreating
-  = lens _igmasRecreating
-      (\ s a -> s{_igmasRecreating = a})
-      . mapping _Coerce
-
--- | [Output Only] The total number of instances in the managed instance
--- group that are scheduled to be abandoned. Abandoning an instance removes
--- it from the managed instance group without deleting it.
-igmasAbandoning :: Lens' InstanceGroupManagerActionsSummary (Maybe Int32)
-igmasAbandoning
-  = lens _igmasAbandoning
-      (\ s a -> s{_igmasAbandoning = a})
-      . mapping _Coerce
-
-instance FromJSON InstanceGroupManagerActionsSummary
-         where
-        parseJSON
-          = withObject "InstanceGroupManagerActionsSummary"
-              (\ o ->
-                 InstanceGroupManagerActionsSummary' <$>
-                   (o .:? "deleting") <*> (o .:? "restarting") <*>
-                     (o .:? "none")
-                     <*> (o .:? "creating")
-                     <*> (o .:? "verifying")
-                     <*> (o .:? "refreshing")
-                     <*> (o .:? "creatingWithoutRetries")
-                     <*> (o .:? "recreating")
-                     <*> (o .:? "abandoning"))
-
-instance ToJSON InstanceGroupManagerActionsSummary
-         where
-        toJSON InstanceGroupManagerActionsSummary'{..}
-          = object
-              (catMaybes
-                 [("deleting" .=) <$> _igmasDeleting,
-                  ("restarting" .=) <$> _igmasRestarting,
-                  ("none" .=) <$> _igmasNone,
-                  ("creating" .=) <$> _igmasCreating,
-                  ("verifying" .=) <$> _igmasVerifying,
-                  ("refreshing" .=) <$> _igmasRefreshing,
-                  ("creatingWithoutRetries" .=) <$>
-                    _igmasCreatingWithoutRetries,
-                  ("recreating" .=) <$> _igmasRecreating,
-                  ("abandoning" .=) <$> _igmasAbandoning])
-
---
--- /See:/ 'xpnHostList' smart constructor.
-data XpnHostList =
-  XpnHostList'
-    { _xhlNextPageToken :: !(Maybe Text)
-    , _xhlKind          :: !Text
-    , _xhlItems         :: !(Maybe [Project])
-    , _xhlSelfLink      :: !(Maybe Text)
-    , _xhlWarning       :: !(Maybe XpnHostListWarning)
-    , _xhlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'XpnHostList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'xhlNextPageToken'
---
--- * 'xhlKind'
---
--- * 'xhlItems'
---
--- * 'xhlSelfLink'
---
--- * 'xhlWarning'
---
--- * 'xhlId'
-xpnHostList
-    :: XpnHostList
-xpnHostList =
-  XpnHostList'
-    { _xhlNextPageToken = Nothing
-    , _xhlKind = "compute#xpnHostList"
-    , _xhlItems = Nothing
-    , _xhlSelfLink = Nothing
-    , _xhlWarning = Nothing
-    , _xhlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-xhlNextPageToken :: Lens' XpnHostList (Maybe Text)
-xhlNextPageToken
-  = lens _xhlNextPageToken
-      (\ s a -> s{_xhlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#xpnHostList for lists of
--- shared VPC hosts.
-xhlKind :: Lens' XpnHostList Text
-xhlKind = lens _xhlKind (\ s a -> s{_xhlKind = a})
-
--- | [Output Only] A list of shared VPC host project URLs.
-xhlItems :: Lens' XpnHostList [Project]
-xhlItems
-  = lens _xhlItems (\ s a -> s{_xhlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-xhlSelfLink :: Lens' XpnHostList (Maybe Text)
-xhlSelfLink
-  = lens _xhlSelfLink (\ s a -> s{_xhlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-xhlWarning :: Lens' XpnHostList (Maybe XpnHostListWarning)
-xhlWarning
-  = lens _xhlWarning (\ s a -> s{_xhlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-xhlId :: Lens' XpnHostList (Maybe Text)
-xhlId = lens _xhlId (\ s a -> s{_xhlId = a})
-
-instance FromJSON XpnHostList where
-        parseJSON
-          = withObject "XpnHostList"
-              (\ o ->
-                 XpnHostList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#xpnHostList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON XpnHostList where
-        toJSON XpnHostList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _xhlNextPageToken,
-                  Just ("kind" .= _xhlKind),
-                  ("items" .=) <$> _xhlItems,
-                  ("selfLink" .=) <$> _xhlSelfLink,
-                  ("warning" .=) <$> _xhlWarning,
-                  ("id" .=) <$> _xhlId])
-
---
--- /See:/ 'instanceTemplateListWarningDataItem' smart constructor.
-data InstanceTemplateListWarningDataItem =
-  InstanceTemplateListWarningDataItem'
-    { _itlwdiValue :: !(Maybe Text)
-    , _itlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplateListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itlwdiValue'
---
--- * 'itlwdiKey'
-instanceTemplateListWarningDataItem
-    :: InstanceTemplateListWarningDataItem
-instanceTemplateListWarningDataItem =
-  InstanceTemplateListWarningDataItem'
-    {_itlwdiValue = Nothing, _itlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-itlwdiValue :: Lens' InstanceTemplateListWarningDataItem (Maybe Text)
-itlwdiValue
-  = lens _itlwdiValue (\ s a -> s{_itlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-itlwdiKey :: Lens' InstanceTemplateListWarningDataItem (Maybe Text)
-itlwdiKey
-  = lens _itlwdiKey (\ s a -> s{_itlwdiKey = a})
-
-instance FromJSON InstanceTemplateListWarningDataItem
-         where
-        parseJSON
-          = withObject "InstanceTemplateListWarningDataItem"
-              (\ o ->
-                 InstanceTemplateListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstanceTemplateListWarningDataItem
-         where
-        toJSON InstanceTemplateListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _itlwdiValue,
-                  ("key" .=) <$> _itlwdiKey])
-
--- | A service account.
---
--- /See:/ 'serviceAccount' smart constructor.
-data ServiceAccount =
-  ServiceAccount'
-    { _saEmail  :: !(Maybe Text)
-    , _saScopes :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ServiceAccount' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'saEmail'
---
--- * 'saScopes'
-serviceAccount
-    :: ServiceAccount
-serviceAccount = ServiceAccount' {_saEmail = Nothing, _saScopes = Nothing}
-
-
--- | Email address of the service account.
-saEmail :: Lens' ServiceAccount (Maybe Text)
-saEmail = lens _saEmail (\ s a -> s{_saEmail = a})
-
--- | The list of scopes to be made available for this service account.
-saScopes :: Lens' ServiceAccount [Text]
-saScopes
-  = lens _saScopes (\ s a -> s{_saScopes = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON ServiceAccount where
-        parseJSON
-          = withObject "ServiceAccount"
-              (\ o ->
-                 ServiceAccount' <$>
-                   (o .:? "email") <*> (o .:? "scopes" .!= mempty))
-
-instance ToJSON ServiceAccount where
-        toJSON ServiceAccount'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _saEmail,
-                  ("scopes" .=) <$> _saScopes])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'snapshotListWarning' smart constructor.
-data SnapshotListWarning =
-  SnapshotListWarning'
-    { _sData    :: !(Maybe [SnapshotListWarningDataItem])
-    , _sCode    :: !(Maybe SnapshotListWarningCode)
-    , _sMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sData'
---
--- * 'sCode'
---
--- * 'sMessage'
-snapshotListWarning
-    :: SnapshotListWarning
-snapshotListWarning =
-  SnapshotListWarning' {_sData = Nothing, _sCode = Nothing, _sMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-sData :: Lens' SnapshotListWarning [SnapshotListWarningDataItem]
-sData
-  = lens _sData (\ s a -> s{_sData = a}) . _Default .
-      _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-sCode :: Lens' SnapshotListWarning (Maybe SnapshotListWarningCode)
-sCode = lens _sCode (\ s a -> s{_sCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-sMessage :: Lens' SnapshotListWarning (Maybe Text)
-sMessage = lens _sMessage (\ s a -> s{_sMessage = a})
-
-instance FromJSON SnapshotListWarning where
-        parseJSON
-          = withObject "SnapshotListWarning"
-              (\ o ->
-                 SnapshotListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SnapshotListWarning where
-        toJSON SnapshotListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _sData, ("code" .=) <$> _sCode,
-                  ("message" .=) <$> _sMessage])
-
---
--- /See:/ 'regionInstanceGroupManagersAbandonInstancesRequest' smart constructor.
-newtype RegionInstanceGroupManagersAbandonInstancesRequest =
-  RegionInstanceGroupManagersAbandonInstancesRequest'
-    { _rigmairInstances :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersAbandonInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmairInstances'
-regionInstanceGroupManagersAbandonInstancesRequest
-    :: RegionInstanceGroupManagersAbandonInstancesRequest
-regionInstanceGroupManagersAbandonInstancesRequest =
-  RegionInstanceGroupManagersAbandonInstancesRequest'
-    {_rigmairInstances = Nothing}
-
-
--- | The URLs of one or more instances to abandon. This can be a full URL or
--- a partial URL, such as zones\/[ZONE]\/instances\/[INSTANCE_NAME].
-rigmairInstances :: Lens' RegionInstanceGroupManagersAbandonInstancesRequest [Text]
-rigmairInstances
-  = lens _rigmairInstances
-      (\ s a -> s{_rigmairInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupManagersAbandonInstancesRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersAbandonInstancesRequest"
-              (\ o ->
-                 RegionInstanceGroupManagersAbandonInstancesRequest'
-                   <$> (o .:? "instances" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupManagersAbandonInstancesRequest
-         where
-        toJSON
-          RegionInstanceGroupManagersAbandonInstancesRequest'{..}
-          = object
-              (catMaybes [("instances" .=) <$> _rigmairInstances])
-
--- | Contains a list of networks.
---
--- /See:/ 'networkList' smart constructor.
-data NetworkList =
-  NetworkList'
-    { _nlNextPageToken :: !(Maybe Text)
-    , _nlKind          :: !Text
-    , _nlItems         :: !(Maybe [Network])
-    , _nlSelfLink      :: !(Maybe Text)
-    , _nlWarning       :: !(Maybe NetworkListWarning)
-    , _nlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nlNextPageToken'
---
--- * 'nlKind'
---
--- * 'nlItems'
---
--- * 'nlSelfLink'
---
--- * 'nlWarning'
---
--- * 'nlId'
-networkList
-    :: NetworkList
-networkList =
-  NetworkList'
-    { _nlNextPageToken = Nothing
-    , _nlKind = "compute#networkList"
-    , _nlItems = Nothing
-    , _nlSelfLink = Nothing
-    , _nlWarning = Nothing
-    , _nlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-nlNextPageToken :: Lens' NetworkList (Maybe Text)
-nlNextPageToken
-  = lens _nlNextPageToken
-      (\ s a -> s{_nlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#networkList for lists of
--- networks.
-nlKind :: Lens' NetworkList Text
-nlKind = lens _nlKind (\ s a -> s{_nlKind = a})
-
--- | A list of Network resources.
-nlItems :: Lens' NetworkList [Network]
-nlItems
-  = lens _nlItems (\ s a -> s{_nlItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-nlSelfLink :: Lens' NetworkList (Maybe Text)
-nlSelfLink
-  = lens _nlSelfLink (\ s a -> s{_nlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-nlWarning :: Lens' NetworkList (Maybe NetworkListWarning)
-nlWarning
-  = lens _nlWarning (\ s a -> s{_nlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-nlId :: Lens' NetworkList (Maybe Text)
-nlId = lens _nlId (\ s a -> s{_nlId = a})
-
-instance FromJSON NetworkList where
-        parseJSON
-          = withObject "NetworkList"
-              (\ o ->
-                 NetworkList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#networkList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NetworkList where
-        toJSON NetworkList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _nlNextPageToken,
-                  Just ("kind" .= _nlKind), ("items" .=) <$> _nlItems,
-                  ("selfLink" .=) <$> _nlSelfLink,
-                  ("warning" .=) <$> _nlWarning, ("id" .=) <$> _nlId])
-
--- | A network peering attached to a network resource. The message includes
--- the peering name, peer network, peering state, and a flag indicating
--- whether Google Compute Engine should automatically create routes for the
--- peering.
---
--- /See:/ 'networkPeering' smart constructor.
-data NetworkPeering =
-  NetworkPeering'
-    { _netState                :: !(Maybe NetworkPeeringState)
-    , _netExchangeSubnetRoutes :: !(Maybe Bool)
-    , _netStateDetails         :: !(Maybe Text)
-    , _netNetwork              :: !(Maybe Text)
-    , _netName                 :: !(Maybe Text)
-    , _netAutoCreateRoutes     :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkPeering' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'netState'
---
--- * 'netExchangeSubnetRoutes'
---
--- * 'netStateDetails'
---
--- * 'netNetwork'
---
--- * 'netName'
---
--- * 'netAutoCreateRoutes'
-networkPeering
-    :: NetworkPeering
-networkPeering =
-  NetworkPeering'
-    { _netState = Nothing
-    , _netExchangeSubnetRoutes = Nothing
-    , _netStateDetails = Nothing
-    , _netNetwork = Nothing
-    , _netName = Nothing
-    , _netAutoCreateRoutes = Nothing
-    }
-
-
--- | [Output Only] State for the peering.
-netState :: Lens' NetworkPeering (Maybe NetworkPeeringState)
-netState = lens _netState (\ s a -> s{_netState = a})
-
--- | Whether full mesh connectivity is created and managed automatically.
--- When it is set to true, Google Compute Engine will automatically create
--- and manage the routes between two networks when the peering state is
--- ACTIVE. Otherwise, user needs to create routes manually to route packets
--- to peer network.
-netExchangeSubnetRoutes :: Lens' NetworkPeering (Maybe Bool)
-netExchangeSubnetRoutes
-  = lens _netExchangeSubnetRoutes
-      (\ s a -> s{_netExchangeSubnetRoutes = a})
-
--- | [Output Only] Details about the current state of the peering.
-netStateDetails :: Lens' NetworkPeering (Maybe Text)
-netStateDetails
-  = lens _netStateDetails
-      (\ s a -> s{_netStateDetails = a})
-
--- | The URL of the peer network. It can be either full URL or partial URL.
--- The peer network may belong to a different project. If the partial URL
--- does not contain project, it is assumed that the peer network is in the
--- same project as the current network.
-netNetwork :: Lens' NetworkPeering (Maybe Text)
-netNetwork
-  = lens _netNetwork (\ s a -> s{_netNetwork = a})
-
--- | Name of this peering. Provided by the client when the peering is
--- created. The name must comply with RFC1035. Specifically, the name must
--- be 1-63 characters long and match regular expression
--- \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first character must be a
--- lowercase letter, and all the following characters must be a dash,
--- lowercase letter, or digit, except the last character, which cannot be a
--- dash.
-netName :: Lens' NetworkPeering (Maybe Text)
-netName = lens _netName (\ s a -> s{_netName = a})
-
--- | This field will be deprecated soon. Prefer using exchange_subnet_routes
--- instead. Indicates whether full mesh connectivity is created and managed
--- automatically. When it is set to true, Google Compute Engine will
--- automatically create and manage the routes between two networks when the
--- state is ACTIVE. Otherwise, user needs to create routes manually to
--- route packets to peer network.
-netAutoCreateRoutes :: Lens' NetworkPeering (Maybe Bool)
-netAutoCreateRoutes
-  = lens _netAutoCreateRoutes
-      (\ s a -> s{_netAutoCreateRoutes = a})
-
-instance FromJSON NetworkPeering where
-        parseJSON
-          = withObject "NetworkPeering"
-              (\ o ->
-                 NetworkPeering' <$>
-                   (o .:? "state") <*> (o .:? "exchangeSubnetRoutes")
-                     <*> (o .:? "stateDetails")
-                     <*> (o .:? "network")
-                     <*> (o .:? "name")
-                     <*> (o .:? "autoCreateRoutes"))
-
-instance ToJSON NetworkPeering where
-        toJSON NetworkPeering'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _netState,
-                  ("exchangeSubnetRoutes" .=) <$>
-                    _netExchangeSubnetRoutes,
-                  ("stateDetails" .=) <$> _netStateDetails,
-                  ("network" .=) <$> _netNetwork,
-                  ("name" .=) <$> _netName,
-                  ("autoCreateRoutes" .=) <$> _netAutoCreateRoutes])
-
---
--- /See:/ 'targetSSLProxyListWarningDataItem' smart constructor.
-data TargetSSLProxyListWarningDataItem =
-  TargetSSLProxyListWarningDataItem'
-    { _tsplwdiValue :: !(Maybe Text)
-    , _tsplwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxyListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsplwdiValue'
---
--- * 'tsplwdiKey'
-targetSSLProxyListWarningDataItem
-    :: TargetSSLProxyListWarningDataItem
-targetSSLProxyListWarningDataItem =
-  TargetSSLProxyListWarningDataItem'
-    {_tsplwdiValue = Nothing, _tsplwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tsplwdiValue :: Lens' TargetSSLProxyListWarningDataItem (Maybe Text)
-tsplwdiValue
-  = lens _tsplwdiValue (\ s a -> s{_tsplwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tsplwdiKey :: Lens' TargetSSLProxyListWarningDataItem (Maybe Text)
-tsplwdiKey
-  = lens _tsplwdiKey (\ s a -> s{_tsplwdiKey = a})
-
-instance FromJSON TargetSSLProxyListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetSSLProxyListWarningDataItem"
-              (\ o ->
-                 TargetSSLProxyListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetSSLProxyListWarningDataItem
-         where
-        toJSON TargetSSLProxyListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tsplwdiValue,
-                  ("key" .=) <$> _tsplwdiKey])
-
---
--- /See:/ 'instanceGroupsListInstancesRequest' smart constructor.
-newtype InstanceGroupsListInstancesRequest =
-  InstanceGroupsListInstancesRequest'
-    { _iglirInstanceState :: Maybe InstanceGroupsListInstancesRequestInstanceState
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsListInstancesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iglirInstanceState'
-instanceGroupsListInstancesRequest
-    :: InstanceGroupsListInstancesRequest
-instanceGroupsListInstancesRequest =
-  InstanceGroupsListInstancesRequest' {_iglirInstanceState = Nothing}
-
-
--- | A filter for the state of the instances in the instance group. Valid
--- options are ALL or RUNNING. If you do not specify this parameter the
--- list includes all instances regardless of their state.
-iglirInstanceState :: Lens' InstanceGroupsListInstancesRequest (Maybe InstanceGroupsListInstancesRequestInstanceState)
-iglirInstanceState
-  = lens _iglirInstanceState
-      (\ s a -> s{_iglirInstanceState = a})
-
-instance FromJSON InstanceGroupsListInstancesRequest
-         where
-        parseJSON
-          = withObject "InstanceGroupsListInstancesRequest"
-              (\ o ->
-                 InstanceGroupsListInstancesRequest' <$>
-                   (o .:? "instanceState"))
-
-instance ToJSON InstanceGroupsListInstancesRequest
-         where
-        toJSON InstanceGroupsListInstancesRequest'{..}
-          = object
-              (catMaybes
-                 [("instanceState" .=) <$> _iglirInstanceState])
-
---
--- /See:/ 'instanceListReferrersWarningDataItem' smart constructor.
-data InstanceListReferrersWarningDataItem =
-  InstanceListReferrersWarningDataItem'
-    { _ilrwdiValue :: !(Maybe Text)
-    , _ilrwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceListReferrersWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilrwdiValue'
---
--- * 'ilrwdiKey'
-instanceListReferrersWarningDataItem
-    :: InstanceListReferrersWarningDataItem
-instanceListReferrersWarningDataItem =
-  InstanceListReferrersWarningDataItem'
-    {_ilrwdiValue = Nothing, _ilrwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ilrwdiValue :: Lens' InstanceListReferrersWarningDataItem (Maybe Text)
-ilrwdiValue
-  = lens _ilrwdiValue (\ s a -> s{_ilrwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ilrwdiKey :: Lens' InstanceListReferrersWarningDataItem (Maybe Text)
-ilrwdiKey
-  = lens _ilrwdiKey (\ s a -> s{_ilrwdiKey = a})
-
-instance FromJSON
-           InstanceListReferrersWarningDataItem
-         where
-        parseJSON
-          = withObject "InstanceListReferrersWarningDataItem"
-              (\ o ->
-                 InstanceListReferrersWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstanceListReferrersWarningDataItem
-         where
-        toJSON InstanceListReferrersWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ilrwdiValue,
-                  ("key" .=) <$> _ilrwdiKey])
-
---
--- /See:/ 'routeListWarningDataItem' smart constructor.
-data RouteListWarningDataItem =
-  RouteListWarningDataItem'
-    { _rValue :: !(Maybe Text)
-    , _rKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouteListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rValue'
---
--- * 'rKey'
-routeListWarningDataItem
-    :: RouteListWarningDataItem
-routeListWarningDataItem =
-  RouteListWarningDataItem' {_rValue = Nothing, _rKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rValue :: Lens' RouteListWarningDataItem (Maybe Text)
-rValue = lens _rValue (\ s a -> s{_rValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rKey :: Lens' RouteListWarningDataItem (Maybe Text)
-rKey = lens _rKey (\ s a -> s{_rKey = a})
-
-instance FromJSON RouteListWarningDataItem where
-        parseJSON
-          = withObject "RouteListWarningDataItem"
-              (\ o ->
-                 RouteListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RouteListWarningDataItem where
-        toJSON RouteListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rValue, ("key" .=) <$> _rKey])
-
---
--- /See:/ 'interconnectAttachmentsScopedList' smart constructor.
-data InterconnectAttachmentsScopedList =
-  InterconnectAttachmentsScopedList'
-    { _iaslWarning                 :: !(Maybe InterconnectAttachmentsScopedListWarning)
-    , _iaslInterconnectAttachments :: !(Maybe [InterconnectAttachment])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaslWarning'
---
--- * 'iaslInterconnectAttachments'
-interconnectAttachmentsScopedList
-    :: InterconnectAttachmentsScopedList
-interconnectAttachmentsScopedList =
-  InterconnectAttachmentsScopedList'
-    {_iaslWarning = Nothing, _iaslInterconnectAttachments = Nothing}
-
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
-iaslWarning :: Lens' InterconnectAttachmentsScopedList (Maybe InterconnectAttachmentsScopedListWarning)
-iaslWarning
-  = lens _iaslWarning (\ s a -> s{_iaslWarning = a})
-
--- | A list of interconnect attachments contained in this scope.
-iaslInterconnectAttachments :: Lens' InterconnectAttachmentsScopedList [InterconnectAttachment]
-iaslInterconnectAttachments
-  = lens _iaslInterconnectAttachments
-      (\ s a -> s{_iaslInterconnectAttachments = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InterconnectAttachmentsScopedList
-         where
-        parseJSON
-          = withObject "InterconnectAttachmentsScopedList"
-              (\ o ->
-                 InterconnectAttachmentsScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "interconnectAttachments" .!= mempty))
-
-instance ToJSON InterconnectAttachmentsScopedList
-         where
-        toJSON InterconnectAttachmentsScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _iaslWarning,
-                  ("interconnectAttachments" .=) <$>
-                    _iaslInterconnectAttachments])
-
---
--- /See:/ 'securityPolicyList' smart constructor.
-data SecurityPolicyList =
-  SecurityPolicyList'
-    { _splNextPageToken :: !(Maybe Text)
-    , _splKind          :: !Text
-    , _splItems         :: !(Maybe [SecurityPolicy])
-    , _splWarning       :: !(Maybe SecurityPolicyListWarning)
-    , _splId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splNextPageToken'
---
--- * 'splKind'
---
--- * 'splItems'
---
--- * 'splWarning'
---
--- * 'splId'
-securityPolicyList
-    :: SecurityPolicyList
-securityPolicyList =
-  SecurityPolicyList'
-    { _splNextPageToken = Nothing
-    , _splKind = "compute#securityPolicyList"
-    , _splItems = Nothing
-    , _splWarning = Nothing
-    , _splId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-splNextPageToken :: Lens' SecurityPolicyList (Maybe Text)
-splNextPageToken
-  = lens _splNextPageToken
-      (\ s a -> s{_splNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#securityPolicyList for
--- listsof securityPolicies
-splKind :: Lens' SecurityPolicyList Text
-splKind = lens _splKind (\ s a -> s{_splKind = a})
-
--- | A list of SecurityPolicy resources.
-splItems :: Lens' SecurityPolicyList [SecurityPolicy]
-splItems
-  = lens _splItems (\ s a -> s{_splItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Informational warning message.
-splWarning :: Lens' SecurityPolicyList (Maybe SecurityPolicyListWarning)
-splWarning
-  = lens _splWarning (\ s a -> s{_splWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-splId :: Lens' SecurityPolicyList (Maybe Text)
-splId = lens _splId (\ s a -> s{_splId = a})
-
-instance FromJSON SecurityPolicyList where
-        parseJSON
-          = withObject "SecurityPolicyList"
-              (\ o ->
-                 SecurityPolicyList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#securityPolicyList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SecurityPolicyList where
-        toJSON SecurityPolicyList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _splNextPageToken,
-                  Just ("kind" .= _splKind),
-                  ("items" .=) <$> _splItems,
-                  ("warning" .=) <$> _splWarning,
-                  ("id" .=) <$> _splId])
-
---
--- /See:/ 'commitmentAggregatedList' smart constructor.
-data CommitmentAggregatedList =
-  CommitmentAggregatedList'
-    { _calNextPageToken :: !(Maybe Text)
-    , _calKind          :: !Text
-    , _calItems         :: !(Maybe CommitmentAggregatedListItems)
-    , _calSelfLink      :: !(Maybe Text)
-    , _calWarning       :: !(Maybe CommitmentAggregatedListWarning)
-    , _calId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'calNextPageToken'
---
--- * 'calKind'
---
--- * 'calItems'
---
--- * 'calSelfLink'
---
--- * 'calWarning'
---
--- * 'calId'
-commitmentAggregatedList
-    :: CommitmentAggregatedList
-commitmentAggregatedList =
-  CommitmentAggregatedList'
-    { _calNextPageToken = Nothing
-    , _calKind = "compute#commitmentAggregatedList"
-    , _calItems = Nothing
-    , _calSelfLink = Nothing
-    , _calWarning = Nothing
-    , _calId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-calNextPageToken :: Lens' CommitmentAggregatedList (Maybe Text)
-calNextPageToken
-  = lens _calNextPageToken
-      (\ s a -> s{_calNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#commitmentAggregatedList
--- for aggregated lists of commitments.
-calKind :: Lens' CommitmentAggregatedList Text
-calKind = lens _calKind (\ s a -> s{_calKind = a})
-
--- | A list of CommitmentsScopedList resources.
-calItems :: Lens' CommitmentAggregatedList (Maybe CommitmentAggregatedListItems)
-calItems = lens _calItems (\ s a -> s{_calItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-calSelfLink :: Lens' CommitmentAggregatedList (Maybe Text)
-calSelfLink
-  = lens _calSelfLink (\ s a -> s{_calSelfLink = a})
-
--- | [Output Only] Informational warning message.
-calWarning :: Lens' CommitmentAggregatedList (Maybe CommitmentAggregatedListWarning)
-calWarning
-  = lens _calWarning (\ s a -> s{_calWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-calId :: Lens' CommitmentAggregatedList (Maybe Text)
-calId = lens _calId (\ s a -> s{_calId = a})
-
-instance FromJSON CommitmentAggregatedList where
-        parseJSON
-          = withObject "CommitmentAggregatedList"
-              (\ o ->
-                 CommitmentAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#commitmentAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON CommitmentAggregatedList where
-        toJSON CommitmentAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _calNextPageToken,
-                  Just ("kind" .= _calKind),
-                  ("items" .=) <$> _calItems,
-                  ("selfLink" .=) <$> _calSelfLink,
-                  ("warning" .=) <$> _calWarning,
-                  ("id" .=) <$> _calId])
-
--- | Contains a list of InstanceGroup resources.
---
--- /See:/ 'regionInstanceGroupList' smart constructor.
-data RegionInstanceGroupList =
-  RegionInstanceGroupList'
-    { _riglNextPageToken :: !(Maybe Text)
-    , _riglKind          :: !Text
-    , _riglItems         :: !(Maybe [InstanceGroup])
-    , _riglSelfLink      :: !(Maybe Text)
-    , _riglWarning       :: !(Maybe RegionInstanceGroupListWarning)
-    , _riglId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riglNextPageToken'
---
--- * 'riglKind'
---
--- * 'riglItems'
---
--- * 'riglSelfLink'
---
--- * 'riglWarning'
---
--- * 'riglId'
-regionInstanceGroupList
-    :: RegionInstanceGroupList
-regionInstanceGroupList =
-  RegionInstanceGroupList'
-    { _riglNextPageToken = Nothing
-    , _riglKind = "compute#regionInstanceGroupList"
-    , _riglItems = Nothing
-    , _riglSelfLink = Nothing
-    , _riglWarning = Nothing
-    , _riglId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-riglNextPageToken :: Lens' RegionInstanceGroupList (Maybe Text)
-riglNextPageToken
-  = lens _riglNextPageToken
-      (\ s a -> s{_riglNextPageToken = a})
-
--- | The resource type.
-riglKind :: Lens' RegionInstanceGroupList Text
-riglKind = lens _riglKind (\ s a -> s{_riglKind = a})
-
--- | A list of InstanceGroup resources.
-riglItems :: Lens' RegionInstanceGroupList [InstanceGroup]
-riglItems
-  = lens _riglItems (\ s a -> s{_riglItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-riglSelfLink :: Lens' RegionInstanceGroupList (Maybe Text)
-riglSelfLink
-  = lens _riglSelfLink (\ s a -> s{_riglSelfLink = a})
-
--- | [Output Only] Informational warning message.
-riglWarning :: Lens' RegionInstanceGroupList (Maybe RegionInstanceGroupListWarning)
-riglWarning
-  = lens _riglWarning (\ s a -> s{_riglWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-riglId :: Lens' RegionInstanceGroupList (Maybe Text)
-riglId = lens _riglId (\ s a -> s{_riglId = a})
-
-instance FromJSON RegionInstanceGroupList where
-        parseJSON
-          = withObject "RegionInstanceGroupList"
-              (\ o ->
-                 RegionInstanceGroupList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#regionInstanceGroupList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionInstanceGroupList where
-        toJSON RegionInstanceGroupList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _riglNextPageToken,
-                  Just ("kind" .= _riglKind),
-                  ("items" .=) <$> _riglItems,
-                  ("selfLink" .=) <$> _riglSelfLink,
-                  ("warning" .=) <$> _riglWarning,
-                  ("id" .=) <$> _riglId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'vMEndpointNATMAppingsListWarning' smart constructor.
-data VMEndpointNATMAppingsListWarning =
-  VMEndpointNATMAppingsListWarning'
-    { _vmenatmalwData    :: !(Maybe [VMEndpointNATMAppingsListWarningDataItem])
-    , _vmenatmalwCode    :: !(Maybe VMEndpointNATMAppingsListWarningCode)
-    , _vmenatmalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VMEndpointNATMAppingsListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vmenatmalwData'
---
--- * 'vmenatmalwCode'
---
--- * 'vmenatmalwMessage'
-vMEndpointNATMAppingsListWarning
-    :: VMEndpointNATMAppingsListWarning
-vMEndpointNATMAppingsListWarning =
-  VMEndpointNATMAppingsListWarning'
-    { _vmenatmalwData = Nothing
-    , _vmenatmalwCode = Nothing
-    , _vmenatmalwMessage = Nothing
-    }
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-vmenatmalwData :: Lens' VMEndpointNATMAppingsListWarning [VMEndpointNATMAppingsListWarningDataItem]
-vmenatmalwData
-  = lens _vmenatmalwData
-      (\ s a -> s{_vmenatmalwData = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-vmenatmalwCode :: Lens' VMEndpointNATMAppingsListWarning (Maybe VMEndpointNATMAppingsListWarningCode)
-vmenatmalwCode
-  = lens _vmenatmalwCode
-      (\ s a -> s{_vmenatmalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-vmenatmalwMessage :: Lens' VMEndpointNATMAppingsListWarning (Maybe Text)
-vmenatmalwMessage
-  = lens _vmenatmalwMessage
-      (\ s a -> s{_vmenatmalwMessage = a})
-
-instance FromJSON VMEndpointNATMAppingsListWarning
-         where
-        parseJSON
-          = withObject "VMEndpointNATMAppingsListWarning"
-              (\ o ->
-                 VMEndpointNATMAppingsListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON VMEndpointNATMAppingsListWarning
-         where
-        toJSON VMEndpointNATMAppingsListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _vmenatmalwData,
-                  ("code" .=) <$> _vmenatmalwCode,
-                  ("message" .=) <$> _vmenatmalwMessage])
-
--- | A list of TargetPool resources.
---
--- /See:/ 'targetPoolAggregatedListItems' smart constructor.
-newtype TargetPoolAggregatedListItems =
-  TargetPoolAggregatedListItems'
-    { _tpaliAddtional :: HashMap Text TargetPoolsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpaliAddtional'
-targetPoolAggregatedListItems
-    :: HashMap Text TargetPoolsScopedList -- ^ 'tpaliAddtional'
-    -> TargetPoolAggregatedListItems
-targetPoolAggregatedListItems pTpaliAddtional_ =
-  TargetPoolAggregatedListItems' {_tpaliAddtional = _Coerce # pTpaliAddtional_}
-
-
--- | Name of the scope containing this set of target pools.
-tpaliAddtional :: Lens' TargetPoolAggregatedListItems (HashMap Text TargetPoolsScopedList)
-tpaliAddtional
-  = lens _tpaliAddtional
-      (\ s a -> s{_tpaliAddtional = a})
-      . _Coerce
-
-instance FromJSON TargetPoolAggregatedListItems where
-        parseJSON
-          = withObject "TargetPoolAggregatedListItems"
-              (\ o ->
-                 TargetPoolAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON TargetPoolAggregatedListItems where
-        toJSON = toJSON . _tpaliAddtional
-
---
--- /See:/ 'nodeGroupsAddNodesRequest' smart constructor.
-newtype NodeGroupsAddNodesRequest =
-  NodeGroupsAddNodesRequest'
-    { _nganrAdditionalNodeCount :: Maybe (Textual Int32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsAddNodesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nganrAdditionalNodeCount'
-nodeGroupsAddNodesRequest
-    :: NodeGroupsAddNodesRequest
-nodeGroupsAddNodesRequest =
-  NodeGroupsAddNodesRequest' {_nganrAdditionalNodeCount = Nothing}
-
-
--- | Count of additional nodes to be added to the node group.
-nganrAdditionalNodeCount :: Lens' NodeGroupsAddNodesRequest (Maybe Int32)
-nganrAdditionalNodeCount
-  = lens _nganrAdditionalNodeCount
-      (\ s a -> s{_nganrAdditionalNodeCount = a})
-      . mapping _Coerce
-
-instance FromJSON NodeGroupsAddNodesRequest where
-        parseJSON
-          = withObject "NodeGroupsAddNodesRequest"
-              (\ o ->
-                 NodeGroupsAddNodesRequest' <$>
-                   (o .:? "additionalNodeCount"))
-
-instance ToJSON NodeGroupsAddNodesRequest where
-        toJSON NodeGroupsAddNodesRequest'{..}
-          = object
-              (catMaybes
-                 [("additionalNodeCount" .=) <$>
-                    _nganrAdditionalNodeCount])
-
---
--- /See:/ 'nodeTypeAggregatedList' smart constructor.
-data NodeTypeAggregatedList =
-  NodeTypeAggregatedList'
-    { _ntalNextPageToken :: !(Maybe Text)
-    , _ntalKind          :: !Text
-    , _ntalItems         :: !(Maybe NodeTypeAggregatedListItems)
-    , _ntalSelfLink      :: !(Maybe Text)
-    , _ntalWarning       :: !(Maybe NodeTypeAggregatedListWarning)
-    , _ntalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntalNextPageToken'
---
--- * 'ntalKind'
---
--- * 'ntalItems'
---
--- * 'ntalSelfLink'
---
--- * 'ntalWarning'
---
--- * 'ntalId'
-nodeTypeAggregatedList
-    :: NodeTypeAggregatedList
-nodeTypeAggregatedList =
-  NodeTypeAggregatedList'
-    { _ntalNextPageToken = Nothing
-    , _ntalKind = "compute#nodeTypeAggregatedList"
-    , _ntalItems = Nothing
-    , _ntalSelfLink = Nothing
-    , _ntalWarning = Nothing
-    , _ntalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ntalNextPageToken :: Lens' NodeTypeAggregatedList (Maybe Text)
-ntalNextPageToken
-  = lens _ntalNextPageToken
-      (\ s a -> s{_ntalNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeTypeAggregatedList for
--- aggregated lists of node types.
-ntalKind :: Lens' NodeTypeAggregatedList Text
-ntalKind = lens _ntalKind (\ s a -> s{_ntalKind = a})
-
--- | A list of NodeTypesScopedList resources.
-ntalItems :: Lens' NodeTypeAggregatedList (Maybe NodeTypeAggregatedListItems)
-ntalItems
-  = lens _ntalItems (\ s a -> s{_ntalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-ntalSelfLink :: Lens' NodeTypeAggregatedList (Maybe Text)
-ntalSelfLink
-  = lens _ntalSelfLink (\ s a -> s{_ntalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ntalWarning :: Lens' NodeTypeAggregatedList (Maybe NodeTypeAggregatedListWarning)
-ntalWarning
-  = lens _ntalWarning (\ s a -> s{_ntalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ntalId :: Lens' NodeTypeAggregatedList (Maybe Text)
-ntalId = lens _ntalId (\ s a -> s{_ntalId = a})
-
-instance FromJSON NodeTypeAggregatedList where
-        parseJSON
-          = withObject "NodeTypeAggregatedList"
-              (\ o ->
-                 NodeTypeAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeTypeAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeTypeAggregatedList where
-        toJSON NodeTypeAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ntalNextPageToken,
-                  Just ("kind" .= _ntalKind),
-                  ("items" .=) <$> _ntalItems,
-                  ("selfLink" .=) <$> _ntalSelfLink,
-                  ("warning" .=) <$> _ntalWarning,
-                  ("id" .=) <$> _ntalId])
-
---
--- /See:/ 'targetInstancesScopedList' smart constructor.
-data TargetInstancesScopedList =
-  TargetInstancesScopedList'
-    { _tislWarning         :: !(Maybe TargetInstancesScopedListWarning)
-    , _tislTargetInstances :: !(Maybe [TargetInstance])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tislWarning'
---
--- * 'tislTargetInstances'
-targetInstancesScopedList
-    :: TargetInstancesScopedList
-targetInstancesScopedList =
-  TargetInstancesScopedList'
-    {_tislWarning = Nothing, _tislTargetInstances = Nothing}
-
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
-tislWarning :: Lens' TargetInstancesScopedList (Maybe TargetInstancesScopedListWarning)
-tislWarning
-  = lens _tislWarning (\ s a -> s{_tislWarning = a})
-
--- | A list of target instances contained in this scope.
-tislTargetInstances :: Lens' TargetInstancesScopedList [TargetInstance]
-tislTargetInstances
-  = lens _tislTargetInstances
-      (\ s a -> s{_tislTargetInstances = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TargetInstancesScopedList where
-        parseJSON
-          = withObject "TargetInstancesScopedList"
-              (\ o ->
-                 TargetInstancesScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "targetInstances" .!= mempty))
-
-instance ToJSON TargetInstancesScopedList where
-        toJSON TargetInstancesScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _tislWarning,
-                  ("targetInstances" .=) <$> _tislTargetInstances])
-
---
--- /See:/ 'subnetworkListWarningDataItem' smart constructor.
-data SubnetworkListWarningDataItem =
-  SubnetworkListWarningDataItem'
-    { _sValue :: !(Maybe Text)
-    , _sKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sValue'
---
--- * 'sKey'
-subnetworkListWarningDataItem
-    :: SubnetworkListWarningDataItem
-subnetworkListWarningDataItem =
-  SubnetworkListWarningDataItem' {_sValue = Nothing, _sKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-sValue :: Lens' SubnetworkListWarningDataItem (Maybe Text)
-sValue = lens _sValue (\ s a -> s{_sValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-sKey :: Lens' SubnetworkListWarningDataItem (Maybe Text)
-sKey = lens _sKey (\ s a -> s{_sKey = a})
-
-instance FromJSON SubnetworkListWarningDataItem where
-        parseJSON
-          = withObject "SubnetworkListWarningDataItem"
-              (\ o ->
-                 SubnetworkListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SubnetworkListWarningDataItem where
-        toJSON SubnetworkListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _sValue, ("key" .=) <$> _sKey])
-
---
--- /See:/ 'networkEndpointGroupListWarningDataItem' smart constructor.
-data NetworkEndpointGroupListWarningDataItem =
-  NetworkEndpointGroupListWarningDataItem'
-    { _neglwdiValue :: !(Maybe Text)
-    , _neglwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglwdiValue'
---
--- * 'neglwdiKey'
-networkEndpointGroupListWarningDataItem
-    :: NetworkEndpointGroupListWarningDataItem
-networkEndpointGroupListWarningDataItem =
-  NetworkEndpointGroupListWarningDataItem'
-    {_neglwdiValue = Nothing, _neglwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-neglwdiValue :: Lens' NetworkEndpointGroupListWarningDataItem (Maybe Text)
-neglwdiValue
-  = lens _neglwdiValue (\ s a -> s{_neglwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-neglwdiKey :: Lens' NetworkEndpointGroupListWarningDataItem (Maybe Text)
-neglwdiKey
-  = lens _neglwdiKey (\ s a -> s{_neglwdiKey = a})
-
-instance FromJSON
-           NetworkEndpointGroupListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupListWarningDataItem"
-              (\ o ->
-                 NetworkEndpointGroupListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NetworkEndpointGroupListWarningDataItem
-         where
-        toJSON NetworkEndpointGroupListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _neglwdiValue,
-                  ("key" .=) <$> _neglwdiKey])
-
---
--- /See:/ 'projectsDisableXpnResourceRequest' smart constructor.
-newtype ProjectsDisableXpnResourceRequest =
-  ProjectsDisableXpnResourceRequest'
-    { _pdxrrXpnResource :: Maybe XpnResourceId
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsDisableXpnResourceRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pdxrrXpnResource'
-projectsDisableXpnResourceRequest
-    :: ProjectsDisableXpnResourceRequest
-projectsDisableXpnResourceRequest =
-  ProjectsDisableXpnResourceRequest' {_pdxrrXpnResource = Nothing}
-
-
--- | Service resource (a.k.a service project) ID.
-pdxrrXpnResource :: Lens' ProjectsDisableXpnResourceRequest (Maybe XpnResourceId)
-pdxrrXpnResource
-  = lens _pdxrrXpnResource
-      (\ s a -> s{_pdxrrXpnResource = a})
-
-instance FromJSON ProjectsDisableXpnResourceRequest
-         where
-        parseJSON
-          = withObject "ProjectsDisableXpnResourceRequest"
-              (\ o ->
-                 ProjectsDisableXpnResourceRequest' <$>
-                   (o .:? "xpnResource"))
-
-instance ToJSON ProjectsDisableXpnResourceRequest
-         where
-        toJSON ProjectsDisableXpnResourceRequest'{..}
-          = object
-              (catMaybes
-                 [("xpnResource" .=) <$> _pdxrrXpnResource])
-
--- | A list of AddressesScopedList resources.
---
--- /See:/ 'addressAggregatedListItems' smart constructor.
-newtype AddressAggregatedListItems =
-  AddressAggregatedListItems'
-    { _aAddtional :: HashMap Text AddressesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aAddtional'
-addressAggregatedListItems
-    :: HashMap Text AddressesScopedList -- ^ 'aAddtional'
-    -> AddressAggregatedListItems
-addressAggregatedListItems pAAddtional_ =
-  AddressAggregatedListItems' {_aAddtional = _Coerce # pAAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of addresses.
-aAddtional :: Lens' AddressAggregatedListItems (HashMap Text AddressesScopedList)
-aAddtional
-  = lens _aAddtional (\ s a -> s{_aAddtional = a}) .
-      _Coerce
-
-instance FromJSON AddressAggregatedListItems where
-        parseJSON
-          = withObject "AddressAggregatedListItems"
-              (\ o ->
-                 AddressAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON AddressAggregatedListItems where
-        toJSON = toJSON . _aAddtional
-
--- | Contains a list of Autoscaler resources.
---
--- /See:/ 'autoscalerList' smart constructor.
-data AutoscalerList =
-  AutoscalerList'
-    { _autNextPageToken :: !(Maybe Text)
-    , _autKind          :: !Text
-    , _autItems         :: !(Maybe [Autoscaler])
-    , _autSelfLink      :: !(Maybe Text)
-    , _autWarning       :: !(Maybe AutoscalerListWarning)
-    , _autId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'autNextPageToken'
---
--- * 'autKind'
---
--- * 'autItems'
---
--- * 'autSelfLink'
---
--- * 'autWarning'
---
--- * 'autId'
-autoscalerList
-    :: AutoscalerList
-autoscalerList =
-  AutoscalerList'
-    { _autNextPageToken = Nothing
-    , _autKind = "compute#autoscalerList"
-    , _autItems = Nothing
-    , _autSelfLink = Nothing
-    , _autWarning = Nothing
-    , _autId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-autNextPageToken :: Lens' AutoscalerList (Maybe Text)
-autNextPageToken
-  = lens _autNextPageToken
-      (\ s a -> s{_autNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#autoscalerList for lists
--- of autoscalers.
-autKind :: Lens' AutoscalerList Text
-autKind = lens _autKind (\ s a -> s{_autKind = a})
-
--- | A list of Autoscaler resources.
-autItems :: Lens' AutoscalerList [Autoscaler]
-autItems
-  = lens _autItems (\ s a -> s{_autItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-autSelfLink :: Lens' AutoscalerList (Maybe Text)
-autSelfLink
-  = lens _autSelfLink (\ s a -> s{_autSelfLink = a})
-
--- | [Output Only] Informational warning message.
-autWarning :: Lens' AutoscalerList (Maybe AutoscalerListWarning)
-autWarning
-  = lens _autWarning (\ s a -> s{_autWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-autId :: Lens' AutoscalerList (Maybe Text)
-autId = lens _autId (\ s a -> s{_autId = a})
-
-instance FromJSON AutoscalerList where
-        parseJSON
-          = withObject "AutoscalerList"
-              (\ o ->
-                 AutoscalerList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#autoscalerList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AutoscalerList where
-        toJSON AutoscalerList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _autNextPageToken,
-                  Just ("kind" .= _autKind),
-                  ("items" .=) <$> _autItems,
-                  ("selfLink" .=) <$> _autSelfLink,
-                  ("warning" .=) <$> _autWarning,
-                  ("id" .=) <$> _autId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'networkEndpointGroupAggregatedListWarning' smart constructor.
-data NetworkEndpointGroupAggregatedListWarning =
-  NetworkEndpointGroupAggregatedListWarning'
-    { _negalwData    :: !(Maybe [NetworkEndpointGroupAggregatedListWarningDataItem])
-    , _negalwCode    :: !(Maybe NetworkEndpointGroupAggregatedListWarningCode)
-    , _negalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negalwData'
---
--- * 'negalwCode'
---
--- * 'negalwMessage'
-networkEndpointGroupAggregatedListWarning
-    :: NetworkEndpointGroupAggregatedListWarning
-networkEndpointGroupAggregatedListWarning =
-  NetworkEndpointGroupAggregatedListWarning'
-    {_negalwData = Nothing, _negalwCode = Nothing, _negalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-negalwData :: Lens' NetworkEndpointGroupAggregatedListWarning [NetworkEndpointGroupAggregatedListWarningDataItem]
-negalwData
-  = lens _negalwData (\ s a -> s{_negalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-negalwCode :: Lens' NetworkEndpointGroupAggregatedListWarning (Maybe NetworkEndpointGroupAggregatedListWarningCode)
-negalwCode
-  = lens _negalwCode (\ s a -> s{_negalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-negalwMessage :: Lens' NetworkEndpointGroupAggregatedListWarning (Maybe Text)
-negalwMessage
-  = lens _negalwMessage
-      (\ s a -> s{_negalwMessage = a})
-
-instance FromJSON
-           NetworkEndpointGroupAggregatedListWarning
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupAggregatedListWarning"
-              (\ o ->
-                 NetworkEndpointGroupAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           NetworkEndpointGroupAggregatedListWarning
-         where
-        toJSON NetworkEndpointGroupAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _negalwData,
-                  ("code" .=) <$> _negalwCode,
-                  ("message" .=) <$> _negalwMessage])
-
---
--- /See:/ 'interconnectListWarningDataItem' smart constructor.
-data InterconnectListWarningDataItem =
-  InterconnectListWarningDataItem'
-    { _iValue :: !(Maybe Text)
-    , _iKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iValue'
---
--- * 'iKey'
-interconnectListWarningDataItem
-    :: InterconnectListWarningDataItem
-interconnectListWarningDataItem =
-  InterconnectListWarningDataItem' {_iValue = Nothing, _iKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-iValue :: Lens' InterconnectListWarningDataItem (Maybe Text)
-iValue = lens _iValue (\ s a -> s{_iValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-iKey :: Lens' InterconnectListWarningDataItem (Maybe Text)
-iKey = lens _iKey (\ s a -> s{_iKey = a})
-
-instance FromJSON InterconnectListWarningDataItem
-         where
-        parseJSON
-          = withObject "InterconnectListWarningDataItem"
-              (\ o ->
-                 InterconnectListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InterconnectListWarningDataItem where
-        toJSON InterconnectListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _iValue, ("key" .=) <$> _iKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'subnetworkAggregatedListWarning' smart constructor.
-data SubnetworkAggregatedListWarning =
-  SubnetworkAggregatedListWarning'
-    { _salwData    :: !(Maybe [SubnetworkAggregatedListWarningDataItem])
-    , _salwCode    :: !(Maybe SubnetworkAggregatedListWarningCode)
-    , _salwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'salwData'
---
--- * 'salwCode'
---
--- * 'salwMessage'
-subnetworkAggregatedListWarning
-    :: SubnetworkAggregatedListWarning
-subnetworkAggregatedListWarning =
-  SubnetworkAggregatedListWarning'
-    {_salwData = Nothing, _salwCode = Nothing, _salwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-salwData :: Lens' SubnetworkAggregatedListWarning [SubnetworkAggregatedListWarningDataItem]
-salwData
-  = lens _salwData (\ s a -> s{_salwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-salwCode :: Lens' SubnetworkAggregatedListWarning (Maybe SubnetworkAggregatedListWarningCode)
-salwCode = lens _salwCode (\ s a -> s{_salwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-salwMessage :: Lens' SubnetworkAggregatedListWarning (Maybe Text)
-salwMessage
-  = lens _salwMessage (\ s a -> s{_salwMessage = a})
-
-instance FromJSON SubnetworkAggregatedListWarning
-         where
-        parseJSON
-          = withObject "SubnetworkAggregatedListWarning"
-              (\ o ->
-                 SubnetworkAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SubnetworkAggregatedListWarning where
-        toJSON SubnetworkAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _salwData,
-                  ("code" .=) <$> _salwCode,
-                  ("message" .=) <$> _salwMessage])
-
--- | Represents an InterconnectLocations resource. The InterconnectLocations
--- resource describes the locations where you can connect to Google\'s
--- networks. For more information, see Colocation Facilities.
---
--- /See:/ 'interconnectLocation' smart constructor.
-data InterconnectLocation =
-  InterconnectLocation'
-    { _intFacilityProviderFacilityId :: !(Maybe Text)
-    , _intStatus                     :: !(Maybe InterconnectLocationStatus)
-    , _intRegionInfos                :: !(Maybe [InterconnectLocationRegionInfo])
-    , _intKind                       :: !Text
-    , _intAddress                    :: !(Maybe Text)
-    , _intFacilityProvider           :: !(Maybe Text)
-    , _intSelfLink                   :: !(Maybe Text)
-    , _intPeeringdbFacilityId        :: !(Maybe Text)
-    , _intName                       :: !(Maybe Text)
-    , _intCity                       :: !(Maybe Text)
-    , _intAvailabilityZone           :: !(Maybe Text)
-    , _intCreationTimestamp          :: !(Maybe Text)
-    , _intId                         :: !(Maybe (Textual Word64))
-    , _intContinent                  :: !(Maybe InterconnectLocationContinent)
-    , _intDescription                :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocation' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'intFacilityProviderFacilityId'
---
--- * 'intStatus'
---
--- * 'intRegionInfos'
---
--- * 'intKind'
---
--- * 'intAddress'
---
--- * 'intFacilityProvider'
---
--- * 'intSelfLink'
---
--- * 'intPeeringdbFacilityId'
---
--- * 'intName'
---
--- * 'intCity'
---
--- * 'intAvailabilityZone'
---
--- * 'intCreationTimestamp'
---
--- * 'intId'
---
--- * 'intContinent'
---
--- * 'intDescription'
-interconnectLocation
-    :: InterconnectLocation
-interconnectLocation =
-  InterconnectLocation'
-    { _intFacilityProviderFacilityId = Nothing
-    , _intStatus = Nothing
-    , _intRegionInfos = Nothing
-    , _intKind = "compute#interconnectLocation"
-    , _intAddress = Nothing
-    , _intFacilityProvider = Nothing
-    , _intSelfLink = Nothing
-    , _intPeeringdbFacilityId = Nothing
-    , _intName = Nothing
-    , _intCity = Nothing
-    , _intAvailabilityZone = Nothing
-    , _intCreationTimestamp = Nothing
-    , _intId = Nothing
-    , _intContinent = Nothing
-    , _intDescription = Nothing
-    }
-
-
--- | [Output Only] A provider-assigned Identifier for this facility (e.g.,
--- Ashburn-DC1).
-intFacilityProviderFacilityId :: Lens' InterconnectLocation (Maybe Text)
-intFacilityProviderFacilityId
-  = lens _intFacilityProviderFacilityId
-      (\ s a -> s{_intFacilityProviderFacilityId = a})
-
--- | [Output Only] The status of this InterconnectLocation. If the status is
--- AVAILABLE, new Interconnects may be provisioned in this
--- InterconnectLocation. Otherwise, no new Interconnects may be
--- provisioned.
-intStatus :: Lens' InterconnectLocation (Maybe InterconnectLocationStatus)
-intStatus
-  = lens _intStatus (\ s a -> s{_intStatus = a})
-
--- | [Output Only] A list of InterconnectLocation.RegionInfo objects, that
--- describe parameters pertaining to the relation between this
--- InterconnectLocation and various Google Cloud regions.
-intRegionInfos :: Lens' InterconnectLocation [InterconnectLocationRegionInfo]
-intRegionInfos
-  = lens _intRegionInfos
-      (\ s a -> s{_intRegionInfos = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Type of the resource. Always compute#interconnectLocation
--- for interconnect locations.
-intKind :: Lens' InterconnectLocation Text
-intKind = lens _intKind (\ s a -> s{_intKind = a})
-
--- | [Output Only] The postal address of the Point of Presence, each line in
--- the address is separated by a newline character.
-intAddress :: Lens' InterconnectLocation (Maybe Text)
-intAddress
-  = lens _intAddress (\ s a -> s{_intAddress = a})
-
--- | [Output Only] The name of the provider for this facility (e.g.,
--- EQUINIX).
-intFacilityProvider :: Lens' InterconnectLocation (Maybe Text)
-intFacilityProvider
-  = lens _intFacilityProvider
-      (\ s a -> s{_intFacilityProvider = a})
-
--- | [Output Only] Server-defined URL for the resource.
-intSelfLink :: Lens' InterconnectLocation (Maybe Text)
-intSelfLink
-  = lens _intSelfLink (\ s a -> s{_intSelfLink = a})
-
--- | [Output Only] The peeringdb identifier for this facility (corresponding
--- with a netfac type in peeringdb).
-intPeeringdbFacilityId :: Lens' InterconnectLocation (Maybe Text)
-intPeeringdbFacilityId
-  = lens _intPeeringdbFacilityId
-      (\ s a -> s{_intPeeringdbFacilityId = a})
-
--- | [Output Only] Name of the resource.
-intName :: Lens' InterconnectLocation (Maybe Text)
-intName = lens _intName (\ s a -> s{_intName = a})
-
--- | [Output Only] Metropolitan area designator that indicates which city an
--- interconnect is located. For example: \"Chicago, IL\", \"Amsterdam,
--- Netherlands\".
-intCity :: Lens' InterconnectLocation (Maybe Text)
-intCity = lens _intCity (\ s a -> s{_intCity = a})
-
--- | [Output Only] Availability zone for this InterconnectLocation. Within a
--- metropolitan area (metro), maintenance will not be simultaneously
--- scheduled in more than one availability zone. Example: \"zone1\" or
--- \"zone2\".
-intAvailabilityZone :: Lens' InterconnectLocation (Maybe Text)
-intAvailabilityZone
-  = lens _intAvailabilityZone
-      (\ s a -> s{_intAvailabilityZone = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-intCreationTimestamp :: Lens' InterconnectLocation (Maybe Text)
-intCreationTimestamp
-  = lens _intCreationTimestamp
-      (\ s a -> s{_intCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-intId :: Lens' InterconnectLocation (Maybe Word64)
-intId
-  = lens _intId (\ s a -> s{_intId = a}) .
-      mapping _Coerce
-
--- | [Output Only] Continent for this location.
-intContinent :: Lens' InterconnectLocation (Maybe InterconnectLocationContinent)
-intContinent
-  = lens _intContinent (\ s a -> s{_intContinent = a})
-
--- | [Output Only] An optional description of the resource.
-intDescription :: Lens' InterconnectLocation (Maybe Text)
-intDescription
-  = lens _intDescription
-      (\ s a -> s{_intDescription = a})
-
-instance FromJSON InterconnectLocation where
-        parseJSON
-          = withObject "InterconnectLocation"
-              (\ o ->
-                 InterconnectLocation' <$>
-                   (o .:? "facilityProviderFacilityId") <*>
-                     (o .:? "status")
-                     <*> (o .:? "regionInfos" .!= mempty)
-                     <*> (o .:? "kind" .!= "compute#interconnectLocation")
-                     <*> (o .:? "address")
-                     <*> (o .:? "facilityProvider")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "peeringdbFacilityId")
-                     <*> (o .:? "name")
-                     <*> (o .:? "city")
-                     <*> (o .:? "availabilityZone")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "continent")
-                     <*> (o .:? "description"))
-
-instance ToJSON InterconnectLocation where
-        toJSON InterconnectLocation'{..}
-          = object
-              (catMaybes
-                 [("facilityProviderFacilityId" .=) <$>
-                    _intFacilityProviderFacilityId,
-                  ("status" .=) <$> _intStatus,
-                  ("regionInfos" .=) <$> _intRegionInfos,
-                  Just ("kind" .= _intKind),
-                  ("address" .=) <$> _intAddress,
-                  ("facilityProvider" .=) <$> _intFacilityProvider,
-                  ("selfLink" .=) <$> _intSelfLink,
-                  ("peeringdbFacilityId" .=) <$>
-                    _intPeeringdbFacilityId,
-                  ("name" .=) <$> _intName, ("city" .=) <$> _intCity,
-                  ("availabilityZone" .=) <$> _intAvailabilityZone,
-                  ("creationTimestamp" .=) <$> _intCreationTimestamp,
-                  ("id" .=) <$> _intId,
-                  ("continent" .=) <$> _intContinent,
-                  ("description" .=) <$> _intDescription])
-
---
--- /See:/ 'targetSSLProxiesSetProxyHeaderRequest' smart constructor.
-newtype TargetSSLProxiesSetProxyHeaderRequest =
-  TargetSSLProxiesSetProxyHeaderRequest'
-    { _tspsphrProxyHeader :: Maybe TargetSSLProxiesSetProxyHeaderRequestProxyHeader
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetProxyHeaderRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsphrProxyHeader'
-targetSSLProxiesSetProxyHeaderRequest
-    :: TargetSSLProxiesSetProxyHeaderRequest
-targetSSLProxiesSetProxyHeaderRequest =
-  TargetSSLProxiesSetProxyHeaderRequest' {_tspsphrProxyHeader = Nothing}
-
-
--- | The new type of proxy header to append before sending data to the
--- backend. NONE or PROXY_V1 are allowed.
-tspsphrProxyHeader :: Lens' TargetSSLProxiesSetProxyHeaderRequest (Maybe TargetSSLProxiesSetProxyHeaderRequestProxyHeader)
-tspsphrProxyHeader
-  = lens _tspsphrProxyHeader
-      (\ s a -> s{_tspsphrProxyHeader = a})
-
-instance FromJSON
-           TargetSSLProxiesSetProxyHeaderRequest
-         where
-        parseJSON
-          = withObject "TargetSSLProxiesSetProxyHeaderRequest"
-              (\ o ->
-                 TargetSSLProxiesSetProxyHeaderRequest' <$>
-                   (o .:? "proxyHeader"))
-
-instance ToJSON TargetSSLProxiesSetProxyHeaderRequest
-         where
-        toJSON TargetSSLProxiesSetProxyHeaderRequest'{..}
-          = object
-              (catMaybes
-                 [("proxyHeader" .=) <$> _tspsphrProxyHeader])
-
---
--- /See:/ 'vpnTunnelAggregatedList' smart constructor.
-data VPNTunnelAggregatedList =
-  VPNTunnelAggregatedList'
-    { _vtalNextPageToken :: !(Maybe Text)
-    , _vtalKind          :: !Text
-    , _vtalItems         :: !(Maybe VPNTunnelAggregatedListItems)
-    , _vtalSelfLink      :: !(Maybe Text)
-    , _vtalWarning       :: !(Maybe VPNTunnelAggregatedListWarning)
-    , _vtalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtalNextPageToken'
---
--- * 'vtalKind'
---
--- * 'vtalItems'
---
--- * 'vtalSelfLink'
---
--- * 'vtalWarning'
---
--- * 'vtalId'
-vpnTunnelAggregatedList
-    :: VPNTunnelAggregatedList
-vpnTunnelAggregatedList =
-  VPNTunnelAggregatedList'
-    { _vtalNextPageToken = Nothing
-    , _vtalKind = "compute#vpnTunnelAggregatedList"
-    , _vtalItems = Nothing
-    , _vtalSelfLink = Nothing
-    , _vtalWarning = Nothing
-    , _vtalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-vtalNextPageToken :: Lens' VPNTunnelAggregatedList (Maybe Text)
-vtalNextPageToken
-  = lens _vtalNextPageToken
-      (\ s a -> s{_vtalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN
--- tunnels.
-vtalKind :: Lens' VPNTunnelAggregatedList Text
-vtalKind = lens _vtalKind (\ s a -> s{_vtalKind = a})
-
--- | A list of VpnTunnelsScopedList resources.
-vtalItems :: Lens' VPNTunnelAggregatedList (Maybe VPNTunnelAggregatedListItems)
-vtalItems
-  = lens _vtalItems (\ s a -> s{_vtalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-vtalSelfLink :: Lens' VPNTunnelAggregatedList (Maybe Text)
-vtalSelfLink
-  = lens _vtalSelfLink (\ s a -> s{_vtalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-vtalWarning :: Lens' VPNTunnelAggregatedList (Maybe VPNTunnelAggregatedListWarning)
-vtalWarning
-  = lens _vtalWarning (\ s a -> s{_vtalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-vtalId :: Lens' VPNTunnelAggregatedList (Maybe Text)
-vtalId = lens _vtalId (\ s a -> s{_vtalId = a})
-
-instance FromJSON VPNTunnelAggregatedList where
-        parseJSON
-          = withObject "VPNTunnelAggregatedList"
-              (\ o ->
-                 VPNTunnelAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#vpnTunnelAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON VPNTunnelAggregatedList where
-        toJSON VPNTunnelAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _vtalNextPageToken,
-                  Just ("kind" .= _vtalKind),
-                  ("items" .=) <$> _vtalItems,
-                  ("selfLink" .=) <$> _vtalSelfLink,
-                  ("warning" .=) <$> _vtalWarning,
-                  ("id" .=) <$> _vtalId])
-
---
--- /See:/ 'sslPoliciesListWarningDataItem' smart constructor.
-data SSLPoliciesListWarningDataItem =
-  SSLPoliciesListWarningDataItem'
-    { _splwdiValue :: !(Maybe Text)
-    , _splwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splwdiValue'
---
--- * 'splwdiKey'
-sslPoliciesListWarningDataItem
-    :: SSLPoliciesListWarningDataItem
-sslPoliciesListWarningDataItem =
-  SSLPoliciesListWarningDataItem' {_splwdiValue = Nothing, _splwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-splwdiValue :: Lens' SSLPoliciesListWarningDataItem (Maybe Text)
-splwdiValue
-  = lens _splwdiValue (\ s a -> s{_splwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-splwdiKey :: Lens' SSLPoliciesListWarningDataItem (Maybe Text)
-splwdiKey
-  = lens _splwdiKey (\ s a -> s{_splwdiKey = a})
-
-instance FromJSON SSLPoliciesListWarningDataItem
-         where
-        parseJSON
-          = withObject "SSLPoliciesListWarningDataItem"
-              (\ o ->
-                 SSLPoliciesListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SSLPoliciesListWarningDataItem where
-        toJSON SSLPoliciesListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _splwdiValue,
-                  ("key" .=) <$> _splwdiKey])
-
--- | Describes a single physical circuit between the Customer and Google.
--- CircuitInfo objects are created by Google, so all fields are output
--- only. Next id: 4
---
--- /See:/ 'interconnectCircuitInfo' smart constructor.
-data InterconnectCircuitInfo =
-  InterconnectCircuitInfo'
-    { _iciGoogleCircuitId  :: !(Maybe Text)
-    , _iciCustomerDemarcId :: !(Maybe Text)
-    , _iciGoogleDemarcId   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectCircuitInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iciGoogleCircuitId'
---
--- * 'iciCustomerDemarcId'
---
--- * 'iciGoogleDemarcId'
-interconnectCircuitInfo
-    :: InterconnectCircuitInfo
-interconnectCircuitInfo =
-  InterconnectCircuitInfo'
-    { _iciGoogleCircuitId = Nothing
-    , _iciCustomerDemarcId = Nothing
-    , _iciGoogleDemarcId = Nothing
-    }
-
-
--- | Google-assigned unique ID for this circuit. Assigned at circuit turn-up.
-iciGoogleCircuitId :: Lens' InterconnectCircuitInfo (Maybe Text)
-iciGoogleCircuitId
-  = lens _iciGoogleCircuitId
-      (\ s a -> s{_iciGoogleCircuitId = a})
-
--- | Customer-side demarc ID for this circuit.
-iciCustomerDemarcId :: Lens' InterconnectCircuitInfo (Maybe Text)
-iciCustomerDemarcId
-  = lens _iciCustomerDemarcId
-      (\ s a -> s{_iciCustomerDemarcId = a})
-
--- | Google-side demarc ID for this circuit. Assigned at circuit turn-up and
--- provided by Google to the customer in the LOA.
-iciGoogleDemarcId :: Lens' InterconnectCircuitInfo (Maybe Text)
-iciGoogleDemarcId
-  = lens _iciGoogleDemarcId
-      (\ s a -> s{_iciGoogleDemarcId = a})
-
-instance FromJSON InterconnectCircuitInfo where
-        parseJSON
-          = withObject "InterconnectCircuitInfo"
-              (\ o ->
-                 InterconnectCircuitInfo' <$>
-                   (o .:? "googleCircuitId") <*>
-                     (o .:? "customerDemarcId")
-                     <*> (o .:? "googleDemarcId"))
-
-instance ToJSON InterconnectCircuitInfo where
-        toJSON InterconnectCircuitInfo'{..}
-          = object
-              (catMaybes
-                 [("googleCircuitId" .=) <$> _iciGoogleCircuitId,
-                  ("customerDemarcId" .=) <$> _iciCustomerDemarcId,
-                  ("googleDemarcId" .=) <$> _iciGoogleDemarcId])
-
--- | An instance-attached disk resource.
---
--- /See:/ 'attachedDisk' smart constructor.
-data AttachedDisk =
-  AttachedDisk'
-    { _adDiskEncryptionKey :: !(Maybe CustomerEncryptionKey)
-    , _adKind              :: !Text
-    , _adMode              :: !(Maybe AttachedDiskMode)
-    , _adGuestOSFeatures   :: !(Maybe [GuestOSFeature])
-    , _adBoot              :: !(Maybe Bool)
-    , _adAutoDelete        :: !(Maybe Bool)
-    , _adInitializeParams  :: !(Maybe AttachedDiskInitializeParams)
-    , _adDeviceName        :: !(Maybe Text)
-    , _adInterface         :: !(Maybe AttachedDiskInterface)
-    , _adSource            :: !(Maybe Text)
-    , _adLicenses          :: !(Maybe [Text])
-    , _adType              :: !(Maybe AttachedDiskType)
-    , _adIndex             :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AttachedDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adDiskEncryptionKey'
---
--- * 'adKind'
---
--- * 'adMode'
---
--- * 'adGuestOSFeatures'
---
--- * 'adBoot'
---
--- * 'adAutoDelete'
---
--- * 'adInitializeParams'
---
--- * 'adDeviceName'
---
--- * 'adInterface'
---
--- * 'adSource'
---
--- * 'adLicenses'
---
--- * 'adType'
---
--- * 'adIndex'
-attachedDisk
-    :: AttachedDisk
-attachedDisk =
-  AttachedDisk'
-    { _adDiskEncryptionKey = Nothing
-    , _adKind = "compute#attachedDisk"
-    , _adMode = Nothing
-    , _adGuestOSFeatures = Nothing
-    , _adBoot = Nothing
-    , _adAutoDelete = Nothing
-    , _adInitializeParams = Nothing
-    , _adDeviceName = Nothing
-    , _adInterface = Nothing
-    , _adSource = Nothing
-    , _adLicenses = Nothing
-    , _adType = Nothing
-    , _adIndex = Nothing
-    }
-
-
--- | Encrypts or decrypts a disk using a customer-supplied encryption key. If
--- you are creating a new disk, this field encrypts the new disk using an
--- encryption key that you provide. If you are attaching an existing disk
--- that is already encrypted, this field decrypts the disk using the
--- customer-supplied encryption key. If you encrypt a disk using a
--- customer-supplied key, you must provide the same key again when you
--- attempt to use this resource at a later time. For example, you must
--- provide the key when you create a snapshot or an image from the disk or
--- when you attach the disk to a virtual machine instance. If you do not
--- provide an encryption key, then the disk will be encrypted using an
--- automatically generated key and you do not need to provide a key to use
--- the disk later. Instance templates do not store customer-supplied
--- encryption keys, so you cannot use your own keys to encrypt disks in a
--- managed instance group.
-adDiskEncryptionKey :: Lens' AttachedDisk (Maybe CustomerEncryptionKey)
-adDiskEncryptionKey
-  = lens _adDiskEncryptionKey
-      (\ s a -> s{_adDiskEncryptionKey = a})
-
--- | [Output Only] Type of the resource. Always compute#attachedDisk for
--- attached disks.
-adKind :: Lens' AttachedDisk Text
-adKind = lens _adKind (\ s a -> s{_adKind = a})
-
--- | The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
--- If not specified, the default is to attach the disk in READ_WRITE mode.
-adMode :: Lens' AttachedDisk (Maybe AttachedDiskMode)
-adMode = lens _adMode (\ s a -> s{_adMode = a})
-
--- | A list of features to enable on the guest operating system. Applicable
--- only for bootable images. Read Enabling guest operating system features
--- to see a list of available options.
-adGuestOSFeatures :: Lens' AttachedDisk [GuestOSFeature]
-adGuestOSFeatures
-  = lens _adGuestOSFeatures
-      (\ s a -> s{_adGuestOSFeatures = a})
-      . _Default
-      . _Coerce
-
--- | Indicates that this is a boot disk. The virtual machine will use the
--- first partition of the disk for its root filesystem.
-adBoot :: Lens' AttachedDisk (Maybe Bool)
-adBoot = lens _adBoot (\ s a -> s{_adBoot = a})
-
--- | Specifies whether the disk will be auto-deleted when the instance is
--- deleted (but not when the disk is detached from the instance).
-adAutoDelete :: Lens' AttachedDisk (Maybe Bool)
-adAutoDelete
-  = lens _adAutoDelete (\ s a -> s{_adAutoDelete = a})
-
--- | [Input Only] Specifies the parameters for a new disk that will be
--- created alongside the new instance. Use initialization parameters to
--- create boot disks or local SSDs attached to the new instance. This
--- property is mutually exclusive with the source property; you can only
--- define one or the other, but not both.
-adInitializeParams :: Lens' AttachedDisk (Maybe AttachedDiskInitializeParams)
-adInitializeParams
-  = lens _adInitializeParams
-      (\ s a -> s{_adInitializeParams = a})
-
--- | Specifies a unique device name of your choice that is reflected into the
--- \/dev\/disk\/by-id\/google-* tree of a Linux operating system running
--- within the instance. This name can be used to reference the device for
--- mounting, resizing, and so on, from within the instance. If not
--- specified, the server chooses a default device name to apply to this
--- disk, in the form persistent-disk-x, where x is a number assigned by
--- Google Compute Engine. This field is only applicable for persistent
--- disks.
-adDeviceName :: Lens' AttachedDisk (Maybe Text)
-adDeviceName
-  = lens _adDeviceName (\ s a -> s{_adDeviceName = a})
-
--- | Specifies the disk interface to use for attaching this disk, which is
--- either SCSI or NVME. The default is SCSI. Persistent disks must always
--- use SCSI and the request will fail if you attempt to attach a persistent
--- disk in any other format than SCSI. Local SSDs can use either NVME or
--- SCSI. For performance characteristics of SCSI over NVMe, see Local SSD
--- performance.
-adInterface :: Lens' AttachedDisk (Maybe AttachedDiskInterface)
-adInterface
-  = lens _adInterface (\ s a -> s{_adInterface = a})
-
--- | Specifies a valid partial or full URL to an existing Persistent Disk
--- resource. When creating a new instance, one of
--- initializeParams.sourceImage or disks.source is required except for
--- local SSD. If desired, you can also attach existing non-root persistent
--- disks using this property. This field is only applicable for persistent
--- disks. Note that for InstanceTemplate, specify the disk name, not the
--- URL for the disk.
-adSource :: Lens' AttachedDisk (Maybe Text)
-adSource = lens _adSource (\ s a -> s{_adSource = a})
-
--- | [Output Only] Any valid publicly visible licenses.
-adLicenses :: Lens' AttachedDisk [Text]
-adLicenses
-  = lens _adLicenses (\ s a -> s{_adLicenses = a}) .
-      _Default
-      . _Coerce
-
--- | Specifies the type of the disk, either SCRATCH or PERSISTENT. If not
--- specified, the default is PERSISTENT.
-adType :: Lens' AttachedDisk (Maybe AttachedDiskType)
-adType = lens _adType (\ s a -> s{_adType = a})
-
--- | [Output Only] A zero-based index to this disk, where 0 is reserved for
--- the boot disk. If you have many disks attached to an instance, each disk
--- would have a unique index number.
-adIndex :: Lens' AttachedDisk (Maybe Int32)
-adIndex
-  = lens _adIndex (\ s a -> s{_adIndex = a}) .
-      mapping _Coerce
-
-instance FromJSON AttachedDisk where
-        parseJSON
-          = withObject "AttachedDisk"
-              (\ o ->
-                 AttachedDisk' <$>
-                   (o .:? "diskEncryptionKey") <*>
-                     (o .:? "kind" .!= "compute#attachedDisk")
-                     <*> (o .:? "mode")
-                     <*> (o .:? "guestOsFeatures" .!= mempty)
-                     <*> (o .:? "boot")
-                     <*> (o .:? "autoDelete")
-                     <*> (o .:? "initializeParams")
-                     <*> (o .:? "deviceName")
-                     <*> (o .:? "interface")
-                     <*> (o .:? "source")
-                     <*> (o .:? "licenses" .!= mempty)
-                     <*> (o .:? "type")
-                     <*> (o .:? "index"))
-
-instance ToJSON AttachedDisk where
-        toJSON AttachedDisk'{..}
-          = object
-              (catMaybes
-                 [("diskEncryptionKey" .=) <$> _adDiskEncryptionKey,
-                  Just ("kind" .= _adKind), ("mode" .=) <$> _adMode,
-                  ("guestOsFeatures" .=) <$> _adGuestOSFeatures,
-                  ("boot" .=) <$> _adBoot,
-                  ("autoDelete" .=) <$> _adAutoDelete,
-                  ("initializeParams" .=) <$> _adInitializeParams,
-                  ("deviceName" .=) <$> _adDeviceName,
-                  ("interface" .=) <$> _adInterface,
-                  ("source" .=) <$> _adSource,
-                  ("licenses" .=) <$> _adLicenses,
-                  ("type" .=) <$> _adType, ("index" .=) <$> _adIndex])
-
---
--- /See:/ 'hTTPHealthCheckListWarningDataItem' smart constructor.
-data HTTPHealthCheckListWarningDataItem =
-  HTTPHealthCheckListWarningDataItem'
-    { _httphclwdiValue :: !(Maybe Text)
-    , _httphclwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthCheckListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphclwdiValue'
---
--- * 'httphclwdiKey'
-hTTPHealthCheckListWarningDataItem
-    :: HTTPHealthCheckListWarningDataItem
-hTTPHealthCheckListWarningDataItem =
-  HTTPHealthCheckListWarningDataItem'
-    {_httphclwdiValue = Nothing, _httphclwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-httphclwdiValue :: Lens' HTTPHealthCheckListWarningDataItem (Maybe Text)
-httphclwdiValue
-  = lens _httphclwdiValue
-      (\ s a -> s{_httphclwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-httphclwdiKey :: Lens' HTTPHealthCheckListWarningDataItem (Maybe Text)
-httphclwdiKey
-  = lens _httphclwdiKey
-      (\ s a -> s{_httphclwdiKey = a})
-
-instance FromJSON HTTPHealthCheckListWarningDataItem
-         where
-        parseJSON
-          = withObject "HTTPHealthCheckListWarningDataItem"
-              (\ o ->
-                 HTTPHealthCheckListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON HTTPHealthCheckListWarningDataItem
-         where
-        toJSON HTTPHealthCheckListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _httphclwdiValue,
-                  ("key" .=) <$> _httphclwdiKey])
-
--- | Contains a list of disk types.
---
--- /See:/ 'diskTypeList' smart constructor.
-data DiskTypeList =
-  DiskTypeList'
-    { _dtlNextPageToken :: !(Maybe Text)
-    , _dtlKind          :: !Text
-    , _dtlItems         :: !(Maybe [DiskType])
-    , _dtlSelfLink      :: !(Maybe Text)
-    , _dtlWarning       :: !(Maybe DiskTypeListWarning)
-    , _dtlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtlNextPageToken'
---
--- * 'dtlKind'
---
--- * 'dtlItems'
---
--- * 'dtlSelfLink'
---
--- * 'dtlWarning'
---
--- * 'dtlId'
-diskTypeList
-    :: DiskTypeList
-diskTypeList =
-  DiskTypeList'
-    { _dtlNextPageToken = Nothing
-    , _dtlKind = "compute#diskTypeList"
-    , _dtlItems = Nothing
-    , _dtlSelfLink = Nothing
-    , _dtlWarning = Nothing
-    , _dtlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-dtlNextPageToken :: Lens' DiskTypeList (Maybe Text)
-dtlNextPageToken
-  = lens _dtlNextPageToken
-      (\ s a -> s{_dtlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#diskTypeList for disk
--- types.
-dtlKind :: Lens' DiskTypeList Text
-dtlKind = lens _dtlKind (\ s a -> s{_dtlKind = a})
-
--- | A list of DiskType resources.
-dtlItems :: Lens' DiskTypeList [DiskType]
-dtlItems
-  = lens _dtlItems (\ s a -> s{_dtlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-dtlSelfLink :: Lens' DiskTypeList (Maybe Text)
-dtlSelfLink
-  = lens _dtlSelfLink (\ s a -> s{_dtlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-dtlWarning :: Lens' DiskTypeList (Maybe DiskTypeListWarning)
-dtlWarning
-  = lens _dtlWarning (\ s a -> s{_dtlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-dtlId :: Lens' DiskTypeList (Maybe Text)
-dtlId = lens _dtlId (\ s a -> s{_dtlId = a})
-
-instance FromJSON DiskTypeList where
-        parseJSON
-          = withObject "DiskTypeList"
-              (\ o ->
-                 DiskTypeList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#diskTypeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON DiskTypeList where
-        toJSON DiskTypeList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dtlNextPageToken,
-                  Just ("kind" .= _dtlKind),
-                  ("items" .=) <$> _dtlItems,
-                  ("selfLink" .=) <$> _dtlSelfLink,
-                  ("warning" .=) <$> _dtlWarning,
-                  ("id" .=) <$> _dtlId])
-
---
--- /See:/ 'regionInstanceGroupsSetNamedPortsRequest' smart constructor.
-data RegionInstanceGroupsSetNamedPortsRequest =
-  RegionInstanceGroupsSetNamedPortsRequest'
-    { _rigsnprFingerprint :: !(Maybe Bytes)
-    , _rigsnprNamedPorts  :: !(Maybe [NamedPort])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsSetNamedPortsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigsnprFingerprint'
---
--- * 'rigsnprNamedPorts'
-regionInstanceGroupsSetNamedPortsRequest
-    :: RegionInstanceGroupsSetNamedPortsRequest
-regionInstanceGroupsSetNamedPortsRequest =
-  RegionInstanceGroupsSetNamedPortsRequest'
-    {_rigsnprFingerprint = Nothing, _rigsnprNamedPorts = Nothing}
-
-
--- | The fingerprint of the named ports information for this instance group.
--- Use this optional property to prevent conflicts when multiple users
--- change the named ports settings concurrently. Obtain the fingerprint
--- with the instanceGroups.get method. Then, include the fingerprint in
--- your request to ensure that you do not overwrite changes that were
--- applied from another concurrent request.
-rigsnprFingerprint :: Lens' RegionInstanceGroupsSetNamedPortsRequest (Maybe ByteString)
-rigsnprFingerprint
-  = lens _rigsnprFingerprint
-      (\ s a -> s{_rigsnprFingerprint = a})
-      . mapping _Bytes
-
--- | The list of named ports to set for this instance group.
-rigsnprNamedPorts :: Lens' RegionInstanceGroupsSetNamedPortsRequest [NamedPort]
-rigsnprNamedPorts
-  = lens _rigsnprNamedPorts
-      (\ s a -> s{_rigsnprNamedPorts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           RegionInstanceGroupsSetNamedPortsRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupsSetNamedPortsRequest"
-              (\ o ->
-                 RegionInstanceGroupsSetNamedPortsRequest' <$>
-                   (o .:? "fingerprint") <*>
-                     (o .:? "namedPorts" .!= mempty))
-
-instance ToJSON
-           RegionInstanceGroupsSetNamedPortsRequest
-         where
-        toJSON RegionInstanceGroupsSetNamedPortsRequest'{..}
-          = object
-              (catMaybes
-                 [("fingerprint" .=) <$> _rigsnprFingerprint,
-                  ("namedPorts" .=) <$> _rigsnprNamedPorts])
-
---
--- /See:/ 'testPermissionsRequest' smart constructor.
-newtype TestPermissionsRequest =
-  TestPermissionsRequest'
-    { _tPermissions :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TestPermissionsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tPermissions'
-testPermissionsRequest
-    :: TestPermissionsRequest
-testPermissionsRequest = TestPermissionsRequest' {_tPermissions = Nothing}
-
-
--- | The set of permissions to check for the \'resource\'. Permissions with
--- wildcards (such as \'*\' or \'storage.*\') are not allowed.
-tPermissions :: Lens' TestPermissionsRequest [Text]
-tPermissions
-  = lens _tPermissions (\ s a -> s{_tPermissions = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON TestPermissionsRequest where
-        parseJSON
-          = withObject "TestPermissionsRequest"
-              (\ o ->
-                 TestPermissionsRequest' <$>
-                   (o .:? "permissions" .!= mempty))
-
-instance ToJSON TestPermissionsRequest where
-        toJSON TestPermissionsRequest'{..}
-          = object
-              (catMaybes [("permissions" .=) <$> _tPermissions])
-
---
--- /See:/ 'targetTCPProxyListWarningDataItem' smart constructor.
-data TargetTCPProxyListWarningDataItem =
-  TargetTCPProxyListWarningDataItem'
-    { _ttplwdiValue :: !(Maybe Text)
-    , _ttplwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxyListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttplwdiValue'
---
--- * 'ttplwdiKey'
-targetTCPProxyListWarningDataItem
-    :: TargetTCPProxyListWarningDataItem
-targetTCPProxyListWarningDataItem =
-  TargetTCPProxyListWarningDataItem'
-    {_ttplwdiValue = Nothing, _ttplwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ttplwdiValue :: Lens' TargetTCPProxyListWarningDataItem (Maybe Text)
-ttplwdiValue
-  = lens _ttplwdiValue (\ s a -> s{_ttplwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ttplwdiKey :: Lens' TargetTCPProxyListWarningDataItem (Maybe Text)
-ttplwdiKey
-  = lens _ttplwdiKey (\ s a -> s{_ttplwdiKey = a})
-
-instance FromJSON TargetTCPProxyListWarningDataItem
-         where
-        parseJSON
-          = withObject "TargetTCPProxyListWarningDataItem"
-              (\ o ->
-                 TargetTCPProxyListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetTCPProxyListWarningDataItem
-         where
-        toJSON TargetTCPProxyListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ttplwdiValue,
-                  ("key" .=) <$> _ttplwdiKey])
-
---
--- /See:/ 'projectsGetXpnResources' smart constructor.
-data ProjectsGetXpnResources =
-  ProjectsGetXpnResources'
-    { _pgxrNextPageToken :: !(Maybe Text)
-    , _pgxrKind          :: !Text
-    , _pgxrResources     :: !(Maybe [XpnResourceId])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsGetXpnResources' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgxrNextPageToken'
---
--- * 'pgxrKind'
---
--- * 'pgxrResources'
-projectsGetXpnResources
-    :: ProjectsGetXpnResources
-projectsGetXpnResources =
-  ProjectsGetXpnResources'
-    { _pgxrNextPageToken = Nothing
-    , _pgxrKind = "compute#projectsGetXpnResources"
-    , _pgxrResources = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-pgxrNextPageToken :: Lens' ProjectsGetXpnResources (Maybe Text)
-pgxrNextPageToken
-  = lens _pgxrNextPageToken
-      (\ s a -> s{_pgxrNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#projectsGetXpnResources
--- for lists of service resources (a.k.a service projects)
-pgxrKind :: Lens' ProjectsGetXpnResources Text
-pgxrKind = lens _pgxrKind (\ s a -> s{_pgxrKind = a})
-
--- | Service resources (a.k.a service projects) attached to this project as
--- their shared VPC host.
-pgxrResources :: Lens' ProjectsGetXpnResources [XpnResourceId]
-pgxrResources
-  = lens _pgxrResources
-      (\ s a -> s{_pgxrResources = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON ProjectsGetXpnResources where
-        parseJSON
-          = withObject "ProjectsGetXpnResources"
-              (\ o ->
-                 ProjectsGetXpnResources' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#projectsGetXpnResources")
-                     <*> (o .:? "resources" .!= mempty))
-
-instance ToJSON ProjectsGetXpnResources where
-        toJSON ProjectsGetXpnResources'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _pgxrNextPageToken,
-                  Just ("kind" .= _pgxrKind),
-                  ("resources" .=) <$> _pgxrResources])
-
---
--- /See:/ 'networkEndpointWithHealthStatus' smart constructor.
-data NetworkEndpointWithHealthStatus =
-  NetworkEndpointWithHealthStatus'
-    { _newhsHealths         :: !(Maybe [HealthStatusForNetworkEndpoint])
-    , _newhsNetworkEndpoint :: !(Maybe NetworkEndpoint)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointWithHealthStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'newhsHealths'
---
--- * 'newhsNetworkEndpoint'
-networkEndpointWithHealthStatus
-    :: NetworkEndpointWithHealthStatus
-networkEndpointWithHealthStatus =
-  NetworkEndpointWithHealthStatus'
-    {_newhsHealths = Nothing, _newhsNetworkEndpoint = Nothing}
-
-
--- | [Output only] The health status of network endpoint;
-newhsHealths :: Lens' NetworkEndpointWithHealthStatus [HealthStatusForNetworkEndpoint]
-newhsHealths
-  = lens _newhsHealths (\ s a -> s{_newhsHealths = a})
-      . _Default
-      . _Coerce
-
--- | [Output only] The network endpoint;
-newhsNetworkEndpoint :: Lens' NetworkEndpointWithHealthStatus (Maybe NetworkEndpoint)
-newhsNetworkEndpoint
-  = lens _newhsNetworkEndpoint
-      (\ s a -> s{_newhsNetworkEndpoint = a})
-
-instance FromJSON NetworkEndpointWithHealthStatus
-         where
-        parseJSON
-          = withObject "NetworkEndpointWithHealthStatus"
-              (\ o ->
-                 NetworkEndpointWithHealthStatus' <$>
-                   (o .:? "healths" .!= mempty) <*>
-                     (o .:? "networkEndpoint"))
-
-instance ToJSON NetworkEndpointWithHealthStatus where
-        toJSON NetworkEndpointWithHealthStatus'{..}
-          = object
-              (catMaybes
-                 [("healths" .=) <$> _newhsHealths,
-                  ("networkEndpoint" .=) <$> _newhsNetworkEndpoint])
-
--- | Contains a list of machine types.
---
--- /See:/ 'machineTypeList' smart constructor.
-data MachineTypeList =
-  MachineTypeList'
-    { _mtlNextPageToken :: !(Maybe Text)
-    , _mtlKind          :: !Text
-    , _mtlItems         :: !(Maybe [MachineType])
-    , _mtlSelfLink      :: !(Maybe Text)
-    , _mtlWarning       :: !(Maybe MachineTypeListWarning)
-    , _mtlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtlNextPageToken'
---
--- * 'mtlKind'
---
--- * 'mtlItems'
---
--- * 'mtlSelfLink'
---
--- * 'mtlWarning'
---
--- * 'mtlId'
-machineTypeList
-    :: MachineTypeList
-machineTypeList =
-  MachineTypeList'
-    { _mtlNextPageToken = Nothing
-    , _mtlKind = "compute#machineTypeList"
-    , _mtlItems = Nothing
-    , _mtlSelfLink = Nothing
-    , _mtlWarning = Nothing
-    , _mtlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-mtlNextPageToken :: Lens' MachineTypeList (Maybe Text)
-mtlNextPageToken
-  = lens _mtlNextPageToken
-      (\ s a -> s{_mtlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#machineTypeList for lists
--- of machine types.
-mtlKind :: Lens' MachineTypeList Text
-mtlKind = lens _mtlKind (\ s a -> s{_mtlKind = a})
-
--- | A list of MachineType resources.
-mtlItems :: Lens' MachineTypeList [MachineType]
-mtlItems
-  = lens _mtlItems (\ s a -> s{_mtlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-mtlSelfLink :: Lens' MachineTypeList (Maybe Text)
-mtlSelfLink
-  = lens _mtlSelfLink (\ s a -> s{_mtlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-mtlWarning :: Lens' MachineTypeList (Maybe MachineTypeListWarning)
-mtlWarning
-  = lens _mtlWarning (\ s a -> s{_mtlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-mtlId :: Lens' MachineTypeList (Maybe Text)
-mtlId = lens _mtlId (\ s a -> s{_mtlId = a})
-
-instance FromJSON MachineTypeList where
-        parseJSON
-          = withObject "MachineTypeList"
-              (\ o ->
-                 MachineTypeList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#machineTypeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON MachineTypeList where
-        toJSON MachineTypeList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _mtlNextPageToken,
-                  Just ("kind" .= _mtlKind),
-                  ("items" .=) <$> _mtlItems,
-                  ("selfLink" .=) <$> _mtlSelfLink,
-                  ("warning" .=) <$> _mtlWarning,
-                  ("id" .=) <$> _mtlId])
-
--- | A list of TargetHttpProxy resources.
---
--- /See:/ 'targetHTTPProxyList' smart constructor.
-data TargetHTTPProxyList =
-  TargetHTTPProxyList'
-    { _thttpplNextPageToken :: !(Maybe Text)
-    , _thttpplKind          :: !Text
-    , _thttpplItems         :: !(Maybe [TargetHTTPProxy])
-    , _thttpplSelfLink      :: !(Maybe Text)
-    , _thttpplWarning       :: !(Maybe TargetHTTPProxyListWarning)
-    , _thttpplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxyList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttpplNextPageToken'
---
--- * 'thttpplKind'
---
--- * 'thttpplItems'
---
--- * 'thttpplSelfLink'
---
--- * 'thttpplWarning'
---
--- * 'thttpplId'
-targetHTTPProxyList
-    :: TargetHTTPProxyList
-targetHTTPProxyList =
-  TargetHTTPProxyList'
-    { _thttpplNextPageToken = Nothing
-    , _thttpplKind = "compute#targetHttpProxyList"
-    , _thttpplItems = Nothing
-    , _thttpplSelfLink = Nothing
-    , _thttpplWarning = Nothing
-    , _thttpplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-thttpplNextPageToken :: Lens' TargetHTTPProxyList (Maybe Text)
-thttpplNextPageToken
-  = lens _thttpplNextPageToken
-      (\ s a -> s{_thttpplNextPageToken = a})
-
--- | Type of resource. Always compute#targetHttpProxyList for lists of target
--- HTTP proxies.
-thttpplKind :: Lens' TargetHTTPProxyList Text
-thttpplKind
-  = lens _thttpplKind (\ s a -> s{_thttpplKind = a})
-
--- | A list of TargetHttpProxy resources.
-thttpplItems :: Lens' TargetHTTPProxyList [TargetHTTPProxy]
-thttpplItems
-  = lens _thttpplItems (\ s a -> s{_thttpplItems = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-thttpplSelfLink :: Lens' TargetHTTPProxyList (Maybe Text)
-thttpplSelfLink
-  = lens _thttpplSelfLink
-      (\ s a -> s{_thttpplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-thttpplWarning :: Lens' TargetHTTPProxyList (Maybe TargetHTTPProxyListWarning)
-thttpplWarning
-  = lens _thttpplWarning
-      (\ s a -> s{_thttpplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-thttpplId :: Lens' TargetHTTPProxyList (Maybe Text)
-thttpplId
-  = lens _thttpplId (\ s a -> s{_thttpplId = a})
-
-instance FromJSON TargetHTTPProxyList where
-        parseJSON
-          = withObject "TargetHTTPProxyList"
-              (\ o ->
-                 TargetHTTPProxyList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetHttpProxyList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetHTTPProxyList where
-        toJSON TargetHTTPProxyList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _thttpplNextPageToken,
-                  Just ("kind" .= _thttpplKind),
-                  ("items" .=) <$> _thttpplItems,
-                  ("selfLink" .=) <$> _thttpplSelfLink,
-                  ("warning" .=) <$> _thttpplWarning,
-                  ("id" .=) <$> _thttpplId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeGroupsListNodesWarning' smart constructor.
-data NodeGroupsListNodesWarning =
-  NodeGroupsListNodesWarning'
-    { _nglnwData    :: !(Maybe [NodeGroupsListNodesWarningDataItem])
-    , _nglnwCode    :: !(Maybe NodeGroupsListNodesWarningCode)
-    , _nglnwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsListNodesWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglnwData'
---
--- * 'nglnwCode'
---
--- * 'nglnwMessage'
-nodeGroupsListNodesWarning
-    :: NodeGroupsListNodesWarning
-nodeGroupsListNodesWarning =
-  NodeGroupsListNodesWarning'
-    {_nglnwData = Nothing, _nglnwCode = Nothing, _nglnwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-nglnwData :: Lens' NodeGroupsListNodesWarning [NodeGroupsListNodesWarningDataItem]
-nglnwData
-  = lens _nglnwData (\ s a -> s{_nglnwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-nglnwCode :: Lens' NodeGroupsListNodesWarning (Maybe NodeGroupsListNodesWarningCode)
-nglnwCode
-  = lens _nglnwCode (\ s a -> s{_nglnwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-nglnwMessage :: Lens' NodeGroupsListNodesWarning (Maybe Text)
-nglnwMessage
-  = lens _nglnwMessage (\ s a -> s{_nglnwMessage = a})
-
-instance FromJSON NodeGroupsListNodesWarning where
-        parseJSON
-          = withObject "NodeGroupsListNodesWarning"
-              (\ o ->
-                 NodeGroupsListNodesWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeGroupsListNodesWarning where
-        toJSON NodeGroupsListNodesWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _nglnwData,
-                  ("code" .=) <$> _nglnwCode,
-                  ("message" .=) <$> _nglnwMessage])
-
---
--- /See:/ 'nodeTemplateAggregatedList' smart constructor.
-data NodeTemplateAggregatedList =
-  NodeTemplateAggregatedList'
-    { _nodNextPageToken :: !(Maybe Text)
-    , _nodKind          :: !Text
-    , _nodItems         :: !(Maybe NodeTemplateAggregatedListItems)
-    , _nodSelfLink      :: !(Maybe Text)
-    , _nodWarning       :: !(Maybe NodeTemplateAggregatedListWarning)
-    , _nodId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nodNextPageToken'
---
--- * 'nodKind'
---
--- * 'nodItems'
---
--- * 'nodSelfLink'
---
--- * 'nodWarning'
---
--- * 'nodId'
-nodeTemplateAggregatedList
-    :: NodeTemplateAggregatedList
-nodeTemplateAggregatedList =
-  NodeTemplateAggregatedList'
-    { _nodNextPageToken = Nothing
-    , _nodKind = "compute#nodeTemplateAggregatedList"
-    , _nodItems = Nothing
-    , _nodSelfLink = Nothing
-    , _nodWarning = Nothing
-    , _nodId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-nodNextPageToken :: Lens' NodeTemplateAggregatedList (Maybe Text)
-nodNextPageToken
-  = lens _nodNextPageToken
-      (\ s a -> s{_nodNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeTemplateAggregatedList
--- for aggregated lists of node templates.
-nodKind :: Lens' NodeTemplateAggregatedList Text
-nodKind = lens _nodKind (\ s a -> s{_nodKind = a})
-
--- | A list of NodeTemplatesScopedList resources.
-nodItems :: Lens' NodeTemplateAggregatedList (Maybe NodeTemplateAggregatedListItems)
-nodItems = lens _nodItems (\ s a -> s{_nodItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-nodSelfLink :: Lens' NodeTemplateAggregatedList (Maybe Text)
-nodSelfLink
-  = lens _nodSelfLink (\ s a -> s{_nodSelfLink = a})
-
--- | [Output Only] Informational warning message.
-nodWarning :: Lens' NodeTemplateAggregatedList (Maybe NodeTemplateAggregatedListWarning)
-nodWarning
-  = lens _nodWarning (\ s a -> s{_nodWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-nodId :: Lens' NodeTemplateAggregatedList (Maybe Text)
-nodId = lens _nodId (\ s a -> s{_nodId = a})
-
-instance FromJSON NodeTemplateAggregatedList where
-        parseJSON
-          = withObject "NodeTemplateAggregatedList"
-              (\ o ->
-                 NodeTemplateAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#nodeTemplateAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeTemplateAggregatedList where
-        toJSON NodeTemplateAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _nodNextPageToken,
-                  Just ("kind" .= _nodKind),
-                  ("items" .=) <$> _nodItems,
-                  ("selfLink" .=) <$> _nodSelfLink,
-                  ("warning" .=) <$> _nodWarning,
-                  ("id" .=) <$> _nodId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'interconnectLocationListWarning' smart constructor.
-data InterconnectLocationListWarning =
-  InterconnectLocationListWarning'
-    { _illwData    :: !(Maybe [InterconnectLocationListWarningDataItem])
-    , _illwCode    :: !(Maybe InterconnectLocationListWarningCode)
-    , _illwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'illwData'
---
--- * 'illwCode'
---
--- * 'illwMessage'
-interconnectLocationListWarning
-    :: InterconnectLocationListWarning
-interconnectLocationListWarning =
-  InterconnectLocationListWarning'
-    {_illwData = Nothing, _illwCode = Nothing, _illwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-illwData :: Lens' InterconnectLocationListWarning [InterconnectLocationListWarningDataItem]
-illwData
-  = lens _illwData (\ s a -> s{_illwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-illwCode :: Lens' InterconnectLocationListWarning (Maybe InterconnectLocationListWarningCode)
-illwCode = lens _illwCode (\ s a -> s{_illwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-illwMessage :: Lens' InterconnectLocationListWarning (Maybe Text)
-illwMessage
-  = lens _illwMessage (\ s a -> s{_illwMessage = a})
-
-instance FromJSON InterconnectLocationListWarning
-         where
-        parseJSON
-          = withObject "InterconnectLocationListWarning"
-              (\ o ->
-                 InterconnectLocationListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InterconnectLocationListWarning where
-        toJSON InterconnectLocationListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _illwData,
-                  ("code" .=) <$> _illwCode,
-                  ("message" .=) <$> _illwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceGroupsListInstancesWarning' smart constructor.
-data InstanceGroupsListInstancesWarning =
-  InstanceGroupsListInstancesWarning'
-    { _igliwData    :: !(Maybe [InstanceGroupsListInstancesWarningDataItem])
-    , _igliwCode    :: !(Maybe InstanceGroupsListInstancesWarningCode)
-    , _igliwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsListInstancesWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igliwData'
---
--- * 'igliwCode'
---
--- * 'igliwMessage'
-instanceGroupsListInstancesWarning
-    :: InstanceGroupsListInstancesWarning
-instanceGroupsListInstancesWarning =
-  InstanceGroupsListInstancesWarning'
-    {_igliwData = Nothing, _igliwCode = Nothing, _igliwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igliwData :: Lens' InstanceGroupsListInstancesWarning [InstanceGroupsListInstancesWarningDataItem]
-igliwData
-  = lens _igliwData (\ s a -> s{_igliwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igliwCode :: Lens' InstanceGroupsListInstancesWarning (Maybe InstanceGroupsListInstancesWarningCode)
-igliwCode
-  = lens _igliwCode (\ s a -> s{_igliwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igliwMessage :: Lens' InstanceGroupsListInstancesWarning (Maybe Text)
-igliwMessage
-  = lens _igliwMessage (\ s a -> s{_igliwMessage = a})
-
-instance FromJSON InstanceGroupsListInstancesWarning
-         where
-        parseJSON
-          = withObject "InstanceGroupsListInstancesWarning"
-              (\ o ->
-                 InstanceGroupsListInstancesWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceGroupsListInstancesWarning
-         where
-        toJSON InstanceGroupsListInstancesWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igliwData,
-                  ("code" .=) <$> _igliwCode,
-                  ("message" .=) <$> _igliwMessage])
-
--- | Contains a list of managed instance groups.
---
--- /See:/ 'regionInstanceGroupManagerList' smart constructor.
-data RegionInstanceGroupManagerList =
-  RegionInstanceGroupManagerList'
-    { _rigmlNextPageToken :: !(Maybe Text)
-    , _rigmlKind          :: !Text
-    , _rigmlItems         :: !(Maybe [InstanceGroupManager])
-    , _rigmlSelfLink      :: !(Maybe Text)
-    , _rigmlWarning       :: !(Maybe RegionInstanceGroupManagerListWarning)
-    , _rigmlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagerList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlNextPageToken'
---
--- * 'rigmlKind'
---
--- * 'rigmlItems'
---
--- * 'rigmlSelfLink'
---
--- * 'rigmlWarning'
---
--- * 'rigmlId'
-regionInstanceGroupManagerList
-    :: RegionInstanceGroupManagerList
-regionInstanceGroupManagerList =
-  RegionInstanceGroupManagerList'
-    { _rigmlNextPageToken = Nothing
-    , _rigmlKind = "compute#regionInstanceGroupManagerList"
-    , _rigmlItems = Nothing
-    , _rigmlSelfLink = Nothing
-    , _rigmlWarning = Nothing
-    , _rigmlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-rigmlNextPageToken :: Lens' RegionInstanceGroupManagerList (Maybe Text)
-rigmlNextPageToken
-  = lens _rigmlNextPageToken
-      (\ s a -> s{_rigmlNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupManagerList for a list of managed instance groups
--- that exist in th regional scope.
-rigmlKind :: Lens' RegionInstanceGroupManagerList Text
-rigmlKind
-  = lens _rigmlKind (\ s a -> s{_rigmlKind = a})
-
--- | A list of InstanceGroupManager resources.
-rigmlItems :: Lens' RegionInstanceGroupManagerList [InstanceGroupManager]
-rigmlItems
-  = lens _rigmlItems (\ s a -> s{_rigmlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-rigmlSelfLink :: Lens' RegionInstanceGroupManagerList (Maybe Text)
-rigmlSelfLink
-  = lens _rigmlSelfLink
-      (\ s a -> s{_rigmlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-rigmlWarning :: Lens' RegionInstanceGroupManagerList (Maybe RegionInstanceGroupManagerListWarning)
-rigmlWarning
-  = lens _rigmlWarning (\ s a -> s{_rigmlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-rigmlId :: Lens' RegionInstanceGroupManagerList (Maybe Text)
-rigmlId = lens _rigmlId (\ s a -> s{_rigmlId = a})
-
-instance FromJSON RegionInstanceGroupManagerList
-         where
-        parseJSON
-          = withObject "RegionInstanceGroupManagerList"
-              (\ o ->
-                 RegionInstanceGroupManagerList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#regionInstanceGroupManagerList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionInstanceGroupManagerList where
-        toJSON RegionInstanceGroupManagerList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _rigmlNextPageToken,
-                  Just ("kind" .= _rigmlKind),
-                  ("items" .=) <$> _rigmlItems,
-                  ("selfLink" .=) <$> _rigmlSelfLink,
-                  ("warning" .=) <$> _rigmlWarning,
-                  ("id" .=) <$> _rigmlId])
-
---
--- /See:/ 'diskTypesScopedList' smart constructor.
-data DiskTypesScopedList =
-  DiskTypesScopedList'
-    { _dtslDiskTypes :: !(Maybe [DiskType])
-    , _dtslWarning   :: !(Maybe DiskTypesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtslDiskTypes'
---
--- * 'dtslWarning'
-diskTypesScopedList
-    :: DiskTypesScopedList
-diskTypesScopedList =
-  DiskTypesScopedList' {_dtslDiskTypes = Nothing, _dtslWarning = Nothing}
-
-
--- | [Output Only] A list of disk types contained in this scope.
-dtslDiskTypes :: Lens' DiskTypesScopedList [DiskType]
-dtslDiskTypes
-  = lens _dtslDiskTypes
-      (\ s a -> s{_dtslDiskTypes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Informational warning which replaces the list of disk
--- types when the list is empty.
-dtslWarning :: Lens' DiskTypesScopedList (Maybe DiskTypesScopedListWarning)
-dtslWarning
-  = lens _dtslWarning (\ s a -> s{_dtslWarning = a})
-
-instance FromJSON DiskTypesScopedList where
-        parseJSON
-          = withObject "DiskTypesScopedList"
-              (\ o ->
-                 DiskTypesScopedList' <$>
-                   (o .:? "diskTypes" .!= mempty) <*> (o .:? "warning"))
-
-instance ToJSON DiskTypesScopedList where
-        toJSON DiskTypesScopedList'{..}
-          = object
-              (catMaybes
-                 [("diskTypes" .=) <$> _dtslDiskTypes,
-                  ("warning" .=) <$> _dtslWarning])
-
--- | Write a Cloud Audit log
---
--- /See:/ 'logConfigCloudAuditOptions' smart constructor.
-data LogConfigCloudAuditOptions =
-  LogConfigCloudAuditOptions'
-    { _lccaoAuthorizationLoggingOptions :: !(Maybe AuthorizationLoggingOptions)
-    , _lccaoLogName                     :: !(Maybe LogConfigCloudAuditOptionsLogName)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LogConfigCloudAuditOptions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lccaoAuthorizationLoggingOptions'
---
--- * 'lccaoLogName'
-logConfigCloudAuditOptions
-    :: LogConfigCloudAuditOptions
-logConfigCloudAuditOptions =
-  LogConfigCloudAuditOptions'
-    {_lccaoAuthorizationLoggingOptions = Nothing, _lccaoLogName = Nothing}
-
-
--- | Information used by the Cloud Audit Logging pipeline.
-lccaoAuthorizationLoggingOptions :: Lens' LogConfigCloudAuditOptions (Maybe AuthorizationLoggingOptions)
-lccaoAuthorizationLoggingOptions
-  = lens _lccaoAuthorizationLoggingOptions
-      (\ s a -> s{_lccaoAuthorizationLoggingOptions = a})
-
--- | The log_name to populate in the Cloud Audit Record.
-lccaoLogName :: Lens' LogConfigCloudAuditOptions (Maybe LogConfigCloudAuditOptionsLogName)
-lccaoLogName
-  = lens _lccaoLogName (\ s a -> s{_lccaoLogName = a})
-
-instance FromJSON LogConfigCloudAuditOptions where
-        parseJSON
-          = withObject "LogConfigCloudAuditOptions"
-              (\ o ->
-                 LogConfigCloudAuditOptions' <$>
-                   (o .:? "authorizationLoggingOptions") <*>
-                     (o .:? "logName"))
-
-instance ToJSON LogConfigCloudAuditOptions where
-        toJSON LogConfigCloudAuditOptions'{..}
-          = object
-              (catMaybes
-                 [("authorizationLoggingOptions" .=) <$>
-                    _lccaoAuthorizationLoggingOptions,
-                  ("logName" .=) <$> _lccaoLogName])
-
---
--- /See:/ 'projectsSetDefaultNetworkTierRequest' smart constructor.
-newtype ProjectsSetDefaultNetworkTierRequest =
-  ProjectsSetDefaultNetworkTierRequest'
-    { _psdntrNetworkTier :: Maybe ProjectsSetDefaultNetworkTierRequestNetworkTier
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsSetDefaultNetworkTierRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psdntrNetworkTier'
-projectsSetDefaultNetworkTierRequest
-    :: ProjectsSetDefaultNetworkTierRequest
-projectsSetDefaultNetworkTierRequest =
-  ProjectsSetDefaultNetworkTierRequest' {_psdntrNetworkTier = Nothing}
-
-
--- | Default network tier to be set.
-psdntrNetworkTier :: Lens' ProjectsSetDefaultNetworkTierRequest (Maybe ProjectsSetDefaultNetworkTierRequestNetworkTier)
-psdntrNetworkTier
-  = lens _psdntrNetworkTier
-      (\ s a -> s{_psdntrNetworkTier = a})
-
-instance FromJSON
-           ProjectsSetDefaultNetworkTierRequest
-         where
-        parseJSON
-          = withObject "ProjectsSetDefaultNetworkTierRequest"
-              (\ o ->
-                 ProjectsSetDefaultNetworkTierRequest' <$>
-                   (o .:? "networkTier"))
-
-instance ToJSON ProjectsSetDefaultNetworkTierRequest
-         where
-        toJSON ProjectsSetDefaultNetworkTierRequest'{..}
-          = object
-              (catMaybes
-                 [("networkTier" .=) <$> _psdntrNetworkTier])
-
---
--- /See:/ 'imageListWarningDataItem' smart constructor.
-data ImageListWarningDataItem =
-  ImageListWarningDataItem'
-    { _imaValue :: !(Maybe Text)
-    , _imaKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImageListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'imaValue'
---
--- * 'imaKey'
-imageListWarningDataItem
-    :: ImageListWarningDataItem
-imageListWarningDataItem =
-  ImageListWarningDataItem' {_imaValue = Nothing, _imaKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-imaValue :: Lens' ImageListWarningDataItem (Maybe Text)
-imaValue = lens _imaValue (\ s a -> s{_imaValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-imaKey :: Lens' ImageListWarningDataItem (Maybe Text)
-imaKey = lens _imaKey (\ s a -> s{_imaKey = a})
-
-instance FromJSON ImageListWarningDataItem where
-        parseJSON
-          = withObject "ImageListWarningDataItem"
-              (\ o ->
-                 ImageListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON ImageListWarningDataItem where
-        toJSON ImageListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _imaValue, ("key" .=) <$> _imaKey])
-
---
--- /See:/ 'acceleratorTypeListWarningDataItem' smart constructor.
-data AcceleratorTypeListWarningDataItem =
-  AcceleratorTypeListWarningDataItem'
-    { _atlwdiValue :: !(Maybe Text)
-    , _atlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atlwdiValue'
---
--- * 'atlwdiKey'
-acceleratorTypeListWarningDataItem
-    :: AcceleratorTypeListWarningDataItem
-acceleratorTypeListWarningDataItem =
-  AcceleratorTypeListWarningDataItem'
-    {_atlwdiValue = Nothing, _atlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-atlwdiValue :: Lens' AcceleratorTypeListWarningDataItem (Maybe Text)
-atlwdiValue
-  = lens _atlwdiValue (\ s a -> s{_atlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-atlwdiKey :: Lens' AcceleratorTypeListWarningDataItem (Maybe Text)
-atlwdiKey
-  = lens _atlwdiKey (\ s a -> s{_atlwdiKey = a})
-
-instance FromJSON AcceleratorTypeListWarningDataItem
-         where
-        parseJSON
-          = withObject "AcceleratorTypeListWarningDataItem"
-              (\ o ->
-                 AcceleratorTypeListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AcceleratorTypeListWarningDataItem
-         where
-        toJSON AcceleratorTypeListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _atlwdiValue,
-                  ("key" .=) <$> _atlwdiKey])
-
--- | Description of a planned outage on this Interconnect. Next id: 9
---
--- /See:/ 'interconnectOutageNotification' smart constructor.
-data InterconnectOutageNotification =
-  InterconnectOutageNotification'
-    { _ionState            :: !(Maybe InterconnectOutageNotificationState)
-    , _ionAffectedCircuits :: !(Maybe [Text])
-    , _ionStartTime        :: !(Maybe (Textual Int64))
-    , _ionIssueType        :: !(Maybe InterconnectOutageNotificationIssueType)
-    , _ionName             :: !(Maybe Text)
-    , _ionEndTime          :: !(Maybe (Textual Int64))
-    , _ionSource           :: !(Maybe InterconnectOutageNotificationSource)
-    , _ionDescription      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectOutageNotification' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ionState'
---
--- * 'ionAffectedCircuits'
---
--- * 'ionStartTime'
---
--- * 'ionIssueType'
---
--- * 'ionName'
---
--- * 'ionEndTime'
---
--- * 'ionSource'
---
--- * 'ionDescription'
-interconnectOutageNotification
-    :: InterconnectOutageNotification
-interconnectOutageNotification =
-  InterconnectOutageNotification'
-    { _ionState = Nothing
-    , _ionAffectedCircuits = Nothing
-    , _ionStartTime = Nothing
-    , _ionIssueType = Nothing
-    , _ionName = Nothing
-    , _ionEndTime = Nothing
-    , _ionSource = Nothing
-    , _ionDescription = Nothing
-    }
-
-
--- | State of this notification. Note that the \"NS_\" versions of this enum
--- have been deprecated in favor of the unprefixed values.
-ionState :: Lens' InterconnectOutageNotification (Maybe InterconnectOutageNotificationState)
-ionState = lens _ionState (\ s a -> s{_ionState = a})
-
--- | If issue_type is IT_PARTIAL_OUTAGE, a list of the Google-side circuit
--- IDs that will be affected.
-ionAffectedCircuits :: Lens' InterconnectOutageNotification [Text]
-ionAffectedCircuits
-  = lens _ionAffectedCircuits
-      (\ s a -> s{_ionAffectedCircuits = a})
-      . _Default
-      . _Coerce
-
--- | Scheduled start time for the outage (milliseconds since Unix epoch).
-ionStartTime :: Lens' InterconnectOutageNotification (Maybe Int64)
-ionStartTime
-  = lens _ionStartTime (\ s a -> s{_ionStartTime = a})
-      . mapping _Coerce
-
--- | Form this outage is expected to take. Note that the \"IT_\" versions of
--- this enum have been deprecated in favor of the unprefixed values.
-ionIssueType :: Lens' InterconnectOutageNotification (Maybe InterconnectOutageNotificationIssueType)
-ionIssueType
-  = lens _ionIssueType (\ s a -> s{_ionIssueType = a})
-
--- | Unique identifier for this outage notification.
-ionName :: Lens' InterconnectOutageNotification (Maybe Text)
-ionName = lens _ionName (\ s a -> s{_ionName = a})
-
--- | Scheduled end time for the outage (milliseconds since Unix epoch).
-ionEndTime :: Lens' InterconnectOutageNotification (Maybe Int64)
-ionEndTime
-  = lens _ionEndTime (\ s a -> s{_ionEndTime = a}) .
-      mapping _Coerce
-
--- | The party that generated this notification. Note that \"NSRC_GOOGLE\"
--- has been deprecated in favor of \"GOOGLE\"
-ionSource :: Lens' InterconnectOutageNotification (Maybe InterconnectOutageNotificationSource)
-ionSource
-  = lens _ionSource (\ s a -> s{_ionSource = a})
-
--- | A description about the purpose of the outage.
-ionDescription :: Lens' InterconnectOutageNotification (Maybe Text)
-ionDescription
-  = lens _ionDescription
-      (\ s a -> s{_ionDescription = a})
-
-instance FromJSON InterconnectOutageNotification
-         where
-        parseJSON
-          = withObject "InterconnectOutageNotification"
-              (\ o ->
-                 InterconnectOutageNotification' <$>
-                   (o .:? "state") <*>
-                     (o .:? "affectedCircuits" .!= mempty)
-                     <*> (o .:? "startTime")
-                     <*> (o .:? "issueType")
-                     <*> (o .:? "name")
-                     <*> (o .:? "endTime")
-                     <*> (o .:? "source")
-                     <*> (o .:? "description"))
-
-instance ToJSON InterconnectOutageNotification where
-        toJSON InterconnectOutageNotification'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _ionState,
-                  ("affectedCircuits" .=) <$> _ionAffectedCircuits,
-                  ("startTime" .=) <$> _ionStartTime,
-                  ("issueType" .=) <$> _ionIssueType,
-                  ("name" .=) <$> _ionName,
-                  ("endTime" .=) <$> _ionEndTime,
-                  ("source" .=) <$> _ionSource,
-                  ("description" .=) <$> _ionDescription])
-
--- | Contains a list of node templates.
---
--- /See:/ 'nodeTemplateList' smart constructor.
-data NodeTemplateList =
-  NodeTemplateList'
-    { _ntlNextPageToken :: !(Maybe Text)
-    , _ntlKind          :: !Text
-    , _ntlItems         :: !(Maybe [NodeTemplate])
-    , _ntlSelfLink      :: !(Maybe Text)
-    , _ntlWarning       :: !(Maybe NodeTemplateListWarning)
-    , _ntlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntlNextPageToken'
---
--- * 'ntlKind'
---
--- * 'ntlItems'
---
--- * 'ntlSelfLink'
---
--- * 'ntlWarning'
---
--- * 'ntlId'
-nodeTemplateList
-    :: NodeTemplateList
-nodeTemplateList =
-  NodeTemplateList'
-    { _ntlNextPageToken = Nothing
-    , _ntlKind = "compute#nodeTemplateList"
-    , _ntlItems = Nothing
-    , _ntlSelfLink = Nothing
-    , _ntlWarning = Nothing
-    , _ntlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ntlNextPageToken :: Lens' NodeTemplateList (Maybe Text)
-ntlNextPageToken
-  = lens _ntlNextPageToken
-      (\ s a -> s{_ntlNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeTemplateList for lists
--- of node templates.
-ntlKind :: Lens' NodeTemplateList Text
-ntlKind = lens _ntlKind (\ s a -> s{_ntlKind = a})
-
--- | A list of NodeTemplate resources.
-ntlItems :: Lens' NodeTemplateList [NodeTemplate]
-ntlItems
-  = lens _ntlItems (\ s a -> s{_ntlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ntlSelfLink :: Lens' NodeTemplateList (Maybe Text)
-ntlSelfLink
-  = lens _ntlSelfLink (\ s a -> s{_ntlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ntlWarning :: Lens' NodeTemplateList (Maybe NodeTemplateListWarning)
-ntlWarning
-  = lens _ntlWarning (\ s a -> s{_ntlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ntlId :: Lens' NodeTemplateList (Maybe Text)
-ntlId = lens _ntlId (\ s a -> s{_ntlId = a})
-
-instance FromJSON NodeTemplateList where
-        parseJSON
-          = withObject "NodeTemplateList"
-              (\ o ->
-                 NodeTemplateList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeTemplateList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeTemplateList where
-        toJSON NodeTemplateList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ntlNextPageToken,
-                  Just ("kind" .= _ntlKind),
-                  ("items" .=) <$> _ntlItems,
-                  ("selfLink" .=) <$> _ntlSelfLink,
-                  ("warning" .=) <$> _ntlWarning,
-                  ("id" .=) <$> _ntlId])
-
---
--- /See:/ 'diskTypeAggregatedList' smart constructor.
-data DiskTypeAggregatedList =
-  DiskTypeAggregatedList'
-    { _dtalNextPageToken :: !(Maybe Text)
-    , _dtalKind          :: !Text
-    , _dtalItems         :: !(Maybe DiskTypeAggregatedListItems)
-    , _dtalSelfLink      :: !(Maybe Text)
-    , _dtalWarning       :: !(Maybe DiskTypeAggregatedListWarning)
-    , _dtalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtalNextPageToken'
---
--- * 'dtalKind'
---
--- * 'dtalItems'
---
--- * 'dtalSelfLink'
---
--- * 'dtalWarning'
---
--- * 'dtalId'
-diskTypeAggregatedList
-    :: DiskTypeAggregatedList
-diskTypeAggregatedList =
-  DiskTypeAggregatedList'
-    { _dtalNextPageToken = Nothing
-    , _dtalKind = "compute#diskTypeAggregatedList"
-    , _dtalItems = Nothing
-    , _dtalSelfLink = Nothing
-    , _dtalWarning = Nothing
-    , _dtalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-dtalNextPageToken :: Lens' DiskTypeAggregatedList (Maybe Text)
-dtalNextPageToken
-  = lens _dtalNextPageToken
-      (\ s a -> s{_dtalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#diskTypeAggregatedList.
-dtalKind :: Lens' DiskTypeAggregatedList Text
-dtalKind = lens _dtalKind (\ s a -> s{_dtalKind = a})
-
--- | A list of DiskTypesScopedList resources.
-dtalItems :: Lens' DiskTypeAggregatedList (Maybe DiskTypeAggregatedListItems)
-dtalItems
-  = lens _dtalItems (\ s a -> s{_dtalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-dtalSelfLink :: Lens' DiskTypeAggregatedList (Maybe Text)
-dtalSelfLink
-  = lens _dtalSelfLink (\ s a -> s{_dtalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-dtalWarning :: Lens' DiskTypeAggregatedList (Maybe DiskTypeAggregatedListWarning)
-dtalWarning
-  = lens _dtalWarning (\ s a -> s{_dtalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-dtalId :: Lens' DiskTypeAggregatedList (Maybe Text)
-dtalId = lens _dtalId (\ s a -> s{_dtalId = a})
-
-instance FromJSON DiskTypeAggregatedList where
-        parseJSON
-          = withObject "DiskTypeAggregatedList"
-              (\ o ->
-                 DiskTypeAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#diskTypeAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON DiskTypeAggregatedList where
-        toJSON DiskTypeAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _dtalNextPageToken,
-                  Just ("kind" .= _dtalKind),
-                  ("items" .=) <$> _dtalItems,
-                  ("selfLink" .=) <$> _dtalSelfLink,
-                  ("warning" .=) <$> _dtalWarning,
-                  ("id" .=) <$> _dtalId])
-
---
--- /See:/ 'hTTPHealthCheck' smart constructor.
-data HTTPHealthCheck =
-  HTTPHealthCheck'
-    { _hResponse          :: !(Maybe Text)
-    , _hPortSpecification :: !(Maybe HTTPHealthCheckPortSpecification)
-    , _hRequestPath       :: !(Maybe Text)
-    , _hHost              :: !(Maybe Text)
-    , _hProxyHeader       :: !(Maybe HTTPHealthCheckProxyHeader)
-    , _hPortName          :: !(Maybe Text)
-    , _hPort              :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hResponse'
---
--- * 'hPortSpecification'
---
--- * 'hRequestPath'
---
--- * 'hHost'
---
--- * 'hProxyHeader'
---
--- * 'hPortName'
---
--- * 'hPort'
-hTTPHealthCheck
-    :: HTTPHealthCheck
-hTTPHealthCheck =
-  HTTPHealthCheck'
-    { _hResponse = Nothing
-    , _hPortSpecification = Nothing
-    , _hRequestPath = Nothing
-    , _hHost = Nothing
-    , _hProxyHeader = Nothing
-    , _hPortName = Nothing
-    , _hPort = Nothing
-    }
-
-
--- | The string to match anywhere in the first 1024 bytes of the response
--- body. If left empty (the default value), the status code determines
--- health. The response data can only be ASCII.
-hResponse :: Lens' HTTPHealthCheck (Maybe Text)
-hResponse
-  = lens _hResponse (\ s a -> s{_hResponse = a})
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTP health check follows
--- behavior specified in port and portName fields.
-hPortSpecification :: Lens' HTTPHealthCheck (Maybe HTTPHealthCheckPortSpecification)
-hPortSpecification
-  = lens _hPortSpecification
-      (\ s a -> s{_hPortSpecification = a})
-
--- | The request path of the HTTP health check request. The default value is
--- \/.
-hRequestPath :: Lens' HTTPHealthCheck (Maybe Text)
-hRequestPath
-  = lens _hRequestPath (\ s a -> s{_hRequestPath = a})
-
--- | The value of the host header in the HTTP health check request. If left
--- empty (default value), the IP on behalf of which this health check is
--- performed will be used.
-hHost :: Lens' HTTPHealthCheck (Maybe Text)
-hHost = lens _hHost (\ s a -> s{_hHost = a})
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-hProxyHeader :: Lens' HTTPHealthCheck (Maybe HTTPHealthCheckProxyHeader)
-hProxyHeader
-  = lens _hProxyHeader (\ s a -> s{_hProxyHeader = a})
-
--- | Port name as defined in InstanceGroup#NamedPort#name. If both port and
--- port_name are defined, port takes precedence.
-hPortName :: Lens' HTTPHealthCheck (Maybe Text)
-hPortName
-  = lens _hPortName (\ s a -> s{_hPortName = a})
-
--- | The TCP port number for the health check request. The default value is
--- 80. Valid values are 1 through 65535.
-hPort :: Lens' HTTPHealthCheck (Maybe Int32)
-hPort
-  = lens _hPort (\ s a -> s{_hPort = a}) .
-      mapping _Coerce
-
-instance FromJSON HTTPHealthCheck where
-        parseJSON
-          = withObject "HTTPHealthCheck"
-              (\ o ->
-                 HTTPHealthCheck' <$>
-                   (o .:? "response") <*> (o .:? "portSpecification")
-                     <*> (o .:? "requestPath")
-                     <*> (o .:? "host")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "port"))
-
-instance ToJSON HTTPHealthCheck where
-        toJSON HTTPHealthCheck'{..}
-          = object
-              (catMaybes
-                 [("response" .=) <$> _hResponse,
-                  ("portSpecification" .=) <$> _hPortSpecification,
-                  ("requestPath" .=) <$> _hRequestPath,
-                  ("host" .=) <$> _hHost,
-                  ("proxyHeader" .=) <$> _hProxyHeader,
-                  ("portName" .=) <$> _hPortName,
-                  ("port" .=) <$> _hPort])
-
---
--- /See:/ 'urlMapListWarningDataItem' smart constructor.
-data URLMapListWarningDataItem =
-  URLMapListWarningDataItem'
-    { _umlwdiValue :: !(Maybe Text)
-    , _umlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umlwdiValue'
---
--- * 'umlwdiKey'
-urlMapListWarningDataItem
-    :: URLMapListWarningDataItem
-urlMapListWarningDataItem =
-  URLMapListWarningDataItem' {_umlwdiValue = Nothing, _umlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-umlwdiValue :: Lens' URLMapListWarningDataItem (Maybe Text)
-umlwdiValue
-  = lens _umlwdiValue (\ s a -> s{_umlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-umlwdiKey :: Lens' URLMapListWarningDataItem (Maybe Text)
-umlwdiKey
-  = lens _umlwdiKey (\ s a -> s{_umlwdiKey = a})
-
-instance FromJSON URLMapListWarningDataItem where
-        parseJSON
-          = withObject "URLMapListWarningDataItem"
-              (\ o ->
-                 URLMapListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON URLMapListWarningDataItem where
-        toJSON URLMapListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _umlwdiValue,
-                  ("key" .=) <$> _umlwdiKey])
-
--- | Defines the IP ranges that want to use NAT for a subnetwork.
---
--- /See:/ 'routerNATSubnetworkToNAT' smart constructor.
-data RouterNATSubnetworkToNAT =
-  RouterNATSubnetworkToNAT'
-    { _rnatstnatSourceIPRangesToNAT   :: !(Maybe [RouterNATSubnetworkToNATSourceIPRangesToNATItem])
-    , _rnatstnatName                  :: !(Maybe Text)
-    , _rnatstnatSecondaryIPRangeNames :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterNATSubnetworkToNAT' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rnatstnatSourceIPRangesToNAT'
---
--- * 'rnatstnatName'
---
--- * 'rnatstnatSecondaryIPRangeNames'
-routerNATSubnetworkToNAT
-    :: RouterNATSubnetworkToNAT
-routerNATSubnetworkToNAT =
-  RouterNATSubnetworkToNAT'
-    { _rnatstnatSourceIPRangesToNAT = Nothing
-    , _rnatstnatName = Nothing
-    , _rnatstnatSecondaryIPRangeNames = Nothing
-    }
-
-
--- | Specify the options for NAT ranges in the Subnetwork. All usages of
--- single value are valid except NAT_IP_RANGE_OPTION_UNSPECIFIED. The only
--- valid option with multiple values is: [\"PRIMARY_IP_RANGE\",
--- \"LIST_OF_SECONDARY_IP_RANGES\"] Default: [ALL_IP_RANGES]
-rnatstnatSourceIPRangesToNAT :: Lens' RouterNATSubnetworkToNAT [RouterNATSubnetworkToNATSourceIPRangesToNATItem]
-rnatstnatSourceIPRangesToNAT
-  = lens _rnatstnatSourceIPRangesToNAT
-      (\ s a -> s{_rnatstnatSourceIPRangesToNAT = a})
-      . _Default
-      . _Coerce
-
--- | URL for the subnetwork resource to use NAT.
-rnatstnatName :: Lens' RouterNATSubnetworkToNAT (Maybe Text)
-rnatstnatName
-  = lens _rnatstnatName
-      (\ s a -> s{_rnatstnatName = a})
-
--- | A list of the secondary ranges of the Subnetwork that are allowed to use
--- NAT. This can be populated only if \"LIST_OF_SECONDARY_IP_RANGES\" is
--- one of the values in source_ip_ranges_to_nat.
-rnatstnatSecondaryIPRangeNames :: Lens' RouterNATSubnetworkToNAT [Text]
-rnatstnatSecondaryIPRangeNames
-  = lens _rnatstnatSecondaryIPRangeNames
-      (\ s a -> s{_rnatstnatSecondaryIPRangeNames = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON RouterNATSubnetworkToNAT where
-        parseJSON
-          = withObject "RouterNATSubnetworkToNAT"
-              (\ o ->
-                 RouterNATSubnetworkToNAT' <$>
-                   (o .:? "sourceIpRangesToNat" .!= mempty) <*>
-                     (o .:? "name")
-                     <*> (o .:? "secondaryIpRangeNames" .!= mempty))
-
-instance ToJSON RouterNATSubnetworkToNAT where
-        toJSON RouterNATSubnetworkToNAT'{..}
-          = object
-              (catMaybes
-                 [("sourceIpRangesToNat" .=) <$>
-                    _rnatstnatSourceIPRangesToNAT,
-                  ("name" .=) <$> _rnatstnatName,
-                  ("secondaryIpRangeNames" .=) <$>
-                    _rnatstnatSecondaryIPRangeNames])
-
---
--- /See:/ 'backendServiceGroupHealth' smart constructor.
-data BackendServiceGroupHealth =
-  BackendServiceGroupHealth'
-    { _bsghKind         :: !Text
-    , _bsghHealthStatus :: !(Maybe [HealthStatus])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceGroupHealth' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsghKind'
---
--- * 'bsghHealthStatus'
-backendServiceGroupHealth
-    :: BackendServiceGroupHealth
-backendServiceGroupHealth =
-  BackendServiceGroupHealth'
-    { _bsghKind = "compute#backendServiceGroupHealth"
-    , _bsghHealthStatus = Nothing
-    }
-
-
--- | [Output Only] Type of resource. Always compute#backendServiceGroupHealth
--- for the health of backend services.
-bsghKind :: Lens' BackendServiceGroupHealth Text
-bsghKind = lens _bsghKind (\ s a -> s{_bsghKind = a})
-
--- | Health state of the backend instances or endpoints in requested instance
--- or network endpoint group, determined based on configured health checks.
-bsghHealthStatus :: Lens' BackendServiceGroupHealth [HealthStatus]
-bsghHealthStatus
-  = lens _bsghHealthStatus
-      (\ s a -> s{_bsghHealthStatus = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON BackendServiceGroupHealth where
-        parseJSON
-          = withObject "BackendServiceGroupHealth"
-              (\ o ->
-                 BackendServiceGroupHealth' <$>
-                   (o .:? "kind" .!=
-                      "compute#backendServiceGroupHealth")
-                     <*> (o .:? "healthStatus" .!= mempty))
-
-instance ToJSON BackendServiceGroupHealth where
-        toJSON BackendServiceGroupHealth'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _bsghKind),
-                  ("healthStatus" .=) <$> _bsghHealthStatus])
-
---
--- /See:/ 'autoscalersScopedList' smart constructor.
-data AutoscalersScopedList =
-  AutoscalersScopedList'
-    { _aAutoscalers :: !(Maybe [Autoscaler])
-    , _aWarning     :: !(Maybe AutoscalersScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aAutoscalers'
---
--- * 'aWarning'
-autoscalersScopedList
-    :: AutoscalersScopedList
-autoscalersScopedList =
-  AutoscalersScopedList' {_aAutoscalers = Nothing, _aWarning = Nothing}
-
-
--- | [Output Only] A list of autoscalers contained in this scope.
-aAutoscalers :: Lens' AutoscalersScopedList [Autoscaler]
-aAutoscalers
-  = lens _aAutoscalers (\ s a -> s{_aAutoscalers = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Informational warning which replaces the list of
--- autoscalers when the list is empty.
-aWarning :: Lens' AutoscalersScopedList (Maybe AutoscalersScopedListWarning)
-aWarning = lens _aWarning (\ s a -> s{_aWarning = a})
-
-instance FromJSON AutoscalersScopedList where
-        parseJSON
-          = withObject "AutoscalersScopedList"
-              (\ o ->
-                 AutoscalersScopedList' <$>
-                   (o .:? "autoscalers" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON AutoscalersScopedList where
-        toJSON AutoscalersScopedList'{..}
-          = object
-              (catMaybes
-                 [("autoscalers" .=) <$> _aAutoscalers,
-                  ("warning" .=) <$> _aWarning])
-
--- | Write a Data Access (Gin) log
---
--- /See:/ 'logConfigDataAccessOptions' smart constructor.
-newtype LogConfigDataAccessOptions =
-  LogConfigDataAccessOptions'
-    { _lcdaoLogMode :: Maybe LogConfigDataAccessOptionsLogMode
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LogConfigDataAccessOptions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcdaoLogMode'
-logConfigDataAccessOptions
-    :: LogConfigDataAccessOptions
-logConfigDataAccessOptions =
-  LogConfigDataAccessOptions' {_lcdaoLogMode = Nothing}
-
-
--- | Whether Gin logging should happen in a fail-closed manner at the caller.
--- This is relevant only in the LocalIAM implementation, for now. NOTE:
--- Logging to Gin in a fail-closed manner is currently unsupported while
--- work is being done to satisfy the requirements of go\/345. Currently,
--- setting LOG_FAIL_CLOSED mode will have no effect, but still exists
--- because there is active work being done to support it (b\/115874152).
-lcdaoLogMode :: Lens' LogConfigDataAccessOptions (Maybe LogConfigDataAccessOptionsLogMode)
-lcdaoLogMode
-  = lens _lcdaoLogMode (\ s a -> s{_lcdaoLogMode = a})
-
-instance FromJSON LogConfigDataAccessOptions where
-        parseJSON
-          = withObject "LogConfigDataAccessOptions"
-              (\ o ->
-                 LogConfigDataAccessOptions' <$> (o .:? "logMode"))
-
-instance ToJSON LogConfigDataAccessOptions where
-        toJSON LogConfigDataAccessOptions'{..}
-          = object
-              (catMaybes [("logMode" .=) <$> _lcdaoLogMode])
-
---
--- /See:/ 'autoscalerAggregatedList' smart constructor.
-data AutoscalerAggregatedList =
-  AutoscalerAggregatedList'
-    { _aalNextPageToken :: !(Maybe Text)
-    , _aalKind          :: !Text
-    , _aalItems         :: !(Maybe AutoscalerAggregatedListItems)
-    , _aalSelfLink      :: !(Maybe Text)
-    , _aalWarning       :: !(Maybe AutoscalerAggregatedListWarning)
-    , _aalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aalNextPageToken'
---
--- * 'aalKind'
---
--- * 'aalItems'
---
--- * 'aalSelfLink'
---
--- * 'aalWarning'
---
--- * 'aalId'
-autoscalerAggregatedList
-    :: AutoscalerAggregatedList
-autoscalerAggregatedList =
-  AutoscalerAggregatedList'
-    { _aalNextPageToken = Nothing
-    , _aalKind = "compute#autoscalerAggregatedList"
-    , _aalItems = Nothing
-    , _aalSelfLink = Nothing
-    , _aalWarning = Nothing
-    , _aalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-aalNextPageToken :: Lens' AutoscalerAggregatedList (Maybe Text)
-aalNextPageToken
-  = lens _aalNextPageToken
-      (\ s a -> s{_aalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#autoscalerAggregatedList
--- for aggregated lists of autoscalers.
-aalKind :: Lens' AutoscalerAggregatedList Text
-aalKind = lens _aalKind (\ s a -> s{_aalKind = a})
-
--- | A list of AutoscalersScopedList resources.
-aalItems :: Lens' AutoscalerAggregatedList (Maybe AutoscalerAggregatedListItems)
-aalItems = lens _aalItems (\ s a -> s{_aalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-aalSelfLink :: Lens' AutoscalerAggregatedList (Maybe Text)
-aalSelfLink
-  = lens _aalSelfLink (\ s a -> s{_aalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-aalWarning :: Lens' AutoscalerAggregatedList (Maybe AutoscalerAggregatedListWarning)
-aalWarning
-  = lens _aalWarning (\ s a -> s{_aalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-aalId :: Lens' AutoscalerAggregatedList (Maybe Text)
-aalId = lens _aalId (\ s a -> s{_aalId = a})
-
-instance FromJSON AutoscalerAggregatedList where
-        parseJSON
-          = withObject "AutoscalerAggregatedList"
-              (\ o ->
-                 AutoscalerAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#autoscalerAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AutoscalerAggregatedList where
-        toJSON AutoscalerAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _aalNextPageToken,
-                  Just ("kind" .= _aalKind),
-                  ("items" .=) <$> _aalItems,
-                  ("selfLink" .=) <$> _aalSelfLink,
-                  ("warning" .=) <$> _aalWarning,
-                  ("id" .=) <$> _aalId])
-
--- | A list of Router resources.
---
--- /See:/ 'routerAggregatedListItems' smart constructor.
-newtype RouterAggregatedListItems =
-  RouterAggregatedListItems'
-    { _raliAddtional :: HashMap Text RoutersScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'raliAddtional'
-routerAggregatedListItems
-    :: HashMap Text RoutersScopedList -- ^ 'raliAddtional'
-    -> RouterAggregatedListItems
-routerAggregatedListItems pRaliAddtional_ =
-  RouterAggregatedListItems' {_raliAddtional = _Coerce # pRaliAddtional_}
-
-
--- | Name of the scope containing this set of routers.
-raliAddtional :: Lens' RouterAggregatedListItems (HashMap Text RoutersScopedList)
-raliAddtional
-  = lens _raliAddtional
-      (\ s a -> s{_raliAddtional = a})
-      . _Coerce
-
-instance FromJSON RouterAggregatedListItems where
-        parseJSON
-          = withObject "RouterAggregatedListItems"
-              (\ o ->
-                 RouterAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON RouterAggregatedListItems where
-        toJSON = toJSON . _raliAddtional
-
--- | [Output Only] An informational warning that appears when the accelerator
--- types list is empty.
---
--- /See:/ 'acceleratorTypesScopedListWarning' smart constructor.
-data AcceleratorTypesScopedListWarning =
-  AcceleratorTypesScopedListWarning'
-    { _atslwData    :: !(Maybe [AcceleratorTypesScopedListWarningDataItem])
-    , _atslwCode    :: !(Maybe AcceleratorTypesScopedListWarningCode)
-    , _atslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atslwData'
---
--- * 'atslwCode'
---
--- * 'atslwMessage'
-acceleratorTypesScopedListWarning
-    :: AcceleratorTypesScopedListWarning
-acceleratorTypesScopedListWarning =
-  AcceleratorTypesScopedListWarning'
-    {_atslwData = Nothing, _atslwCode = Nothing, _atslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-atslwData :: Lens' AcceleratorTypesScopedListWarning [AcceleratorTypesScopedListWarningDataItem]
-atslwData
-  = lens _atslwData (\ s a -> s{_atslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-atslwCode :: Lens' AcceleratorTypesScopedListWarning (Maybe AcceleratorTypesScopedListWarningCode)
-atslwCode
-  = lens _atslwCode (\ s a -> s{_atslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-atslwMessage :: Lens' AcceleratorTypesScopedListWarning (Maybe Text)
-atslwMessage
-  = lens _atslwMessage (\ s a -> s{_atslwMessage = a})
-
-instance FromJSON AcceleratorTypesScopedListWarning
-         where
-        parseJSON
-          = withObject "AcceleratorTypesScopedListWarning"
-              (\ o ->
-                 AcceleratorTypesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AcceleratorTypesScopedListWarning
-         where
-        toJSON AcceleratorTypesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _atslwData,
-                  ("code" .=) <$> _atslwCode,
-                  ("message" .=) <$> _atslwMessage])
-
--- | A TargetTcpProxy resource. This resource defines a TCP proxy. (==
--- resource_for beta.targetTcpProxies ==) (== resource_for
--- v1.targetTcpProxies ==)
---
--- /See:/ 'targetTCPProxy' smart constructor.
-data TargetTCPProxy =
-  TargetTCPProxy'
-    { _ttpService           :: !(Maybe Text)
-    , _ttpKind              :: !Text
-    , _ttpSelfLink          :: !(Maybe Text)
-    , _ttpName              :: !(Maybe Text)
-    , _ttpCreationTimestamp :: !(Maybe Text)
-    , _ttpId                :: !(Maybe (Textual Word64))
-    , _ttpProxyHeader       :: !(Maybe TargetTCPProxyProxyHeader)
-    , _ttpDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpService'
---
--- * 'ttpKind'
---
--- * 'ttpSelfLink'
---
--- * 'ttpName'
---
--- * 'ttpCreationTimestamp'
---
--- * 'ttpId'
---
--- * 'ttpProxyHeader'
---
--- * 'ttpDescription'
-targetTCPProxy
-    :: TargetTCPProxy
-targetTCPProxy =
-  TargetTCPProxy'
-    { _ttpService = Nothing
-    , _ttpKind = "compute#targetTcpProxy"
-    , _ttpSelfLink = Nothing
-    , _ttpName = Nothing
-    , _ttpCreationTimestamp = Nothing
-    , _ttpId = Nothing
-    , _ttpProxyHeader = Nothing
-    , _ttpDescription = Nothing
-    }
-
-
--- | URL to the BackendService resource.
-ttpService :: Lens' TargetTCPProxy (Maybe Text)
-ttpService
-  = lens _ttpService (\ s a -> s{_ttpService = a})
-
--- | [Output Only] Type of the resource. Always compute#targetTcpProxy for
--- target TCP proxies.
-ttpKind :: Lens' TargetTCPProxy Text
-ttpKind = lens _ttpKind (\ s a -> s{_ttpKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-ttpSelfLink :: Lens' TargetTCPProxy (Maybe Text)
-ttpSelfLink
-  = lens _ttpSelfLink (\ s a -> s{_ttpSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-ttpName :: Lens' TargetTCPProxy (Maybe Text)
-ttpName = lens _ttpName (\ s a -> s{_ttpName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-ttpCreationTimestamp :: Lens' TargetTCPProxy (Maybe Text)
-ttpCreationTimestamp
-  = lens _ttpCreationTimestamp
-      (\ s a -> s{_ttpCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-ttpId :: Lens' TargetTCPProxy (Maybe Word64)
-ttpId
-  = lens _ttpId (\ s a -> s{_ttpId = a}) .
-      mapping _Coerce
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-ttpProxyHeader :: Lens' TargetTCPProxy (Maybe TargetTCPProxyProxyHeader)
-ttpProxyHeader
-  = lens _ttpProxyHeader
-      (\ s a -> s{_ttpProxyHeader = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-ttpDescription :: Lens' TargetTCPProxy (Maybe Text)
-ttpDescription
-  = lens _ttpDescription
-      (\ s a -> s{_ttpDescription = a})
-
-instance FromJSON TargetTCPProxy where
-        parseJSON
-          = withObject "TargetTCPProxy"
-              (\ o ->
-                 TargetTCPProxy' <$>
-                   (o .:? "service") <*>
-                     (o .:? "kind" .!= "compute#targetTcpProxy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "description"))
-
-instance ToJSON TargetTCPProxy where
-        toJSON TargetTCPProxy'{..}
-          = object
-              (catMaybes
-                 [("service" .=) <$> _ttpService,
-                  Just ("kind" .= _ttpKind),
-                  ("selfLink" .=) <$> _ttpSelfLink,
-                  ("name" .=) <$> _ttpName,
-                  ("creationTimestamp" .=) <$> _ttpCreationTimestamp,
-                  ("id" .=) <$> _ttpId,
-                  ("proxyHeader" .=) <$> _ttpProxyHeader,
-                  ("description" .=) <$> _ttpDescription])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'backendBucketListWarning' smart constructor.
-data BackendBucketListWarning =
-  BackendBucketListWarning'
-    { _bblwData    :: !(Maybe [BackendBucketListWarningDataItem])
-    , _bblwCode    :: !(Maybe BackendBucketListWarningCode)
-    , _bblwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bblwData'
---
--- * 'bblwCode'
---
--- * 'bblwMessage'
-backendBucketListWarning
-    :: BackendBucketListWarning
-backendBucketListWarning =
-  BackendBucketListWarning'
-    {_bblwData = Nothing, _bblwCode = Nothing, _bblwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-bblwData :: Lens' BackendBucketListWarning [BackendBucketListWarningDataItem]
-bblwData
-  = lens _bblwData (\ s a -> s{_bblwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-bblwCode :: Lens' BackendBucketListWarning (Maybe BackendBucketListWarningCode)
-bblwCode = lens _bblwCode (\ s a -> s{_bblwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-bblwMessage :: Lens' BackendBucketListWarning (Maybe Text)
-bblwMessage
-  = lens _bblwMessage (\ s a -> s{_bblwMessage = a})
-
-instance FromJSON BackendBucketListWarning where
-        parseJSON
-          = withObject "BackendBucketListWarning"
-              (\ o ->
-                 BackendBucketListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON BackendBucketListWarning where
-        toJSON BackendBucketListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _bblwData,
-                  ("code" .=) <$> _bblwCode,
-                  ("message" .=) <$> _bblwMessage])
-
--- | Labels to apply to this image. These can be later modified by the
--- setLabels method.
---
--- /See:/ 'imageLabels' smart constructor.
-newtype ImageLabels =
-  ImageLabels'
-    { _iAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImageLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iAddtional'
-imageLabels
-    :: HashMap Text Text -- ^ 'iAddtional'
-    -> ImageLabels
-imageLabels pIAddtional_ = ImageLabels' {_iAddtional = _Coerce # pIAddtional_}
-
-
-iAddtional :: Lens' ImageLabels (HashMap Text Text)
-iAddtional
-  = lens _iAddtional (\ s a -> s{_iAddtional = a}) .
-      _Coerce
-
-instance FromJSON ImageLabels where
-        parseJSON
-          = withObject "ImageLabels"
-              (\ o -> ImageLabels' <$> (parseJSONObject o))
-
-instance ToJSON ImageLabels where
-        toJSON = toJSON . _iAddtional
-
---
--- /See:/ 'distributionPolicy' smart constructor.
-newtype DistributionPolicy =
-  DistributionPolicy'
-    { _dpZones :: Maybe [DistributionPolicyZoneConfiguration]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DistributionPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dpZones'
-distributionPolicy
-    :: DistributionPolicy
-distributionPolicy = DistributionPolicy' {_dpZones = Nothing}
-
-
--- | Zones where the regional managed instance group will create and manage
--- instances.
-dpZones :: Lens' DistributionPolicy [DistributionPolicyZoneConfiguration]
-dpZones
-  = lens _dpZones (\ s a -> s{_dpZones = a}) . _Default
-      . _Coerce
-
-instance FromJSON DistributionPolicy where
-        parseJSON
-          = withObject "DistributionPolicy"
-              (\ o ->
-                 DistributionPolicy' <$> (o .:? "zones" .!= mempty))
-
-instance ToJSON DistributionPolicy where
-        toJSON DistributionPolicy'{..}
-          = object (catMaybes [("zones" .=) <$> _dpZones])
-
---
--- /See:/ 'nodeGroupListWarningDataItem' smart constructor.
-data NodeGroupListWarningDataItem =
-  NodeGroupListWarningDataItem'
-    { _nglwdiValue :: !(Maybe Text)
-    , _nglwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglwdiValue'
---
--- * 'nglwdiKey'
-nodeGroupListWarningDataItem
-    :: NodeGroupListWarningDataItem
-nodeGroupListWarningDataItem =
-  NodeGroupListWarningDataItem' {_nglwdiValue = Nothing, _nglwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-nglwdiValue :: Lens' NodeGroupListWarningDataItem (Maybe Text)
-nglwdiValue
-  = lens _nglwdiValue (\ s a -> s{_nglwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-nglwdiKey :: Lens' NodeGroupListWarningDataItem (Maybe Text)
-nglwdiKey
-  = lens _nglwdiKey (\ s a -> s{_nglwdiKey = a})
-
-instance FromJSON NodeGroupListWarningDataItem where
-        parseJSON
-          = withObject "NodeGroupListWarningDataItem"
-              (\ o ->
-                 NodeGroupListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeGroupListWarningDataItem where
-        toJSON NodeGroupListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _nglwdiValue,
-                  ("key" .=) <$> _nglwdiKey])
-
--- | Cloud Autoscaler policy.
---
--- /See:/ 'autoscalingPolicy' smart constructor.
-data AutoscalingPolicy =
-  AutoscalingPolicy'
-    { _apCustomMetricUtilizations :: !(Maybe [AutoscalingPolicyCustomMetricUtilization])
-    , _apMaxNumReplicas           :: !(Maybe (Textual Int32))
-    , _apCPUUtilization           :: !(Maybe AutoscalingPolicyCPUUtilization)
-    , _apLoadBalancingUtilization :: !(Maybe AutoscalingPolicyLoadBalancingUtilization)
-    , _apMinNumReplicas           :: !(Maybe (Textual Int32))
-    , _apCoolDownPeriodSec        :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalingPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apCustomMetricUtilizations'
---
--- * 'apMaxNumReplicas'
---
--- * 'apCPUUtilization'
---
--- * 'apLoadBalancingUtilization'
---
--- * 'apMinNumReplicas'
---
--- * 'apCoolDownPeriodSec'
-autoscalingPolicy
-    :: AutoscalingPolicy
-autoscalingPolicy =
-  AutoscalingPolicy'
-    { _apCustomMetricUtilizations = Nothing
-    , _apMaxNumReplicas = Nothing
-    , _apCPUUtilization = Nothing
-    , _apLoadBalancingUtilization = Nothing
-    , _apMinNumReplicas = Nothing
-    , _apCoolDownPeriodSec = Nothing
-    }
-
-
--- | Configuration parameters of autoscaling based on a custom metric.
-apCustomMetricUtilizations :: Lens' AutoscalingPolicy [AutoscalingPolicyCustomMetricUtilization]
-apCustomMetricUtilizations
-  = lens _apCustomMetricUtilizations
-      (\ s a -> s{_apCustomMetricUtilizations = a})
-      . _Default
-      . _Coerce
-
--- | The maximum number of instances that the autoscaler can scale up to.
--- This is required when creating or updating an autoscaler. The maximum
--- number of replicas should not be lower than minimal number of replicas.
-apMaxNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)
-apMaxNumReplicas
-  = lens _apMaxNumReplicas
-      (\ s a -> s{_apMaxNumReplicas = a})
-      . mapping _Coerce
-
--- | Defines the CPU utilization policy that allows the autoscaler to scale
--- based on the average CPU utilization of a managed instance group.
-apCPUUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyCPUUtilization)
-apCPUUtilization
-  = lens _apCPUUtilization
-      (\ s a -> s{_apCPUUtilization = a})
-
--- | Configuration parameters of autoscaling based on load balancer.
-apLoadBalancingUtilization :: Lens' AutoscalingPolicy (Maybe AutoscalingPolicyLoadBalancingUtilization)
-apLoadBalancingUtilization
-  = lens _apLoadBalancingUtilization
-      (\ s a -> s{_apLoadBalancingUtilization = a})
-
--- | The minimum number of replicas that the autoscaler can scale down to.
--- This cannot be less than 0. If not provided, autoscaler will choose a
--- default value depending on maximum number of instances allowed.
-apMinNumReplicas :: Lens' AutoscalingPolicy (Maybe Int32)
-apMinNumReplicas
-  = lens _apMinNumReplicas
-      (\ s a -> s{_apMinNumReplicas = a})
-      . mapping _Coerce
-
--- | The number of seconds that the 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. The default time
--- autoscaler waits is 60 seconds. Virtual machine initialization times
--- might vary because of numerous factors. We recommend that you test how
--- long an instance may take to initialize. To do this, create an instance
--- and time the startup process.
-apCoolDownPeriodSec :: Lens' AutoscalingPolicy (Maybe Int32)
-apCoolDownPeriodSec
-  = lens _apCoolDownPeriodSec
-      (\ s a -> s{_apCoolDownPeriodSec = a})
-      . mapping _Coerce
-
-instance FromJSON AutoscalingPolicy where
-        parseJSON
-          = withObject "AutoscalingPolicy"
-              (\ o ->
-                 AutoscalingPolicy' <$>
-                   (o .:? "customMetricUtilizations" .!= mempty) <*>
-                     (o .:? "maxNumReplicas")
-                     <*> (o .:? "cpuUtilization")
-                     <*> (o .:? "loadBalancingUtilization")
-                     <*> (o .:? "minNumReplicas")
-                     <*> (o .:? "coolDownPeriodSec"))
-
-instance ToJSON AutoscalingPolicy where
-        toJSON AutoscalingPolicy'{..}
-          = object
-              (catMaybes
-                 [("customMetricUtilizations" .=) <$>
-                    _apCustomMetricUtilizations,
-                  ("maxNumReplicas" .=) <$> _apMaxNumReplicas,
-                  ("cpuUtilization" .=) <$> _apCPUUtilization,
-                  ("loadBalancingUtilization" .=) <$>
-                    _apLoadBalancingUtilization,
-                  ("minNumReplicas" .=) <$> _apMinNumReplicas,
-                  ("coolDownPeriodSec" .=) <$> _apCoolDownPeriodSec])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeGroupAggregatedListWarning' smart constructor.
-data NodeGroupAggregatedListWarning =
-  NodeGroupAggregatedListWarning'
-    { _ngalwData    :: !(Maybe [NodeGroupAggregatedListWarningDataItem])
-    , _ngalwCode    :: !(Maybe NodeGroupAggregatedListWarningCode)
-    , _ngalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngalwData'
---
--- * 'ngalwCode'
---
--- * 'ngalwMessage'
-nodeGroupAggregatedListWarning
-    :: NodeGroupAggregatedListWarning
-nodeGroupAggregatedListWarning =
-  NodeGroupAggregatedListWarning'
-    {_ngalwData = Nothing, _ngalwCode = Nothing, _ngalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ngalwData :: Lens' NodeGroupAggregatedListWarning [NodeGroupAggregatedListWarningDataItem]
-ngalwData
-  = lens _ngalwData (\ s a -> s{_ngalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ngalwCode :: Lens' NodeGroupAggregatedListWarning (Maybe NodeGroupAggregatedListWarningCode)
-ngalwCode
-  = lens _ngalwCode (\ s a -> s{_ngalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ngalwMessage :: Lens' NodeGroupAggregatedListWarning (Maybe Text)
-ngalwMessage
-  = lens _ngalwMessage (\ s a -> s{_ngalwMessage = a})
-
-instance FromJSON NodeGroupAggregatedListWarning
-         where
-        parseJSON
-          = withObject "NodeGroupAggregatedListWarning"
-              (\ o ->
-                 NodeGroupAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeGroupAggregatedListWarning where
-        toJSON NodeGroupAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ngalwData,
-                  ("code" .=) <$> _ngalwCode,
-                  ("message" .=) <$> _ngalwMessage])
-
--- | Contains a list of region resources.
---
--- /See:/ 'regionList' smart constructor.
-data RegionList =
-  RegionList'
-    { _regNextPageToken :: !(Maybe Text)
-    , _regKind          :: !Text
-    , _regItems         :: !(Maybe [Region])
-    , _regSelfLink      :: !(Maybe Text)
-    , _regWarning       :: !(Maybe RegionListWarning)
-    , _regId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'regNextPageToken'
---
--- * 'regKind'
---
--- * 'regItems'
---
--- * 'regSelfLink'
---
--- * 'regWarning'
---
--- * 'regId'
-regionList
-    :: RegionList
-regionList =
-  RegionList'
-    { _regNextPageToken = Nothing
-    , _regKind = "compute#regionList"
-    , _regItems = Nothing
-    , _regSelfLink = Nothing
-    , _regWarning = Nothing
-    , _regId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-regNextPageToken :: Lens' RegionList (Maybe Text)
-regNextPageToken
-  = lens _regNextPageToken
-      (\ s a -> s{_regNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#regionList for lists of
--- regions.
-regKind :: Lens' RegionList Text
-regKind = lens _regKind (\ s a -> s{_regKind = a})
-
--- | A list of Region resources.
-regItems :: Lens' RegionList [Region]
-regItems
-  = lens _regItems (\ s a -> s{_regItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-regSelfLink :: Lens' RegionList (Maybe Text)
-regSelfLink
-  = lens _regSelfLink (\ s a -> s{_regSelfLink = a})
-
--- | [Output Only] Informational warning message.
-regWarning :: Lens' RegionList (Maybe RegionListWarning)
-regWarning
-  = lens _regWarning (\ s a -> s{_regWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-regId :: Lens' RegionList (Maybe Text)
-regId = lens _regId (\ s a -> s{_regId = a})
-
-instance FromJSON RegionList where
-        parseJSON
-          = withObject "RegionList"
-              (\ o ->
-                 RegionList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#regionList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON RegionList where
-        toJSON RegionList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _regNextPageToken,
-                  Just ("kind" .= _regKind),
-                  ("items" .=) <$> _regItems,
-                  ("selfLink" .=) <$> _regSelfLink,
-                  ("warning" .=) <$> _regWarning,
-                  ("id" .=) <$> _regId])
-
--- | Node Affinity: the configuration of desired nodes onto which this
--- Instance could be scheduled.
---
--- /See:/ 'schedulingNodeAffinity' smart constructor.
-data SchedulingNodeAffinity =
-  SchedulingNodeAffinity'
-    { _snaOperator :: !(Maybe SchedulingNodeAffinityOperator)
-    , _snaValues   :: !(Maybe [Text])
-    , _snaKey      :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SchedulingNodeAffinity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'snaOperator'
---
--- * 'snaValues'
---
--- * 'snaKey'
-schedulingNodeAffinity
-    :: SchedulingNodeAffinity
-schedulingNodeAffinity =
-  SchedulingNodeAffinity'
-    {_snaOperator = Nothing, _snaValues = Nothing, _snaKey = Nothing}
-
-
--- | Defines the operation of node selection.
-snaOperator :: Lens' SchedulingNodeAffinity (Maybe SchedulingNodeAffinityOperator)
-snaOperator
-  = lens _snaOperator (\ s a -> s{_snaOperator = a})
-
--- | Corresponds to the label values of Node resource.
-snaValues :: Lens' SchedulingNodeAffinity [Text]
-snaValues
-  = lens _snaValues (\ s a -> s{_snaValues = a}) .
-      _Default
-      . _Coerce
-
--- | Corresponds to the label key of Node resource.
-snaKey :: Lens' SchedulingNodeAffinity (Maybe Text)
-snaKey = lens _snaKey (\ s a -> s{_snaKey = a})
-
-instance FromJSON SchedulingNodeAffinity where
-        parseJSON
-          = withObject "SchedulingNodeAffinity"
-              (\ o ->
-                 SchedulingNodeAffinity' <$>
-                   (o .:? "operator") <*> (o .:? "values" .!= mempty)
-                     <*> (o .:? "key"))
-
-instance ToJSON SchedulingNodeAffinity where
-        toJSON SchedulingNodeAffinity'{..}
-          = object
-              (catMaybes
-                 [("operator" .=) <$> _snaOperator,
-                  ("values" .=) <$> _snaValues,
-                  ("key" .=) <$> _snaKey])
-
--- | Contains a list of VpnTunnel resources.
---
--- /See:/ 'vpnTunnelList' smart constructor.
-data VPNTunnelList =
-  VPNTunnelList'
-    { _vtlNextPageToken :: !(Maybe Text)
-    , _vtlKind          :: !Text
-    , _vtlItems         :: !(Maybe [VPNTunnel])
-    , _vtlSelfLink      :: !(Maybe Text)
-    , _vtlWarning       :: !(Maybe VPNTunnelListWarning)
-    , _vtlId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtlNextPageToken'
---
--- * 'vtlKind'
---
--- * 'vtlItems'
---
--- * 'vtlSelfLink'
---
--- * 'vtlWarning'
---
--- * 'vtlId'
-vpnTunnelList
-    :: VPNTunnelList
-vpnTunnelList =
-  VPNTunnelList'
-    { _vtlNextPageToken = Nothing
-    , _vtlKind = "compute#vpnTunnelList"
-    , _vtlItems = Nothing
-    , _vtlSelfLink = Nothing
-    , _vtlWarning = Nothing
-    , _vtlId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-vtlNextPageToken :: Lens' VPNTunnelList (Maybe Text)
-vtlNextPageToken
-  = lens _vtlNextPageToken
-      (\ s a -> s{_vtlNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN
--- tunnels.
-vtlKind :: Lens' VPNTunnelList Text
-vtlKind = lens _vtlKind (\ s a -> s{_vtlKind = a})
-
--- | A list of VpnTunnel resources.
-vtlItems :: Lens' VPNTunnelList [VPNTunnel]
-vtlItems
-  = lens _vtlItems (\ s a -> s{_vtlItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-vtlSelfLink :: Lens' VPNTunnelList (Maybe Text)
-vtlSelfLink
-  = lens _vtlSelfLink (\ s a -> s{_vtlSelfLink = a})
-
--- | [Output Only] Informational warning message.
-vtlWarning :: Lens' VPNTunnelList (Maybe VPNTunnelListWarning)
-vtlWarning
-  = lens _vtlWarning (\ s a -> s{_vtlWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-vtlId :: Lens' VPNTunnelList (Maybe Text)
-vtlId = lens _vtlId (\ s a -> s{_vtlId = a})
-
-instance FromJSON VPNTunnelList where
-        parseJSON
-          = withObject "VPNTunnelList"
-              (\ o ->
-                 VPNTunnelList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#vpnTunnelList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON VPNTunnelList where
-        toJSON VPNTunnelList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _vtlNextPageToken,
-                  Just ("kind" .= _vtlKind),
-                  ("items" .=) <$> _vtlItems,
-                  ("selfLink" .=) <$> _vtlSelfLink,
-                  ("warning" .=) <$> _vtlWarning,
-                  ("id" .=) <$> _vtlId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'acceleratorTypeAggregatedListWarning' smart constructor.
-data AcceleratorTypeAggregatedListWarning =
-  AcceleratorTypeAggregatedListWarning'
-    { _atalwData    :: !(Maybe [AcceleratorTypeAggregatedListWarningDataItem])
-    , _atalwCode    :: !(Maybe AcceleratorTypeAggregatedListWarningCode)
-    , _atalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypeAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atalwData'
---
--- * 'atalwCode'
---
--- * 'atalwMessage'
-acceleratorTypeAggregatedListWarning
-    :: AcceleratorTypeAggregatedListWarning
-acceleratorTypeAggregatedListWarning =
-  AcceleratorTypeAggregatedListWarning'
-    {_atalwData = Nothing, _atalwCode = Nothing, _atalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-atalwData :: Lens' AcceleratorTypeAggregatedListWarning [AcceleratorTypeAggregatedListWarningDataItem]
-atalwData
-  = lens _atalwData (\ s a -> s{_atalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-atalwCode :: Lens' AcceleratorTypeAggregatedListWarning (Maybe AcceleratorTypeAggregatedListWarningCode)
-atalwCode
-  = lens _atalwCode (\ s a -> s{_atalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-atalwMessage :: Lens' AcceleratorTypeAggregatedListWarning (Maybe Text)
-atalwMessage
-  = lens _atalwMessage (\ s a -> s{_atalwMessage = a})
-
-instance FromJSON
-           AcceleratorTypeAggregatedListWarning
-         where
-        parseJSON
-          = withObject "AcceleratorTypeAggregatedListWarning"
-              (\ o ->
-                 AcceleratorTypeAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AcceleratorTypeAggregatedListWarning
-         where
-        toJSON AcceleratorTypeAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _atalwData,
-                  ("code" .=) <$> _atalwCode,
-                  ("message" .=) <$> _atalwMessage])
-
---
--- /See:/ 'regionInstanceGroupsListInstancesWarningDataItem' smart constructor.
-data RegionInstanceGroupsListInstancesWarningDataItem =
-  RegionInstanceGroupsListInstancesWarningDataItem'
-    { _rigliwdiValue :: !(Maybe Text)
-    , _rigliwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsListInstancesWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigliwdiValue'
---
--- * 'rigliwdiKey'
-regionInstanceGroupsListInstancesWarningDataItem
-    :: RegionInstanceGroupsListInstancesWarningDataItem
-regionInstanceGroupsListInstancesWarningDataItem =
-  RegionInstanceGroupsListInstancesWarningDataItem'
-    {_rigliwdiValue = Nothing, _rigliwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rigliwdiValue :: Lens' RegionInstanceGroupsListInstancesWarningDataItem (Maybe Text)
-rigliwdiValue
-  = lens _rigliwdiValue
-      (\ s a -> s{_rigliwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rigliwdiKey :: Lens' RegionInstanceGroupsListInstancesWarningDataItem (Maybe Text)
-rigliwdiKey
-  = lens _rigliwdiKey (\ s a -> s{_rigliwdiKey = a})
-
-instance FromJSON
-           RegionInstanceGroupsListInstancesWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupsListInstancesWarningDataItem"
-              (\ o ->
-                 RegionInstanceGroupsListInstancesWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           RegionInstanceGroupsListInstancesWarningDataItem
-         where
-        toJSON
-          RegionInstanceGroupsListInstancesWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rigliwdiValue,
-                  ("key" .=) <$> _rigliwdiKey])
-
--- | Represents an Interconnects resource. The Interconnects resource is a
--- dedicated connection between Google\'s network and your on-premises
--- network. For more information, see the Dedicated overview page. (==
--- resource_for v1.interconnects ==) (== resource_for beta.interconnects
--- ==)
---
--- /See:/ 'interconnect' smart constructor.
-data Interconnect =
-  Interconnect'
-    { _iiState                   :: !(Maybe InterconnectState)
-    , _iiInterconnectType        :: !(Maybe InterconnectInterconnectType)
-    , _iiLocation                :: !(Maybe Text)
-    , _iiPeerIPAddress           :: !(Maybe Text)
-    , _iiKind                    :: !Text
-    , _iiExpectedOutages         :: !(Maybe [InterconnectOutageNotification])
-    , _iiProvisionedLinkCount    :: !(Maybe (Textual Int32))
-    , _iiCustomerName            :: !(Maybe Text)
-    , _iiRequestedLinkCount      :: !(Maybe (Textual Int32))
-    , _iiOperationalStatus       :: !(Maybe InterconnectOperationalStatus)
-    , _iiSelfLink                :: !(Maybe Text)
-    , _iiName                    :: !(Maybe Text)
-    , _iiGoogleReferenceId       :: !(Maybe Text)
-    , _iiCreationTimestamp       :: !(Maybe Text)
-    , _iiAdminEnabled            :: !(Maybe Bool)
-    , _iiId                      :: !(Maybe (Textual Word64))
-    , _iiInterconnectAttachments :: !(Maybe [Text])
-    , _iiLinkType                :: !(Maybe InterconnectLinkType)
-    , _iiGoogleIPAddress         :: !(Maybe Text)
-    , _iiDescription             :: !(Maybe Text)
-    , _iiNocContactEmail         :: !(Maybe Text)
-    , _iiCircuitInfos            :: !(Maybe [InterconnectCircuitInfo])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Interconnect' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iiState'
---
--- * 'iiInterconnectType'
---
--- * 'iiLocation'
---
--- * 'iiPeerIPAddress'
---
--- * 'iiKind'
---
--- * 'iiExpectedOutages'
---
--- * 'iiProvisionedLinkCount'
---
--- * 'iiCustomerName'
---
--- * 'iiRequestedLinkCount'
---
--- * 'iiOperationalStatus'
---
--- * 'iiSelfLink'
---
--- * 'iiName'
---
--- * 'iiGoogleReferenceId'
---
--- * 'iiCreationTimestamp'
---
--- * 'iiAdminEnabled'
---
--- * 'iiId'
---
--- * 'iiInterconnectAttachments'
---
--- * 'iiLinkType'
---
--- * 'iiGoogleIPAddress'
---
--- * 'iiDescription'
---
--- * 'iiNocContactEmail'
---
--- * 'iiCircuitInfos'
-interconnect
-    :: Interconnect
-interconnect =
-  Interconnect'
-    { _iiState = Nothing
-    , _iiInterconnectType = Nothing
-    , _iiLocation = Nothing
-    , _iiPeerIPAddress = Nothing
-    , _iiKind = "compute#interconnect"
-    , _iiExpectedOutages = Nothing
-    , _iiProvisionedLinkCount = Nothing
-    , _iiCustomerName = Nothing
-    , _iiRequestedLinkCount = Nothing
-    , _iiOperationalStatus = Nothing
-    , _iiSelfLink = Nothing
-    , _iiName = Nothing
-    , _iiGoogleReferenceId = Nothing
-    , _iiCreationTimestamp = Nothing
-    , _iiAdminEnabled = Nothing
-    , _iiId = Nothing
-    , _iiInterconnectAttachments = Nothing
-    , _iiLinkType = Nothing
-    , _iiGoogleIPAddress = Nothing
-    , _iiDescription = Nothing
-    , _iiNocContactEmail = Nothing
-    , _iiCircuitInfos = Nothing
-    }
-
-
--- | [Output Only] The current state of whether or not this Interconnect is
--- functional.
-iiState :: Lens' Interconnect (Maybe InterconnectState)
-iiState = lens _iiState (\ s a -> s{_iiState = a})
-
--- | Type of interconnect. Note that \"IT_PRIVATE\" has been deprecated in
--- favor of \"DEDICATED\"
-iiInterconnectType :: Lens' Interconnect (Maybe InterconnectInterconnectType)
-iiInterconnectType
-  = lens _iiInterconnectType
-      (\ s a -> s{_iiInterconnectType = a})
-
--- | URL of the InterconnectLocation object that represents where this
--- connection is to be provisioned.
-iiLocation :: Lens' Interconnect (Maybe Text)
-iiLocation
-  = lens _iiLocation (\ s a -> s{_iiLocation = a})
-
--- | [Output Only] IP address configured on the customer side of the
--- Interconnect link. The customer should configure this IP address during
--- turnup when prompted by Google NOC. This can be used only for ping
--- tests.
-iiPeerIPAddress :: Lens' Interconnect (Maybe Text)
-iiPeerIPAddress
-  = lens _iiPeerIPAddress
-      (\ s a -> s{_iiPeerIPAddress = a})
-
--- | [Output Only] Type of the resource. Always compute#interconnect for
--- interconnects.
-iiKind :: Lens' Interconnect Text
-iiKind = lens _iiKind (\ s a -> s{_iiKind = a})
-
--- | [Output Only] A list of outages expected for this Interconnect.
-iiExpectedOutages :: Lens' Interconnect [InterconnectOutageNotification]
-iiExpectedOutages
-  = lens _iiExpectedOutages
-      (\ s a -> s{_iiExpectedOutages = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Number of links actually provisioned in this interconnect.
-iiProvisionedLinkCount :: Lens' Interconnect (Maybe Int32)
-iiProvisionedLinkCount
-  = lens _iiProvisionedLinkCount
-      (\ s a -> s{_iiProvisionedLinkCount = a})
-      . mapping _Coerce
-
--- | Customer name, to put in the Letter of Authorization as the party
--- authorized to request a crossconnect.
-iiCustomerName :: Lens' Interconnect (Maybe Text)
-iiCustomerName
-  = lens _iiCustomerName
-      (\ s a -> s{_iiCustomerName = a})
-
--- | Target number of physical links in the link bundle, as requested by the
--- customer.
-iiRequestedLinkCount :: Lens' Interconnect (Maybe Int32)
-iiRequestedLinkCount
-  = lens _iiRequestedLinkCount
-      (\ s a -> s{_iiRequestedLinkCount = a})
-      . mapping _Coerce
-
--- | [Output Only] The current status of whether or not this Interconnect is
--- functional.
-iiOperationalStatus :: Lens' Interconnect (Maybe InterconnectOperationalStatus)
-iiOperationalStatus
-  = lens _iiOperationalStatus
-      (\ s a -> s{_iiOperationalStatus = a})
-
--- | [Output Only] Server-defined URL for the resource.
-iiSelfLink :: Lens' Interconnect (Maybe Text)
-iiSelfLink
-  = lens _iiSelfLink (\ s a -> s{_iiSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-iiName :: Lens' Interconnect (Maybe Text)
-iiName = lens _iiName (\ s a -> s{_iiName = a})
-
--- | [Output Only] Google reference ID to be used when raising support
--- tickets with Google or otherwise to debug backend connectivity issues.
-iiGoogleReferenceId :: Lens' Interconnect (Maybe Text)
-iiGoogleReferenceId
-  = lens _iiGoogleReferenceId
-      (\ s a -> s{_iiGoogleReferenceId = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-iiCreationTimestamp :: Lens' Interconnect (Maybe Text)
-iiCreationTimestamp
-  = lens _iiCreationTimestamp
-      (\ s a -> s{_iiCreationTimestamp = a})
-
--- | Administrative status of the interconnect. When this is set to true, the
--- Interconnect is functional and can carry traffic. When set to false, no
--- packets can be carried over the interconnect and no BGP routes are
--- exchanged over it. By default, the status is set to true.
-iiAdminEnabled :: Lens' Interconnect (Maybe Bool)
-iiAdminEnabled
-  = lens _iiAdminEnabled
-      (\ s a -> s{_iiAdminEnabled = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-iiId :: Lens' Interconnect (Maybe Word64)
-iiId
-  = lens _iiId (\ s a -> s{_iiId = a}) .
-      mapping _Coerce
-
--- | [Output Only] A list of the URLs of all InterconnectAttachments
--- configured to use this Interconnect.
-iiInterconnectAttachments :: Lens' Interconnect [Text]
-iiInterconnectAttachments
-  = lens _iiInterconnectAttachments
-      (\ s a -> s{_iiInterconnectAttachments = a})
-      . _Default
-      . _Coerce
-
--- | Type of link requested. This field indicates speed of each of the links
--- in the bundle, not the entire bundle.
-iiLinkType :: Lens' Interconnect (Maybe InterconnectLinkType)
-iiLinkType
-  = lens _iiLinkType (\ s a -> s{_iiLinkType = a})
-
--- | [Output Only] IP address configured on the Google side of the
--- Interconnect link. This can be used only for ping tests.
-iiGoogleIPAddress :: Lens' Interconnect (Maybe Text)
-iiGoogleIPAddress
-  = lens _iiGoogleIPAddress
-      (\ s a -> s{_iiGoogleIPAddress = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-iiDescription :: Lens' Interconnect (Maybe Text)
-iiDescription
-  = lens _iiDescription
-      (\ s a -> s{_iiDescription = a})
-
--- | Email address to contact the customer NOC for operations and maintenance
--- notifications regarding this Interconnect. If specified, this will be
--- used for notifications in addition to all other forms described, such as
--- Stackdriver logs alerting and Cloud Notifications.
-iiNocContactEmail :: Lens' Interconnect (Maybe Text)
-iiNocContactEmail
-  = lens _iiNocContactEmail
-      (\ s a -> s{_iiNocContactEmail = a})
-
--- | [Output Only] A list of CircuitInfo objects, that describe the
--- individual circuits in this LAG.
-iiCircuitInfos :: Lens' Interconnect [InterconnectCircuitInfo]
-iiCircuitInfos
-  = lens _iiCircuitInfos
-      (\ s a -> s{_iiCircuitInfos = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON Interconnect where
-        parseJSON
-          = withObject "Interconnect"
-              (\ o ->
-                 Interconnect' <$>
-                   (o .:? "state") <*> (o .:? "interconnectType") <*>
-                     (o .:? "location")
-                     <*> (o .:? "peerIpAddress")
-                     <*> (o .:? "kind" .!= "compute#interconnect")
-                     <*> (o .:? "expectedOutages" .!= mempty)
-                     <*> (o .:? "provisionedLinkCount")
-                     <*> (o .:? "customerName")
-                     <*> (o .:? "requestedLinkCount")
-                     <*> (o .:? "operationalStatus")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "googleReferenceId")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "adminEnabled")
-                     <*> (o .:? "id")
-                     <*> (o .:? "interconnectAttachments" .!= mempty)
-                     <*> (o .:? "linkType")
-                     <*> (o .:? "googleIpAddress")
-                     <*> (o .:? "description")
-                     <*> (o .:? "nocContactEmail")
-                     <*> (o .:? "circuitInfos" .!= mempty))
-
-instance ToJSON Interconnect where
-        toJSON Interconnect'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _iiState,
-                  ("interconnectType" .=) <$> _iiInterconnectType,
-                  ("location" .=) <$> _iiLocation,
-                  ("peerIpAddress" .=) <$> _iiPeerIPAddress,
-                  Just ("kind" .= _iiKind),
-                  ("expectedOutages" .=) <$> _iiExpectedOutages,
-                  ("provisionedLinkCount" .=) <$>
-                    _iiProvisionedLinkCount,
-                  ("customerName" .=) <$> _iiCustomerName,
-                  ("requestedLinkCount" .=) <$> _iiRequestedLinkCount,
-                  ("operationalStatus" .=) <$> _iiOperationalStatus,
-                  ("selfLink" .=) <$> _iiSelfLink,
-                  ("name" .=) <$> _iiName,
-                  ("googleReferenceId" .=) <$> _iiGoogleReferenceId,
-                  ("creationTimestamp" .=) <$> _iiCreationTimestamp,
-                  ("adminEnabled" .=) <$> _iiAdminEnabled,
-                  ("id" .=) <$> _iiId,
-                  ("interconnectAttachments" .=) <$>
-                    _iiInterconnectAttachments,
-                  ("linkType" .=) <$> _iiLinkType,
-                  ("googleIpAddress" .=) <$> _iiGoogleIPAddress,
-                  ("description" .=) <$> _iiDescription,
-                  ("nocContactEmail" .=) <$> _iiNocContactEmail,
-                  ("circuitInfos" .=) <$> _iiCircuitInfos])
-
---
--- /See:/ 'machineTypeScratchDisksItem' smart constructor.
-newtype MachineTypeScratchDisksItem =
-  MachineTypeScratchDisksItem'
-    { _mtsdiDiskGb :: Maybe (Textual Int32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeScratchDisksItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtsdiDiskGb'
-machineTypeScratchDisksItem
-    :: MachineTypeScratchDisksItem
-machineTypeScratchDisksItem =
-  MachineTypeScratchDisksItem' {_mtsdiDiskGb = Nothing}
-
-
--- | Size of the scratch disk, defined in GB.
-mtsdiDiskGb :: Lens' MachineTypeScratchDisksItem (Maybe Int32)
-mtsdiDiskGb
-  = lens _mtsdiDiskGb (\ s a -> s{_mtsdiDiskGb = a}) .
-      mapping _Coerce
-
-instance FromJSON MachineTypeScratchDisksItem where
-        parseJSON
-          = withObject "MachineTypeScratchDisksItem"
-              (\ o ->
-                 MachineTypeScratchDisksItem' <$> (o .:? "diskGb"))
-
-instance ToJSON MachineTypeScratchDisksItem where
-        toJSON MachineTypeScratchDisksItem'{..}
-          = object (catMaybes [("diskGb" .=) <$> _mtsdiDiskGb])
-
---
--- /See:/ 'networkEndpointGroupsScopedListWarningDataItem' smart constructor.
-data NetworkEndpointGroupsScopedListWarningDataItem =
-  NetworkEndpointGroupsScopedListWarningDataItem'
-    { _negslwdiValue :: !(Maybe Text)
-    , _negslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negslwdiValue'
---
--- * 'negslwdiKey'
-networkEndpointGroupsScopedListWarningDataItem
-    :: NetworkEndpointGroupsScopedListWarningDataItem
-networkEndpointGroupsScopedListWarningDataItem =
-  NetworkEndpointGroupsScopedListWarningDataItem'
-    {_negslwdiValue = Nothing, _negslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-negslwdiValue :: Lens' NetworkEndpointGroupsScopedListWarningDataItem (Maybe Text)
-negslwdiValue
-  = lens _negslwdiValue
-      (\ s a -> s{_negslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-negslwdiKey :: Lens' NetworkEndpointGroupsScopedListWarningDataItem (Maybe Text)
-negslwdiKey
-  = lens _negslwdiKey (\ s a -> s{_negslwdiKey = a})
-
-instance FromJSON
-           NetworkEndpointGroupsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsScopedListWarningDataItem"
-              (\ o ->
-                 NetworkEndpointGroupsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NetworkEndpointGroupsScopedListWarningDataItem
-         where
-        toJSON
-          NetworkEndpointGroupsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _negslwdiValue,
-                  ("key" .=) <$> _negslwdiKey])
-
---
--- /See:/ 'subnetworksScopedListWarningDataItem' smart constructor.
-data SubnetworksScopedListWarningDataItem =
-  SubnetworksScopedListWarningDataItem'
-    { _sslwdiValue :: !(Maybe Text)
-    , _sslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslwdiValue'
---
--- * 'sslwdiKey'
-subnetworksScopedListWarningDataItem
-    :: SubnetworksScopedListWarningDataItem
-subnetworksScopedListWarningDataItem =
-  SubnetworksScopedListWarningDataItem'
-    {_sslwdiValue = Nothing, _sslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-sslwdiValue :: Lens' SubnetworksScopedListWarningDataItem (Maybe Text)
-sslwdiValue
-  = lens _sslwdiValue (\ s a -> s{_sslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-sslwdiKey :: Lens' SubnetworksScopedListWarningDataItem (Maybe Text)
-sslwdiKey
-  = lens _sslwdiKey (\ s a -> s{_sslwdiKey = a})
-
-instance FromJSON
-           SubnetworksScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "SubnetworksScopedListWarningDataItem"
-              (\ o ->
-                 SubnetworksScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SubnetworksScopedListWarningDataItem
-         where
-        toJSON SubnetworksScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _sslwdiValue,
-                  ("key" .=) <$> _sslwdiKey])
-
---
--- /See:/ 'machineTypesScopedList' smart constructor.
-data MachineTypesScopedList =
-  MachineTypesScopedList'
-    { _mtslMachineTypes :: !(Maybe [MachineType])
-    , _mtslWarning      :: !(Maybe MachineTypesScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtslMachineTypes'
---
--- * 'mtslWarning'
-machineTypesScopedList
-    :: MachineTypesScopedList
-machineTypesScopedList =
-  MachineTypesScopedList' {_mtslMachineTypes = Nothing, _mtslWarning = Nothing}
-
-
--- | [Output Only] A list of machine types contained in this scope.
-mtslMachineTypes :: Lens' MachineTypesScopedList [MachineType]
-mtslMachineTypes
-  = lens _mtslMachineTypes
-      (\ s a -> s{_mtslMachineTypes = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] An informational warning that appears when the machine
--- types list is empty.
-mtslWarning :: Lens' MachineTypesScopedList (Maybe MachineTypesScopedListWarning)
-mtslWarning
-  = lens _mtslWarning (\ s a -> s{_mtslWarning = a})
-
-instance FromJSON MachineTypesScopedList where
-        parseJSON
-          = withObject "MachineTypesScopedList"
-              (\ o ->
-                 MachineTypesScopedList' <$>
-                   (o .:? "machineTypes" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON MachineTypesScopedList where
-        toJSON MachineTypesScopedList'{..}
-          = object
-              (catMaybes
-                 [("machineTypes" .=) <$> _mtslMachineTypes,
-                  ("warning" .=) <$> _mtslWarning])
-
--- | Represents a collection of network endpoints.
---
--- /See:/ 'networkEndpointGroup' smart constructor.
-data NetworkEndpointGroup =
-  NetworkEndpointGroup'
-    { _negSize                :: !(Maybe (Textual Int32))
-    , _negKind                :: !Text
-    , _negNetwork             :: !(Maybe Text)
-    , _negZone                :: !(Maybe Text)
-    , _negSelfLink            :: !(Maybe Text)
-    , _negName                :: !(Maybe Text)
-    , _negCreationTimestamp   :: !(Maybe Text)
-    , _negDefaultPort         :: !(Maybe (Textual Int32))
-    , _negSubnetwork          :: !(Maybe Text)
-    , _negNetworkEndpointType :: !(Maybe NetworkEndpointGroupNetworkEndpointType)
-    , _negId                  :: !(Maybe (Textual Word64))
-    , _negDescription         :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negSize'
---
--- * 'negKind'
---
--- * 'negNetwork'
---
--- * 'negZone'
---
--- * 'negSelfLink'
---
--- * 'negName'
---
--- * 'negCreationTimestamp'
---
--- * 'negDefaultPort'
---
--- * 'negSubnetwork'
---
--- * 'negNetworkEndpointType'
---
--- * 'negId'
---
--- * 'negDescription'
-networkEndpointGroup
-    :: NetworkEndpointGroup
-networkEndpointGroup =
-  NetworkEndpointGroup'
-    { _negSize = Nothing
-    , _negKind = "compute#networkEndpointGroup"
-    , _negNetwork = Nothing
-    , _negZone = Nothing
-    , _negSelfLink = Nothing
-    , _negName = Nothing
-    , _negCreationTimestamp = Nothing
-    , _negDefaultPort = Nothing
-    , _negSubnetwork = Nothing
-    , _negNetworkEndpointType = Nothing
-    , _negId = Nothing
-    , _negDescription = Nothing
-    }
-
-
--- | [Output only] Number of network endpoints in the network endpoint group.
-negSize :: Lens' NetworkEndpointGroup (Maybe Int32)
-negSize
-  = lens _negSize (\ s a -> s{_negSize = a}) .
-      mapping _Coerce
-
--- | [Output Only] Type of the resource. Always compute#networkEndpointGroup
--- for network endpoint group.
-negKind :: Lens' NetworkEndpointGroup Text
-negKind = lens _negKind (\ s a -> s{_negKind = a})
-
--- | The URL of the network to which all network endpoints in the NEG belong.
--- Uses \"default\" project network if unspecified.
-negNetwork :: Lens' NetworkEndpointGroup (Maybe Text)
-negNetwork
-  = lens _negNetwork (\ s a -> s{_negNetwork = a})
-
--- | [Output Only] The URL of the zone where the network endpoint group is
--- located.
-negZone :: Lens' NetworkEndpointGroup (Maybe Text)
-negZone = lens _negZone (\ s a -> s{_negZone = a})
-
--- | [Output Only] Server-defined URL for the resource.
-negSelfLink :: Lens' NetworkEndpointGroup (Maybe Text)
-negSelfLink
-  = lens _negSelfLink (\ s a -> s{_negSelfLink = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-negName :: Lens' NetworkEndpointGroup (Maybe Text)
-negName = lens _negName (\ s a -> s{_negName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-negCreationTimestamp :: Lens' NetworkEndpointGroup (Maybe Text)
-negCreationTimestamp
-  = lens _negCreationTimestamp
-      (\ s a -> s{_negCreationTimestamp = a})
-
--- | The default port used if the port number is not specified in the network
--- endpoint.
-negDefaultPort :: Lens' NetworkEndpointGroup (Maybe Int32)
-negDefaultPort
-  = lens _negDefaultPort
-      (\ s a -> s{_negDefaultPort = a})
-      . mapping _Coerce
-
--- | Optional URL of the subnetwork to which all network endpoints in the NEG
--- belong.
-negSubnetwork :: Lens' NetworkEndpointGroup (Maybe Text)
-negSubnetwork
-  = lens _negSubnetwork
-      (\ s a -> s{_negSubnetwork = a})
-
--- | Type of network endpoints in this network endpoint group. Currently the
--- only supported value is GCE_VM_IP_PORT.
-negNetworkEndpointType :: Lens' NetworkEndpointGroup (Maybe NetworkEndpointGroupNetworkEndpointType)
-negNetworkEndpointType
-  = lens _negNetworkEndpointType
-      (\ s a -> s{_negNetworkEndpointType = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-negId :: Lens' NetworkEndpointGroup (Maybe Word64)
-negId
-  = lens _negId (\ s a -> s{_negId = a}) .
-      mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-negDescription :: Lens' NetworkEndpointGroup (Maybe Text)
-negDescription
-  = lens _negDescription
-      (\ s a -> s{_negDescription = a})
-
-instance FromJSON NetworkEndpointGroup where
-        parseJSON
-          = withObject "NetworkEndpointGroup"
-              (\ o ->
-                 NetworkEndpointGroup' <$>
-                   (o .:? "size") <*>
-                     (o .:? "kind" .!= "compute#networkEndpointGroup")
-                     <*> (o .:? "network")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "defaultPort")
-                     <*> (o .:? "subnetwork")
-                     <*> (o .:? "networkEndpointType")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description"))
-
-instance ToJSON NetworkEndpointGroup where
-        toJSON NetworkEndpointGroup'{..}
-          = object
-              (catMaybes
-                 [("size" .=) <$> _negSize, Just ("kind" .= _negKind),
-                  ("network" .=) <$> _negNetwork,
-                  ("zone" .=) <$> _negZone,
-                  ("selfLink" .=) <$> _negSelfLink,
-                  ("name" .=) <$> _negName,
-                  ("creationTimestamp" .=) <$> _negCreationTimestamp,
-                  ("defaultPort" .=) <$> _negDefaultPort,
-                  ("subnetwork" .=) <$> _negSubnetwork,
-                  ("networkEndpointType" .=) <$>
-                    _negNetworkEndpointType,
-                  ("id" .=) <$> _negId,
-                  ("description" .=) <$> _negDescription])
-
--- | A Subnetwork resource. (== resource_for beta.subnetworks ==) (==
--- resource_for v1.subnetworks ==)
---
--- /See:/ 'subnetwork' smart constructor.
-data Subnetwork =
-  Subnetwork'
-    { _subKind                  :: !Text
-    , _subFingerprint           :: !(Maybe Bytes)
-    , _subNetwork               :: !(Maybe Text)
-    , _subGatewayAddress        :: !(Maybe Text)
-    , _subSelfLink              :: !(Maybe Text)
-    , _subEnableFlowLogs        :: !(Maybe Bool)
-    , _subName                  :: !(Maybe Text)
-    , _subSecondaryIPRanges     :: !(Maybe [SubnetworkSecondaryRange])
-    , _subCreationTimestamp     :: !(Maybe Text)
-    , _subIPCIdRRange           :: !(Maybe Text)
-    , _subId                    :: !(Maybe (Textual Word64))
-    , _subRegion                :: !(Maybe Text)
-    , _subDescription           :: !(Maybe Text)
-    , _subPrivateIPGoogleAccess :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Subnetwork' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'subKind'
---
--- * 'subFingerprint'
---
--- * 'subNetwork'
---
--- * 'subGatewayAddress'
---
--- * 'subSelfLink'
---
--- * 'subEnableFlowLogs'
---
--- * 'subName'
---
--- * 'subSecondaryIPRanges'
---
--- * 'subCreationTimestamp'
---
--- * 'subIPCIdRRange'
---
--- * 'subId'
---
--- * 'subRegion'
---
--- * 'subDescription'
---
--- * 'subPrivateIPGoogleAccess'
-subnetwork
-    :: Subnetwork
-subnetwork =
-  Subnetwork'
-    { _subKind = "compute#subnetwork"
-    , _subFingerprint = Nothing
-    , _subNetwork = Nothing
-    , _subGatewayAddress = Nothing
-    , _subSelfLink = Nothing
-    , _subEnableFlowLogs = Nothing
-    , _subName = Nothing
-    , _subSecondaryIPRanges = Nothing
-    , _subCreationTimestamp = Nothing
-    , _subIPCIdRRange = Nothing
-    , _subId = Nothing
-    , _subRegion = Nothing
-    , _subDescription = Nothing
-    , _subPrivateIPGoogleAccess = Nothing
-    }
-
-
--- | [Output Only] Type of the resource. Always compute#subnetwork for
--- Subnetwork resources.
-subKind :: Lens' Subnetwork Text
-subKind = lens _subKind (\ s a -> s{_subKind = a})
-
--- | Fingerprint of this resource. A hash of the contents stored in this
--- object. This field is used in optimistic locking. This field will be
--- ignored when inserting a Subnetwork. An up-to-date fingerprint must be
--- provided in order to update the Subnetwork, otherwise the request will
--- fail with error 412 conditionNotMet. To see the latest fingerprint, make
--- a get() request to retrieve a Subnetwork.
-subFingerprint :: Lens' Subnetwork (Maybe ByteString)
-subFingerprint
-  = lens _subFingerprint
-      (\ s a -> s{_subFingerprint = a})
-      . mapping _Bytes
-
--- | The URL of the network to which this subnetwork belongs, provided by the
--- client when initially creating the subnetwork. Only networks that are in
--- the distributed mode can have subnetworks. This field can be set only at
--- resource creation time.
-subNetwork :: Lens' Subnetwork (Maybe Text)
-subNetwork
-  = lens _subNetwork (\ s a -> s{_subNetwork = a})
-
--- | [Output Only] The gateway address for default routes to reach
--- destination addresses outside this subnetwork.
-subGatewayAddress :: Lens' Subnetwork (Maybe Text)
-subGatewayAddress
-  = lens _subGatewayAddress
-      (\ s a -> s{_subGatewayAddress = a})
-
--- | [Output Only] Server-defined URL for the resource.
-subSelfLink :: Lens' Subnetwork (Maybe Text)
-subSelfLink
-  = lens _subSelfLink (\ s a -> s{_subSelfLink = a})
-
--- | Whether to enable flow logging for this subnetwork. If this field is not
--- explicitly set, it will not appear in get listings. If not set the
--- default behavior is to disable flow logging.
-subEnableFlowLogs :: Lens' Subnetwork (Maybe Bool)
-subEnableFlowLogs
-  = lens _subEnableFlowLogs
-      (\ s a -> s{_subEnableFlowLogs = a})
-
--- | The name of the resource, provided by the client when initially creating
--- the resource. The name must be 1-63 characters long, and comply with
--- RFC1035. Specifically, the name must be 1-63 characters long and match
--- the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the
--- first character must be a lowercase letter, and all following characters
--- must be a dash, lowercase letter, or digit, except the last character,
--- which cannot be a dash.
-subName :: Lens' Subnetwork (Maybe Text)
-subName = lens _subName (\ s a -> s{_subName = a})
-
--- | An array of configurations for secondary IP ranges for VM instances
--- contained in this subnetwork. The primary IP of such VM must belong to
--- the primary ipCidrRange of the subnetwork. The alias IPs may belong to
--- either primary or secondary ranges. This field can be updated with a
--- patch request.
-subSecondaryIPRanges :: Lens' Subnetwork [SubnetworkSecondaryRange]
-subSecondaryIPRanges
-  = lens _subSecondaryIPRanges
-      (\ s a -> s{_subSecondaryIPRanges = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-subCreationTimestamp :: Lens' Subnetwork (Maybe Text)
-subCreationTimestamp
-  = lens _subCreationTimestamp
-      (\ s a -> s{_subCreationTimestamp = a})
-
--- | The range of internal addresses that are owned by this subnetwork.
--- Provide this property when you create the subnetwork. For example,
--- 10.0.0.0\/8 or 192.168.0.0\/16. Ranges must be unique and
--- non-overlapping within a network. Only IPv4 is supported. This field can
--- be set only at resource creation time.
-subIPCIdRRange :: Lens' Subnetwork (Maybe Text)
-subIPCIdRRange
-  = lens _subIPCIdRRange
-      (\ s a -> s{_subIPCIdRRange = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-subId :: Lens' Subnetwork (Maybe Word64)
-subId
-  = lens _subId (\ s a -> s{_subId = a}) .
-      mapping _Coerce
-
--- | URL of the region where the Subnetwork resides. This field can be set
--- only at resource creation time.
-subRegion :: Lens' Subnetwork (Maybe Text)
-subRegion
-  = lens _subRegion (\ s a -> s{_subRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource. This field can be set only at resource creation
--- time.
-subDescription :: Lens' Subnetwork (Maybe Text)
-subDescription
-  = lens _subDescription
-      (\ s a -> s{_subDescription = a})
-
--- | Whether the VMs in this subnet can access Google services without
--- assigned external IP addresses. This field can be both set at resource
--- creation time and updated using setPrivateIpGoogleAccess.
-subPrivateIPGoogleAccess :: Lens' Subnetwork (Maybe Bool)
-subPrivateIPGoogleAccess
-  = lens _subPrivateIPGoogleAccess
-      (\ s a -> s{_subPrivateIPGoogleAccess = a})
-
-instance FromJSON Subnetwork where
-        parseJSON
-          = withObject "Subnetwork"
-              (\ o ->
-                 Subnetwork' <$>
-                   (o .:? "kind" .!= "compute#subnetwork") <*>
-                     (o .:? "fingerprint")
-                     <*> (o .:? "network")
-                     <*> (o .:? "gatewayAddress")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "enableFlowLogs")
-                     <*> (o .:? "name")
-                     <*> (o .:? "secondaryIpRanges" .!= mempty)
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "ipCidrRange")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "privateIpGoogleAccess"))
-
-instance ToJSON Subnetwork where
-        toJSON Subnetwork'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _subKind),
-                  ("fingerprint" .=) <$> _subFingerprint,
-                  ("network" .=) <$> _subNetwork,
-                  ("gatewayAddress" .=) <$> _subGatewayAddress,
-                  ("selfLink" .=) <$> _subSelfLink,
-                  ("enableFlowLogs" .=) <$> _subEnableFlowLogs,
-                  ("name" .=) <$> _subName,
-                  ("secondaryIpRanges" .=) <$> _subSecondaryIPRanges,
-                  ("creationTimestamp" .=) <$> _subCreationTimestamp,
-                  ("ipCidrRange" .=) <$> _subIPCIdRRange,
-                  ("id" .=) <$> _subId, ("region" .=) <$> _subRegion,
-                  ("description" .=) <$> _subDescription,
-                  ("privateIpGoogleAccess" .=) <$>
-                    _subPrivateIPGoogleAccess])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'healthCheckListWarning' smart constructor.
-data HealthCheckListWarning =
-  HealthCheckListWarning'
-    { _hclwData    :: !(Maybe [HealthCheckListWarningDataItem])
-    , _hclwCode    :: !(Maybe HealthCheckListWarningCode)
-    , _hclwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthCheckListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hclwData'
---
--- * 'hclwCode'
---
--- * 'hclwMessage'
-healthCheckListWarning
-    :: HealthCheckListWarning
-healthCheckListWarning =
-  HealthCheckListWarning'
-    {_hclwData = Nothing, _hclwCode = Nothing, _hclwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-hclwData :: Lens' HealthCheckListWarning [HealthCheckListWarningDataItem]
-hclwData
-  = lens _hclwData (\ s a -> s{_hclwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-hclwCode :: Lens' HealthCheckListWarning (Maybe HealthCheckListWarningCode)
-hclwCode = lens _hclwCode (\ s a -> s{_hclwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-hclwMessage :: Lens' HealthCheckListWarning (Maybe Text)
-hclwMessage
-  = lens _hclwMessage (\ s a -> s{_hclwMessage = a})
-
-instance FromJSON HealthCheckListWarning where
-        parseJSON
-          = withObject "HealthCheckListWarning"
-              (\ o ->
-                 HealthCheckListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON HealthCheckListWarning where
-        toJSON HealthCheckListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _hclwData,
-                  ("code" .=) <$> _hclwCode,
-                  ("message" .=) <$> _hclwMessage])
-
---
--- /See:/ 'machineTypeAggregatedList' smart constructor.
-data MachineTypeAggregatedList =
-  MachineTypeAggregatedList'
-    { _mtalNextPageToken :: !(Maybe Text)
-    , _mtalKind          :: !Text
-    , _mtalItems         :: !(Maybe MachineTypeAggregatedListItems)
-    , _mtalSelfLink      :: !(Maybe Text)
-    , _mtalWarning       :: !(Maybe MachineTypeAggregatedListWarning)
-    , _mtalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtalNextPageToken'
---
--- * 'mtalKind'
---
--- * 'mtalItems'
---
--- * 'mtalSelfLink'
---
--- * 'mtalWarning'
---
--- * 'mtalId'
-machineTypeAggregatedList
-    :: MachineTypeAggregatedList
-machineTypeAggregatedList =
-  MachineTypeAggregatedList'
-    { _mtalNextPageToken = Nothing
-    , _mtalKind = "compute#machineTypeAggregatedList"
-    , _mtalItems = Nothing
-    , _mtalSelfLink = Nothing
-    , _mtalWarning = Nothing
-    , _mtalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-mtalNextPageToken :: Lens' MachineTypeAggregatedList (Maybe Text)
-mtalNextPageToken
-  = lens _mtalNextPageToken
-      (\ s a -> s{_mtalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#machineTypeAggregatedList
--- for aggregated lists of machine types.
-mtalKind :: Lens' MachineTypeAggregatedList Text
-mtalKind = lens _mtalKind (\ s a -> s{_mtalKind = a})
-
--- | A list of MachineTypesScopedList resources.
-mtalItems :: Lens' MachineTypeAggregatedList (Maybe MachineTypeAggregatedListItems)
-mtalItems
-  = lens _mtalItems (\ s a -> s{_mtalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-mtalSelfLink :: Lens' MachineTypeAggregatedList (Maybe Text)
-mtalSelfLink
-  = lens _mtalSelfLink (\ s a -> s{_mtalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-mtalWarning :: Lens' MachineTypeAggregatedList (Maybe MachineTypeAggregatedListWarning)
-mtalWarning
-  = lens _mtalWarning (\ s a -> s{_mtalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-mtalId :: Lens' MachineTypeAggregatedList (Maybe Text)
-mtalId = lens _mtalId (\ s a -> s{_mtalId = a})
-
-instance FromJSON MachineTypeAggregatedList where
-        parseJSON
-          = withObject "MachineTypeAggregatedList"
-              (\ o ->
-                 MachineTypeAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#machineTypeAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON MachineTypeAggregatedList where
-        toJSON MachineTypeAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _mtalNextPageToken,
-                  Just ("kind" .= _mtalKind),
-                  ("items" .=) <$> _mtalItems,
-                  ("selfLink" .=) <$> _mtalSelfLink,
-                  ("warning" .=) <$> _mtalWarning,
-                  ("id" .=) <$> _mtalId])
-
---
--- /See:/ 'networkEndpointGroupsListNetworkEndpointsWarningDataItem' smart constructor.
-data NetworkEndpointGroupsListNetworkEndpointsWarningDataItem =
-  NetworkEndpointGroupsListNetworkEndpointsWarningDataItem'
-    { _neglnewdiValue :: !(Maybe Text)
-    , _neglnewdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsListNetworkEndpointsWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglnewdiValue'
---
--- * 'neglnewdiKey'
-networkEndpointGroupsListNetworkEndpointsWarningDataItem
-    :: NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-networkEndpointGroupsListNetworkEndpointsWarningDataItem =
-  NetworkEndpointGroupsListNetworkEndpointsWarningDataItem'
-    {_neglnewdiValue = Nothing, _neglnewdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-neglnewdiValue :: Lens' NetworkEndpointGroupsListNetworkEndpointsWarningDataItem (Maybe Text)
-neglnewdiValue
-  = lens _neglnewdiValue
-      (\ s a -> s{_neglnewdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-neglnewdiKey :: Lens' NetworkEndpointGroupsListNetworkEndpointsWarningDataItem (Maybe Text)
-neglnewdiKey
-  = lens _neglnewdiKey (\ s a -> s{_neglnewdiKey = a})
-
-instance FromJSON
-           NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupsListNetworkEndpointsWarningDataItem"
-              (\ o ->
-                 NetworkEndpointGroupsListNetworkEndpointsWarningDataItem'
-                   <$> (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NetworkEndpointGroupsListNetworkEndpointsWarningDataItem
-         where
-        toJSON
-          NetworkEndpointGroupsListNetworkEndpointsWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _neglnewdiValue,
-                  ("key" .=) <$> _neglnewdiKey])
-
--- | [Output Only] An informational warning that appears when the nodeGroup
--- list is empty.
---
--- /See:/ 'nodeGroupsScopedListWarning' smart constructor.
-data NodeGroupsScopedListWarning =
-  NodeGroupsScopedListWarning'
-    { _ngslwData    :: !(Maybe [NodeGroupsScopedListWarningDataItem])
-    , _ngslwCode    :: !(Maybe NodeGroupsScopedListWarningCode)
-    , _ngslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngslwData'
---
--- * 'ngslwCode'
---
--- * 'ngslwMessage'
-nodeGroupsScopedListWarning
-    :: NodeGroupsScopedListWarning
-nodeGroupsScopedListWarning =
-  NodeGroupsScopedListWarning'
-    {_ngslwData = Nothing, _ngslwCode = Nothing, _ngslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ngslwData :: Lens' NodeGroupsScopedListWarning [NodeGroupsScopedListWarningDataItem]
-ngslwData
-  = lens _ngslwData (\ s a -> s{_ngslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ngslwCode :: Lens' NodeGroupsScopedListWarning (Maybe NodeGroupsScopedListWarningCode)
-ngslwCode
-  = lens _ngslwCode (\ s a -> s{_ngslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ngslwMessage :: Lens' NodeGroupsScopedListWarning (Maybe Text)
-ngslwMessage
-  = lens _ngslwMessage (\ s a -> s{_ngslwMessage = a})
-
-instance FromJSON NodeGroupsScopedListWarning where
-        parseJSON
-          = withObject "NodeGroupsScopedListWarning"
-              (\ o ->
-                 NodeGroupsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeGroupsScopedListWarning where
-        toJSON NodeGroupsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ngslwData,
-                  ("code" .=) <$> _ngslwCode,
-                  ("message" .=) <$> _ngslwMessage])
-
--- | Contains a list of node types.
---
--- /See:/ 'nodeTypeList' smart constructor.
-data NodeTypeList =
-  NodeTypeList'
-    { _ntltNextPageToken :: !(Maybe Text)
-    , _ntltKind          :: !Text
-    , _ntltItems         :: !(Maybe [NodeType])
-    , _ntltSelfLink      :: !(Maybe Text)
-    , _ntltWarning       :: !(Maybe NodeTypeListWarning)
-    , _ntltId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntltNextPageToken'
---
--- * 'ntltKind'
---
--- * 'ntltItems'
---
--- * 'ntltSelfLink'
---
--- * 'ntltWarning'
---
--- * 'ntltId'
-nodeTypeList
-    :: NodeTypeList
-nodeTypeList =
-  NodeTypeList'
-    { _ntltNextPageToken = Nothing
-    , _ntltKind = "compute#nodeTypeList"
-    , _ntltItems = Nothing
-    , _ntltSelfLink = Nothing
-    , _ntltWarning = Nothing
-    , _ntltId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ntltNextPageToken :: Lens' NodeTypeList (Maybe Text)
-ntltNextPageToken
-  = lens _ntltNextPageToken
-      (\ s a -> s{_ntltNextPageToken = a})
-
--- | [Output Only] Type of resource.Always compute#nodeTypeList for lists of
--- node types.
-ntltKind :: Lens' NodeTypeList Text
-ntltKind = lens _ntltKind (\ s a -> s{_ntltKind = a})
-
--- | A list of NodeType resources.
-ntltItems :: Lens' NodeTypeList [NodeType]
-ntltItems
-  = lens _ntltItems (\ s a -> s{_ntltItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ntltSelfLink :: Lens' NodeTypeList (Maybe Text)
-ntltSelfLink
-  = lens _ntltSelfLink (\ s a -> s{_ntltSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ntltWarning :: Lens' NodeTypeList (Maybe NodeTypeListWarning)
-ntltWarning
-  = lens _ntltWarning (\ s a -> s{_ntltWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ntltId :: Lens' NodeTypeList (Maybe Text)
-ntltId = lens _ntltId (\ s a -> s{_ntltId = a})
-
-instance FromJSON NodeTypeList where
-        parseJSON
-          = withObject "NodeTypeList"
-              (\ o ->
-                 NodeTypeList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeTypeList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeTypeList where
-        toJSON NodeTypeList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ntltNextPageToken,
-                  Just ("kind" .= _ntltKind),
-                  ("items" .=) <$> _ntltItems,
-                  ("selfLink" .=) <$> _ntltSelfLink,
-                  ("warning" .=) <$> _ntltWarning,
-                  ("id" .=) <$> _ntltId])
-
--- | A DiskType resource. (== resource_for beta.diskTypes ==) (==
--- resource_for v1.diskTypes ==)
---
--- /See:/ 'diskType' smart constructor.
-data DiskType =
-  DiskType'
-    { _dtKind              :: !Text
-    , _dtZone              :: !(Maybe Text)
-    , _dtSelfLink          :: !(Maybe Text)
-    , _dtName              :: !(Maybe Text)
-    , _dtCreationTimestamp :: !(Maybe Text)
-    , _dtId                :: !(Maybe (Textual Word64))
-    , _dtRegion            :: !(Maybe Text)
-    , _dtValidDiskSize     :: !(Maybe Text)
-    , _dtDescription       :: !(Maybe Text)
-    , _dtDefaultDiskSizeGb :: !(Maybe (Textual Int64))
-    , _dtDeprecated        :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtKind'
---
--- * 'dtZone'
---
--- * 'dtSelfLink'
---
--- * 'dtName'
---
--- * 'dtCreationTimestamp'
---
--- * 'dtId'
---
--- * 'dtRegion'
---
--- * 'dtValidDiskSize'
---
--- * 'dtDescription'
---
--- * 'dtDefaultDiskSizeGb'
---
--- * 'dtDeprecated'
-diskType
-    :: DiskType
-diskType =
-  DiskType'
-    { _dtKind = "compute#diskType"
-    , _dtZone = Nothing
-    , _dtSelfLink = Nothing
-    , _dtName = Nothing
-    , _dtCreationTimestamp = Nothing
-    , _dtId = Nothing
-    , _dtRegion = Nothing
-    , _dtValidDiskSize = Nothing
-    , _dtDescription = Nothing
-    , _dtDefaultDiskSizeGb = Nothing
-    , _dtDeprecated = Nothing
-    }
-
-
--- | [Output Only] Type of the resource. Always compute#diskType for disk
--- types.
-dtKind :: Lens' DiskType Text
-dtKind = lens _dtKind (\ s a -> s{_dtKind = a})
-
--- | [Output Only] URL of the zone where the disk type resides. You must
--- specify this field as part of the HTTP request URL. It is not settable
--- as a field in the request body.
-dtZone :: Lens' DiskType (Maybe Text)
-dtZone = lens _dtZone (\ s a -> s{_dtZone = a})
-
--- | [Output Only] Server-defined URL for the resource.
-dtSelfLink :: Lens' DiskType (Maybe Text)
-dtSelfLink
-  = lens _dtSelfLink (\ s a -> s{_dtSelfLink = a})
-
--- | [Output Only] Name of the resource.
-dtName :: Lens' DiskType (Maybe Text)
-dtName = lens _dtName (\ s a -> s{_dtName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-dtCreationTimestamp :: Lens' DiskType (Maybe Text)
-dtCreationTimestamp
-  = lens _dtCreationTimestamp
-      (\ s a -> s{_dtCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-dtId :: Lens' DiskType (Maybe Word64)
-dtId
-  = lens _dtId (\ s a -> s{_dtId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL of the region where the disk type resides. Only
--- applicable for regional resources. You must specify this field as part
--- of the HTTP request URL. It is not settable as a field in the request
--- body.
-dtRegion :: Lens' DiskType (Maybe Text)
-dtRegion = lens _dtRegion (\ s a -> s{_dtRegion = a})
-
--- | [Output Only] An optional textual description of the valid disk size,
--- such as \"10GB-10TB\".
-dtValidDiskSize :: Lens' DiskType (Maybe Text)
-dtValidDiskSize
-  = lens _dtValidDiskSize
-      (\ s a -> s{_dtValidDiskSize = a})
-
--- | [Output Only] An optional description of this resource.
-dtDescription :: Lens' DiskType (Maybe Text)
-dtDescription
-  = lens _dtDescription
-      (\ s a -> s{_dtDescription = a})
-
--- | [Output Only] Server-defined default disk size in GB.
-dtDefaultDiskSizeGb :: Lens' DiskType (Maybe Int64)
-dtDefaultDiskSizeGb
-  = lens _dtDefaultDiskSizeGb
-      (\ s a -> s{_dtDefaultDiskSizeGb = a})
-      . mapping _Coerce
-
--- | [Output Only] The deprecation status associated with this disk type.
-dtDeprecated :: Lens' DiskType (Maybe DeprecationStatus)
-dtDeprecated
-  = lens _dtDeprecated (\ s a -> s{_dtDeprecated = a})
-
-instance FromJSON DiskType where
-        parseJSON
-          = withObject "DiskType"
-              (\ o ->
-                 DiskType' <$>
-                   (o .:? "kind" .!= "compute#diskType") <*>
-                     (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "validDiskSize")
-                     <*> (o .:? "description")
-                     <*> (o .:? "defaultDiskSizeGb")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON DiskType where
-        toJSON DiskType'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _dtKind), ("zone" .=) <$> _dtZone,
-                  ("selfLink" .=) <$> _dtSelfLink,
-                  ("name" .=) <$> _dtName,
-                  ("creationTimestamp" .=) <$> _dtCreationTimestamp,
-                  ("id" .=) <$> _dtId, ("region" .=) <$> _dtRegion,
-                  ("validDiskSize" .=) <$> _dtValidDiskSize,
-                  ("description" .=) <$> _dtDescription,
-                  ("defaultDiskSizeGb" .=) <$> _dtDefaultDiskSizeGb,
-                  ("deprecated" .=) <$> _dtDeprecated])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeTemplateAggregatedListWarning' smart constructor.
-data NodeTemplateAggregatedListWarning =
-  NodeTemplateAggregatedListWarning'
-    { _ntalwData    :: !(Maybe [NodeTemplateAggregatedListWarningDataItem])
-    , _ntalwCode    :: !(Maybe NodeTemplateAggregatedListWarningCode)
-    , _ntalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntalwData'
---
--- * 'ntalwCode'
---
--- * 'ntalwMessage'
-nodeTemplateAggregatedListWarning
-    :: NodeTemplateAggregatedListWarning
-nodeTemplateAggregatedListWarning =
-  NodeTemplateAggregatedListWarning'
-    {_ntalwData = Nothing, _ntalwCode = Nothing, _ntalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ntalwData :: Lens' NodeTemplateAggregatedListWarning [NodeTemplateAggregatedListWarningDataItem]
-ntalwData
-  = lens _ntalwData (\ s a -> s{_ntalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ntalwCode :: Lens' NodeTemplateAggregatedListWarning (Maybe NodeTemplateAggregatedListWarningCode)
-ntalwCode
-  = lens _ntalwCode (\ s a -> s{_ntalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ntalwMessage :: Lens' NodeTemplateAggregatedListWarning (Maybe Text)
-ntalwMessage
-  = lens _ntalwMessage (\ s a -> s{_ntalwMessage = a})
-
-instance FromJSON NodeTemplateAggregatedListWarning
-         where
-        parseJSON
-          = withObject "NodeTemplateAggregatedListWarning"
-              (\ o ->
-                 NodeTemplateAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTemplateAggregatedListWarning
-         where
-        toJSON NodeTemplateAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ntalwData,
-                  ("code" .=) <$> _ntalwCode,
-                  ("message" .=) <$> _ntalwMessage])
-
---
--- /See:/ 'autoscalerAggregatedListWarningDataItem' smart constructor.
-data AutoscalerAggregatedListWarningDataItem =
-  AutoscalerAggregatedListWarningDataItem'
-    { _aalwdiValue :: !(Maybe Text)
-    , _aalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aalwdiValue'
---
--- * 'aalwdiKey'
-autoscalerAggregatedListWarningDataItem
-    :: AutoscalerAggregatedListWarningDataItem
-autoscalerAggregatedListWarningDataItem =
-  AutoscalerAggregatedListWarningDataItem'
-    {_aalwdiValue = Nothing, _aalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-aalwdiValue :: Lens' AutoscalerAggregatedListWarningDataItem (Maybe Text)
-aalwdiValue
-  = lens _aalwdiValue (\ s a -> s{_aalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-aalwdiKey :: Lens' AutoscalerAggregatedListWarningDataItem (Maybe Text)
-aalwdiKey
-  = lens _aalwdiKey (\ s a -> s{_aalwdiKey = a})
-
-instance FromJSON
-           AutoscalerAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "AutoscalerAggregatedListWarningDataItem"
-              (\ o ->
-                 AutoscalerAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           AutoscalerAggregatedListWarningDataItem
-         where
-        toJSON AutoscalerAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _aalwdiValue,
-                  ("key" .=) <$> _aalwdiKey])
-
--- | The labels to set for this resource.
---
--- /See:/ 'zoneSetLabelsRequestLabels' smart constructor.
-newtype ZoneSetLabelsRequestLabels =
-  ZoneSetLabelsRequestLabels'
-    { _zslrlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneSetLabelsRequestLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zslrlAddtional'
-zoneSetLabelsRequestLabels
-    :: HashMap Text Text -- ^ 'zslrlAddtional'
-    -> ZoneSetLabelsRequestLabels
-zoneSetLabelsRequestLabels pZslrlAddtional_ =
-  ZoneSetLabelsRequestLabels' {_zslrlAddtional = _Coerce # pZslrlAddtional_}
-
-
-zslrlAddtional :: Lens' ZoneSetLabelsRequestLabels (HashMap Text Text)
-zslrlAddtional
-  = lens _zslrlAddtional
-      (\ s a -> s{_zslrlAddtional = a})
-      . _Coerce
-
-instance FromJSON ZoneSetLabelsRequestLabels where
-        parseJSON
-          = withObject "ZoneSetLabelsRequestLabels"
-              (\ o ->
-                 ZoneSetLabelsRequestLabels' <$> (parseJSONObject o))
-
-instance ToJSON ZoneSetLabelsRequestLabels where
-        toJSON = toJSON . _zslrlAddtional
-
---
--- /See:/ 'nodeTypeListWarningDataItem' smart constructor.
-data NodeTypeListWarningDataItem =
-  NodeTypeListWarningDataItem'
-    { _ntlwdiValue :: !(Maybe Text)
-    , _ntlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntlwdiValue'
---
--- * 'ntlwdiKey'
-nodeTypeListWarningDataItem
-    :: NodeTypeListWarningDataItem
-nodeTypeListWarningDataItem =
-  NodeTypeListWarningDataItem' {_ntlwdiValue = Nothing, _ntlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ntlwdiValue :: Lens' NodeTypeListWarningDataItem (Maybe Text)
-ntlwdiValue
-  = lens _ntlwdiValue (\ s a -> s{_ntlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ntlwdiKey :: Lens' NodeTypeListWarningDataItem (Maybe Text)
-ntlwdiKey
-  = lens _ntlwdiKey (\ s a -> s{_ntlwdiKey = a})
-
-instance FromJSON NodeTypeListWarningDataItem where
-        parseJSON
-          = withObject "NodeTypeListWarningDataItem"
-              (\ o ->
-                 NodeTypeListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeTypeListWarningDataItem where
-        toJSON NodeTypeListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ntlwdiValue,
-                  ("key" .=) <$> _ntlwdiKey])
-
--- | Message representing the validation result for a UrlMap.
---
--- /See:/ 'urlMapValidationResult' smart constructor.
-data URLMapValidationResult =
-  URLMapValidationResult'
-    { _umvrLoadErrors    :: !(Maybe [Text])
-    , _umvrLoadSucceeded :: !(Maybe Bool)
-    , _umvrTestPassed    :: !(Maybe Bool)
-    , _umvrTestFailures  :: !(Maybe [TestFailure])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapValidationResult' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umvrLoadErrors'
---
--- * 'umvrLoadSucceeded'
---
--- * 'umvrTestPassed'
---
--- * 'umvrTestFailures'
-urlMapValidationResult
-    :: URLMapValidationResult
-urlMapValidationResult =
-  URLMapValidationResult'
-    { _umvrLoadErrors = Nothing
-    , _umvrLoadSucceeded = Nothing
-    , _umvrTestPassed = Nothing
-    , _umvrTestFailures = Nothing
-    }
-
-
-umvrLoadErrors :: Lens' URLMapValidationResult [Text]
-umvrLoadErrors
-  = lens _umvrLoadErrors
-      (\ s a -> s{_umvrLoadErrors = a})
-      . _Default
-      . _Coerce
-
--- | Whether the given UrlMap can be successfully loaded. If false,
--- \'loadErrors\' indicates the reasons.
-umvrLoadSucceeded :: Lens' URLMapValidationResult (Maybe Bool)
-umvrLoadSucceeded
-  = lens _umvrLoadSucceeded
-      (\ s a -> s{_umvrLoadSucceeded = a})
-
--- | If successfully loaded, this field indicates whether the test passed. If
--- false, \'testFailures\'s indicate the reason of failure.
-umvrTestPassed :: Lens' URLMapValidationResult (Maybe Bool)
-umvrTestPassed
-  = lens _umvrTestPassed
-      (\ s a -> s{_umvrTestPassed = a})
-
-umvrTestFailures :: Lens' URLMapValidationResult [TestFailure]
-umvrTestFailures
-  = lens _umvrTestFailures
-      (\ s a -> s{_umvrTestFailures = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON URLMapValidationResult where
-        parseJSON
-          = withObject "URLMapValidationResult"
-              (\ o ->
-                 URLMapValidationResult' <$>
-                   (o .:? "loadErrors" .!= mempty) <*>
-                     (o .:? "loadSucceeded")
-                     <*> (o .:? "testPassed")
-                     <*> (o .:? "testFailures" .!= mempty))
-
-instance ToJSON URLMapValidationResult where
-        toJSON URLMapValidationResult'{..}
-          = object
-              (catMaybes
-                 [("loadErrors" .=) <$> _umvrLoadErrors,
-                  ("loadSucceeded" .=) <$> _umvrLoadSucceeded,
-                  ("testPassed" .=) <$> _umvrTestPassed,
-                  ("testFailures" .=) <$> _umvrTestFailures])
-
--- | A metadata key\/value entry.
---
--- /See:/ 'metadata' smart constructor.
-data Metadata =
-  Metadata'
-    { _mKind        :: !Text
-    , _mFingerprint :: !(Maybe Bytes)
-    , _mItems       :: !(Maybe [MetadataItemsItem])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Metadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mKind'
---
--- * 'mFingerprint'
---
--- * 'mItems'
-metadata
-    :: Metadata
-metadata =
-  Metadata'
-    {_mKind = "compute#metadata", _mFingerprint = Nothing, _mItems = Nothing}
-
-
--- | [Output Only] Type of the resource. Always compute#metadata for
--- metadata.
-mKind :: Lens' Metadata Text
-mKind = lens _mKind (\ s a -> s{_mKind = a})
-
--- | Specifies a fingerprint for this request, which is essentially a hash of
--- the metadata\'s contents and used for optimistic locking. The
--- fingerprint is initially generated by Compute Engine and changes after
--- every request to modify or update metadata. You must always provide an
--- up-to-date fingerprint hash in order to update or change metadata,
--- otherwise the request will fail with error 412 conditionNotMet. To see
--- the latest fingerprint, make a get() request to retrieve the resource.
-mFingerprint :: Lens' Metadata (Maybe ByteString)
-mFingerprint
-  = lens _mFingerprint (\ s a -> s{_mFingerprint = a})
-      . mapping _Bytes
-
--- | Array of key\/value pairs. The total size of all keys and values must be
--- less than 512 KB.
-mItems :: Lens' Metadata [MetadataItemsItem]
-mItems
-  = lens _mItems (\ s a -> s{_mItems = a}) . _Default .
-      _Coerce
-
-instance FromJSON Metadata where
-        parseJSON
-          = withObject "Metadata"
-              (\ o ->
-                 Metadata' <$>
-                   (o .:? "kind" .!= "compute#metadata") <*>
-                     (o .:? "fingerprint")
-                     <*> (o .:? "items" .!= mempty))
-
-instance ToJSON Metadata where
-        toJSON Metadata'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _mKind),
-                  ("fingerprint" .=) <$> _mFingerprint,
-                  ("items" .=) <$> _mItems])
-
---
--- /See:/ 'routeWarningsItem' smart constructor.
-data RouteWarningsItem =
-  RouteWarningsItem'
-    { _rwiData    :: !(Maybe [RouteWarningsItemDataItem])
-    , _rwiCode    :: !(Maybe RouteWarningsItemCode)
-    , _rwiMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouteWarningsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rwiData'
---
--- * 'rwiCode'
---
--- * 'rwiMessage'
-routeWarningsItem
-    :: RouteWarningsItem
-routeWarningsItem =
-  RouteWarningsItem'
-    {_rwiData = Nothing, _rwiCode = Nothing, _rwiMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rwiData :: Lens' RouteWarningsItem [RouteWarningsItemDataItem]
-rwiData
-  = lens _rwiData (\ s a -> s{_rwiData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rwiCode :: Lens' RouteWarningsItem (Maybe RouteWarningsItemCode)
-rwiCode = lens _rwiCode (\ s a -> s{_rwiCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rwiMessage :: Lens' RouteWarningsItem (Maybe Text)
-rwiMessage
-  = lens _rwiMessage (\ s a -> s{_rwiMessage = a})
-
-instance FromJSON RouteWarningsItem where
-        parseJSON
-          = withObject "RouteWarningsItem"
-              (\ o ->
-                 RouteWarningsItem' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RouteWarningsItem where
-        toJSON RouteWarningsItem'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rwiData, ("code" .=) <$> _rwiCode,
-                  ("message" .=) <$> _rwiMessage])
-
---
--- /See:/ 'nodeGroupsListNodes' smart constructor.
-data NodeGroupsListNodes =
-  NodeGroupsListNodes'
-    { _nglnNextPageToken :: !(Maybe Text)
-    , _nglnKind          :: !Text
-    , _nglnItems         :: !(Maybe [NodeGroupNode])
-    , _nglnSelfLink      :: !(Maybe Text)
-    , _nglnWarning       :: !(Maybe NodeGroupsListNodesWarning)
-    , _nglnId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsListNodes' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglnNextPageToken'
---
--- * 'nglnKind'
---
--- * 'nglnItems'
---
--- * 'nglnSelfLink'
---
--- * 'nglnWarning'
---
--- * 'nglnId'
-nodeGroupsListNodes
-    :: NodeGroupsListNodes
-nodeGroupsListNodes =
-  NodeGroupsListNodes'
-    { _nglnNextPageToken = Nothing
-    , _nglnKind = "compute#nodeGroupsListNodes"
-    , _nglnItems = Nothing
-    , _nglnSelfLink = Nothing
-    , _nglnWarning = Nothing
-    , _nglnId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-nglnNextPageToken :: Lens' NodeGroupsListNodes (Maybe Text)
-nglnNextPageToken
-  = lens _nglnNextPageToken
-      (\ s a -> s{_nglnNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute.nodeGroupsListNodes for the list of nodes in the specified node
--- group.
-nglnKind :: Lens' NodeGroupsListNodes Text
-nglnKind = lens _nglnKind (\ s a -> s{_nglnKind = a})
-
--- | A list of Node resources.
-nglnItems :: Lens' NodeGroupsListNodes [NodeGroupNode]
-nglnItems
-  = lens _nglnItems (\ s a -> s{_nglnItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-nglnSelfLink :: Lens' NodeGroupsListNodes (Maybe Text)
-nglnSelfLink
-  = lens _nglnSelfLink (\ s a -> s{_nglnSelfLink = a})
-
--- | [Output Only] Informational warning message.
-nglnWarning :: Lens' NodeGroupsListNodes (Maybe NodeGroupsListNodesWarning)
-nglnWarning
-  = lens _nglnWarning (\ s a -> s{_nglnWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-nglnId :: Lens' NodeGroupsListNodes (Maybe Text)
-nglnId = lens _nglnId (\ s a -> s{_nglnId = a})
-
-instance FromJSON NodeGroupsListNodes where
-        parseJSON
-          = withObject "NodeGroupsListNodes"
-              (\ o ->
-                 NodeGroupsListNodes' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#nodeGroupsListNodes")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NodeGroupsListNodes where
-        toJSON NodeGroupsListNodes'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _nglnNextPageToken,
-                  Just ("kind" .= _nglnKind),
-                  ("items" .=) <$> _nglnItems,
-                  ("selfLink" .=) <$> _nglnSelfLink,
-                  ("warning" .=) <$> _nglnWarning,
-                  ("id" .=) <$> _nglnId])
-
--- | Response to the list request, and contains a list of interconnect
--- locations.
---
--- /See:/ 'interconnectLocationList' smart constructor.
-data InterconnectLocationList =
-  InterconnectLocationList'
-    { _illNextPageToken :: !(Maybe Text)
-    , _illKind          :: !Text
-    , _illItems         :: !(Maybe [InterconnectLocation])
-    , _illSelfLink      :: !(Maybe Text)
-    , _illWarning       :: !(Maybe InterconnectLocationListWarning)
-    , _illId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'illNextPageToken'
---
--- * 'illKind'
---
--- * 'illItems'
---
--- * 'illSelfLink'
---
--- * 'illWarning'
---
--- * 'illId'
-interconnectLocationList
-    :: InterconnectLocationList
-interconnectLocationList =
-  InterconnectLocationList'
-    { _illNextPageToken = Nothing
-    , _illKind = "compute#interconnectLocationList"
-    , _illItems = Nothing
-    , _illSelfLink = Nothing
-    , _illWarning = Nothing
-    , _illId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-illNextPageToken :: Lens' InterconnectLocationList (Maybe Text)
-illNextPageToken
-  = lens _illNextPageToken
-      (\ s a -> s{_illNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#interconnectLocationList
--- for lists of interconnect locations.
-illKind :: Lens' InterconnectLocationList Text
-illKind = lens _illKind (\ s a -> s{_illKind = a})
-
--- | A list of InterconnectLocation resources.
-illItems :: Lens' InterconnectLocationList [InterconnectLocation]
-illItems
-  = lens _illItems (\ s a -> s{_illItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-illSelfLink :: Lens' InterconnectLocationList (Maybe Text)
-illSelfLink
-  = lens _illSelfLink (\ s a -> s{_illSelfLink = a})
-
--- | [Output Only] Informational warning message.
-illWarning :: Lens' InterconnectLocationList (Maybe InterconnectLocationListWarning)
-illWarning
-  = lens _illWarning (\ s a -> s{_illWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-illId :: Lens' InterconnectLocationList (Maybe Text)
-illId = lens _illId (\ s a -> s{_illId = a})
-
-instance FromJSON InterconnectLocationList where
-        parseJSON
-          = withObject "InterconnectLocationList"
-              (\ o ->
-                 InterconnectLocationList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#interconnectLocationList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InterconnectLocationList where
-        toJSON InterconnectLocationList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _illNextPageToken,
-                  Just ("kind" .= _illKind),
-                  ("items" .=) <$> _illItems,
-                  ("selfLink" .=) <$> _illSelfLink,
-                  ("warning" .=) <$> _illWarning,
-                  ("id" .=) <$> _illId])
-
---
--- /See:/ 'sslPoliciesListAvailableFeaturesResponse' smart constructor.
-newtype SSLPoliciesListAvailableFeaturesResponse =
-  SSLPoliciesListAvailableFeaturesResponse'
-    { _splafrFeatures :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesListAvailableFeaturesResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splafrFeatures'
-sslPoliciesListAvailableFeaturesResponse
-    :: SSLPoliciesListAvailableFeaturesResponse
-sslPoliciesListAvailableFeaturesResponse =
-  SSLPoliciesListAvailableFeaturesResponse' {_splafrFeatures = Nothing}
-
-
-splafrFeatures :: Lens' SSLPoliciesListAvailableFeaturesResponse [Text]
-splafrFeatures
-  = lens _splafrFeatures
-      (\ s a -> s{_splafrFeatures = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           SSLPoliciesListAvailableFeaturesResponse
-         where
-        parseJSON
-          = withObject
-              "SSLPoliciesListAvailableFeaturesResponse"
-              (\ o ->
-                 SSLPoliciesListAvailableFeaturesResponse' <$>
-                   (o .:? "features" .!= mempty))
-
-instance ToJSON
-           SSLPoliciesListAvailableFeaturesResponse
-         where
-        toJSON SSLPoliciesListAvailableFeaturesResponse'{..}
-          = object
-              (catMaybes [("features" .=) <$> _splafrFeatures])
-
--- | Labels to apply to instances that are created from this template.
---
--- /See:/ 'instancePropertiesLabels' smart constructor.
-newtype InstancePropertiesLabels =
-  InstancePropertiesLabels'
-    { _iplAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancePropertiesLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iplAddtional'
-instancePropertiesLabels
-    :: HashMap Text Text -- ^ 'iplAddtional'
-    -> InstancePropertiesLabels
-instancePropertiesLabels pIplAddtional_ =
-  InstancePropertiesLabels' {_iplAddtional = _Coerce # pIplAddtional_}
-
-
-iplAddtional :: Lens' InstancePropertiesLabels (HashMap Text Text)
-iplAddtional
-  = lens _iplAddtional (\ s a -> s{_iplAddtional = a})
-      . _Coerce
-
-instance FromJSON InstancePropertiesLabels where
-        parseJSON
-          = withObject "InstancePropertiesLabels"
-              (\ o ->
-                 InstancePropertiesLabels' <$> (parseJSONObject o))
-
-instance ToJSON InstancePropertiesLabels where
-        toJSON = toJSON . _iplAddtional
-
---
--- /See:/ 'machineTypesScopedListWarningDataItem' smart constructor.
-data MachineTypesScopedListWarningDataItem =
-  MachineTypesScopedListWarningDataItem'
-    { _mtslwdiValue :: !(Maybe Text)
-    , _mtslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtslwdiValue'
---
--- * 'mtslwdiKey'
-machineTypesScopedListWarningDataItem
-    :: MachineTypesScopedListWarningDataItem
-machineTypesScopedListWarningDataItem =
-  MachineTypesScopedListWarningDataItem'
-    {_mtslwdiValue = Nothing, _mtslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-mtslwdiValue :: Lens' MachineTypesScopedListWarningDataItem (Maybe Text)
-mtslwdiValue
-  = lens _mtslwdiValue (\ s a -> s{_mtslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-mtslwdiKey :: Lens' MachineTypesScopedListWarningDataItem (Maybe Text)
-mtslwdiKey
-  = lens _mtslwdiKey (\ s a -> s{_mtslwdiKey = a})
-
-instance FromJSON
-           MachineTypesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "MachineTypesScopedListWarningDataItem"
-              (\ o ->
-                 MachineTypesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON MachineTypesScopedListWarningDataItem
-         where
-        toJSON MachineTypesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _mtslwdiValue,
-                  ("key" .=) <$> _mtslwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'diskTypeListWarning' smart constructor.
-data DiskTypeListWarning =
-  DiskTypeListWarning'
-    { _dtlwData    :: !(Maybe [DiskTypeListWarningDataItem])
-    , _dtlwCode    :: !(Maybe DiskTypeListWarningCode)
-    , _dtlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtlwData'
---
--- * 'dtlwCode'
---
--- * 'dtlwMessage'
-diskTypeListWarning
-    :: DiskTypeListWarning
-diskTypeListWarning =
-  DiskTypeListWarning'
-    {_dtlwData = Nothing, _dtlwCode = Nothing, _dtlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dtlwData :: Lens' DiskTypeListWarning [DiskTypeListWarningDataItem]
-dtlwData
-  = lens _dtlwData (\ s a -> s{_dtlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dtlwCode :: Lens' DiskTypeListWarning (Maybe DiskTypeListWarningCode)
-dtlwCode = lens _dtlwCode (\ s a -> s{_dtlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dtlwMessage :: Lens' DiskTypeListWarning (Maybe Text)
-dtlwMessage
-  = lens _dtlwMessage (\ s a -> s{_dtlwMessage = a})
-
-instance FromJSON DiskTypeListWarning where
-        parseJSON
-          = withObject "DiskTypeListWarning"
-              (\ o ->
-                 DiskTypeListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DiskTypeListWarning where
-        toJSON DiskTypeListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dtlwData,
-                  ("code" .=) <$> _dtlwCode,
-                  ("message" .=) <$> _dtlwMessage])
-
---
--- /See:/ 'nodeTemplateListWarningDataItem' smart constructor.
-data NodeTemplateListWarningDataItem =
-  NodeTemplateListWarningDataItem'
-    { _nodValue :: !(Maybe Text)
-    , _nodKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nodValue'
---
--- * 'nodKey'
-nodeTemplateListWarningDataItem
-    :: NodeTemplateListWarningDataItem
-nodeTemplateListWarningDataItem =
-  NodeTemplateListWarningDataItem' {_nodValue = Nothing, _nodKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-nodValue :: Lens' NodeTemplateListWarningDataItem (Maybe Text)
-nodValue = lens _nodValue (\ s a -> s{_nodValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-nodKey :: Lens' NodeTemplateListWarningDataItem (Maybe Text)
-nodKey = lens _nodKey (\ s a -> s{_nodKey = a})
-
-instance FromJSON NodeTemplateListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeTemplateListWarningDataItem"
-              (\ o ->
-                 NodeTemplateListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeTemplateListWarningDataItem where
-        toJSON NodeTemplateListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _nodValue, ("key" .=) <$> _nodKey])
-
---
--- /See:/ 'regionListWarningDataItem' smart constructor.
-data RegionListWarningDataItem =
-  RegionListWarningDataItem'
-    { _regValue :: !(Maybe Text)
-    , _regKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'regValue'
---
--- * 'regKey'
-regionListWarningDataItem
-    :: RegionListWarningDataItem
-regionListWarningDataItem =
-  RegionListWarningDataItem' {_regValue = Nothing, _regKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-regValue :: Lens' RegionListWarningDataItem (Maybe Text)
-regValue = lens _regValue (\ s a -> s{_regValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-regKey :: Lens' RegionListWarningDataItem (Maybe Text)
-regKey = lens _regKey (\ s a -> s{_regKey = a})
-
-instance FromJSON RegionListWarningDataItem where
-        parseJSON
-          = withObject "RegionListWarningDataItem"
-              (\ o ->
-                 RegionListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RegionListWarningDataItem where
-        toJSON RegionListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _regValue, ("key" .=) <$> _regKey])
-
---
--- /See:/ 'instancesSetMachineResourcesRequest' smart constructor.
-newtype InstancesSetMachineResourcesRequest =
-  InstancesSetMachineResourcesRequest'
-    { _ismrrGuestAccelerators :: Maybe [AcceleratorConfig]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMachineResourcesRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismrrGuestAccelerators'
-instancesSetMachineResourcesRequest
-    :: InstancesSetMachineResourcesRequest
-instancesSetMachineResourcesRequest =
-  InstancesSetMachineResourcesRequest' {_ismrrGuestAccelerators = Nothing}
-
-
--- | A list of the type and count of accelerator cards attached to the
--- instance.
-ismrrGuestAccelerators :: Lens' InstancesSetMachineResourcesRequest [AcceleratorConfig]
-ismrrGuestAccelerators
-  = lens _ismrrGuestAccelerators
-      (\ s a -> s{_ismrrGuestAccelerators = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstancesSetMachineResourcesRequest
-         where
-        parseJSON
-          = withObject "InstancesSetMachineResourcesRequest"
-              (\ o ->
-                 InstancesSetMachineResourcesRequest' <$>
-                   (o .:? "guestAccelerators" .!= mempty))
-
-instance ToJSON InstancesSetMachineResourcesRequest
-         where
-        toJSON InstancesSetMachineResourcesRequest'{..}
-          = object
-              (catMaybes
-                 [("guestAccelerators" .=) <$>
-                    _ismrrGuestAccelerators])
-
---
--- /See:/ 'instancesSetServiceAccountRequest' smart constructor.
-data InstancesSetServiceAccountRequest =
-  InstancesSetServiceAccountRequest'
-    { _issarEmail  :: !(Maybe Text)
-    , _issarScopes :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetServiceAccountRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'issarEmail'
---
--- * 'issarScopes'
-instancesSetServiceAccountRequest
-    :: InstancesSetServiceAccountRequest
-instancesSetServiceAccountRequest =
-  InstancesSetServiceAccountRequest'
-    {_issarEmail = Nothing, _issarScopes = Nothing}
-
-
--- | Email address of the service account.
-issarEmail :: Lens' InstancesSetServiceAccountRequest (Maybe Text)
-issarEmail
-  = lens _issarEmail (\ s a -> s{_issarEmail = a})
-
--- | The list of scopes to be made available for this service account.
-issarScopes :: Lens' InstancesSetServiceAccountRequest [Text]
-issarScopes
-  = lens _issarScopes (\ s a -> s{_issarScopes = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON InstancesSetServiceAccountRequest
-         where
-        parseJSON
-          = withObject "InstancesSetServiceAccountRequest"
-              (\ o ->
-                 InstancesSetServiceAccountRequest' <$>
-                   (o .:? "email") <*> (o .:? "scopes" .!= mempty))
-
-instance ToJSON InstancesSetServiceAccountRequest
-         where
-        toJSON InstancesSetServiceAccountRequest'{..}
-          = object
-              (catMaybes
-                 [("email" .=) <$> _issarEmail,
-                  ("scopes" .=) <$> _issarScopes])
-
---
--- /See:/ 'securityPolicyReference' smart constructor.
-newtype SecurityPolicyReference =
-  SecurityPolicyReference'
-    { _sprSecurityPolicy :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprSecurityPolicy'
-securityPolicyReference
-    :: SecurityPolicyReference
-securityPolicyReference =
-  SecurityPolicyReference' {_sprSecurityPolicy = Nothing}
-
-
-sprSecurityPolicy :: Lens' SecurityPolicyReference (Maybe Text)
-sprSecurityPolicy
-  = lens _sprSecurityPolicy
-      (\ s a -> s{_sprSecurityPolicy = a})
-
-instance FromJSON SecurityPolicyReference where
-        parseJSON
-          = withObject "SecurityPolicyReference"
-              (\ o ->
-                 SecurityPolicyReference' <$>
-                   (o .:? "securityPolicy"))
-
-instance ToJSON SecurityPolicyReference where
-        toJSON SecurityPolicyReference'{..}
-          = object
-              (catMaybes
-                 [("securityPolicy" .=) <$> _sprSecurityPolicy])
-
---
--- /See:/ 'diskTypesScopedListWarningDataItem' smart constructor.
-data DiskTypesScopedListWarningDataItem =
-  DiskTypesScopedListWarningDataItem'
-    { _dtslwdiValue :: !(Maybe Text)
-    , _dtslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtslwdiValue'
---
--- * 'dtslwdiKey'
-diskTypesScopedListWarningDataItem
-    :: DiskTypesScopedListWarningDataItem
-diskTypesScopedListWarningDataItem =
-  DiskTypesScopedListWarningDataItem'
-    {_dtslwdiValue = Nothing, _dtslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dtslwdiValue :: Lens' DiskTypesScopedListWarningDataItem (Maybe Text)
-dtslwdiValue
-  = lens _dtslwdiValue (\ s a -> s{_dtslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dtslwdiKey :: Lens' DiskTypesScopedListWarningDataItem (Maybe Text)
-dtslwdiKey
-  = lens _dtslwdiKey (\ s a -> s{_dtslwdiKey = a})
-
-instance FromJSON DiskTypesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "DiskTypesScopedListWarningDataItem"
-              (\ o ->
-                 DiskTypesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DiskTypesScopedListWarningDataItem
-         where
-        toJSON DiskTypesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dtslwdiValue,
-                  ("key" .=) <$> _dtslwdiKey])
-
--- | Contain information of Nat mapping for an interface of this endpoint.
---
--- /See:/ 'vMEndpointNATMAppingsInterfaceNATMAppings' smart constructor.
-data VMEndpointNATMAppingsInterfaceNATMAppings =
-  VMEndpointNATMAppingsInterfaceNATMAppings'
-    { _vmenatmainatmaSourceAliasIPRange :: !(Maybe Text)
-    , _vmenatmainatmaSourceVirtualIP    :: !(Maybe Text)
-    , _vmenatmainatmaNATIPPortRanges    :: !(Maybe [Text])
-    , _vmenatmainatmaNumTotalNATPorts   :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VMEndpointNATMAppingsInterfaceNATMAppings' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vmenatmainatmaSourceAliasIPRange'
---
--- * 'vmenatmainatmaSourceVirtualIP'
---
--- * 'vmenatmainatmaNATIPPortRanges'
---
--- * 'vmenatmainatmaNumTotalNATPorts'
-vMEndpointNATMAppingsInterfaceNATMAppings
-    :: VMEndpointNATMAppingsInterfaceNATMAppings
-vMEndpointNATMAppingsInterfaceNATMAppings =
-  VMEndpointNATMAppingsInterfaceNATMAppings'
-    { _vmenatmainatmaSourceAliasIPRange = Nothing
-    , _vmenatmainatmaSourceVirtualIP = Nothing
-    , _vmenatmainatmaNATIPPortRanges = Nothing
-    , _vmenatmainatmaNumTotalNATPorts = Nothing
-    }
-
-
--- | Alias IP range for this interface endpoint. It will be a private (RFC
--- 1918) IP range. Examples: \"10.33.4.55\/32\", or \"192.168.5.0\/24\".
-vmenatmainatmaSourceAliasIPRange :: Lens' VMEndpointNATMAppingsInterfaceNATMAppings (Maybe Text)
-vmenatmainatmaSourceAliasIPRange
-  = lens _vmenatmainatmaSourceAliasIPRange
-      (\ s a -> s{_vmenatmainatmaSourceAliasIPRange = a})
-
--- | Primary IP of the VM for this NIC.
-vmenatmainatmaSourceVirtualIP :: Lens' VMEndpointNATMAppingsInterfaceNATMAppings (Maybe Text)
-vmenatmainatmaSourceVirtualIP
-  = lens _vmenatmainatmaSourceVirtualIP
-      (\ s a -> s{_vmenatmainatmaSourceVirtualIP = a})
-
--- | A list of all IP:port-range mappings assigned to this interface. These
--- ranges are inclusive, that is, both the first and the last ports can be
--- used for NAT. Example: [\"2.2.2.2:12345-12355\", \"1.1.1.1:2234-2234\"].
-vmenatmainatmaNATIPPortRanges :: Lens' VMEndpointNATMAppingsInterfaceNATMAppings [Text]
-vmenatmainatmaNATIPPortRanges
-  = lens _vmenatmainatmaNATIPPortRanges
-      (\ s a -> s{_vmenatmainatmaNATIPPortRanges = a})
-      . _Default
-      . _Coerce
-
--- | Total number of ports across all NAT IPs allocated to this interface. It
--- equals to the aggregated port number in the field nat_ip_port_ranges.
-vmenatmainatmaNumTotalNATPorts :: Lens' VMEndpointNATMAppingsInterfaceNATMAppings (Maybe Int32)
-vmenatmainatmaNumTotalNATPorts
-  = lens _vmenatmainatmaNumTotalNATPorts
-      (\ s a -> s{_vmenatmainatmaNumTotalNATPorts = a})
-      . mapping _Coerce
-
-instance FromJSON
-           VMEndpointNATMAppingsInterfaceNATMAppings
-         where
-        parseJSON
-          = withObject
-              "VMEndpointNATMAppingsInterfaceNATMAppings"
-              (\ o ->
-                 VMEndpointNATMAppingsInterfaceNATMAppings' <$>
-                   (o .:? "sourceAliasIpRange") <*>
-                     (o .:? "sourceVirtualIp")
-                     <*> (o .:? "natIpPortRanges" .!= mempty)
-                     <*> (o .:? "numTotalNatPorts"))
-
-instance ToJSON
-           VMEndpointNATMAppingsInterfaceNATMAppings
-         where
-        toJSON VMEndpointNATMAppingsInterfaceNATMAppings'{..}
-          = object
-              (catMaybes
-                 [("sourceAliasIpRange" .=) <$>
-                    _vmenatmainatmaSourceAliasIPRange,
-                  ("sourceVirtualIp" .=) <$>
-                    _vmenatmainatmaSourceVirtualIP,
-                  ("natIpPortRanges" .=) <$>
-                    _vmenatmainatmaNATIPPortRanges,
-                  ("numTotalNatPorts" .=) <$>
-                    _vmenatmainatmaNumTotalNATPorts])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'vpnTunnelAggregatedListWarning' smart constructor.
-data VPNTunnelAggregatedListWarning =
-  VPNTunnelAggregatedListWarning'
-    { _vtalwData    :: !(Maybe [VPNTunnelAggregatedListWarningDataItem])
-    , _vtalwCode    :: !(Maybe VPNTunnelAggregatedListWarningCode)
-    , _vtalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtalwData'
---
--- * 'vtalwCode'
---
--- * 'vtalwMessage'
-vpnTunnelAggregatedListWarning
-    :: VPNTunnelAggregatedListWarning
-vpnTunnelAggregatedListWarning =
-  VPNTunnelAggregatedListWarning'
-    {_vtalwData = Nothing, _vtalwCode = Nothing, _vtalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-vtalwData :: Lens' VPNTunnelAggregatedListWarning [VPNTunnelAggregatedListWarningDataItem]
-vtalwData
-  = lens _vtalwData (\ s a -> s{_vtalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-vtalwCode :: Lens' VPNTunnelAggregatedListWarning (Maybe VPNTunnelAggregatedListWarningCode)
-vtalwCode
-  = lens _vtalwCode (\ s a -> s{_vtalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-vtalwMessage :: Lens' VPNTunnelAggregatedListWarning (Maybe Text)
-vtalwMessage
-  = lens _vtalwMessage (\ s a -> s{_vtalwMessage = a})
-
-instance FromJSON VPNTunnelAggregatedListWarning
-         where
-        parseJSON
-          = withObject "VPNTunnelAggregatedListWarning"
-              (\ o ->
-                 VPNTunnelAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON VPNTunnelAggregatedListWarning where
-        toJSON VPNTunnelAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _vtalwData,
-                  ("code" .=) <$> _vtalwCode,
-                  ("message" .=) <$> _vtalwMessage])
-
--- | A TargetHttpProxy resource. This resource defines an HTTP proxy. (==
--- resource_for beta.targetHttpProxies ==) (== resource_for
--- v1.targetHttpProxies ==)
---
--- /See:/ 'targetHTTPProxy' smart constructor.
-data TargetHTTPProxy =
-  TargetHTTPProxy'
-    { _thttppURLMap            :: !(Maybe Text)
-    , _thttppKind              :: !Text
-    , _thttppSelfLink          :: !(Maybe Text)
-    , _thttppName              :: !(Maybe Text)
-    , _thttppCreationTimestamp :: !(Maybe Text)
-    , _thttppId                :: !(Maybe (Textual Word64))
-    , _thttppDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttppURLMap'
---
--- * 'thttppKind'
---
--- * 'thttppSelfLink'
---
--- * 'thttppName'
---
--- * 'thttppCreationTimestamp'
---
--- * 'thttppId'
---
--- * 'thttppDescription'
-targetHTTPProxy
-    :: TargetHTTPProxy
-targetHTTPProxy =
-  TargetHTTPProxy'
-    { _thttppURLMap = Nothing
-    , _thttppKind = "compute#targetHttpProxy"
-    , _thttppSelfLink = Nothing
-    , _thttppName = Nothing
-    , _thttppCreationTimestamp = Nothing
-    , _thttppId = Nothing
-    , _thttppDescription = Nothing
-    }
-
-
--- | URL to the UrlMap resource that defines the mapping from URL to the
--- BackendService.
-thttppURLMap :: Lens' TargetHTTPProxy (Maybe Text)
-thttppURLMap
-  = lens _thttppURLMap (\ s a -> s{_thttppURLMap = a})
-
--- | [Output Only] Type of resource. Always compute#targetHttpProxy for
--- target HTTP proxies.
-thttppKind :: Lens' TargetHTTPProxy Text
-thttppKind
-  = lens _thttppKind (\ s a -> s{_thttppKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-thttppSelfLink :: Lens' TargetHTTPProxy (Maybe Text)
-thttppSelfLink
-  = lens _thttppSelfLink
-      (\ s a -> s{_thttppSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-thttppName :: Lens' TargetHTTPProxy (Maybe Text)
-thttppName
-  = lens _thttppName (\ s a -> s{_thttppName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-thttppCreationTimestamp :: Lens' TargetHTTPProxy (Maybe Text)
-thttppCreationTimestamp
-  = lens _thttppCreationTimestamp
-      (\ s a -> s{_thttppCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-thttppId :: Lens' TargetHTTPProxy (Maybe Word64)
-thttppId
-  = lens _thttppId (\ s a -> s{_thttppId = a}) .
-      mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-thttppDescription :: Lens' TargetHTTPProxy (Maybe Text)
-thttppDescription
-  = lens _thttppDescription
-      (\ s a -> s{_thttppDescription = a})
-
-instance FromJSON TargetHTTPProxy where
-        parseJSON
-          = withObject "TargetHTTPProxy"
-              (\ o ->
-                 TargetHTTPProxy' <$>
-                   (o .:? "urlMap") <*>
-                     (o .:? "kind" .!= "compute#targetHttpProxy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description"))
-
-instance ToJSON TargetHTTPProxy where
-        toJSON TargetHTTPProxy'{..}
-          = object
-              (catMaybes
-                 [("urlMap" .=) <$> _thttppURLMap,
-                  Just ("kind" .= _thttppKind),
-                  ("selfLink" .=) <$> _thttppSelfLink,
-                  ("name" .=) <$> _thttppName,
-                  ("creationTimestamp" .=) <$>
-                    _thttppCreationTimestamp,
-                  ("id" .=) <$> _thttppId,
-                  ("description" .=) <$> _thttppDescription])
-
--- | A set of Shielded Instance options.
---
--- /See:/ 'shieldedInstanceConfig' smart constructor.
-data ShieldedInstanceConfig =
-  ShieldedInstanceConfig'
-    { _sicEnableVtpm                :: !(Maybe Bool)
-    , _sicEnableIntegrityMonitoring :: !(Maybe Bool)
-    , _sicEnableSecureBoot          :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ShieldedInstanceConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sicEnableVtpm'
---
--- * 'sicEnableIntegrityMonitoring'
---
--- * 'sicEnableSecureBoot'
-shieldedInstanceConfig
-    :: ShieldedInstanceConfig
-shieldedInstanceConfig =
-  ShieldedInstanceConfig'
-    { _sicEnableVtpm = Nothing
-    , _sicEnableIntegrityMonitoring = Nothing
-    , _sicEnableSecureBoot = Nothing
-    }
-
-
--- | Defines whether the instance has the vTPM enabled.
-sicEnableVtpm :: Lens' ShieldedInstanceConfig (Maybe Bool)
-sicEnableVtpm
-  = lens _sicEnableVtpm
-      (\ s a -> s{_sicEnableVtpm = a})
-
--- | Defines whether the instance has integrity monitoring enabled.
-sicEnableIntegrityMonitoring :: Lens' ShieldedInstanceConfig (Maybe Bool)
-sicEnableIntegrityMonitoring
-  = lens _sicEnableIntegrityMonitoring
-      (\ s a -> s{_sicEnableIntegrityMonitoring = a})
-
--- | Defines whether the instance has Secure Boot enabled.
-sicEnableSecureBoot :: Lens' ShieldedInstanceConfig (Maybe Bool)
-sicEnableSecureBoot
-  = lens _sicEnableSecureBoot
-      (\ s a -> s{_sicEnableSecureBoot = a})
-
-instance FromJSON ShieldedInstanceConfig where
-        parseJSON
-          = withObject "ShieldedInstanceConfig"
-              (\ o ->
-                 ShieldedInstanceConfig' <$>
-                   (o .:? "enableVtpm") <*>
-                     (o .:? "enableIntegrityMonitoring")
-                     <*> (o .:? "enableSecureBoot"))
-
-instance ToJSON ShieldedInstanceConfig where
-        toJSON ShieldedInstanceConfig'{..}
-          = object
-              (catMaybes
-                 [("enableVtpm" .=) <$> _sicEnableVtpm,
-                  ("enableIntegrityMonitoring" .=) <$>
-                    _sicEnableIntegrityMonitoring,
-                  ("enableSecureBoot" .=) <$> _sicEnableSecureBoot])
-
--- | A Machine Type resource. (== resource_for v1.machineTypes ==) (==
--- resource_for beta.machineTypes ==)
---
--- /See:/ 'machineType' smart constructor.
-data MachineType =
-  MachineType'
-    { _mtIsSharedCPU                  :: !(Maybe Bool)
-    , _mtKind                         :: !Text
-    , _mtImageSpaceGb                 :: !(Maybe (Textual Int32))
-    , _mtZone                         :: !(Maybe Text)
-    , _mtSelfLink                     :: !(Maybe Text)
-    , _mtName                         :: !(Maybe Text)
-    , _mtCreationTimestamp            :: !(Maybe Text)
-    , _mtScratchDisks                 :: !(Maybe [MachineTypeScratchDisksItem])
-    , _mtId                           :: !(Maybe (Textual Word64))
-    , _mtGuestCPUs                    :: !(Maybe (Textual Int32))
-    , _mtMaximumPersistentDisksSizeGb :: !(Maybe (Textual Int64))
-    , _mtMaximumPersistentDisks       :: !(Maybe (Textual Int32))
-    , _mtMemoryMb                     :: !(Maybe (Textual Int32))
-    , _mtDescription                  :: !(Maybe Text)
-    , _mtDeprecated                   :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtIsSharedCPU'
---
--- * 'mtKind'
---
--- * 'mtImageSpaceGb'
---
--- * 'mtZone'
---
--- * 'mtSelfLink'
---
--- * 'mtName'
---
--- * 'mtCreationTimestamp'
---
--- * 'mtScratchDisks'
---
--- * 'mtId'
---
--- * 'mtGuestCPUs'
---
--- * 'mtMaximumPersistentDisksSizeGb'
---
--- * 'mtMaximumPersistentDisks'
---
--- * 'mtMemoryMb'
---
--- * 'mtDescription'
---
--- * 'mtDeprecated'
-machineType
-    :: MachineType
-machineType =
-  MachineType'
-    { _mtIsSharedCPU = Nothing
-    , _mtKind = "compute#machineType"
-    , _mtImageSpaceGb = Nothing
-    , _mtZone = Nothing
-    , _mtSelfLink = Nothing
-    , _mtName = Nothing
-    , _mtCreationTimestamp = Nothing
-    , _mtScratchDisks = Nothing
-    , _mtId = Nothing
-    , _mtGuestCPUs = Nothing
-    , _mtMaximumPersistentDisksSizeGb = Nothing
-    , _mtMaximumPersistentDisks = Nothing
-    , _mtMemoryMb = Nothing
-    , _mtDescription = Nothing
-    , _mtDeprecated = Nothing
-    }
-
-
--- | [Output Only] Whether this machine type has a shared CPU. See
--- Shared-core machine types for more information.
-mtIsSharedCPU :: Lens' MachineType (Maybe Bool)
-mtIsSharedCPU
-  = lens _mtIsSharedCPU
-      (\ s a -> s{_mtIsSharedCPU = a})
-
--- | [Output Only] The type of the resource. Always compute#machineType for
--- machine types.
-mtKind :: Lens' MachineType Text
-mtKind = lens _mtKind (\ s a -> s{_mtKind = a})
-
--- | [Deprecated] This property is deprecated and will never be populated
--- with any relevant values.
-mtImageSpaceGb :: Lens' MachineType (Maybe Int32)
-mtImageSpaceGb
-  = lens _mtImageSpaceGb
-      (\ s a -> s{_mtImageSpaceGb = a})
-      . mapping _Coerce
-
--- | [Output Only] The name of the zone where the machine type resides, such
--- as us-central1-a.
-mtZone :: Lens' MachineType (Maybe Text)
-mtZone = lens _mtZone (\ s a -> s{_mtZone = a})
-
--- | [Output Only] Server-defined URL for the resource.
-mtSelfLink :: Lens' MachineType (Maybe Text)
-mtSelfLink
-  = lens _mtSelfLink (\ s a -> s{_mtSelfLink = a})
-
--- | [Output Only] Name of the resource.
-mtName :: Lens' MachineType (Maybe Text)
-mtName = lens _mtName (\ s a -> s{_mtName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-mtCreationTimestamp :: Lens' MachineType (Maybe Text)
-mtCreationTimestamp
-  = lens _mtCreationTimestamp
-      (\ s a -> s{_mtCreationTimestamp = a})
-
--- | [Output Only] A list of extended scratch disks assigned to the instance.
-mtScratchDisks :: Lens' MachineType [MachineTypeScratchDisksItem]
-mtScratchDisks
-  = lens _mtScratchDisks
-      (\ s a -> s{_mtScratchDisks = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-mtId :: Lens' MachineType (Maybe Word64)
-mtId
-  = lens _mtId (\ s a -> s{_mtId = a}) .
-      mapping _Coerce
-
--- | [Output Only] The number of virtual CPUs that are available to the
--- instance.
-mtGuestCPUs :: Lens' MachineType (Maybe Int32)
-mtGuestCPUs
-  = lens _mtGuestCPUs (\ s a -> s{_mtGuestCPUs = a}) .
-      mapping _Coerce
-
--- | [Output Only] Maximum total persistent disks size (GB) allowed.
-mtMaximumPersistentDisksSizeGb :: Lens' MachineType (Maybe Int64)
-mtMaximumPersistentDisksSizeGb
-  = lens _mtMaximumPersistentDisksSizeGb
-      (\ s a -> s{_mtMaximumPersistentDisksSizeGb = a})
-      . mapping _Coerce
-
--- | [Output Only] Maximum persistent disks allowed.
-mtMaximumPersistentDisks :: Lens' MachineType (Maybe Int32)
-mtMaximumPersistentDisks
-  = lens _mtMaximumPersistentDisks
-      (\ s a -> s{_mtMaximumPersistentDisks = a})
-      . mapping _Coerce
-
--- | [Output Only] The amount of physical memory available to the instance,
--- defined in MB.
-mtMemoryMb :: Lens' MachineType (Maybe Int32)
-mtMemoryMb
-  = lens _mtMemoryMb (\ s a -> s{_mtMemoryMb = a}) .
-      mapping _Coerce
-
--- | [Output Only] An optional textual description of the resource.
-mtDescription :: Lens' MachineType (Maybe Text)
-mtDescription
-  = lens _mtDescription
-      (\ s a -> s{_mtDescription = a})
-
--- | [Output Only] The deprecation status associated with this machine type.
-mtDeprecated :: Lens' MachineType (Maybe DeprecationStatus)
-mtDeprecated
-  = lens _mtDeprecated (\ s a -> s{_mtDeprecated = a})
-
-instance FromJSON MachineType where
-        parseJSON
-          = withObject "MachineType"
-              (\ o ->
-                 MachineType' <$>
-                   (o .:? "isSharedCpu") <*>
-                     (o .:? "kind" .!= "compute#machineType")
-                     <*> (o .:? "imageSpaceGb")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "scratchDisks" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "guestCpus")
-                     <*> (o .:? "maximumPersistentDisksSizeGb")
-                     <*> (o .:? "maximumPersistentDisks")
-                     <*> (o .:? "memoryMb")
-                     <*> (o .:? "description")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON MachineType where
-        toJSON MachineType'{..}
-          = object
-              (catMaybes
-                 [("isSharedCpu" .=) <$> _mtIsSharedCPU,
-                  Just ("kind" .= _mtKind),
-                  ("imageSpaceGb" .=) <$> _mtImageSpaceGb,
-                  ("zone" .=) <$> _mtZone,
-                  ("selfLink" .=) <$> _mtSelfLink,
-                  ("name" .=) <$> _mtName,
-                  ("creationTimestamp" .=) <$> _mtCreationTimestamp,
-                  ("scratchDisks" .=) <$> _mtScratchDisks,
-                  ("id" .=) <$> _mtId,
-                  ("guestCpus" .=) <$> _mtGuestCPUs,
-                  ("maximumPersistentDisksSizeGb" .=) <$>
-                    _mtMaximumPersistentDisksSizeGb,
-                  ("maximumPersistentDisks" .=) <$>
-                    _mtMaximumPersistentDisks,
-                  ("memoryMb" .=) <$> _mtMemoryMb,
-                  ("description" .=) <$> _mtDescription,
-                  ("deprecated" .=) <$> _mtDeprecated])
-
--- | A specification of the type and number of accelerator cards attached to
--- the instance.
---
--- /See:/ 'acceleratorConfig' smart constructor.
-data AcceleratorConfig =
-  AcceleratorConfig'
-    { _acAcceleratorCount :: !(Maybe (Textual Int32))
-    , _acAcceleratorType  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'acAcceleratorCount'
---
--- * 'acAcceleratorType'
-acceleratorConfig
-    :: AcceleratorConfig
-acceleratorConfig =
-  AcceleratorConfig'
-    {_acAcceleratorCount = Nothing, _acAcceleratorType = Nothing}
-
-
--- | The number of the guest accelerator cards exposed to this instance.
-acAcceleratorCount :: Lens' AcceleratorConfig (Maybe Int32)
-acAcceleratorCount
-  = lens _acAcceleratorCount
-      (\ s a -> s{_acAcceleratorCount = a})
-      . mapping _Coerce
-
--- | Full or partial URL of the accelerator type resource to attach to this
--- instance. For example:
--- projects\/my-project\/zones\/us-central1-c\/acceleratorTypes\/nvidia-tesla-p100
--- If you are creating an instance template, specify only the accelerator
--- name. See GPUs on Compute Engine for a full list of accelerator types.
-acAcceleratorType :: Lens' AcceleratorConfig (Maybe Text)
-acAcceleratorType
-  = lens _acAcceleratorType
-      (\ s a -> s{_acAcceleratorType = a})
-
-instance FromJSON AcceleratorConfig where
-        parseJSON
-          = withObject "AcceleratorConfig"
-              (\ o ->
-                 AcceleratorConfig' <$>
-                   (o .:? "acceleratorCount") <*>
-                     (o .:? "acceleratorType"))
-
-instance ToJSON AcceleratorConfig where
-        toJSON AcceleratorConfig'{..}
-          = object
-              (catMaybes
-                 [("acceleratorCount" .=) <$> _acAcceleratorCount,
-                  ("acceleratorType" .=) <$> _acAcceleratorType])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'autoscalerListWarning' smart constructor.
-data AutoscalerListWarning =
-  AutoscalerListWarning'
-    { _alwData    :: !(Maybe [AutoscalerListWarningDataItem])
-    , _alwCode    :: !(Maybe AutoscalerListWarningCode)
-    , _alwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alwData'
---
--- * 'alwCode'
---
--- * 'alwMessage'
-autoscalerListWarning
-    :: AutoscalerListWarning
-autoscalerListWarning =
-  AutoscalerListWarning'
-    {_alwData = Nothing, _alwCode = Nothing, _alwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-alwData :: Lens' AutoscalerListWarning [AutoscalerListWarningDataItem]
-alwData
-  = lens _alwData (\ s a -> s{_alwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-alwCode :: Lens' AutoscalerListWarning (Maybe AutoscalerListWarningCode)
-alwCode = lens _alwCode (\ s a -> s{_alwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-alwMessage :: Lens' AutoscalerListWarning (Maybe Text)
-alwMessage
-  = lens _alwMessage (\ s a -> s{_alwMessage = a})
-
-instance FromJSON AutoscalerListWarning where
-        parseJSON
-          = withObject "AutoscalerListWarning"
-              (\ o ->
-                 AutoscalerListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AutoscalerListWarning where
-        toJSON AutoscalerListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _alwData, ("code" .=) <$> _alwCode,
-                  ("message" .=) <$> _alwMessage])
-
---
--- /See:/ 'machineTypeAggregatedListWarningDataItem' smart constructor.
-data MachineTypeAggregatedListWarningDataItem =
-  MachineTypeAggregatedListWarningDataItem'
-    { _mtalwdiValue :: !(Maybe Text)
-    , _mtalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtalwdiValue'
---
--- * 'mtalwdiKey'
-machineTypeAggregatedListWarningDataItem
-    :: MachineTypeAggregatedListWarningDataItem
-machineTypeAggregatedListWarningDataItem =
-  MachineTypeAggregatedListWarningDataItem'
-    {_mtalwdiValue = Nothing, _mtalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-mtalwdiValue :: Lens' MachineTypeAggregatedListWarningDataItem (Maybe Text)
-mtalwdiValue
-  = lens _mtalwdiValue (\ s a -> s{_mtalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-mtalwdiKey :: Lens' MachineTypeAggregatedListWarningDataItem (Maybe Text)
-mtalwdiKey
-  = lens _mtalwdiKey (\ s a -> s{_mtalwdiKey = a})
-
-instance FromJSON
-           MachineTypeAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "MachineTypeAggregatedListWarningDataItem"
-              (\ o ->
-                 MachineTypeAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           MachineTypeAggregatedListWarningDataItem
-         where
-        toJSON MachineTypeAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _mtalwdiValue,
-                  ("key" .=) <$> _mtalwdiKey])
-
--- | [Output Only] If errors are generated during processing of the
--- operation, this field will be populated.
---
--- /See:/ 'operationError' smart constructor.
-newtype OperationError =
-  OperationError'
-    { _oeErrors :: Maybe [OperationErrorErrorsItem]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationError' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oeErrors'
-operationError
-    :: OperationError
-operationError = OperationError' {_oeErrors = Nothing}
-
-
--- | [Output Only] The array of errors encountered while processing this
--- operation.
-oeErrors :: Lens' OperationError [OperationErrorErrorsItem]
-oeErrors
-  = lens _oeErrors (\ s a -> s{_oeErrors = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON OperationError where
-        parseJSON
-          = withObject "OperationError"
-              (\ o ->
-                 OperationError' <$> (o .:? "errors" .!= mempty))
-
-instance ToJSON OperationError where
-        toJSON OperationError'{..}
-          = object (catMaybes [("errors" .=) <$> _oeErrors])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'nodeTypeAggregatedListWarning' smart constructor.
-data NodeTypeAggregatedListWarning =
-  NodeTypeAggregatedListWarning'
-    { _ntalwtData    :: !(Maybe [NodeTypeAggregatedListWarningDataItem])
-    , _ntalwtCode    :: !(Maybe NodeTypeAggregatedListWarningCode)
-    , _ntalwtMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntalwtData'
---
--- * 'ntalwtCode'
---
--- * 'ntalwtMessage'
-nodeTypeAggregatedListWarning
-    :: NodeTypeAggregatedListWarning
-nodeTypeAggregatedListWarning =
-  NodeTypeAggregatedListWarning'
-    {_ntalwtData = Nothing, _ntalwtCode = Nothing, _ntalwtMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-ntalwtData :: Lens' NodeTypeAggregatedListWarning [NodeTypeAggregatedListWarningDataItem]
-ntalwtData
-  = lens _ntalwtData (\ s a -> s{_ntalwtData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-ntalwtCode :: Lens' NodeTypeAggregatedListWarning (Maybe NodeTypeAggregatedListWarningCode)
-ntalwtCode
-  = lens _ntalwtCode (\ s a -> s{_ntalwtCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-ntalwtMessage :: Lens' NodeTypeAggregatedListWarning (Maybe Text)
-ntalwtMessage
-  = lens _ntalwtMessage
-      (\ s a -> s{_ntalwtMessage = a})
-
-instance FromJSON NodeTypeAggregatedListWarning where
-        parseJSON
-          = withObject "NodeTypeAggregatedListWarning"
-              (\ o ->
-                 NodeTypeAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NodeTypeAggregatedListWarning where
-        toJSON NodeTypeAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ntalwtData,
-                  ("code" .=) <$> _ntalwtCode,
-                  ("message" .=) <$> _ntalwtMessage])
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
---
--- /See:/ 'targetInstancesScopedListWarning' smart constructor.
-data TargetInstancesScopedListWarning =
-  TargetInstancesScopedListWarning'
-    { _tislwData    :: !(Maybe [TargetInstancesScopedListWarningDataItem])
-    , _tislwCode    :: !(Maybe TargetInstancesScopedListWarningCode)
-    , _tislwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tislwData'
---
--- * 'tislwCode'
---
--- * 'tislwMessage'
-targetInstancesScopedListWarning
-    :: TargetInstancesScopedListWarning
-targetInstancesScopedListWarning =
-  TargetInstancesScopedListWarning'
-    {_tislwData = Nothing, _tislwCode = Nothing, _tislwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tislwData :: Lens' TargetInstancesScopedListWarning [TargetInstancesScopedListWarningDataItem]
-tislwData
-  = lens _tislwData (\ s a -> s{_tislwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tislwCode :: Lens' TargetInstancesScopedListWarning (Maybe TargetInstancesScopedListWarningCode)
-tislwCode
-  = lens _tislwCode (\ s a -> s{_tislwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tislwMessage :: Lens' TargetInstancesScopedListWarning (Maybe Text)
-tislwMessage
-  = lens _tislwMessage (\ s a -> s{_tislwMessage = a})
-
-instance FromJSON TargetInstancesScopedListWarning
-         where
-        parseJSON
-          = withObject "TargetInstancesScopedListWarning"
-              (\ o ->
-                 TargetInstancesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetInstancesScopedListWarning
-         where
-        toJSON TargetInstancesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tislwData,
-                  ("code" .=) <$> _tislwCode,
-                  ("message" .=) <$> _tislwMessage])
-
---
--- /See:/ 'networkEndpointGroupAggregatedList' smart constructor.
-data NetworkEndpointGroupAggregatedList =
-  NetworkEndpointGroupAggregatedList'
-    { _negalNextPageToken :: !(Maybe Text)
-    , _negalKind          :: !Text
-    , _negalItems         :: !(Maybe NetworkEndpointGroupAggregatedListItems)
-    , _negalSelfLink      :: !(Maybe Text)
-    , _negalWarning       :: !(Maybe NetworkEndpointGroupAggregatedListWarning)
-    , _negalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negalNextPageToken'
---
--- * 'negalKind'
---
--- * 'negalItems'
---
--- * 'negalSelfLink'
---
--- * 'negalWarning'
---
--- * 'negalId'
-networkEndpointGroupAggregatedList
-    :: NetworkEndpointGroupAggregatedList
-networkEndpointGroupAggregatedList =
-  NetworkEndpointGroupAggregatedList'
-    { _negalNextPageToken = Nothing
-    , _negalKind = "compute#networkEndpointGroupAggregatedList"
-    , _negalItems = Nothing
-    , _negalSelfLink = Nothing
-    , _negalWarning = Nothing
-    , _negalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-negalNextPageToken :: Lens' NetworkEndpointGroupAggregatedList (Maybe Text)
-negalNextPageToken
-  = lens _negalNextPageToken
-      (\ s a -> s{_negalNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#networkEndpointGroupAggregatedList for aggregated lists of
--- network endpoint groups.
-negalKind :: Lens' NetworkEndpointGroupAggregatedList Text
-negalKind
-  = lens _negalKind (\ s a -> s{_negalKind = a})
-
--- | A list of NetworkEndpointGroupsScopedList resources.
-negalItems :: Lens' NetworkEndpointGroupAggregatedList (Maybe NetworkEndpointGroupAggregatedListItems)
-negalItems
-  = lens _negalItems (\ s a -> s{_negalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-negalSelfLink :: Lens' NetworkEndpointGroupAggregatedList (Maybe Text)
-negalSelfLink
-  = lens _negalSelfLink
-      (\ s a -> s{_negalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-negalWarning :: Lens' NetworkEndpointGroupAggregatedList (Maybe NetworkEndpointGroupAggregatedListWarning)
-negalWarning
-  = lens _negalWarning (\ s a -> s{_negalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-negalId :: Lens' NetworkEndpointGroupAggregatedList (Maybe Text)
-negalId = lens _negalId (\ s a -> s{_negalId = a})
-
-instance FromJSON NetworkEndpointGroupAggregatedList
-         where
-        parseJSON
-          = withObject "NetworkEndpointGroupAggregatedList"
-              (\ o ->
-                 NetworkEndpointGroupAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#networkEndpointGroupAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NetworkEndpointGroupAggregatedList
-         where
-        toJSON NetworkEndpointGroupAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _negalNextPageToken,
-                  Just ("kind" .= _negalKind),
-                  ("items" .=) <$> _negalItems,
-                  ("selfLink" .=) <$> _negalSelfLink,
-                  ("warning" .=) <$> _negalWarning,
-                  ("id" .=) <$> _negalId])
-
---
--- /See:/ 'subnetworkAggregatedList' smart constructor.
-data SubnetworkAggregatedList =
-  SubnetworkAggregatedList'
-    { _salNextPageToken :: !(Maybe Text)
-    , _salKind          :: !Text
-    , _salItems         :: !(Maybe SubnetworkAggregatedListItems)
-    , _salSelfLink      :: !(Maybe Text)
-    , _salWarning       :: !(Maybe SubnetworkAggregatedListWarning)
-    , _salId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'salNextPageToken'
---
--- * 'salKind'
---
--- * 'salItems'
---
--- * 'salSelfLink'
---
--- * 'salWarning'
---
--- * 'salId'
-subnetworkAggregatedList
-    :: SubnetworkAggregatedList
-subnetworkAggregatedList =
-  SubnetworkAggregatedList'
-    { _salNextPageToken = Nothing
-    , _salKind = "compute#subnetworkAggregatedList"
-    , _salItems = Nothing
-    , _salSelfLink = Nothing
-    , _salWarning = Nothing
-    , _salId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-salNextPageToken :: Lens' SubnetworkAggregatedList (Maybe Text)
-salNextPageToken
-  = lens _salNextPageToken
-      (\ s a -> s{_salNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#subnetworkAggregatedList
--- for aggregated lists of subnetworks.
-salKind :: Lens' SubnetworkAggregatedList Text
-salKind = lens _salKind (\ s a -> s{_salKind = a})
-
--- | A list of SubnetworksScopedList resources.
-salItems :: Lens' SubnetworkAggregatedList (Maybe SubnetworkAggregatedListItems)
-salItems = lens _salItems (\ s a -> s{_salItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-salSelfLink :: Lens' SubnetworkAggregatedList (Maybe Text)
-salSelfLink
-  = lens _salSelfLink (\ s a -> s{_salSelfLink = a})
-
--- | [Output Only] Informational warning message.
-salWarning :: Lens' SubnetworkAggregatedList (Maybe SubnetworkAggregatedListWarning)
-salWarning
-  = lens _salWarning (\ s a -> s{_salWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-salId :: Lens' SubnetworkAggregatedList (Maybe Text)
-salId = lens _salId (\ s a -> s{_salId = a})
-
-instance FromJSON SubnetworkAggregatedList where
-        parseJSON
-          = withObject "SubnetworkAggregatedList"
-              (\ o ->
-                 SubnetworkAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#subnetworkAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SubnetworkAggregatedList where
-        toJSON SubnetworkAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _salNextPageToken,
-                  Just ("kind" .= _salKind),
-                  ("items" .=) <$> _salItems,
-                  ("selfLink" .=) <$> _salSelfLink,
-                  ("warning" .=) <$> _salWarning,
-                  ("id" .=) <$> _salId])
-
---
--- /See:/ 'vpnTunnelListWarningDataItem' smart constructor.
-data VPNTunnelListWarningDataItem =
-  VPNTunnelListWarningDataItem'
-    { _vtlwdiValue :: !(Maybe Text)
-    , _vtlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtlwdiValue'
---
--- * 'vtlwdiKey'
-vpnTunnelListWarningDataItem
-    :: VPNTunnelListWarningDataItem
-vpnTunnelListWarningDataItem =
-  VPNTunnelListWarningDataItem' {_vtlwdiValue = Nothing, _vtlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-vtlwdiValue :: Lens' VPNTunnelListWarningDataItem (Maybe Text)
-vtlwdiValue
-  = lens _vtlwdiValue (\ s a -> s{_vtlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-vtlwdiKey :: Lens' VPNTunnelListWarningDataItem (Maybe Text)
-vtlwdiKey
-  = lens _vtlwdiKey (\ s a -> s{_vtlwdiKey = a})
-
-instance FromJSON VPNTunnelListWarningDataItem where
-        parseJSON
-          = withObject "VPNTunnelListWarningDataItem"
-              (\ o ->
-                 VPNTunnelListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON VPNTunnelListWarningDataItem where
-        toJSON VPNTunnelListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _vtlwdiValue,
-                  ("key" .=) <$> _vtlwdiKey])
-
---
--- /See:/ 'interconnectDiagnosticsLinkOpticalPower' smart constructor.
-data InterconnectDiagnosticsLinkOpticalPower =
-  InterconnectDiagnosticsLinkOpticalPower'
-    { _idlopState :: !(Maybe InterconnectDiagnosticsLinkOpticalPowerState)
-    , _idlopValue :: !(Maybe (Textual Double))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectDiagnosticsLinkOpticalPower' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idlopState'
---
--- * 'idlopValue'
-interconnectDiagnosticsLinkOpticalPower
-    :: InterconnectDiagnosticsLinkOpticalPower
-interconnectDiagnosticsLinkOpticalPower =
-  InterconnectDiagnosticsLinkOpticalPower'
-    {_idlopState = Nothing, _idlopValue = Nothing}
-
-
--- | The status of the current value when compared to the warning and alarm
--- levels for the receiving or transmitting transceiver. Possible states
--- include: - OK: The value has not crossed a warning threshold. -
--- LOW_WARNING: The value has crossed below the low warning threshold. -
--- HIGH_WARNING: The value has crossed above the high warning threshold. -
--- LOW_ALARM: The value has crossed below the low alarm threshold. -
--- HIGH_ALARM: The value has crossed above the high alarm threshold.
-idlopState :: Lens' InterconnectDiagnosticsLinkOpticalPower (Maybe InterconnectDiagnosticsLinkOpticalPowerState)
-idlopState
-  = lens _idlopState (\ s a -> s{_idlopState = a})
-
--- | Value of the current receiving or transmitting optical power, read in
--- dBm. Take a known good optical value, give it a 10% margin and trigger
--- warnings relative to that value. In general, a -7dBm warning and a
--- -11dBm alarm are good optical value estimates for most links.
-idlopValue :: Lens' InterconnectDiagnosticsLinkOpticalPower (Maybe Double)
-idlopValue
-  = lens _idlopValue (\ s a -> s{_idlopValue = a}) .
-      mapping _Coerce
-
-instance FromJSON
-           InterconnectDiagnosticsLinkOpticalPower
-         where
-        parseJSON
-          = withObject
-              "InterconnectDiagnosticsLinkOpticalPower"
-              (\ o ->
-                 InterconnectDiagnosticsLinkOpticalPower' <$>
-                   (o .:? "state") <*> (o .:? "value"))
-
-instance ToJSON
-           InterconnectDiagnosticsLinkOpticalPower
-         where
-        toJSON InterconnectDiagnosticsLinkOpticalPower'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _idlopState,
-                  ("value" .=) <$> _idlopValue])
-
---
--- /See:/ 'disksResizeRequest' smart constructor.
-newtype DisksResizeRequest =
-  DisksResizeRequest'
-    { _drrSizeGb :: Maybe (Textual Int64)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksResizeRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drrSizeGb'
-disksResizeRequest
-    :: DisksResizeRequest
-disksResizeRequest = DisksResizeRequest' {_drrSizeGb = Nothing}
-
-
--- | The new size of the persistent disk, which is specified in GB.
-drrSizeGb :: Lens' DisksResizeRequest (Maybe Int64)
-drrSizeGb
-  = lens _drrSizeGb (\ s a -> s{_drrSizeGb = a}) .
-      mapping _Coerce
-
-instance FromJSON DisksResizeRequest where
-        parseJSON
-          = withObject "DisksResizeRequest"
-              (\ o -> DisksResizeRequest' <$> (o .:? "sizeGb"))
-
-instance ToJSON DisksResizeRequest where
-        toJSON DisksResizeRequest'{..}
-          = object (catMaybes [("sizeGb" .=) <$> _drrSizeGb])
-
---
--- /See:/ 'autoscalersScopedListWarningDataItem' smart constructor.
-data AutoscalersScopedListWarningDataItem =
-  AutoscalersScopedListWarningDataItem'
-    { _aValue :: !(Maybe Text)
-    , _aKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aValue'
---
--- * 'aKey'
-autoscalersScopedListWarningDataItem
-    :: AutoscalersScopedListWarningDataItem
-autoscalersScopedListWarningDataItem =
-  AutoscalersScopedListWarningDataItem' {_aValue = Nothing, _aKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-aValue :: Lens' AutoscalersScopedListWarningDataItem (Maybe Text)
-aValue = lens _aValue (\ s a -> s{_aValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-aKey :: Lens' AutoscalersScopedListWarningDataItem (Maybe Text)
-aKey = lens _aKey (\ s a -> s{_aKey = a})
-
-instance FromJSON
-           AutoscalersScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "AutoscalersScopedListWarningDataItem"
-              (\ o ->
-                 AutoscalersScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AutoscalersScopedListWarningDataItem
-         where
-        toJSON AutoscalersScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _aValue, ("key" .=) <$> _aKey])
-
---
--- /See:/ 'zoneSetPolicyRequest' smart constructor.
-data ZoneSetPolicyRequest =
-  ZoneSetPolicyRequest'
-    { _zsprEtag     :: !(Maybe Bytes)
-    , _zsprBindings :: !(Maybe [Binding])
-    , _zsprPolicy   :: !(Maybe Policy)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneSetPolicyRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zsprEtag'
---
--- * 'zsprBindings'
---
--- * 'zsprPolicy'
-zoneSetPolicyRequest
-    :: ZoneSetPolicyRequest
-zoneSetPolicyRequest =
-  ZoneSetPolicyRequest'
-    {_zsprEtag = Nothing, _zsprBindings = Nothing, _zsprPolicy = Nothing}
-
-
--- | Flatten Policy to create a backward compatible wire-format. Deprecated.
--- Use \'policy\' to specify the etag.
-zsprEtag :: Lens' ZoneSetPolicyRequest (Maybe ByteString)
-zsprEtag
-  = lens _zsprEtag (\ s a -> s{_zsprEtag = a}) .
-      mapping _Bytes
-
--- | Flatten Policy to create a backwacd compatible wire-format. Deprecated.
--- Use \'policy\' to specify bindings.
-zsprBindings :: Lens' ZoneSetPolicyRequest [Binding]
-zsprBindings
-  = lens _zsprBindings (\ s a -> s{_zsprBindings = a})
-      . _Default
-      . _Coerce
-
--- | REQUIRED: The complete policy to be applied to the \'resource\'. The
--- size of the policy is limited to a few 10s of KB. An empty policy is in
--- general a valid policy but certain services (like Projects) might reject
--- them.
-zsprPolicy :: Lens' ZoneSetPolicyRequest (Maybe Policy)
-zsprPolicy
-  = lens _zsprPolicy (\ s a -> s{_zsprPolicy = a})
-
-instance FromJSON ZoneSetPolicyRequest where
-        parseJSON
-          = withObject "ZoneSetPolicyRequest"
-              (\ o ->
-                 ZoneSetPolicyRequest' <$>
-                   (o .:? "etag") <*> (o .:? "bindings" .!= mempty) <*>
-                     (o .:? "policy"))
-
-instance ToJSON ZoneSetPolicyRequest where
-        toJSON ZoneSetPolicyRequest'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _zsprEtag,
-                  ("bindings" .=) <$> _zsprBindings,
-                  ("policy" .=) <$> _zsprPolicy])
-
---
--- /See:/ 'diskTypeAggregatedListWarningDataItem' smart constructor.
-data DiskTypeAggregatedListWarningDataItem =
-  DiskTypeAggregatedListWarningDataItem'
-    { _dtalwdiValue :: !(Maybe Text)
-    , _dtalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypeAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtalwdiValue'
---
--- * 'dtalwdiKey'
-diskTypeAggregatedListWarningDataItem
-    :: DiskTypeAggregatedListWarningDataItem
-diskTypeAggregatedListWarningDataItem =
-  DiskTypeAggregatedListWarningDataItem'
-    {_dtalwdiValue = Nothing, _dtalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dtalwdiValue :: Lens' DiskTypeAggregatedListWarningDataItem (Maybe Text)
-dtalwdiValue
-  = lens _dtalwdiValue (\ s a -> s{_dtalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dtalwdiKey :: Lens' DiskTypeAggregatedListWarningDataItem (Maybe Text)
-dtalwdiKey
-  = lens _dtalwdiKey (\ s a -> s{_dtalwdiKey = a})
-
-instance FromJSON
-           DiskTypeAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "DiskTypeAggregatedListWarningDataItem"
-              (\ o ->
-                 DiskTypeAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DiskTypeAggregatedListWarningDataItem
-         where
-        toJSON DiskTypeAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dtalwdiValue,
-                  ("key" .=) <$> _dtalwdiKey])
-
--- | A Shielded Instance Identity Entry.
---
--- /See:/ 'shieldedInstanceIdentityEntry' smart constructor.
-data ShieldedInstanceIdentityEntry =
-  ShieldedInstanceIdentityEntry'
-    { _siieEkCert :: !(Maybe Text)
-    , _siieEkPub  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ShieldedInstanceIdentityEntry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'siieEkCert'
---
--- * 'siieEkPub'
-shieldedInstanceIdentityEntry
-    :: ShieldedInstanceIdentityEntry
-shieldedInstanceIdentityEntry =
-  ShieldedInstanceIdentityEntry' {_siieEkCert = Nothing, _siieEkPub = Nothing}
-
-
--- | A PEM-encoded X.509 certificate. This field can be empty.
-siieEkCert :: Lens' ShieldedInstanceIdentityEntry (Maybe Text)
-siieEkCert
-  = lens _siieEkCert (\ s a -> s{_siieEkCert = a})
-
--- | A PEM-encoded public key.
-siieEkPub :: Lens' ShieldedInstanceIdentityEntry (Maybe Text)
-siieEkPub
-  = lens _siieEkPub (\ s a -> s{_siieEkPub = a})
-
-instance FromJSON ShieldedInstanceIdentityEntry where
-        parseJSON
-          = withObject "ShieldedInstanceIdentityEntry"
-              (\ o ->
-                 ShieldedInstanceIdentityEntry' <$>
-                   (o .:? "ekCert") <*> (o .:? "ekPub"))
-
-instance ToJSON ShieldedInstanceIdentityEntry where
-        toJSON ShieldedInstanceIdentityEntry'{..}
-          = object
-              (catMaybes
-                 [("ekCert" .=) <$> _siieEkCert,
-                  ("ekPub" .=) <$> _siieEkPub])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionInstanceGroupManagerListWarning' smart constructor.
-data RegionInstanceGroupManagerListWarning =
-  RegionInstanceGroupManagerListWarning'
-    { _rigmlwData    :: !(Maybe [RegionInstanceGroupManagerListWarningDataItem])
-    , _rigmlwCode    :: !(Maybe RegionInstanceGroupManagerListWarningCode)
-    , _rigmlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagerListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlwData'
---
--- * 'rigmlwCode'
---
--- * 'rigmlwMessage'
-regionInstanceGroupManagerListWarning
-    :: RegionInstanceGroupManagerListWarning
-regionInstanceGroupManagerListWarning =
-  RegionInstanceGroupManagerListWarning'
-    {_rigmlwData = Nothing, _rigmlwCode = Nothing, _rigmlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-rigmlwData :: Lens' RegionInstanceGroupManagerListWarning [RegionInstanceGroupManagerListWarningDataItem]
-rigmlwData
-  = lens _rigmlwData (\ s a -> s{_rigmlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-rigmlwCode :: Lens' RegionInstanceGroupManagerListWarning (Maybe RegionInstanceGroupManagerListWarningCode)
-rigmlwCode
-  = lens _rigmlwCode (\ s a -> s{_rigmlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-rigmlwMessage :: Lens' RegionInstanceGroupManagerListWarning (Maybe Text)
-rigmlwMessage
-  = lens _rigmlwMessage
-      (\ s a -> s{_rigmlwMessage = a})
-
-instance FromJSON
-           RegionInstanceGroupManagerListWarning
-         where
-        parseJSON
-          = withObject "RegionInstanceGroupManagerListWarning"
-              (\ o ->
-                 RegionInstanceGroupManagerListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RegionInstanceGroupManagerListWarning
-         where
-        toJSON RegionInstanceGroupManagerListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _rigmlwData,
-                  ("code" .=) <$> _rigmlwCode,
-                  ("message" .=) <$> _rigmlwMessage])
-
---
--- /See:/ 'regionInstanceGroupManagersSetTemplateRequest' smart constructor.
-newtype RegionInstanceGroupManagersSetTemplateRequest =
-  RegionInstanceGroupManagersSetTemplateRequest'
-    { _rigmstrInstanceTemplate :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersSetTemplateRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmstrInstanceTemplate'
-regionInstanceGroupManagersSetTemplateRequest
-    :: RegionInstanceGroupManagersSetTemplateRequest
-regionInstanceGroupManagersSetTemplateRequest =
-  RegionInstanceGroupManagersSetTemplateRequest'
-    {_rigmstrInstanceTemplate = Nothing}
-
-
--- | URL of the InstanceTemplate resource from which all new instances will
--- be created.
-rigmstrInstanceTemplate :: Lens' RegionInstanceGroupManagersSetTemplateRequest (Maybe Text)
-rigmstrInstanceTemplate
-  = lens _rigmstrInstanceTemplate
-      (\ s a -> s{_rigmstrInstanceTemplate = a})
-
-instance FromJSON
-           RegionInstanceGroupManagersSetTemplateRequest
-         where
-        parseJSON
-          = withObject
-              "RegionInstanceGroupManagersSetTemplateRequest"
-              (\ o ->
-                 RegionInstanceGroupManagersSetTemplateRequest' <$>
-                   (o .:? "instanceTemplate"))
-
-instance ToJSON
-           RegionInstanceGroupManagersSetTemplateRequest
-         where
-        toJSON
-          RegionInstanceGroupManagersSetTemplateRequest'{..}
-          = object
-              (catMaybes
-                 [("instanceTemplate" .=) <$>
-                    _rigmstrInstanceTemplate])
-
---
--- /See:/ 'instanceGroupsListInstances' smart constructor.
-data InstanceGroupsListInstances =
-  InstanceGroupsListInstances'
-    { _igliNextPageToken :: !(Maybe Text)
-    , _igliKind          :: !Text
-    , _igliItems         :: !(Maybe [InstanceWithNamedPorts])
-    , _igliSelfLink      :: !(Maybe Text)
-    , _igliWarning       :: !(Maybe InstanceGroupsListInstancesWarning)
-    , _igliId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsListInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igliNextPageToken'
---
--- * 'igliKind'
---
--- * 'igliItems'
---
--- * 'igliSelfLink'
---
--- * 'igliWarning'
---
--- * 'igliId'
-instanceGroupsListInstances
-    :: InstanceGroupsListInstances
-instanceGroupsListInstances =
-  InstanceGroupsListInstances'
-    { _igliNextPageToken = Nothing
-    , _igliKind = "compute#instanceGroupsListInstances"
-    , _igliItems = Nothing
-    , _igliSelfLink = Nothing
-    , _igliWarning = Nothing
-    , _igliId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-igliNextPageToken :: Lens' InstanceGroupsListInstances (Maybe Text)
-igliNextPageToken
-  = lens _igliNextPageToken
-      (\ s a -> s{_igliNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#instanceGroupsListInstances for the list of instances in the
--- specified instance group.
-igliKind :: Lens' InstanceGroupsListInstances Text
-igliKind = lens _igliKind (\ s a -> s{_igliKind = a})
-
--- | A list of InstanceWithNamedPorts resources.
-igliItems :: Lens' InstanceGroupsListInstances [InstanceWithNamedPorts]
-igliItems
-  = lens _igliItems (\ s a -> s{_igliItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-igliSelfLink :: Lens' InstanceGroupsListInstances (Maybe Text)
-igliSelfLink
-  = lens _igliSelfLink (\ s a -> s{_igliSelfLink = a})
-
--- | [Output Only] Informational warning message.
-igliWarning :: Lens' InstanceGroupsListInstances (Maybe InstanceGroupsListInstancesWarning)
-igliWarning
-  = lens _igliWarning (\ s a -> s{_igliWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-igliId :: Lens' InstanceGroupsListInstances (Maybe Text)
-igliId = lens _igliId (\ s a -> s{_igliId = a})
-
-instance FromJSON InstanceGroupsListInstances where
-        parseJSON
-          = withObject "InstanceGroupsListInstances"
-              (\ o ->
-                 InstanceGroupsListInstances' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#instanceGroupsListInstances")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceGroupsListInstances where
-        toJSON InstanceGroupsListInstances'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _igliNextPageToken,
-                  Just ("kind" .= _igliKind),
-                  ("items" .=) <$> _igliItems,
-                  ("selfLink" .=) <$> _igliSelfLink,
-                  ("warning" .=) <$> _igliWarning,
-                  ("id" .=) <$> _igliId])
-
--- | Represents an Autoscaler resource. Autoscalers allow you to
--- automatically scale virtual machine instances in managed instance groups
--- according to an autoscaling policy that you define. For more
--- information, read Autoscaling Groups of Instances. (== resource_for
--- beta.autoscalers ==) (== resource_for v1.autoscalers ==) (==
--- resource_for beta.regionAutoscalers ==) (== resource_for
--- v1.regionAutoscalers ==)
---
--- /See:/ 'autoscaler' smart constructor.
-data Autoscaler =
-  Autoscaler'
-    { _aaStatus            :: !(Maybe AutoscalerStatus)
-    , _aaKind              :: !Text
-    , _aaZone              :: !(Maybe Text)
-    , _aaStatusDetails     :: !(Maybe [AutoscalerStatusDetails])
-    , _aaSelfLink          :: !(Maybe Text)
-    , _aaName              :: !(Maybe Text)
-    , _aaCreationTimestamp :: !(Maybe Text)
-    , _aaAutoscalingPolicy :: !(Maybe AutoscalingPolicy)
-    , _aaId                :: !(Maybe (Textual Word64))
-    , _aaRegion            :: !(Maybe Text)
-    , _aaDescription       :: !(Maybe Text)
-    , _aaTarget            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Autoscaler' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aaStatus'
---
--- * 'aaKind'
---
--- * 'aaZone'
---
--- * 'aaStatusDetails'
---
--- * 'aaSelfLink'
---
--- * 'aaName'
---
--- * 'aaCreationTimestamp'
---
--- * 'aaAutoscalingPolicy'
---
--- * 'aaId'
---
--- * 'aaRegion'
---
--- * 'aaDescription'
---
--- * 'aaTarget'
-autoscaler
-    :: Autoscaler
-autoscaler =
-  Autoscaler'
-    { _aaStatus = Nothing
-    , _aaKind = "compute#autoscaler"
-    , _aaZone = Nothing
-    , _aaStatusDetails = Nothing
-    , _aaSelfLink = Nothing
-    , _aaName = Nothing
-    , _aaCreationTimestamp = Nothing
-    , _aaAutoscalingPolicy = Nothing
-    , _aaId = Nothing
-    , _aaRegion = Nothing
-    , _aaDescription = Nothing
-    , _aaTarget = Nothing
-    }
-
-
--- | [Output Only] The status of the autoscaler configuration.
-aaStatus :: Lens' Autoscaler (Maybe AutoscalerStatus)
-aaStatus = lens _aaStatus (\ s a -> s{_aaStatus = a})
-
--- | [Output Only] Type of the resource. Always compute#autoscaler for
--- autoscalers.
-aaKind :: Lens' Autoscaler Text
-aaKind = lens _aaKind (\ s a -> s{_aaKind = a})
-
--- | [Output Only] URL of the zone where the instance group resides (for
--- autoscalers living in zonal scope).
-aaZone :: Lens' Autoscaler (Maybe Text)
-aaZone = lens _aaZone (\ s a -> s{_aaZone = a})
-
--- | [Output Only] Human-readable details about the current state of the
--- autoscaler. Read the documentation for Commonly returned status messages
--- for examples of status messages you might encounter.
-aaStatusDetails :: Lens' Autoscaler [AutoscalerStatusDetails]
-aaStatusDetails
-  = lens _aaStatusDetails
-      (\ s a -> s{_aaStatusDetails = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-aaSelfLink :: Lens' Autoscaler (Maybe Text)
-aaSelfLink
-  = lens _aaSelfLink (\ s a -> s{_aaSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-aaName :: Lens' Autoscaler (Maybe Text)
-aaName = lens _aaName (\ s a -> s{_aaName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-aaCreationTimestamp :: Lens' Autoscaler (Maybe Text)
-aaCreationTimestamp
-  = lens _aaCreationTimestamp
-      (\ s a -> s{_aaCreationTimestamp = a})
-
--- | The configuration parameters for the autoscaling algorithm. You can
--- define one or more of the policies for an autoscaler: cpuUtilization,
--- customMetricUtilizations, and loadBalancingUtilization. If none of these
--- are specified, the default will be to autoscale based on cpuUtilization
--- to 0.6 or 60%.
-aaAutoscalingPolicy :: Lens' Autoscaler (Maybe AutoscalingPolicy)
-aaAutoscalingPolicy
-  = lens _aaAutoscalingPolicy
-      (\ s a -> s{_aaAutoscalingPolicy = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-aaId :: Lens' Autoscaler (Maybe Word64)
-aaId
-  = lens _aaId (\ s a -> s{_aaId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL of the region where the instance group resides (for
--- autoscalers living in regional scope).
-aaRegion :: Lens' Autoscaler (Maybe Text)
-aaRegion = lens _aaRegion (\ s a -> s{_aaRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-aaDescription :: Lens' Autoscaler (Maybe Text)
-aaDescription
-  = lens _aaDescription
-      (\ s a -> s{_aaDescription = a})
-
--- | URL of the managed instance group that this autoscaler will scale.
-aaTarget :: Lens' Autoscaler (Maybe Text)
-aaTarget = lens _aaTarget (\ s a -> s{_aaTarget = a})
-
-instance FromJSON Autoscaler where
-        parseJSON
-          = withObject "Autoscaler"
-              (\ o ->
-                 Autoscaler' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#autoscaler")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "statusDetails" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "autoscalingPolicy")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "target"))
-
-instance ToJSON Autoscaler where
-        toJSON Autoscaler'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _aaStatus,
-                  Just ("kind" .= _aaKind), ("zone" .=) <$> _aaZone,
-                  ("statusDetails" .=) <$> _aaStatusDetails,
-                  ("selfLink" .=) <$> _aaSelfLink,
-                  ("name" .=) <$> _aaName,
-                  ("creationTimestamp" .=) <$> _aaCreationTimestamp,
-                  ("autoscalingPolicy" .=) <$> _aaAutoscalingPolicy,
-                  ("id" .=) <$> _aaId, ("region" .=) <$> _aaRegion,
-                  ("description" .=) <$> _aaDescription,
-                  ("target" .=) <$> _aaTarget])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'machineTypeListWarning' smart constructor.
-data MachineTypeListWarning =
-  MachineTypeListWarning'
-    { _mtlwData    :: !(Maybe [MachineTypeListWarningDataItem])
-    , _mtlwCode    :: !(Maybe MachineTypeListWarningCode)
-    , _mtlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypeListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtlwData'
---
--- * 'mtlwCode'
---
--- * 'mtlwMessage'
-machineTypeListWarning
-    :: MachineTypeListWarning
-machineTypeListWarning =
-  MachineTypeListWarning'
-    {_mtlwData = Nothing, _mtlwCode = Nothing, _mtlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-mtlwData :: Lens' MachineTypeListWarning [MachineTypeListWarningDataItem]
-mtlwData
-  = lens _mtlwData (\ s a -> s{_mtlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-mtlwCode :: Lens' MachineTypeListWarning (Maybe MachineTypeListWarningCode)
-mtlwCode = lens _mtlwCode (\ s a -> s{_mtlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-mtlwMessage :: Lens' MachineTypeListWarning (Maybe Text)
-mtlwMessage
-  = lens _mtlwMessage (\ s a -> s{_mtlwMessage = a})
-
-instance FromJSON MachineTypeListWarning where
-        parseJSON
-          = withObject "MachineTypeListWarning"
-              (\ o ->
-                 MachineTypeListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON MachineTypeListWarning where
-        toJSON MachineTypeListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _mtlwData,
-                  ("code" .=) <$> _mtlwCode,
-                  ("message" .=) <$> _mtlwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetHTTPProxyListWarning' smart constructor.
-data TargetHTTPProxyListWarning =
-  TargetHTTPProxyListWarning'
-    { _thttpplwData    :: !(Maybe [TargetHTTPProxyListWarningDataItem])
-    , _thttpplwCode    :: !(Maybe TargetHTTPProxyListWarningCode)
-    , _thttpplwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxyListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttpplwData'
---
--- * 'thttpplwCode'
---
--- * 'thttpplwMessage'
-targetHTTPProxyListWarning
-    :: TargetHTTPProxyListWarning
-targetHTTPProxyListWarning =
-  TargetHTTPProxyListWarning'
-    { _thttpplwData = Nothing
-    , _thttpplwCode = Nothing
-    , _thttpplwMessage = Nothing
-    }
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-thttpplwData :: Lens' TargetHTTPProxyListWarning [TargetHTTPProxyListWarningDataItem]
-thttpplwData
-  = lens _thttpplwData (\ s a -> s{_thttpplwData = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-thttpplwCode :: Lens' TargetHTTPProxyListWarning (Maybe TargetHTTPProxyListWarningCode)
-thttpplwCode
-  = lens _thttpplwCode (\ s a -> s{_thttpplwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-thttpplwMessage :: Lens' TargetHTTPProxyListWarning (Maybe Text)
-thttpplwMessage
-  = lens _thttpplwMessage
-      (\ s a -> s{_thttpplwMessage = a})
-
-instance FromJSON TargetHTTPProxyListWarning where
-        parseJSON
-          = withObject "TargetHTTPProxyListWarning"
-              (\ o ->
-                 TargetHTTPProxyListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetHTTPProxyListWarning where
-        toJSON TargetHTTPProxyListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _thttpplwData,
-                  ("code" .=) <$> _thttpplwCode,
-                  ("message" .=) <$> _thttpplwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'diskAggregatedListWarning' smart constructor.
-data DiskAggregatedListWarning =
-  DiskAggregatedListWarning'
-    { _dalwData    :: !(Maybe [DiskAggregatedListWarningDataItem])
-    , _dalwCode    :: !(Maybe DiskAggregatedListWarningCode)
-    , _dalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dalwData'
---
--- * 'dalwCode'
---
--- * 'dalwMessage'
-diskAggregatedListWarning
-    :: DiskAggregatedListWarning
-diskAggregatedListWarning =
-  DiskAggregatedListWarning'
-    {_dalwData = Nothing, _dalwCode = Nothing, _dalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dalwData :: Lens' DiskAggregatedListWarning [DiskAggregatedListWarningDataItem]
-dalwData
-  = lens _dalwData (\ s a -> s{_dalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dalwCode :: Lens' DiskAggregatedListWarning (Maybe DiskAggregatedListWarningCode)
-dalwCode = lens _dalwCode (\ s a -> s{_dalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dalwMessage :: Lens' DiskAggregatedListWarning (Maybe Text)
-dalwMessage
-  = lens _dalwMessage (\ s a -> s{_dalwMessage = a})
-
-instance FromJSON DiskAggregatedListWarning where
-        parseJSON
-          = withObject "DiskAggregatedListWarning"
-              (\ o ->
-                 DiskAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DiskAggregatedListWarning where
-        toJSON DiskAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dalwData,
-                  ("code" .=) <$> _dalwCode,
-                  ("message" .=) <$> _dalwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetPoolAggregatedListWarning' smart constructor.
-data TargetPoolAggregatedListWarning =
-  TargetPoolAggregatedListWarning'
-    { _tpalwData    :: !(Maybe [TargetPoolAggregatedListWarningDataItem])
-    , _tpalwCode    :: !(Maybe TargetPoolAggregatedListWarningCode)
-    , _tpalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpalwData'
---
--- * 'tpalwCode'
---
--- * 'tpalwMessage'
-targetPoolAggregatedListWarning
-    :: TargetPoolAggregatedListWarning
-targetPoolAggregatedListWarning =
-  TargetPoolAggregatedListWarning'
-    {_tpalwData = Nothing, _tpalwCode = Nothing, _tpalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tpalwData :: Lens' TargetPoolAggregatedListWarning [TargetPoolAggregatedListWarningDataItem]
-tpalwData
-  = lens _tpalwData (\ s a -> s{_tpalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tpalwCode :: Lens' TargetPoolAggregatedListWarning (Maybe TargetPoolAggregatedListWarningCode)
-tpalwCode
-  = lens _tpalwCode (\ s a -> s{_tpalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tpalwMessage :: Lens' TargetPoolAggregatedListWarning (Maybe Text)
-tpalwMessage
-  = lens _tpalwMessage (\ s a -> s{_tpalwMessage = a})
-
-instance FromJSON TargetPoolAggregatedListWarning
-         where
-        parseJSON
-          = withObject "TargetPoolAggregatedListWarning"
-              (\ o ->
-                 TargetPoolAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetPoolAggregatedListWarning where
-        toJSON TargetPoolAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tpalwData,
-                  ("code" .=) <$> _tpalwCode,
-                  ("message" .=) <$> _tpalwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'usableSubnetworksAggregatedListWarning' smart constructor.
-data UsableSubnetworksAggregatedListWarning =
-  UsableSubnetworksAggregatedListWarning'
-    { _usalwData    :: !(Maybe [UsableSubnetworksAggregatedListWarningDataItem])
-    , _usalwCode    :: !(Maybe UsableSubnetworksAggregatedListWarningCode)
-    , _usalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UsableSubnetworksAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usalwData'
---
--- * 'usalwCode'
---
--- * 'usalwMessage'
-usableSubnetworksAggregatedListWarning
-    :: UsableSubnetworksAggregatedListWarning
-usableSubnetworksAggregatedListWarning =
-  UsableSubnetworksAggregatedListWarning'
-    {_usalwData = Nothing, _usalwCode = Nothing, _usalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-usalwData :: Lens' UsableSubnetworksAggregatedListWarning [UsableSubnetworksAggregatedListWarningDataItem]
-usalwData
-  = lens _usalwData (\ s a -> s{_usalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-usalwCode :: Lens' UsableSubnetworksAggregatedListWarning (Maybe UsableSubnetworksAggregatedListWarningCode)
-usalwCode
-  = lens _usalwCode (\ s a -> s{_usalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-usalwMessage :: Lens' UsableSubnetworksAggregatedListWarning (Maybe Text)
-usalwMessage
-  = lens _usalwMessage (\ s a -> s{_usalwMessage = a})
-
-instance FromJSON
-           UsableSubnetworksAggregatedListWarning
-         where
-        parseJSON
-          = withObject "UsableSubnetworksAggregatedListWarning"
-              (\ o ->
-                 UsableSubnetworksAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           UsableSubnetworksAggregatedListWarning
-         where
-        toJSON UsableSubnetworksAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _usalwData,
-                  ("code" .=) <$> _usalwCode,
-                  ("message" .=) <$> _usalwMessage])
-
--- | [Output Only] Informational warning which replaces the list of disks
--- when the list is empty.
---
--- /See:/ 'disksScopedListWarning' smart constructor.
-data DisksScopedListWarning =
-  DisksScopedListWarning'
-    { _dslwData    :: !(Maybe [DisksScopedListWarningDataItem])
-    , _dslwCode    :: !(Maybe DisksScopedListWarningCode)
-    , _dslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dslwData'
---
--- * 'dslwCode'
---
--- * 'dslwMessage'
-disksScopedListWarning
-    :: DisksScopedListWarning
-disksScopedListWarning =
-  DisksScopedListWarning'
-    {_dslwData = Nothing, _dslwCode = Nothing, _dslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-dslwData :: Lens' DisksScopedListWarning [DisksScopedListWarningDataItem]
-dslwData
-  = lens _dslwData (\ s a -> s{_dslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-dslwCode :: Lens' DisksScopedListWarning (Maybe DisksScopedListWarningCode)
-dslwCode = lens _dslwCode (\ s a -> s{_dslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-dslwMessage :: Lens' DisksScopedListWarning (Maybe Text)
-dslwMessage
-  = lens _dslwMessage (\ s a -> s{_dslwMessage = a})
-
-instance FromJSON DisksScopedListWarning where
-        parseJSON
-          = withObject "DisksScopedListWarning"
-              (\ o ->
-                 DisksScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON DisksScopedListWarning where
-        toJSON DisksScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _dslwData,
-                  ("code" .=) <$> _dslwCode,
-                  ("message" .=) <$> _dslwMessage])
-
---
--- /See:/ 'nodeTemplatesScopedListWarningDataItem' smart constructor.
-data NodeTemplatesScopedListWarningDataItem =
-  NodeTemplatesScopedListWarningDataItem'
-    { _ntslwdiValue :: !(Maybe Text)
-    , _ntslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntslwdiValue'
---
--- * 'ntslwdiKey'
-nodeTemplatesScopedListWarningDataItem
-    :: NodeTemplatesScopedListWarningDataItem
-nodeTemplatesScopedListWarningDataItem =
-  NodeTemplatesScopedListWarningDataItem'
-    {_ntslwdiValue = Nothing, _ntslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ntslwdiValue :: Lens' NodeTemplatesScopedListWarningDataItem (Maybe Text)
-ntslwdiValue
-  = lens _ntslwdiValue (\ s a -> s{_ntslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ntslwdiKey :: Lens' NodeTemplatesScopedListWarningDataItem (Maybe Text)
-ntslwdiKey
-  = lens _ntslwdiKey (\ s a -> s{_ntslwdiKey = a})
-
-instance FromJSON
-           NodeTemplatesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeTemplatesScopedListWarningDataItem"
-              (\ o ->
-                 NodeTemplatesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           NodeTemplatesScopedListWarningDataItem
-         where
-        toJSON NodeTemplatesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ntslwdiValue,
-                  ("key" .=) <$> _ntslwdiKey])
-
--- | A list of TargetVpnGateway resources.
---
--- /See:/ 'targetVPNGatewayAggregatedListItems' smart constructor.
-newtype TargetVPNGatewayAggregatedListItems =
-  TargetVPNGatewayAggregatedListItems'
-    { _tvgaliAddtional :: HashMap Text TargetVPNGatewaysScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgaliAddtional'
-targetVPNGatewayAggregatedListItems
-    :: HashMap Text TargetVPNGatewaysScopedList -- ^ 'tvgaliAddtional'
-    -> TargetVPNGatewayAggregatedListItems
-targetVPNGatewayAggregatedListItems pTvgaliAddtional_ =
-  TargetVPNGatewayAggregatedListItems'
-    {_tvgaliAddtional = _Coerce # pTvgaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of target VPN
--- gateways.
-tvgaliAddtional :: Lens' TargetVPNGatewayAggregatedListItems (HashMap Text TargetVPNGatewaysScopedList)
-tvgaliAddtional
-  = lens _tvgaliAddtional
-      (\ s a -> s{_tvgaliAddtional = a})
-      . _Coerce
-
-instance FromJSON TargetVPNGatewayAggregatedListItems
-         where
-        parseJSON
-          = withObject "TargetVPNGatewayAggregatedListItems"
-              (\ o ->
-                 TargetVPNGatewayAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON TargetVPNGatewayAggregatedListItems
-         where
-        toJSON = toJSON . _tvgaliAddtional
-
--- | Labels to apply to this disk. These can be later modified by the
--- setLabels method.
---
--- /See:/ 'diskLabels' smart constructor.
-newtype DiskLabels =
-  DiskLabels'
-    { _dlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dlAddtional'
-diskLabels
-    :: HashMap Text Text -- ^ 'dlAddtional'
-    -> DiskLabels
-diskLabels pDlAddtional_ = DiskLabels' {_dlAddtional = _Coerce # pDlAddtional_}
-
-
-dlAddtional :: Lens' DiskLabels (HashMap Text Text)
-dlAddtional
-  = lens _dlAddtional (\ s a -> s{_dlAddtional = a}) .
-      _Coerce
-
-instance FromJSON DiskLabels where
-        parseJSON
-          = withObject "DiskLabels"
-              (\ o -> DiskLabels' <$> (parseJSONObject o))
-
-instance ToJSON DiskLabels where
-        toJSON = toJSON . _dlAddtional
-
---
--- /See:/ 'instanceGroupManagerListWarningDataItem' smart constructor.
-data InstanceGroupManagerListWarningDataItem =
-  InstanceGroupManagerListWarningDataItem'
-    { _igmlwdiValue :: !(Maybe Text)
-    , _igmlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlwdiValue'
---
--- * 'igmlwdiKey'
-instanceGroupManagerListWarningDataItem
-    :: InstanceGroupManagerListWarningDataItem
-instanceGroupManagerListWarningDataItem =
-  InstanceGroupManagerListWarningDataItem'
-    {_igmlwdiValue = Nothing, _igmlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igmlwdiValue :: Lens' InstanceGroupManagerListWarningDataItem (Maybe Text)
-igmlwdiValue
-  = lens _igmlwdiValue (\ s a -> s{_igmlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igmlwdiKey :: Lens' InstanceGroupManagerListWarningDataItem (Maybe Text)
-igmlwdiKey
-  = lens _igmlwdiKey (\ s a -> s{_igmlwdiKey = a})
-
-instance FromJSON
-           InstanceGroupManagerListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagerListWarningDataItem"
-              (\ o ->
-                 InstanceGroupManagerListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupManagerListWarningDataItem
-         where
-        toJSON InstanceGroupManagerListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igmlwdiValue,
-                  ("key" .=) <$> _igmlwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'forwardingRuleAggregatedListWarning' smart constructor.
-data ForwardingRuleAggregatedListWarning =
-  ForwardingRuleAggregatedListWarning'
-    { _fralwData    :: !(Maybe [ForwardingRuleAggregatedListWarningDataItem])
-    , _fralwCode    :: !(Maybe ForwardingRuleAggregatedListWarningCode)
-    , _fralwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fralwData'
---
--- * 'fralwCode'
---
--- * 'fralwMessage'
-forwardingRuleAggregatedListWarning
-    :: ForwardingRuleAggregatedListWarning
-forwardingRuleAggregatedListWarning =
-  ForwardingRuleAggregatedListWarning'
-    {_fralwData = Nothing, _fralwCode = Nothing, _fralwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-fralwData :: Lens' ForwardingRuleAggregatedListWarning [ForwardingRuleAggregatedListWarningDataItem]
-fralwData
-  = lens _fralwData (\ s a -> s{_fralwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-fralwCode :: Lens' ForwardingRuleAggregatedListWarning (Maybe ForwardingRuleAggregatedListWarningCode)
-fralwCode
-  = lens _fralwCode (\ s a -> s{_fralwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-fralwMessage :: Lens' ForwardingRuleAggregatedListWarning (Maybe Text)
-fralwMessage
-  = lens _fralwMessage (\ s a -> s{_fralwMessage = a})
-
-instance FromJSON ForwardingRuleAggregatedListWarning
-         where
-        parseJSON
-          = withObject "ForwardingRuleAggregatedListWarning"
-              (\ o ->
-                 ForwardingRuleAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON ForwardingRuleAggregatedListWarning
-         where
-        toJSON ForwardingRuleAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _fralwData,
-                  ("code" .=) <$> _fralwCode,
-                  ("message" .=) <$> _fralwMessage])
-
---
--- /See:/ 'sslPolicyWarningsItem' smart constructor.
-data SSLPolicyWarningsItem =
-  SSLPolicyWarningsItem'
-    { _spwiData    :: !(Maybe [SSLPolicyWarningsItemDataItem])
-    , _spwiCode    :: !(Maybe SSLPolicyWarningsItemCode)
-    , _spwiMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPolicyWarningsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spwiData'
---
--- * 'spwiCode'
---
--- * 'spwiMessage'
-sslPolicyWarningsItem
-    :: SSLPolicyWarningsItem
-sslPolicyWarningsItem =
-  SSLPolicyWarningsItem'
-    {_spwiData = Nothing, _spwiCode = Nothing, _spwiMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-spwiData :: Lens' SSLPolicyWarningsItem [SSLPolicyWarningsItemDataItem]
-spwiData
-  = lens _spwiData (\ s a -> s{_spwiData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-spwiCode :: Lens' SSLPolicyWarningsItem (Maybe SSLPolicyWarningsItemCode)
-spwiCode = lens _spwiCode (\ s a -> s{_spwiCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-spwiMessage :: Lens' SSLPolicyWarningsItem (Maybe Text)
-spwiMessage
-  = lens _spwiMessage (\ s a -> s{_spwiMessage = a})
-
-instance FromJSON SSLPolicyWarningsItem where
-        parseJSON
-          = withObject "SSLPolicyWarningsItem"
-              (\ o ->
-                 SSLPolicyWarningsItem' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SSLPolicyWarningsItem where
-        toJSON SSLPolicyWarningsItem'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _spwiData,
-                  ("code" .=) <$> _spwiCode,
-                  ("message" .=) <$> _spwiMessage])
-
---
--- /See:/ 'globalSetPolicyRequest' smart constructor.
-data GlobalSetPolicyRequest =
-  GlobalSetPolicyRequest'
-    { _gsprEtag     :: !(Maybe Bytes)
-    , _gsprBindings :: !(Maybe [Binding])
-    , _gsprPolicy   :: !(Maybe Policy)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalSetPolicyRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gsprEtag'
---
--- * 'gsprBindings'
---
--- * 'gsprPolicy'
-globalSetPolicyRequest
-    :: GlobalSetPolicyRequest
-globalSetPolicyRequest =
-  GlobalSetPolicyRequest'
-    {_gsprEtag = Nothing, _gsprBindings = Nothing, _gsprPolicy = Nothing}
-
-
--- | Flatten Policy to create a backward compatible wire-format. Deprecated.
--- Use \'policy\' to specify the etag.
-gsprEtag :: Lens' GlobalSetPolicyRequest (Maybe ByteString)
-gsprEtag
-  = lens _gsprEtag (\ s a -> s{_gsprEtag = a}) .
-      mapping _Bytes
-
--- | Flatten Policy to create a backward compatible wire-format. Deprecated.
--- Use \'policy\' to specify bindings.
-gsprBindings :: Lens' GlobalSetPolicyRequest [Binding]
-gsprBindings
-  = lens _gsprBindings (\ s a -> s{_gsprBindings = a})
-      . _Default
-      . _Coerce
-
--- | REQUIRED: The complete policy to be applied to the \'resource\'. The
--- size of the policy is limited to a few 10s of KB. An empty policy is in
--- general a valid policy but certain services (like Projects) might reject
--- them.
-gsprPolicy :: Lens' GlobalSetPolicyRequest (Maybe Policy)
-gsprPolicy
-  = lens _gsprPolicy (\ s a -> s{_gsprPolicy = a})
-
-instance FromJSON GlobalSetPolicyRequest where
-        parseJSON
-          = withObject "GlobalSetPolicyRequest"
-              (\ o ->
-                 GlobalSetPolicyRequest' <$>
-                   (o .:? "etag") <*> (o .:? "bindings" .!= mempty) <*>
-                     (o .:? "policy"))
-
-instance ToJSON GlobalSetPolicyRequest where
-        toJSON GlobalSetPolicyRequest'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _gsprEtag,
-                  ("bindings" .=) <$> _gsprBindings,
-                  ("policy" .=) <$> _gsprPolicy])
-
---
--- /See:/ 'regionAutoscalerListWarningDataItem' smart constructor.
-data RegionAutoscalerListWarningDataItem =
-  RegionAutoscalerListWarningDataItem'
-    { _ralwdiaValue :: !(Maybe Text)
-    , _ralwdiaKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalerListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ralwdiaValue'
---
--- * 'ralwdiaKey'
-regionAutoscalerListWarningDataItem
-    :: RegionAutoscalerListWarningDataItem
-regionAutoscalerListWarningDataItem =
-  RegionAutoscalerListWarningDataItem'
-    {_ralwdiaValue = Nothing, _ralwdiaKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ralwdiaValue :: Lens' RegionAutoscalerListWarningDataItem (Maybe Text)
-ralwdiaValue
-  = lens _ralwdiaValue (\ s a -> s{_ralwdiaValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ralwdiaKey :: Lens' RegionAutoscalerListWarningDataItem (Maybe Text)
-ralwdiaKey
-  = lens _ralwdiaKey (\ s a -> s{_ralwdiaKey = a})
-
-instance FromJSON RegionAutoscalerListWarningDataItem
-         where
-        parseJSON
-          = withObject "RegionAutoscalerListWarningDataItem"
-              (\ o ->
-                 RegionAutoscalerListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RegionAutoscalerListWarningDataItem
-         where
-        toJSON RegionAutoscalerListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ralwdiaValue,
-                  ("key" .=) <$> _ralwdiaKey])
-
--- | A list of labels to apply for this resource. Each label key & value must
--- comply with RFC1035. Specifically, the name must be 1-63 characters long
--- and match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which
--- means the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash. For example, \"webserver-frontend\":
--- \"images\". A label value can also be empty (e.g. \"my-label\": \"\").
---
--- /See:/ 'globalSetLabelsRequestLabels' smart constructor.
-newtype GlobalSetLabelsRequestLabels =
-  GlobalSetLabelsRequestLabels'
-    { _gslrlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalSetLabelsRequestLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gslrlAddtional'
-globalSetLabelsRequestLabels
-    :: HashMap Text Text -- ^ 'gslrlAddtional'
-    -> GlobalSetLabelsRequestLabels
-globalSetLabelsRequestLabels pGslrlAddtional_ =
-  GlobalSetLabelsRequestLabels' {_gslrlAddtional = _Coerce # pGslrlAddtional_}
-
-
-gslrlAddtional :: Lens' GlobalSetLabelsRequestLabels (HashMap Text Text)
-gslrlAddtional
-  = lens _gslrlAddtional
-      (\ s a -> s{_gslrlAddtional = a})
-      . _Coerce
-
-instance FromJSON GlobalSetLabelsRequestLabels where
-        parseJSON
-          = withObject "GlobalSetLabelsRequestLabels"
-              (\ o ->
-                 GlobalSetLabelsRequestLabels' <$>
-                   (parseJSONObject o))
-
-instance ToJSON GlobalSetLabelsRequestLabels where
-        toJSON = toJSON . _gslrlAddtional
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
---
--- /See:/ 'targetPoolsScopedListWarning' smart constructor.
-data TargetPoolsScopedListWarning =
-  TargetPoolsScopedListWarning'
-    { _tpslwData    :: !(Maybe [TargetPoolsScopedListWarningDataItem])
-    , _tpslwCode    :: !(Maybe TargetPoolsScopedListWarningCode)
-    , _tpslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpslwData'
---
--- * 'tpslwCode'
---
--- * 'tpslwMessage'
-targetPoolsScopedListWarning
-    :: TargetPoolsScopedListWarning
-targetPoolsScopedListWarning =
-  TargetPoolsScopedListWarning'
-    {_tpslwData = Nothing, _tpslwCode = Nothing, _tpslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tpslwData :: Lens' TargetPoolsScopedListWarning [TargetPoolsScopedListWarningDataItem]
-tpslwData
-  = lens _tpslwData (\ s a -> s{_tpslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tpslwCode :: Lens' TargetPoolsScopedListWarning (Maybe TargetPoolsScopedListWarningCode)
-tpslwCode
-  = lens _tpslwCode (\ s a -> s{_tpslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tpslwMessage :: Lens' TargetPoolsScopedListWarning (Maybe Text)
-tpslwMessage
-  = lens _tpslwMessage (\ s a -> s{_tpslwMessage = a})
-
-instance FromJSON TargetPoolsScopedListWarning where
-        parseJSON
-          = withObject "TargetPoolsScopedListWarning"
-              (\ o ->
-                 TargetPoolsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetPoolsScopedListWarning where
-        toJSON TargetPoolsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tpslwData,
-                  ("code" .=) <$> _tpslwCode,
-                  ("message" .=) <$> _tpslwMessage])
-
---
--- /See:/ 'healthStatus' smart constructor.
-data HealthStatus =
-  HealthStatus'
-    { _hsIPAddress   :: !(Maybe Text)
-    , _hsHealthState :: !(Maybe HealthStatusHealthState)
-    , _hsPort        :: !(Maybe (Textual Int32))
-    , _hsInstance    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hsIPAddress'
---
--- * 'hsHealthState'
---
--- * 'hsPort'
---
--- * 'hsInstance'
-healthStatus
-    :: HealthStatus
-healthStatus =
-  HealthStatus'
-    { _hsIPAddress = Nothing
-    , _hsHealthState = Nothing
-    , _hsPort = Nothing
-    , _hsInstance = Nothing
-    }
-
-
--- | The IP address represented by this resource.
-hsIPAddress :: Lens' HealthStatus (Maybe Text)
-hsIPAddress
-  = lens _hsIPAddress (\ s a -> s{_hsIPAddress = a})
-
--- | Health state of the instance.
-hsHealthState :: Lens' HealthStatus (Maybe HealthStatusHealthState)
-hsHealthState
-  = lens _hsHealthState
-      (\ s a -> s{_hsHealthState = a})
-
--- | The port on the instance.
-hsPort :: Lens' HealthStatus (Maybe Int32)
-hsPort
-  = lens _hsPort (\ s a -> s{_hsPort = a}) .
-      mapping _Coerce
-
--- | URL of the instance resource.
-hsInstance :: Lens' HealthStatus (Maybe Text)
-hsInstance
-  = lens _hsInstance (\ s a -> s{_hsInstance = a})
-
-instance FromJSON HealthStatus where
-        parseJSON
-          = withObject "HealthStatus"
-              (\ o ->
-                 HealthStatus' <$>
-                   (o .:? "ipAddress") <*> (o .:? "healthState") <*>
-                     (o .:? "port")
-                     <*> (o .:? "instance"))
-
-instance ToJSON HealthStatus where
-        toJSON HealthStatus'{..}
-          = object
-              (catMaybes
-                 [("ipAddress" .=) <$> _hsIPAddress,
-                  ("healthState" .=) <$> _hsHealthState,
-                  ("port" .=) <$> _hsPort,
-                  ("instance" .=) <$> _hsInstance])
-
--- | Contains a list of TargetTcpProxy resources.
---
--- /See:/ 'targetTCPProxyList' smart constructor.
-data TargetTCPProxyList =
-  TargetTCPProxyList'
-    { _ttplNextPageToken :: !(Maybe Text)
-    , _ttplKind          :: !Text
-    , _ttplItems         :: !(Maybe [TargetTCPProxy])
-    , _ttplSelfLink      :: !(Maybe Text)
-    , _ttplWarning       :: !(Maybe TargetTCPProxyListWarning)
-    , _ttplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxyList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttplNextPageToken'
---
--- * 'ttplKind'
---
--- * 'ttplItems'
---
--- * 'ttplSelfLink'
---
--- * 'ttplWarning'
---
--- * 'ttplId'
-targetTCPProxyList
-    :: TargetTCPProxyList
-targetTCPProxyList =
-  TargetTCPProxyList'
-    { _ttplNextPageToken = Nothing
-    , _ttplKind = "compute#targetTcpProxyList"
-    , _ttplItems = Nothing
-    , _ttplSelfLink = Nothing
-    , _ttplWarning = Nothing
-    , _ttplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ttplNextPageToken :: Lens' TargetTCPProxyList (Maybe Text)
-ttplNextPageToken
-  = lens _ttplNextPageToken
-      (\ s a -> s{_ttplNextPageToken = a})
-
--- | Type of resource.
-ttplKind :: Lens' TargetTCPProxyList Text
-ttplKind = lens _ttplKind (\ s a -> s{_ttplKind = a})
-
--- | A list of TargetTcpProxy resources.
-ttplItems :: Lens' TargetTCPProxyList [TargetTCPProxy]
-ttplItems
-  = lens _ttplItems (\ s a -> s{_ttplItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ttplSelfLink :: Lens' TargetTCPProxyList (Maybe Text)
-ttplSelfLink
-  = lens _ttplSelfLink (\ s a -> s{_ttplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ttplWarning :: Lens' TargetTCPProxyList (Maybe TargetTCPProxyListWarning)
-ttplWarning
-  = lens _ttplWarning (\ s a -> s{_ttplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ttplId :: Lens' TargetTCPProxyList (Maybe Text)
-ttplId = lens _ttplId (\ s a -> s{_ttplId = a})
-
-instance FromJSON TargetTCPProxyList where
-        parseJSON
-          = withObject "TargetTCPProxyList"
-              (\ o ->
-                 TargetTCPProxyList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#targetTcpProxyList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetTCPProxyList where
-        toJSON TargetTCPProxyList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ttplNextPageToken,
-                  Just ("kind" .= _ttplKind),
-                  ("items" .=) <$> _ttplItems,
-                  ("selfLink" .=) <$> _ttplSelfLink,
-                  ("warning" .=) <$> _ttplWarning,
-                  ("id" .=) <$> _ttplId])
-
--- | Region resource. (== resource_for beta.regions ==) (== resource_for
--- v1.regions ==)
---
--- /See:/ 'region' smart constructor.
-data Region =
-  Region'
-    { _regeStatus            :: !(Maybe RegionStatus)
-    , _regeZones             :: !(Maybe [Text])
-    , _regeKind              :: !Text
-    , _regeSelfLink          :: !(Maybe Text)
-    , _regeName              :: !(Maybe Text)
-    , _regeCreationTimestamp :: !(Maybe Text)
-    , _regeQuotas            :: !(Maybe [Quota])
-    , _regeId                :: !(Maybe (Textual Word64))
-    , _regeDescription       :: !(Maybe Text)
-    , _regeDeprecated        :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Region' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'regeStatus'
---
--- * 'regeZones'
---
--- * 'regeKind'
---
--- * 'regeSelfLink'
---
--- * 'regeName'
---
--- * 'regeCreationTimestamp'
---
--- * 'regeQuotas'
---
--- * 'regeId'
---
--- * 'regeDescription'
---
--- * 'regeDeprecated'
-region
-    :: Region
-region =
-  Region'
-    { _regeStatus = Nothing
-    , _regeZones = Nothing
-    , _regeKind = "compute#region"
-    , _regeSelfLink = Nothing
-    , _regeName = Nothing
-    , _regeCreationTimestamp = Nothing
-    , _regeQuotas = Nothing
-    , _regeId = Nothing
-    , _regeDescription = Nothing
-    , _regeDeprecated = Nothing
-    }
-
-
--- | [Output Only] Status of the region, either UP or DOWN.
-regeStatus :: Lens' Region (Maybe RegionStatus)
-regeStatus
-  = lens _regeStatus (\ s a -> s{_regeStatus = a})
-
--- | [Output Only] A list of zones available in this region, in the form of
--- resource URLs.
-regeZones :: Lens' Region [Text]
-regeZones
-  = lens _regeZones (\ s a -> s{_regeZones = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Type of the resource. Always compute#region for regions.
-regeKind :: Lens' Region Text
-regeKind = lens _regeKind (\ s a -> s{_regeKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-regeSelfLink :: Lens' Region (Maybe Text)
-regeSelfLink
-  = lens _regeSelfLink (\ s a -> s{_regeSelfLink = a})
-
--- | [Output Only] Name of the resource.
-regeName :: Lens' Region (Maybe Text)
-regeName = lens _regeName (\ s a -> s{_regeName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-regeCreationTimestamp :: Lens' Region (Maybe Text)
-regeCreationTimestamp
-  = lens _regeCreationTimestamp
-      (\ s a -> s{_regeCreationTimestamp = a})
-
--- | [Output Only] Quotas assigned to this region.
-regeQuotas :: Lens' Region [Quota]
-regeQuotas
-  = lens _regeQuotas (\ s a -> s{_regeQuotas = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-regeId :: Lens' Region (Maybe Word64)
-regeId
-  = lens _regeId (\ s a -> s{_regeId = a}) .
-      mapping _Coerce
-
--- | [Output Only] Textual description of the resource.
-regeDescription :: Lens' Region (Maybe Text)
-regeDescription
-  = lens _regeDescription
-      (\ s a -> s{_regeDescription = a})
-
--- | [Output Only] The deprecation status associated with this region.
-regeDeprecated :: Lens' Region (Maybe DeprecationStatus)
-regeDeprecated
-  = lens _regeDeprecated
-      (\ s a -> s{_regeDeprecated = a})
-
-instance FromJSON Region where
-        parseJSON
-          = withObject "Region"
-              (\ o ->
-                 Region' <$>
-                   (o .:? "status") <*> (o .:? "zones" .!= mempty) <*>
-                     (o .:? "kind" .!= "compute#region")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "quotas" .!= mempty)
-                     <*> (o .:? "id")
-                     <*> (o .:? "description")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON Region where
-        toJSON Region'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _regeStatus,
-                  ("zones" .=) <$> _regeZones,
-                  Just ("kind" .= _regeKind),
-                  ("selfLink" .=) <$> _regeSelfLink,
-                  ("name" .=) <$> _regeName,
-                  ("creationTimestamp" .=) <$> _regeCreationTimestamp,
-                  ("quotas" .=) <$> _regeQuotas, ("id" .=) <$> _regeId,
-                  ("description" .=) <$> _regeDescription,
-                  ("deprecated" .=) <$> _regeDeprecated])
-
---
--- /See:/ 'operationListWarningDataItem' smart constructor.
-data OperationListWarningDataItem =
-  OperationListWarningDataItem'
-    { _olwdiValue :: !(Maybe Text)
-    , _olwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'olwdiValue'
---
--- * 'olwdiKey'
-operationListWarningDataItem
-    :: OperationListWarningDataItem
-operationListWarningDataItem =
-  OperationListWarningDataItem' {_olwdiValue = Nothing, _olwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-olwdiValue :: Lens' OperationListWarningDataItem (Maybe Text)
-olwdiValue
-  = lens _olwdiValue (\ s a -> s{_olwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-olwdiKey :: Lens' OperationListWarningDataItem (Maybe Text)
-olwdiKey = lens _olwdiKey (\ s a -> s{_olwdiKey = a})
-
-instance FromJSON OperationListWarningDataItem where
-        parseJSON
-          = withObject "OperationListWarningDataItem"
-              (\ o ->
-                 OperationListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON OperationListWarningDataItem where
-        toJSON OperationListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _olwdiValue,
-                  ("key" .=) <$> _olwdiKey])
-
--- | Guest OS features.
---
--- /See:/ 'guestOSFeature' smart constructor.
-newtype GuestOSFeature =
-  GuestOSFeature'
-    { _gofType :: Maybe GuestOSFeatureType
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GuestOSFeature' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gofType'
-guestOSFeature
-    :: GuestOSFeature
-guestOSFeature = GuestOSFeature' {_gofType = Nothing}
-
-
--- | The ID of a supported feature. Read Enabling guest operating system
--- features to see a list of available options.
-gofType :: Lens' GuestOSFeature (Maybe GuestOSFeatureType)
-gofType = lens _gofType (\ s a -> s{_gofType = a})
-
-instance FromJSON GuestOSFeature where
-        parseJSON
-          = withObject "GuestOSFeature"
-              (\ o -> GuestOSFeature' <$> (o .:? "type"))
-
-instance ToJSON GuestOSFeature where
-        toJSON GuestOSFeature'{..}
-          = object (catMaybes [("type" .=) <$> _gofType])
-
--- | VPN tunnel resource. (== resource_for beta.vpnTunnels ==) (==
--- resource_for v1.vpnTunnels ==)
---
--- /See:/ 'vpnTunnel' smart constructor.
-data VPNTunnel =
-  VPNTunnel'
-    { _vtDetailedStatus        :: !(Maybe Text)
-    , _vtStatus                :: !(Maybe VPNTunnelStatus)
-    , _vtLocalTrafficSelector  :: !(Maybe [Text])
-    , _vtKind                  :: !Text
-    , _vtPeerIP                :: !(Maybe Text)
-    , _vtRouter                :: !(Maybe Text)
-    , _vtTargetVPNGateway      :: !(Maybe Text)
-    , _vtRemoteTrafficSelector :: !(Maybe [Text])
-    , _vtSelfLink              :: !(Maybe Text)
-    , _vtSharedSecret          :: !(Maybe Text)
-    , _vtName                  :: !(Maybe Text)
-    , _vtCreationTimestamp     :: !(Maybe Text)
-    , _vtSharedSecretHash      :: !(Maybe Text)
-    , _vtId                    :: !(Maybe (Textual Word64))
-    , _vtIkeVersion            :: !(Maybe (Textual Int32))
-    , _vtRegion                :: !(Maybe Text)
-    , _vtDescription           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnel' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtDetailedStatus'
---
--- * 'vtStatus'
---
--- * 'vtLocalTrafficSelector'
---
--- * 'vtKind'
---
--- * 'vtPeerIP'
---
--- * 'vtRouter'
---
--- * 'vtTargetVPNGateway'
---
--- * 'vtRemoteTrafficSelector'
---
--- * 'vtSelfLink'
---
--- * 'vtSharedSecret'
---
--- * 'vtName'
---
--- * 'vtCreationTimestamp'
---
--- * 'vtSharedSecretHash'
---
--- * 'vtId'
---
--- * 'vtIkeVersion'
---
--- * 'vtRegion'
---
--- * 'vtDescription'
-vpnTunnel
-    :: VPNTunnel
-vpnTunnel =
-  VPNTunnel'
-    { _vtDetailedStatus = Nothing
-    , _vtStatus = Nothing
-    , _vtLocalTrafficSelector = Nothing
-    , _vtKind = "compute#vpnTunnel"
-    , _vtPeerIP = Nothing
-    , _vtRouter = Nothing
-    , _vtTargetVPNGateway = Nothing
-    , _vtRemoteTrafficSelector = Nothing
-    , _vtSelfLink = Nothing
-    , _vtSharedSecret = Nothing
-    , _vtName = Nothing
-    , _vtCreationTimestamp = Nothing
-    , _vtSharedSecretHash = Nothing
-    , _vtId = Nothing
-    , _vtIkeVersion = Nothing
-    , _vtRegion = Nothing
-    , _vtDescription = Nothing
-    }
-
-
--- | [Output Only] Detailed status message for the VPN tunnel.
-vtDetailedStatus :: Lens' VPNTunnel (Maybe Text)
-vtDetailedStatus
-  = lens _vtDetailedStatus
-      (\ s a -> s{_vtDetailedStatus = a})
-
--- | [Output Only] The status of the VPN tunnel, which can be one of the
--- following: - PROVISIONING: Resource is being allocated for the VPN
--- tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related
--- configs from the user. Network, TargetVpnGateway, VpnTunnel,
--- ForwardingRule, and Route resources are needed to setup the VPN tunnel.
--- - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. -
--- ESTABLISHED: Secure session is successfully established with the peer
--- VPN. - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS -
--- AUTHORIZATION_ERROR: Auth error (for example, bad shared secret). -
--- NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: Resources are
--- being deallocated for the VPN tunnel. - FAILED: Tunnel creation has
--- failed and the tunnel is not ready to be used.
-vtStatus :: Lens' VPNTunnel (Maybe VPNTunnelStatus)
-vtStatus = lens _vtStatus (\ s a -> s{_vtStatus = a})
-
--- | Local traffic selector to use when establishing the VPN tunnel with the
--- peer VPN gateway. The value should be a CIDR formatted string, for
--- example: 192.168.0.0\/16. The ranges must be disjoint. Only IPv4 is
--- supported.
-vtLocalTrafficSelector :: Lens' VPNTunnel [Text]
-vtLocalTrafficSelector
-  = lens _vtLocalTrafficSelector
-      (\ s a -> s{_vtLocalTrafficSelector = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Type of resource. Always compute#vpnTunnel for VPN
--- tunnels.
-vtKind :: Lens' VPNTunnel Text
-vtKind = lens _vtKind (\ s a -> s{_vtKind = a})
-
--- | IP address of the peer VPN gateway. Only IPv4 is supported.
-vtPeerIP :: Lens' VPNTunnel (Maybe Text)
-vtPeerIP = lens _vtPeerIP (\ s a -> s{_vtPeerIP = a})
-
--- | URL of the router resource to be used for dynamic routing.
-vtRouter :: Lens' VPNTunnel (Maybe Text)
-vtRouter = lens _vtRouter (\ s a -> s{_vtRouter = a})
-
--- | URL of the Target VPN gateway with which this VPN tunnel is associated.
--- Provided by the client when the VPN tunnel is created.
-vtTargetVPNGateway :: Lens' VPNTunnel (Maybe Text)
-vtTargetVPNGateway
-  = lens _vtTargetVPNGateway
-      (\ s a -> s{_vtTargetVPNGateway = a})
-
--- | Remote traffic selectors to use when establishing the VPN tunnel with
--- the peer VPN gateway. The value should be a CIDR formatted string, for
--- example: 192.168.0.0\/16. The ranges should be disjoint. Only IPv4 is
--- supported.
-vtRemoteTrafficSelector :: Lens' VPNTunnel [Text]
-vtRemoteTrafficSelector
-  = lens _vtRemoteTrafficSelector
-      (\ s a -> s{_vtRemoteTrafficSelector = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-vtSelfLink :: Lens' VPNTunnel (Maybe Text)
-vtSelfLink
-  = lens _vtSelfLink (\ s a -> s{_vtSelfLink = a})
-
--- | Shared secret used to set the secure session between the Cloud VPN
--- gateway and the peer VPN gateway.
-vtSharedSecret :: Lens' VPNTunnel (Maybe Text)
-vtSharedSecret
-  = lens _vtSharedSecret
-      (\ s a -> s{_vtSharedSecret = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-vtName :: Lens' VPNTunnel (Maybe Text)
-vtName = lens _vtName (\ s a -> s{_vtName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-vtCreationTimestamp :: Lens' VPNTunnel (Maybe Text)
-vtCreationTimestamp
-  = lens _vtCreationTimestamp
-      (\ s a -> s{_vtCreationTimestamp = a})
-
--- | Hash of the shared secret.
-vtSharedSecretHash :: Lens' VPNTunnel (Maybe Text)
-vtSharedSecretHash
-  = lens _vtSharedSecretHash
-      (\ s a -> s{_vtSharedSecretHash = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-vtId :: Lens' VPNTunnel (Maybe Word64)
-vtId
-  = lens _vtId (\ s a -> s{_vtId = a}) .
-      mapping _Coerce
-
--- | IKE protocol version to use when establishing the VPN tunnel with the
--- peer VPN gateway. Acceptable IKE versions are 1 or 2. The default
--- version is 2.
-vtIkeVersion :: Lens' VPNTunnel (Maybe Int32)
-vtIkeVersion
-  = lens _vtIkeVersion (\ s a -> s{_vtIkeVersion = a})
-      . mapping _Coerce
-
--- | [Output Only] URL of the region where the VPN tunnel resides. You must
--- specify this field as part of the HTTP request URL. It is not settable
--- as a field in the request body.
-vtRegion :: Lens' VPNTunnel (Maybe Text)
-vtRegion = lens _vtRegion (\ s a -> s{_vtRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-vtDescription :: Lens' VPNTunnel (Maybe Text)
-vtDescription
-  = lens _vtDescription
-      (\ s a -> s{_vtDescription = a})
-
-instance FromJSON VPNTunnel where
-        parseJSON
-          = withObject "VPNTunnel"
-              (\ o ->
-                 VPNTunnel' <$>
-                   (o .:? "detailedStatus") <*> (o .:? "status") <*>
-                     (o .:? "localTrafficSelector" .!= mempty)
-                     <*> (o .:? "kind" .!= "compute#vpnTunnel")
-                     <*> (o .:? "peerIp")
-                     <*> (o .:? "router")
-                     <*> (o .:? "targetVpnGateway")
-                     <*> (o .:? "remoteTrafficSelector" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "sharedSecret")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "sharedSecretHash")
-                     <*> (o .:? "id")
-                     <*> (o .:? "ikeVersion")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description"))
-
-instance ToJSON VPNTunnel where
-        toJSON VPNTunnel'{..}
-          = object
-              (catMaybes
-                 [("detailedStatus" .=) <$> _vtDetailedStatus,
-                  ("status" .=) <$> _vtStatus,
-                  ("localTrafficSelector" .=) <$>
-                    _vtLocalTrafficSelector,
-                  Just ("kind" .= _vtKind),
-                  ("peerIp" .=) <$> _vtPeerIP,
-                  ("router" .=) <$> _vtRouter,
-                  ("targetVpnGateway" .=) <$> _vtTargetVPNGateway,
-                  ("remoteTrafficSelector" .=) <$>
-                    _vtRemoteTrafficSelector,
-                  ("selfLink" .=) <$> _vtSelfLink,
-                  ("sharedSecret" .=) <$> _vtSharedSecret,
-                  ("name" .=) <$> _vtName,
-                  ("creationTimestamp" .=) <$> _vtCreationTimestamp,
-                  ("sharedSecretHash" .=) <$> _vtSharedSecretHash,
-                  ("id" .=) <$> _vtId,
-                  ("ikeVersion" .=) <$> _vtIkeVersion,
-                  ("region" .=) <$> _vtRegion,
-                  ("description" .=) <$> _vtDescription])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceGroupManagerAggregatedListWarning' smart constructor.
-data InstanceGroupManagerAggregatedListWarning =
-  InstanceGroupManagerAggregatedListWarning'
-    { _igmalwData    :: !(Maybe [InstanceGroupManagerAggregatedListWarningDataItem])
-    , _igmalwCode    :: !(Maybe InstanceGroupManagerAggregatedListWarningCode)
-    , _igmalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagerAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmalwData'
---
--- * 'igmalwCode'
---
--- * 'igmalwMessage'
-instanceGroupManagerAggregatedListWarning
-    :: InstanceGroupManagerAggregatedListWarning
-instanceGroupManagerAggregatedListWarning =
-  InstanceGroupManagerAggregatedListWarning'
-    {_igmalwData = Nothing, _igmalwCode = Nothing, _igmalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igmalwData :: Lens' InstanceGroupManagerAggregatedListWarning [InstanceGroupManagerAggregatedListWarningDataItem]
-igmalwData
-  = lens _igmalwData (\ s a -> s{_igmalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igmalwCode :: Lens' InstanceGroupManagerAggregatedListWarning (Maybe InstanceGroupManagerAggregatedListWarningCode)
-igmalwCode
-  = lens _igmalwCode (\ s a -> s{_igmalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igmalwMessage :: Lens' InstanceGroupManagerAggregatedListWarning (Maybe Text)
-igmalwMessage
-  = lens _igmalwMessage
-      (\ s a -> s{_igmalwMessage = a})
-
-instance FromJSON
-           InstanceGroupManagerAggregatedListWarning
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagerAggregatedListWarning"
-              (\ o ->
-                 InstanceGroupManagerAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           InstanceGroupManagerAggregatedListWarning
-         where
-        toJSON InstanceGroupManagerAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igmalwData,
-                  ("code" .=) <$> _igmalwCode,
-                  ("message" .=) <$> _igmalwMessage])
-
---
--- /See:/ 'diskListWarningDataItem' smart constructor.
-data DiskListWarningDataItem =
-  DiskListWarningDataItem'
-    { _dlwdiValue :: !(Maybe Text)
-    , _dlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dlwdiValue'
---
--- * 'dlwdiKey'
-diskListWarningDataItem
-    :: DiskListWarningDataItem
-diskListWarningDataItem =
-  DiskListWarningDataItem' {_dlwdiValue = Nothing, _dlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-dlwdiValue :: Lens' DiskListWarningDataItem (Maybe Text)
-dlwdiValue
-  = lens _dlwdiValue (\ s a -> s{_dlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-dlwdiKey :: Lens' DiskListWarningDataItem (Maybe Text)
-dlwdiKey = lens _dlwdiKey (\ s a -> s{_dlwdiKey = a})
-
-instance FromJSON DiskListWarningDataItem where
-        parseJSON
-          = withObject "DiskListWarningDataItem"
-              (\ o ->
-                 DiskListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON DiskListWarningDataItem where
-        toJSON DiskListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _dlwdiValue,
-                  ("key" .=) <$> _dlwdiKey])
-
--- | A specification of the parameters to use when creating the instance
--- template from a source instance.
---
--- /See:/ 'sourceInstanceParams' smart constructor.
-newtype SourceInstanceParams =
-  SourceInstanceParams'
-    { _sipDiskConfigs :: Maybe [DiskInstantiationConfig]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SourceInstanceParams' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sipDiskConfigs'
-sourceInstanceParams
-    :: SourceInstanceParams
-sourceInstanceParams = SourceInstanceParams' {_sipDiskConfigs = Nothing}
-
-
--- | Attached disks configuration. If not provided, defaults are applied: For
--- boot disk and any other R\/W disks, new custom images will be created
--- from each disk. For read-only disks, they will be attached in read-only
--- mode. Local SSD disks will be created as blank volumes.
-sipDiskConfigs :: Lens' SourceInstanceParams [DiskInstantiationConfig]
-sipDiskConfigs
-  = lens _sipDiskConfigs
-      (\ s a -> s{_sipDiskConfigs = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON SourceInstanceParams where
-        parseJSON
-          = withObject "SourceInstanceParams"
-              (\ o ->
-                 SourceInstanceParams' <$>
-                   (o .:? "diskConfigs" .!= mempty))
-
-instance ToJSON SourceInstanceParams where
-        toJSON SourceInstanceParams'{..}
-          = object
-              (catMaybes [("diskConfigs" .=) <$> _sipDiskConfigs])
-
--- | An alias IP range attached to an instance\'s network interface.
---
--- /See:/ 'aliasIPRange' smart constructor.
-data AliasIPRange =
-  AliasIPRange'
-    { _airIPCIdRRange         :: !(Maybe Text)
-    , _airSubnetworkRangeName :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AliasIPRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'airIPCIdRRange'
---
--- * 'airSubnetworkRangeName'
-aliasIPRange
-    :: AliasIPRange
-aliasIPRange =
-  AliasIPRange' {_airIPCIdRRange = Nothing, _airSubnetworkRangeName = Nothing}
-
-
--- | The IP CIDR range represented by this alias IP range. This IP CIDR range
--- must belong to the specified subnetwork and cannot contain IP addresses
--- reserved by system or used by other network interfaces. This range may
--- be a single IP address (e.g. 10.2.3.4), a netmask (e.g. \/24) or a CIDR
--- format string (e.g. 10.1.2.0\/24).
-airIPCIdRRange :: Lens' AliasIPRange (Maybe Text)
-airIPCIdRRange
-  = lens _airIPCIdRRange
-      (\ s a -> s{_airIPCIdRRange = a})
-
--- | Optional subnetwork secondary range name specifying the secondary range
--- from which to allocate the IP CIDR range for this alias IP range. If
--- left unspecified, the primary range of the subnetwork will be used.
-airSubnetworkRangeName :: Lens' AliasIPRange (Maybe Text)
-airSubnetworkRangeName
-  = lens _airSubnetworkRangeName
-      (\ s a -> s{_airSubnetworkRangeName = a})
-
-instance FromJSON AliasIPRange where
-        parseJSON
-          = withObject "AliasIPRange"
-              (\ o ->
-                 AliasIPRange' <$>
-                   (o .:? "ipCidrRange") <*>
-                     (o .:? "subnetworkRangeName"))
-
-instance ToJSON AliasIPRange where
-        toJSON AliasIPRange'{..}
-          = object
-              (catMaybes
-                 [("ipCidrRange" .=) <$> _airIPCIdRRange,
-                  ("subnetworkRangeName" .=) <$>
-                    _airSubnetworkRangeName])
-
---
--- /See:/ 'nodeTypesScopedListWarningDataItem' smart constructor.
-data NodeTypesScopedListWarningDataItem =
-  NodeTypesScopedListWarningDataItem'
-    { _ntslwditValue :: !(Maybe Text)
-    , _ntslwditKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntslwditValue'
---
--- * 'ntslwditKey'
-nodeTypesScopedListWarningDataItem
-    :: NodeTypesScopedListWarningDataItem
-nodeTypesScopedListWarningDataItem =
-  NodeTypesScopedListWarningDataItem'
-    {_ntslwditValue = Nothing, _ntslwditKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ntslwditValue :: Lens' NodeTypesScopedListWarningDataItem (Maybe Text)
-ntslwditValue
-  = lens _ntslwditValue
-      (\ s a -> s{_ntslwditValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ntslwditKey :: Lens' NodeTypesScopedListWarningDataItem (Maybe Text)
-ntslwditKey
-  = lens _ntslwditKey (\ s a -> s{_ntslwditKey = a})
-
-instance FromJSON NodeTypesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "NodeTypesScopedListWarningDataItem"
-              (\ o ->
-                 NodeTypesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NodeTypesScopedListWarningDataItem
-         where
-        toJSON NodeTypesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ntslwditValue,
-                  ("key" .=) <$> _ntslwditKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'targetInstanceListWarning' smart constructor.
-data TargetInstanceListWarning =
-  TargetInstanceListWarning'
-    { _tilwData    :: !(Maybe [TargetInstanceListWarningDataItem])
-    , _tilwCode    :: !(Maybe TargetInstanceListWarningCode)
-    , _tilwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tilwData'
---
--- * 'tilwCode'
---
--- * 'tilwMessage'
-targetInstanceListWarning
-    :: TargetInstanceListWarning
-targetInstanceListWarning =
-  TargetInstanceListWarning'
-    {_tilwData = Nothing, _tilwCode = Nothing, _tilwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-tilwData :: Lens' TargetInstanceListWarning [TargetInstanceListWarningDataItem]
-tilwData
-  = lens _tilwData (\ s a -> s{_tilwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-tilwCode :: Lens' TargetInstanceListWarning (Maybe TargetInstanceListWarningCode)
-tilwCode = lens _tilwCode (\ s a -> s{_tilwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-tilwMessage :: Lens' TargetInstanceListWarning (Maybe Text)
-tilwMessage
-  = lens _tilwMessage (\ s a -> s{_tilwMessage = a})
-
-instance FromJSON TargetInstanceListWarning where
-        parseJSON
-          = withObject "TargetInstanceListWarning"
-              (\ o ->
-                 TargetInstanceListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON TargetInstanceListWarning where
-        toJSON TargetInstanceListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _tilwData,
-                  ("code" .=) <$> _tilwCode,
-                  ("message" .=) <$> _tilwMessage])
-
--- | A Node Type resource.
---
--- /See:/ 'nodeType' smart constructor.
-data NodeType =
-  NodeType'
-    { _ntKind              :: !Text
-    , _ntZone              :: !(Maybe Text)
-    , _ntCPUPlatform       :: !(Maybe Text)
-    , _ntLocalSsdGb        :: !(Maybe (Textual Int32))
-    , _ntSelfLink          :: !(Maybe Text)
-    , _ntName              :: !(Maybe Text)
-    , _ntCreationTimestamp :: !(Maybe Text)
-    , _ntId                :: !(Maybe (Textual Word64))
-    , _ntGuestCPUs         :: !(Maybe (Textual Int32))
-    , _ntMemoryMb          :: !(Maybe (Textual Int32))
-    , _ntDescription       :: !(Maybe Text)
-    , _ntDeprecated        :: !(Maybe DeprecationStatus)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntKind'
---
--- * 'ntZone'
---
--- * 'ntCPUPlatform'
---
--- * 'ntLocalSsdGb'
---
--- * 'ntSelfLink'
---
--- * 'ntName'
---
--- * 'ntCreationTimestamp'
---
--- * 'ntId'
---
--- * 'ntGuestCPUs'
---
--- * 'ntMemoryMb'
---
--- * 'ntDescription'
---
--- * 'ntDeprecated'
-nodeType
-    :: NodeType
-nodeType =
-  NodeType'
-    { _ntKind = "compute#nodeType"
-    , _ntZone = Nothing
-    , _ntCPUPlatform = Nothing
-    , _ntLocalSsdGb = Nothing
-    , _ntSelfLink = Nothing
-    , _ntName = Nothing
-    , _ntCreationTimestamp = Nothing
-    , _ntId = Nothing
-    , _ntGuestCPUs = Nothing
-    , _ntMemoryMb = Nothing
-    , _ntDescription = Nothing
-    , _ntDeprecated = Nothing
-    }
-
-
--- | [Output Only] The type of the resource. Always compute#nodeType for node
--- types.
-ntKind :: Lens' NodeType Text
-ntKind = lens _ntKind (\ s a -> s{_ntKind = a})
-
--- | [Output Only] The name of the zone where the node type resides, such as
--- us-central1-a.
-ntZone :: Lens' NodeType (Maybe Text)
-ntZone = lens _ntZone (\ s a -> s{_ntZone = a})
-
--- | [Output Only] The CPU platform used by this node type.
-ntCPUPlatform :: Lens' NodeType (Maybe Text)
-ntCPUPlatform
-  = lens _ntCPUPlatform
-      (\ s a -> s{_ntCPUPlatform = a})
-
--- | [Output Only] Local SSD available to the node type, defined in GB.
-ntLocalSsdGb :: Lens' NodeType (Maybe Int32)
-ntLocalSsdGb
-  = lens _ntLocalSsdGb (\ s a -> s{_ntLocalSsdGb = a})
-      . mapping _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-ntSelfLink :: Lens' NodeType (Maybe Text)
-ntSelfLink
-  = lens _ntSelfLink (\ s a -> s{_ntSelfLink = a})
-
--- | [Output Only] Name of the resource.
-ntName :: Lens' NodeType (Maybe Text)
-ntName = lens _ntName (\ s a -> s{_ntName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-ntCreationTimestamp :: Lens' NodeType (Maybe Text)
-ntCreationTimestamp
-  = lens _ntCreationTimestamp
-      (\ s a -> s{_ntCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-ntId :: Lens' NodeType (Maybe Word64)
-ntId
-  = lens _ntId (\ s a -> s{_ntId = a}) .
-      mapping _Coerce
-
--- | [Output Only] The number of virtual CPUs that are available to the node
--- type.
-ntGuestCPUs :: Lens' NodeType (Maybe Int32)
-ntGuestCPUs
-  = lens _ntGuestCPUs (\ s a -> s{_ntGuestCPUs = a}) .
-      mapping _Coerce
-
--- | [Output Only] The amount of physical memory available to the node type,
--- defined in MB.
-ntMemoryMb :: Lens' NodeType (Maybe Int32)
-ntMemoryMb
-  = lens _ntMemoryMb (\ s a -> s{_ntMemoryMb = a}) .
-      mapping _Coerce
-
--- | [Output Only] An optional textual description of the resource.
-ntDescription :: Lens' NodeType (Maybe Text)
-ntDescription
-  = lens _ntDescription
-      (\ s a -> s{_ntDescription = a})
-
--- | [Output Only] The deprecation status associated with this node type.
-ntDeprecated :: Lens' NodeType (Maybe DeprecationStatus)
-ntDeprecated
-  = lens _ntDeprecated (\ s a -> s{_ntDeprecated = a})
-
-instance FromJSON NodeType where
-        parseJSON
-          = withObject "NodeType"
-              (\ o ->
-                 NodeType' <$>
-                   (o .:? "kind" .!= "compute#nodeType") <*>
-                     (o .:? "zone")
-                     <*> (o .:? "cpuPlatform")
-                     <*> (o .:? "localSsdGb")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "guestCpus")
-                     <*> (o .:? "memoryMb")
-                     <*> (o .:? "description")
-                     <*> (o .:? "deprecated"))
-
-instance ToJSON NodeType where
-        toJSON NodeType'{..}
-          = object
-              (catMaybes
-                 [Just ("kind" .= _ntKind), ("zone" .=) <$> _ntZone,
-                  ("cpuPlatform" .=) <$> _ntCPUPlatform,
-                  ("localSsdGb" .=) <$> _ntLocalSsdGb,
-                  ("selfLink" .=) <$> _ntSelfLink,
-                  ("name" .=) <$> _ntName,
-                  ("creationTimestamp" .=) <$> _ntCreationTimestamp,
-                  ("id" .=) <$> _ntId,
-                  ("guestCpus" .=) <$> _ntGuestCPUs,
-                  ("memoryMb" .=) <$> _ntMemoryMb,
-                  ("description" .=) <$> _ntDescription,
-                  ("deprecated" .=) <$> _ntDeprecated])
-
--- | Authorization-related information used by Cloud Audit Logging.
---
--- /See:/ 'authorizationLoggingOptions' smart constructor.
-newtype AuthorizationLoggingOptions =
-  AuthorizationLoggingOptions'
-    { _aloPermissionType :: Maybe AuthorizationLoggingOptionsPermissionType
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AuthorizationLoggingOptions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aloPermissionType'
-authorizationLoggingOptions
-    :: AuthorizationLoggingOptions
-authorizationLoggingOptions =
-  AuthorizationLoggingOptions' {_aloPermissionType = Nothing}
-
-
--- | The type of the permission that was checked.
-aloPermissionType :: Lens' AuthorizationLoggingOptions (Maybe AuthorizationLoggingOptionsPermissionType)
-aloPermissionType
-  = lens _aloPermissionType
-      (\ s a -> s{_aloPermissionType = a})
-
-instance FromJSON AuthorizationLoggingOptions where
-        parseJSON
-          = withObject "AuthorizationLoggingOptions"
-              (\ o ->
-                 AuthorizationLoggingOptions' <$>
-                   (o .:? "permissionType"))
-
-instance ToJSON AuthorizationLoggingOptions where
-        toJSON AuthorizationLoggingOptions'{..}
-          = object
-              (catMaybes
-                 [("permissionType" .=) <$> _aloPermissionType])
-
--- | Defines an Identity and Access Management (IAM) policy. It is used to
--- specify access control policies for Cloud Platform resources. A
--- \`Policy\` consists of a list of \`bindings\`. A \`binding\` binds a
--- list of \`members\` to a \`role\`, where the members can be user
--- accounts, Google groups, Google domains, and service accounts. A
--- \`role\` is a named list of permissions defined by IAM. **JSON Example**
--- { \"bindings\": [ { \"role\": \"roles\/owner\", \"members\": [
--- \"user:mike\'example.com\", \"group:admins\'example.com\",
--- \"domain:google.com\",
--- \"serviceAccount:my-other-app\'appspot.gserviceaccount.com\" ] }, {
--- \"role\": \"roles\/viewer\", \"members\": [\"user:sean\'example.com\"] }
--- ] } **YAML Example** bindings: - members: - user:mike\'example.com -
--- group:admins\'example.com - domain:google.com -
--- serviceAccount:my-other-app\'appspot.gserviceaccount.com role:
--- roles\/owner - members: - user:sean\'example.com role: roles\/viewer For
--- a description of IAM and its features, see the [IAM developer\'s
--- guide](https:\/\/cloud.google.com\/iam\/docs).
---
--- /See:/ 'policy' smart constructor.
-data Policy =
-  Policy'
-    { _pAuditConfigs :: !(Maybe [AuditConfig])
-    , _pEtag         :: !(Maybe Bytes)
-    , _pRules        :: !(Maybe [Rule])
-    , _pVersion      :: !(Maybe (Textual Int32))
-    , _pBindings     :: !(Maybe [Binding])
-    , _pIAMOwned     :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Policy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pAuditConfigs'
---
--- * 'pEtag'
---
--- * 'pRules'
---
--- * 'pVersion'
---
--- * 'pBindings'
---
--- * 'pIAMOwned'
-policy
-    :: Policy
-policy =
-  Policy'
-    { _pAuditConfigs = Nothing
-    , _pEtag = Nothing
-    , _pRules = Nothing
-    , _pVersion = Nothing
-    , _pBindings = Nothing
-    , _pIAMOwned = Nothing
-    }
-
-
--- | Specifies cloud audit logging configuration for this policy.
-pAuditConfigs :: Lens' Policy [AuditConfig]
-pAuditConfigs
-  = lens _pAuditConfigs
-      (\ s a -> s{_pAuditConfigs = a})
-      . _Default
-      . _Coerce
-
--- | \`etag\` is used for optimistic concurrency control as a way to help
--- prevent simultaneous updates of a policy from overwriting each other. It
--- is strongly suggested that systems make use of the \`etag\` in the
--- read-modify-write cycle to perform policy updates in order to avoid race
--- conditions: An \`etag\` is returned in the response to \`getIamPolicy\`,
--- and systems are expected to put that etag in the request to
--- \`setIamPolicy\` to ensure that their change will be applied to the same
--- version of the policy. If no \`etag\` is provided in the call to
--- \`setIamPolicy\`, then the existing policy is overwritten blindly.
-pEtag :: Lens' Policy (Maybe ByteString)
-pEtag
-  = lens _pEtag (\ s a -> s{_pEtag = a}) .
-      mapping _Bytes
-
--- | If more than one rule is specified, the rules are applied in the
--- following manner: - All matching LOG rules are always applied. - If any
--- DENY\/DENY_WITH_LOG rule matches, permission is denied. Logging will be
--- applied if one or more matching rule requires logging. - Otherwise, if
--- any ALLOW\/ALLOW_WITH_LOG rule matches, permission is granted. Logging
--- will be applied if one or more matching rule requires logging. -
--- Otherwise, if no rule applies, permission is denied.
-pRules :: Lens' Policy [Rule]
-pRules
-  = lens _pRules (\ s a -> s{_pRules = a}) . _Default .
-      _Coerce
-
--- | Deprecated.
-pVersion :: Lens' Policy (Maybe Int32)
-pVersion
-  = lens _pVersion (\ s a -> s{_pVersion = a}) .
-      mapping _Coerce
-
--- | Associates a list of \`members\` to a \`role\`. \`bindings\` with no
--- members will result in an error.
-pBindings :: Lens' Policy [Binding]
-pBindings
-  = lens _pBindings (\ s a -> s{_pBindings = a}) .
-      _Default
-      . _Coerce
-
--- |
-pIAMOwned :: Lens' Policy (Maybe Bool)
-pIAMOwned
-  = lens _pIAMOwned (\ s a -> s{_pIAMOwned = a})
-
-instance FromJSON Policy where
-        parseJSON
-          = withObject "Policy"
-              (\ o ->
-                 Policy' <$>
-                   (o .:? "auditConfigs" .!= mempty) <*> (o .:? "etag")
-                     <*> (o .:? "rules" .!= mempty)
-                     <*> (o .:? "version")
-                     <*> (o .:? "bindings" .!= mempty)
-                     <*> (o .:? "iamOwned"))
-
-instance ToJSON Policy where
-        toJSON Policy'{..}
-          = object
-              (catMaybes
-                 [("auditConfigs" .=) <$> _pAuditConfigs,
-                  ("etag" .=) <$> _pEtag, ("rules" .=) <$> _pRules,
-                  ("version" .=) <$> _pVersion,
-                  ("bindings" .=) <$> _pBindings,
-                  ("iamOwned" .=) <$> _pIAMOwned])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'operationAggregatedListWarning' smart constructor.
-data OperationAggregatedListWarning =
-  OperationAggregatedListWarning'
-    { _oalwData    :: !(Maybe [OperationAggregatedListWarningDataItem])
-    , _oalwCode    :: !(Maybe OperationAggregatedListWarningCode)
-    , _oalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oalwData'
---
--- * 'oalwCode'
---
--- * 'oalwMessage'
-operationAggregatedListWarning
-    :: OperationAggregatedListWarning
-operationAggregatedListWarning =
-  OperationAggregatedListWarning'
-    {_oalwData = Nothing, _oalwCode = Nothing, _oalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-oalwData :: Lens' OperationAggregatedListWarning [OperationAggregatedListWarningDataItem]
-oalwData
-  = lens _oalwData (\ s a -> s{_oalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-oalwCode :: Lens' OperationAggregatedListWarning (Maybe OperationAggregatedListWarningCode)
-oalwCode = lens _oalwCode (\ s a -> s{_oalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-oalwMessage :: Lens' OperationAggregatedListWarning (Maybe Text)
-oalwMessage
-  = lens _oalwMessage (\ s a -> s{_oalwMessage = a})
-
-instance FromJSON OperationAggregatedListWarning
-         where
-        parseJSON
-          = withObject "OperationAggregatedListWarning"
-              (\ o ->
-                 OperationAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON OperationAggregatedListWarning where
-        toJSON OperationAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _oalwData,
-                  ("code" .=) <$> _oalwCode,
-                  ("message" .=) <$> _oalwMessage])
-
---
--- /See:/ 'targetInstanceAggregatedListWarningDataItem' smart constructor.
-data TargetInstanceAggregatedListWarningDataItem =
-  TargetInstanceAggregatedListWarningDataItem'
-    { _tialwdiValue :: !(Maybe Text)
-    , _tialwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstanceAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tialwdiValue'
---
--- * 'tialwdiKey'
-targetInstanceAggregatedListWarningDataItem
-    :: TargetInstanceAggregatedListWarningDataItem
-targetInstanceAggregatedListWarningDataItem =
-  TargetInstanceAggregatedListWarningDataItem'
-    {_tialwdiValue = Nothing, _tialwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tialwdiValue :: Lens' TargetInstanceAggregatedListWarningDataItem (Maybe Text)
-tialwdiValue
-  = lens _tialwdiValue (\ s a -> s{_tialwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tialwdiKey :: Lens' TargetInstanceAggregatedListWarningDataItem (Maybe Text)
-tialwdiKey
-  = lens _tialwdiKey (\ s a -> s{_tialwdiKey = a})
-
-instance FromJSON
-           TargetInstanceAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "TargetInstanceAggregatedListWarningDataItem"
-              (\ o ->
-                 TargetInstanceAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           TargetInstanceAggregatedListWarningDataItem
-         where
-        toJSON
-          TargetInstanceAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tialwdiValue,
-                  ("key" .=) <$> _tialwdiKey])
-
--- | [Output Only] Informational warning which replaces the list of
--- operations when the list is empty.
---
--- /See:/ 'operationsScopedListWarning' smart constructor.
-data OperationsScopedListWarning =
-  OperationsScopedListWarning'
-    { _oslwData    :: !(Maybe [OperationsScopedListWarningDataItem])
-    , _oslwCode    :: !(Maybe OperationsScopedListWarningCode)
-    , _oslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oslwData'
---
--- * 'oslwCode'
---
--- * 'oslwMessage'
-operationsScopedListWarning
-    :: OperationsScopedListWarning
-operationsScopedListWarning =
-  OperationsScopedListWarning'
-    {_oslwData = Nothing, _oslwCode = Nothing, _oslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-oslwData :: Lens' OperationsScopedListWarning [OperationsScopedListWarningDataItem]
-oslwData
-  = lens _oslwData (\ s a -> s{_oslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-oslwCode :: Lens' OperationsScopedListWarning (Maybe OperationsScopedListWarningCode)
-oslwCode = lens _oslwCode (\ s a -> s{_oslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-oslwMessage :: Lens' OperationsScopedListWarning (Maybe Text)
-oslwMessage
-  = lens _oslwMessage (\ s a -> s{_oslwMessage = a})
-
-instance FromJSON OperationsScopedListWarning where
-        parseJSON
-          = withObject "OperationsScopedListWarning"
-              (\ o ->
-                 OperationsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON OperationsScopedListWarning where
-        toJSON OperationsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _oslwData,
-                  ("code" .=) <$> _oslwCode,
-                  ("message" .=) <$> _oslwMessage])
-
---
--- /See:/ 'regionDiskTypeListWarningDataItem' smart constructor.
-data RegionDiskTypeListWarningDataItem =
-  RegionDiskTypeListWarningDataItem'
-    { _rdtlwdiValue :: !(Maybe Text)
-    , _rdtlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDiskTypeListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtlwdiValue'
---
--- * 'rdtlwdiKey'
-regionDiskTypeListWarningDataItem
-    :: RegionDiskTypeListWarningDataItem
-regionDiskTypeListWarningDataItem =
-  RegionDiskTypeListWarningDataItem'
-    {_rdtlwdiValue = Nothing, _rdtlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-rdtlwdiValue :: Lens' RegionDiskTypeListWarningDataItem (Maybe Text)
-rdtlwdiValue
-  = lens _rdtlwdiValue (\ s a -> s{_rdtlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-rdtlwdiKey :: Lens' RegionDiskTypeListWarningDataItem (Maybe Text)
-rdtlwdiKey
-  = lens _rdtlwdiKey (\ s a -> s{_rdtlwdiKey = a})
-
-instance FromJSON RegionDiskTypeListWarningDataItem
-         where
-        parseJSON
-          = withObject "RegionDiskTypeListWarningDataItem"
-              (\ o ->
-                 RegionDiskTypeListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON RegionDiskTypeListWarningDataItem
-         where
-        toJSON RegionDiskTypeListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _rdtlwdiValue,
-                  ("key" .=) <$> _rdtlwdiKey])
-
---
--- /See:/ 'forwardingRuleListWarningDataItem' smart constructor.
-data ForwardingRuleListWarningDataItem =
-  ForwardingRuleListWarningDataItem'
-    { _frlwdiValue :: !(Maybe Text)
-    , _frlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRuleListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frlwdiValue'
---
--- * 'frlwdiKey'
-forwardingRuleListWarningDataItem
-    :: ForwardingRuleListWarningDataItem
-forwardingRuleListWarningDataItem =
-  ForwardingRuleListWarningDataItem'
-    {_frlwdiValue = Nothing, _frlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-frlwdiValue :: Lens' ForwardingRuleListWarningDataItem (Maybe Text)
-frlwdiValue
-  = lens _frlwdiValue (\ s a -> s{_frlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-frlwdiKey :: Lens' ForwardingRuleListWarningDataItem (Maybe Text)
-frlwdiKey
-  = lens _frlwdiKey (\ s a -> s{_frlwdiKey = a})
-
-instance FromJSON ForwardingRuleListWarningDataItem
-         where
-        parseJSON
-          = withObject "ForwardingRuleListWarningDataItem"
-              (\ o ->
-                 ForwardingRuleListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON ForwardingRuleListWarningDataItem
-         where
-        toJSON ForwardingRuleListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _frlwdiValue,
-                  ("key" .=) <$> _frlwdiKey])
-
--- | Sets the scheduling options for an Instance.
---
--- /See:/ 'scheduling' smart constructor.
-data Scheduling =
-  Scheduling'
-    { _sAutomaticRestart  :: !(Maybe Bool)
-    , _sNodeAffinities    :: !(Maybe [SchedulingNodeAffinity])
-    , _sOnHostMaintenance :: !(Maybe SchedulingOnHostMaintenance)
-    , _sPreemptible       :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Scheduling' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sAutomaticRestart'
---
--- * 'sNodeAffinities'
---
--- * 'sOnHostMaintenance'
---
--- * 'sPreemptible'
-scheduling
-    :: Scheduling
-scheduling =
-  Scheduling'
-    { _sAutomaticRestart = Nothing
-    , _sNodeAffinities = Nothing
-    , _sOnHostMaintenance = Nothing
-    , _sPreemptible = Nothing
-    }
-
-
--- | Specifies whether the instance should be automatically restarted if it
--- is terminated by Compute Engine (not terminated by a user). You can only
--- set the automatic restart option for standard instances. Preemptible
--- instances cannot be automatically restarted. By default, this is set to
--- true so an instance is automatically restarted if it is terminated by
--- Compute Engine.
-sAutomaticRestart :: Lens' Scheduling (Maybe Bool)
-sAutomaticRestart
-  = lens _sAutomaticRestart
-      (\ s a -> s{_sAutomaticRestart = a})
-
--- | A set of node affinity and anti-affinity.
-sNodeAffinities :: Lens' Scheduling [SchedulingNodeAffinity]
-sNodeAffinities
-  = lens _sNodeAffinities
-      (\ s a -> s{_sNodeAffinities = a})
-      . _Default
-      . _Coerce
-
--- | Defines the maintenance behavior for this instance. For standard
--- instances, the default behavior is MIGRATE. For preemptible instances,
--- the default and only possible behavior is TERMINATE. For more
--- information, see Setting Instance Scheduling Options.
-sOnHostMaintenance :: Lens' Scheduling (Maybe SchedulingOnHostMaintenance)
-sOnHostMaintenance
-  = lens _sOnHostMaintenance
-      (\ s a -> s{_sOnHostMaintenance = a})
-
--- | Defines whether the instance is preemptible. This can only be set during
--- instance creation, it cannot be set or changed after the instance has
--- been created.
-sPreemptible :: Lens' Scheduling (Maybe Bool)
-sPreemptible
-  = lens _sPreemptible (\ s a -> s{_sPreemptible = a})
-
-instance FromJSON Scheduling where
-        parseJSON
-          = withObject "Scheduling"
-              (\ o ->
-                 Scheduling' <$>
-                   (o .:? "automaticRestart") <*>
-                     (o .:? "nodeAffinities" .!= mempty)
-                     <*> (o .:? "onHostMaintenance")
-                     <*> (o .:? "preemptible"))
-
-instance ToJSON Scheduling where
-        toJSON Scheduling'{..}
-          = object
-              (catMaybes
-                 [("automaticRestart" .=) <$> _sAutomaticRestart,
-                  ("nodeAffinities" .=) <$> _sNodeAffinities,
-                  ("onHostMaintenance" .=) <$> _sOnHostMaintenance,
-                  ("preemptible" .=) <$> _sPreemptible])
-
---
--- /See:/ 'vpnTunnelsScopedListWarningDataItem' smart constructor.
-data VPNTunnelsScopedListWarningDataItem =
-  VPNTunnelsScopedListWarningDataItem'
-    { _vtslwdiValue :: !(Maybe Text)
-    , _vtslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtslwdiValue'
---
--- * 'vtslwdiKey'
-vpnTunnelsScopedListWarningDataItem
-    :: VPNTunnelsScopedListWarningDataItem
-vpnTunnelsScopedListWarningDataItem =
-  VPNTunnelsScopedListWarningDataItem'
-    {_vtslwdiValue = Nothing, _vtslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-vtslwdiValue :: Lens' VPNTunnelsScopedListWarningDataItem (Maybe Text)
-vtslwdiValue
-  = lens _vtslwdiValue (\ s a -> s{_vtslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-vtslwdiKey :: Lens' VPNTunnelsScopedListWarningDataItem (Maybe Text)
-vtslwdiKey
-  = lens _vtslwdiKey (\ s a -> s{_vtslwdiKey = a})
-
-instance FromJSON VPNTunnelsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "VPNTunnelsScopedListWarningDataItem"
-              (\ o ->
-                 VPNTunnelsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON VPNTunnelsScopedListWarningDataItem
-         where
-        toJSON VPNTunnelsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _vtslwdiValue,
-                  ("key" .=) <$> _vtslwdiKey])
-
--- | Response to the list request, and contains a list of interconnects.
---
--- /See:/ 'interconnectList' smart constructor.
-data InterconnectList =
-  InterconnectList'
-    { _intnNextPageToken :: !(Maybe Text)
-    , _intnKind          :: !Text
-    , _intnItems         :: !(Maybe [Interconnect])
-    , _intnSelfLink      :: !(Maybe Text)
-    , _intnWarning       :: !(Maybe InterconnectListWarning)
-    , _intnId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'intnNextPageToken'
---
--- * 'intnKind'
---
--- * 'intnItems'
---
--- * 'intnSelfLink'
---
--- * 'intnWarning'
---
--- * 'intnId'
-interconnectList
-    :: InterconnectList
-interconnectList =
-  InterconnectList'
-    { _intnNextPageToken = Nothing
-    , _intnKind = "compute#interconnectList"
-    , _intnItems = Nothing
-    , _intnSelfLink = Nothing
-    , _intnWarning = Nothing
-    , _intnId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-intnNextPageToken :: Lens' InterconnectList (Maybe Text)
-intnNextPageToken
-  = lens _intnNextPageToken
-      (\ s a -> s{_intnNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#interconnectList for
--- lists of interconnects.
-intnKind :: Lens' InterconnectList Text
-intnKind = lens _intnKind (\ s a -> s{_intnKind = a})
-
--- | A list of Interconnect resources.
-intnItems :: Lens' InterconnectList [Interconnect]
-intnItems
-  = lens _intnItems (\ s a -> s{_intnItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-intnSelfLink :: Lens' InterconnectList (Maybe Text)
-intnSelfLink
-  = lens _intnSelfLink (\ s a -> s{_intnSelfLink = a})
-
--- | [Output Only] Informational warning message.
-intnWarning :: Lens' InterconnectList (Maybe InterconnectListWarning)
-intnWarning
-  = lens _intnWarning (\ s a -> s{_intnWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-intnId :: Lens' InterconnectList (Maybe Text)
-intnId = lens _intnId (\ s a -> s{_intnId = a})
-
-instance FromJSON InterconnectList where
-        parseJSON
-          = withObject "InterconnectList"
-              (\ o ->
-                 InterconnectList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#interconnectList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InterconnectList where
-        toJSON InterconnectList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _intnNextPageToken,
-                  Just ("kind" .= _intnKind),
-                  ("items" .=) <$> _intnItems,
-                  ("selfLink" .=) <$> _intnSelfLink,
-                  ("warning" .=) <$> _intnWarning,
-                  ("id" .=) <$> _intnId])
-
---
--- /See:/ 'targetPoolListWarningDataItem' smart constructor.
-data TargetPoolListWarningDataItem =
-  TargetPoolListWarningDataItem'
-    { _tplwdiValue :: !(Maybe Text)
-    , _tplwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tplwdiValue'
---
--- * 'tplwdiKey'
-targetPoolListWarningDataItem
-    :: TargetPoolListWarningDataItem
-targetPoolListWarningDataItem =
-  TargetPoolListWarningDataItem' {_tplwdiValue = Nothing, _tplwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-tplwdiValue :: Lens' TargetPoolListWarningDataItem (Maybe Text)
-tplwdiValue
-  = lens _tplwdiValue (\ s a -> s{_tplwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-tplwdiKey :: Lens' TargetPoolListWarningDataItem (Maybe Text)
-tplwdiKey
-  = lens _tplwdiKey (\ s a -> s{_tplwdiKey = a})
-
-instance FromJSON TargetPoolListWarningDataItem where
-        parseJSON
-          = withObject "TargetPoolListWarningDataItem"
-              (\ o ->
-                 TargetPoolListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON TargetPoolListWarningDataItem where
-        toJSON TargetPoolListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _tplwdiValue,
-                  ("key" .=) <$> _tplwdiKey])
-
--- | A Node Template resource. To learn more about node templates and
--- sole-tenant nodes, read the Sole-tenant nodes documentation. (==
--- resource_for beta.nodeTemplates ==) (== resource_for v1.nodeTemplates
--- ==)
---
--- /See:/ 'nodeTemplate' smart constructor.
-data NodeTemplate =
-  NodeTemplate'
-    { _nttStatus              :: !(Maybe NodeTemplateStatus)
-    , _nttKind                :: !Text
-    , _nttSelfLink            :: !(Maybe Text)
-    , _nttName                :: !(Maybe Text)
-    , _nttStatusMessage       :: !(Maybe Text)
-    , _nttCreationTimestamp   :: !(Maybe Text)
-    , _nttNodeAffinityLabels  :: !(Maybe NodeTemplateNodeAffinityLabels)
-    , _nttId                  :: !(Maybe (Textual Word64))
-    , _nttNodeTypeFlexibility :: !(Maybe NodeTemplateNodeTypeFlexibility)
-    , _nttNodeType            :: !(Maybe Text)
-    , _nttRegion              :: !(Maybe Text)
-    , _nttDescription         :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nttStatus'
---
--- * 'nttKind'
---
--- * 'nttSelfLink'
---
--- * 'nttName'
---
--- * 'nttStatusMessage'
---
--- * 'nttCreationTimestamp'
---
--- * 'nttNodeAffinityLabels'
---
--- * 'nttId'
---
--- * 'nttNodeTypeFlexibility'
---
--- * 'nttNodeType'
---
--- * 'nttRegion'
---
--- * 'nttDescription'
-nodeTemplate
-    :: NodeTemplate
-nodeTemplate =
-  NodeTemplate'
-    { _nttStatus = Nothing
-    , _nttKind = "compute#nodeTemplate"
-    , _nttSelfLink = Nothing
-    , _nttName = Nothing
-    , _nttStatusMessage = Nothing
-    , _nttCreationTimestamp = Nothing
-    , _nttNodeAffinityLabels = Nothing
-    , _nttId = Nothing
-    , _nttNodeTypeFlexibility = Nothing
-    , _nttNodeType = Nothing
-    , _nttRegion = Nothing
-    , _nttDescription = Nothing
-    }
-
-
--- | [Output Only] The status of the node template. One of the following
--- values: CREATING, READY, and DELETING.
-nttStatus :: Lens' NodeTemplate (Maybe NodeTemplateStatus)
-nttStatus
-  = lens _nttStatus (\ s a -> s{_nttStatus = a})
-
--- | [Output Only] The type of the resource. Always compute#nodeTemplate for
--- node templates.
-nttKind :: Lens' NodeTemplate Text
-nttKind = lens _nttKind (\ s a -> s{_nttKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-nttSelfLink :: Lens' NodeTemplate (Maybe Text)
-nttSelfLink
-  = lens _nttSelfLink (\ s a -> s{_nttSelfLink = a})
-
--- | The name of the resource, provided by the client when initially creating
--- the resource. The resource name must be 1-63 characters long, and comply
--- with RFC1035. Specifically, the name must be 1-63 characters long and
--- match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means
--- the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash.
-nttName :: Lens' NodeTemplate (Maybe Text)
-nttName = lens _nttName (\ s a -> s{_nttName = a})
-
--- | [Output Only] An optional, human-readable explanation of the status.
-nttStatusMessage :: Lens' NodeTemplate (Maybe Text)
-nttStatusMessage
-  = lens _nttStatusMessage
-      (\ s a -> s{_nttStatusMessage = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-nttCreationTimestamp :: Lens' NodeTemplate (Maybe Text)
-nttCreationTimestamp
-  = lens _nttCreationTimestamp
-      (\ s a -> s{_nttCreationTimestamp = a})
-
--- | Labels to use for node affinity, which will be used in instance
--- scheduling.
-nttNodeAffinityLabels :: Lens' NodeTemplate (Maybe NodeTemplateNodeAffinityLabels)
-nttNodeAffinityLabels
-  = lens _nttNodeAffinityLabels
-      (\ s a -> s{_nttNodeAffinityLabels = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-nttId :: Lens' NodeTemplate (Maybe Word64)
-nttId
-  = lens _nttId (\ s a -> s{_nttId = a}) .
-      mapping _Coerce
-
--- | The flexible properties of the desired node type. Node groups that use
--- this node template will create nodes of a type that matches these
--- properties. This field is mutually exclusive with the node_type
--- property; you can only define one or the other, but not both.
-nttNodeTypeFlexibility :: Lens' NodeTemplate (Maybe NodeTemplateNodeTypeFlexibility)
-nttNodeTypeFlexibility
-  = lens _nttNodeTypeFlexibility
-      (\ s a -> s{_nttNodeTypeFlexibility = a})
-
--- | The node type to use for nodes group that are created from this
--- template.
-nttNodeType :: Lens' NodeTemplate (Maybe Text)
-nttNodeType
-  = lens _nttNodeType (\ s a -> s{_nttNodeType = a})
-
--- | [Output Only] The name of the region where the node template resides,
--- such as us-central1.
-nttRegion :: Lens' NodeTemplate (Maybe Text)
-nttRegion
-  = lens _nttRegion (\ s a -> s{_nttRegion = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-nttDescription :: Lens' NodeTemplate (Maybe Text)
-nttDescription
-  = lens _nttDescription
-      (\ s a -> s{_nttDescription = a})
-
-instance FromJSON NodeTemplate where
-        parseJSON
-          = withObject "NodeTemplate"
-              (\ o ->
-                 NodeTemplate' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#nodeTemplate")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "statusMessage")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "nodeAffinityLabels")
-                     <*> (o .:? "id")
-                     <*> (o .:? "nodeTypeFlexibility")
-                     <*> (o .:? "nodeType")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description"))
-
-instance ToJSON NodeTemplate where
-        toJSON NodeTemplate'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _nttStatus,
-                  Just ("kind" .= _nttKind),
-                  ("selfLink" .=) <$> _nttSelfLink,
-                  ("name" .=) <$> _nttName,
-                  ("statusMessage" .=) <$> _nttStatusMessage,
-                  ("creationTimestamp" .=) <$> _nttCreationTimestamp,
-                  ("nodeAffinityLabels" .=) <$> _nttNodeAffinityLabels,
-                  ("id" .=) <$> _nttId,
-                  ("nodeTypeFlexibility" .=) <$>
-                    _nttNodeTypeFlexibility,
-                  ("nodeType" .=) <$> _nttNodeType,
-                  ("region" .=) <$> _nttRegion,
-                  ("description" .=) <$> _nttDescription])
-
---
--- /See:/ 'networkEndpointGroupList' smart constructor.
-data NetworkEndpointGroupList =
-  NetworkEndpointGroupList'
-    { _neglNextPageToken :: !(Maybe Text)
-    , _neglKind          :: !Text
-    , _neglItems         :: !(Maybe [NetworkEndpointGroup])
-    , _neglSelfLink      :: !(Maybe Text)
-    , _neglWarning       :: !(Maybe NetworkEndpointGroupListWarning)
-    , _neglId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglNextPageToken'
---
--- * 'neglKind'
---
--- * 'neglItems'
---
--- * 'neglSelfLink'
---
--- * 'neglWarning'
---
--- * 'neglId'
-networkEndpointGroupList
-    :: NetworkEndpointGroupList
-networkEndpointGroupList =
-  NetworkEndpointGroupList'
-    { _neglNextPageToken = Nothing
-    , _neglKind = "compute#networkEndpointGroupList"
-    , _neglItems = Nothing
-    , _neglSelfLink = Nothing
-    , _neglWarning = Nothing
-    , _neglId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-neglNextPageToken :: Lens' NetworkEndpointGroupList (Maybe Text)
-neglNextPageToken
-  = lens _neglNextPageToken
-      (\ s a -> s{_neglNextPageToken = a})
-
--- | [Output Only] The resource type, which is always
--- compute#networkEndpointGroupList for network endpoint group lists.
-neglKind :: Lens' NetworkEndpointGroupList Text
-neglKind = lens _neglKind (\ s a -> s{_neglKind = a})
-
--- | A list of NetworkEndpointGroup resources.
-neglItems :: Lens' NetworkEndpointGroupList [NetworkEndpointGroup]
-neglItems
-  = lens _neglItems (\ s a -> s{_neglItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-neglSelfLink :: Lens' NetworkEndpointGroupList (Maybe Text)
-neglSelfLink
-  = lens _neglSelfLink (\ s a -> s{_neglSelfLink = a})
-
--- | [Output Only] Informational warning message.
-neglWarning :: Lens' NetworkEndpointGroupList (Maybe NetworkEndpointGroupListWarning)
-neglWarning
-  = lens _neglWarning (\ s a -> s{_neglWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-neglId :: Lens' NetworkEndpointGroupList (Maybe Text)
-neglId = lens _neglId (\ s a -> s{_neglId = a})
-
-instance FromJSON NetworkEndpointGroupList where
-        parseJSON
-          = withObject "NetworkEndpointGroupList"
-              (\ o ->
-                 NetworkEndpointGroupList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#networkEndpointGroupList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON NetworkEndpointGroupList where
-        toJSON NetworkEndpointGroupList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _neglNextPageToken,
-                  Just ("kind" .= _neglKind),
-                  ("items" .=) <$> _neglItems,
-                  ("selfLink" .=) <$> _neglSelfLink,
-                  ("warning" .=) <$> _neglWarning,
-                  ("id" .=) <$> _neglId])
-
--- | Contains a list of Subnetwork resources.
---
--- /See:/ 'subnetworkList' smart constructor.
-data SubnetworkList =
-  SubnetworkList'
-    { _slNextPageToken :: !(Maybe Text)
-    , _slKind          :: !Text
-    , _slItems         :: !(Maybe [Subnetwork])
-    , _slSelfLink      :: !(Maybe Text)
-    , _slWarning       :: !(Maybe SubnetworkListWarning)
-    , _slId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slNextPageToken'
---
--- * 'slKind'
---
--- * 'slItems'
---
--- * 'slSelfLink'
---
--- * 'slWarning'
---
--- * 'slId'
-subnetworkList
-    :: SubnetworkList
-subnetworkList =
-  SubnetworkList'
-    { _slNextPageToken = Nothing
-    , _slKind = "compute#subnetworkList"
-    , _slItems = Nothing
-    , _slSelfLink = Nothing
-    , _slWarning = Nothing
-    , _slId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-slNextPageToken :: Lens' SubnetworkList (Maybe Text)
-slNextPageToken
-  = lens _slNextPageToken
-      (\ s a -> s{_slNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#subnetworkList for lists
--- of subnetworks.
-slKind :: Lens' SubnetworkList Text
-slKind = lens _slKind (\ s a -> s{_slKind = a})
-
--- | A list of Subnetwork resources.
-slItems :: Lens' SubnetworkList [Subnetwork]
-slItems
-  = lens _slItems (\ s a -> s{_slItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-slSelfLink :: Lens' SubnetworkList (Maybe Text)
-slSelfLink
-  = lens _slSelfLink (\ s a -> s{_slSelfLink = a})
-
--- | [Output Only] Informational warning message.
-slWarning :: Lens' SubnetworkList (Maybe SubnetworkListWarning)
-slWarning
-  = lens _slWarning (\ s a -> s{_slWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-slId :: Lens' SubnetworkList (Maybe Text)
-slId = lens _slId (\ s a -> s{_slId = a})
-
-instance FromJSON SubnetworkList where
-        parseJSON
-          = withObject "SubnetworkList"
-              (\ o ->
-                 SubnetworkList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#subnetworkList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SubnetworkList where
-        toJSON SubnetworkList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _slNextPageToken,
-                  Just ("kind" .= _slKind), ("items" .=) <$> _slItems,
-                  ("selfLink" .=) <$> _slSelfLink,
-                  ("warning" .=) <$> _slWarning, ("id" .=) <$> _slId])
-
--- | Informational warning which replaces the list of forwarding rules when
--- the list is empty.
---
--- /See:/ 'forwardingRulesScopedListWarning' smart constructor.
-data ForwardingRulesScopedListWarning =
-  ForwardingRulesScopedListWarning'
-    { _frslwData    :: !(Maybe [ForwardingRulesScopedListWarningDataItem])
-    , _frslwCode    :: !(Maybe ForwardingRulesScopedListWarningCode)
-    , _frslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frslwData'
---
--- * 'frslwCode'
---
--- * 'frslwMessage'
-forwardingRulesScopedListWarning
-    :: ForwardingRulesScopedListWarning
-forwardingRulesScopedListWarning =
-  ForwardingRulesScopedListWarning'
-    {_frslwData = Nothing, _frslwCode = Nothing, _frslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-frslwData :: Lens' ForwardingRulesScopedListWarning [ForwardingRulesScopedListWarningDataItem]
-frslwData
-  = lens _frslwData (\ s a -> s{_frslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-frslwCode :: Lens' ForwardingRulesScopedListWarning (Maybe ForwardingRulesScopedListWarningCode)
-frslwCode
-  = lens _frslwCode (\ s a -> s{_frslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-frslwMessage :: Lens' ForwardingRulesScopedListWarning (Maybe Text)
-frslwMessage
-  = lens _frslwMessage (\ s a -> s{_frslwMessage = a})
-
-instance FromJSON ForwardingRulesScopedListWarning
-         where
-        parseJSON
-          = withObject "ForwardingRulesScopedListWarning"
-              (\ o ->
-                 ForwardingRulesScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON ForwardingRulesScopedListWarning
-         where
-        toJSON ForwardingRulesScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _frslwData,
-                  ("code" .=) <$> _frslwCode,
-                  ("message" .=) <$> _frslwMessage])
-
--- | Contains a list of HttpHealthCheck resources.
---
--- /See:/ 'hTTPHealthCheckList' smart constructor.
-data HTTPHealthCheckList =
-  HTTPHealthCheckList'
-    { _httphclNextPageToken :: !(Maybe Text)
-    , _httphclKind          :: !Text
-    , _httphclItems         :: !(Maybe [HTTPHealthCheck])
-    , _httphclSelfLink      :: !(Maybe Text)
-    , _httphclWarning       :: !(Maybe HTTPHealthCheckListWarning)
-    , _httphclId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthCheckList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphclNextPageToken'
---
--- * 'httphclKind'
---
--- * 'httphclItems'
---
--- * 'httphclSelfLink'
---
--- * 'httphclWarning'
---
--- * 'httphclId'
-hTTPHealthCheckList
-    :: HTTPHealthCheckList
-hTTPHealthCheckList =
-  HTTPHealthCheckList'
-    { _httphclNextPageToken = Nothing
-    , _httphclKind = "compute#httpHealthCheckList"
-    , _httphclItems = Nothing
-    , _httphclSelfLink = Nothing
-    , _httphclWarning = Nothing
-    , _httphclId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-httphclNextPageToken :: Lens' HTTPHealthCheckList (Maybe Text)
-httphclNextPageToken
-  = lens _httphclNextPageToken
-      (\ s a -> s{_httphclNextPageToken = a})
-
--- | Type of resource.
-httphclKind :: Lens' HTTPHealthCheckList Text
-httphclKind
-  = lens _httphclKind (\ s a -> s{_httphclKind = a})
-
--- | A list of HttpHealthCheck resources.
-httphclItems :: Lens' HTTPHealthCheckList [HTTPHealthCheck]
-httphclItems
-  = lens _httphclItems (\ s a -> s{_httphclItems = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-httphclSelfLink :: Lens' HTTPHealthCheckList (Maybe Text)
-httphclSelfLink
-  = lens _httphclSelfLink
-      (\ s a -> s{_httphclSelfLink = a})
-
--- | [Output Only] Informational warning message.
-httphclWarning :: Lens' HTTPHealthCheckList (Maybe HTTPHealthCheckListWarning)
-httphclWarning
-  = lens _httphclWarning
-      (\ s a -> s{_httphclWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-httphclId :: Lens' HTTPHealthCheckList (Maybe Text)
-httphclId
-  = lens _httphclId (\ s a -> s{_httphclId = a})
-
-instance FromJSON HTTPHealthCheckList where
-        parseJSON
-          = withObject "HTTPHealthCheckList"
-              (\ o ->
-                 HTTPHealthCheckList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#httpHealthCheckList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON HTTPHealthCheckList where
-        toJSON HTTPHealthCheckList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _httphclNextPageToken,
-                  Just ("kind" .= _httphclKind),
-                  ("items" .=) <$> _httphclItems,
-                  ("selfLink" .=) <$> _httphclSelfLink,
-                  ("warning" .=) <$> _httphclWarning,
-                  ("id" .=) <$> _httphclId])
-
--- | [Output Only] The warning that replaces the list of managed instance
--- groups when the list is empty.
---
--- /See:/ 'instanceGroupManagersScopedListWarning' smart constructor.
-data InstanceGroupManagersScopedListWarning =
-  InstanceGroupManagersScopedListWarning'
-    { _igmslwData    :: !(Maybe [InstanceGroupManagersScopedListWarningDataItem])
-    , _igmslwCode    :: !(Maybe InstanceGroupManagersScopedListWarningCode)
-    , _igmslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmslwData'
---
--- * 'igmslwCode'
---
--- * 'igmslwMessage'
-instanceGroupManagersScopedListWarning
-    :: InstanceGroupManagersScopedListWarning
-instanceGroupManagersScopedListWarning =
-  InstanceGroupManagersScopedListWarning'
-    {_igmslwData = Nothing, _igmslwCode = Nothing, _igmslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igmslwData :: Lens' InstanceGroupManagersScopedListWarning [InstanceGroupManagersScopedListWarningDataItem]
-igmslwData
-  = lens _igmslwData (\ s a -> s{_igmslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igmslwCode :: Lens' InstanceGroupManagersScopedListWarning (Maybe InstanceGroupManagersScopedListWarningCode)
-igmslwCode
-  = lens _igmslwCode (\ s a -> s{_igmslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igmslwMessage :: Lens' InstanceGroupManagersScopedListWarning (Maybe Text)
-igmslwMessage
-  = lens _igmslwMessage
-      (\ s a -> s{_igmslwMessage = a})
-
-instance FromJSON
-           InstanceGroupManagersScopedListWarning
-         where
-        parseJSON
-          = withObject "InstanceGroupManagersScopedListWarning"
-              (\ o ->
-                 InstanceGroupManagersScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           InstanceGroupManagersScopedListWarning
-         where
-        toJSON InstanceGroupManagersScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igmslwData,
-                  ("code" .=) <$> _igmslwCode,
-                  ("message" .=) <$> _igmslwMessage])
-
---
--- /See:/ 'sslPoliciesList' smart constructor.
-data SSLPoliciesList =
-  SSLPoliciesList'
-    { _sslplNextPageToken :: !(Maybe Text)
-    , _sslplKind          :: !Text
-    , _sslplItems         :: !(Maybe [SSLPolicy])
-    , _sslplSelfLink      :: !(Maybe Text)
-    , _sslplWarning       :: !(Maybe SSLPoliciesListWarning)
-    , _sslplId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslplNextPageToken'
---
--- * 'sslplKind'
---
--- * 'sslplItems'
---
--- * 'sslplSelfLink'
---
--- * 'sslplWarning'
---
--- * 'sslplId'
-sslPoliciesList
-    :: SSLPoliciesList
-sslPoliciesList =
-  SSLPoliciesList'
-    { _sslplNextPageToken = Nothing
-    , _sslplKind = "compute#sslPoliciesList"
-    , _sslplItems = Nothing
-    , _sslplSelfLink = Nothing
-    , _sslplWarning = Nothing
-    , _sslplId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-sslplNextPageToken :: Lens' SSLPoliciesList (Maybe Text)
-sslplNextPageToken
-  = lens _sslplNextPageToken
-      (\ s a -> s{_sslplNextPageToken = a})
-
--- | [Output Only] Type of the resource. Always compute#sslPoliciesList for
--- lists of sslPolicies.
-sslplKind :: Lens' SSLPoliciesList Text
-sslplKind
-  = lens _sslplKind (\ s a -> s{_sslplKind = a})
-
--- | A list of SslPolicy resources.
-sslplItems :: Lens' SSLPoliciesList [SSLPolicy]
-sslplItems
-  = lens _sslplItems (\ s a -> s{_sslplItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-sslplSelfLink :: Lens' SSLPoliciesList (Maybe Text)
-sslplSelfLink
-  = lens _sslplSelfLink
-      (\ s a -> s{_sslplSelfLink = a})
-
--- | [Output Only] Informational warning message.
-sslplWarning :: Lens' SSLPoliciesList (Maybe SSLPoliciesListWarning)
-sslplWarning
-  = lens _sslplWarning (\ s a -> s{_sslplWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-sslplId :: Lens' SSLPoliciesList (Maybe Text)
-sslplId = lens _sslplId (\ s a -> s{_sslplId = a})
-
-instance FromJSON SSLPoliciesList where
-        parseJSON
-          = withObject "SSLPoliciesList"
-              (\ o ->
-                 SSLPoliciesList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#sslPoliciesList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SSLPoliciesList where
-        toJSON SSLPoliciesList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _sslplNextPageToken,
-                  Just ("kind" .= _sslplKind),
-                  ("items" .=) <$> _sslplItems,
-                  ("selfLink" .=) <$> _sslplSelfLink,
-                  ("warning" .=) <$> _sslplWarning,
-                  ("id" .=) <$> _sslplId])
-
---
--- /See:/ 'urlMapsValidateRequest' smart constructor.
-newtype URLMapsValidateRequest =
-  URLMapsValidateRequest'
-    { _umvrResource :: Maybe URLMap
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsValidateRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umvrResource'
-urlMapsValidateRequest
-    :: URLMapsValidateRequest
-urlMapsValidateRequest = URLMapsValidateRequest' {_umvrResource = Nothing}
-
-
--- | Content of the UrlMap to be validated.
-umvrResource :: Lens' URLMapsValidateRequest (Maybe URLMap)
-umvrResource
-  = lens _umvrResource (\ s a -> s{_umvrResource = a})
-
-instance FromJSON URLMapsValidateRequest where
-        parseJSON
-          = withObject "URLMapsValidateRequest"
-              (\ o ->
-                 URLMapsValidateRequest' <$> (o .:? "resource"))
-
-instance ToJSON URLMapsValidateRequest where
-        toJSON URLMapsValidateRequest'{..}
-          = object
-              (catMaybes [("resource" .=) <$> _umvrResource])
-
---
--- /See:/ 'instanceGroupManagersSetTargetPoolsRequest' smart constructor.
-data InstanceGroupManagersSetTargetPoolsRequest =
-  InstanceGroupManagersSetTargetPoolsRequest'
-    { _igmstprFingerprint :: !(Maybe Bytes)
-    , _igmstprTargetPools :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersSetTargetPoolsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmstprFingerprint'
---
--- * 'igmstprTargetPools'
-instanceGroupManagersSetTargetPoolsRequest
-    :: InstanceGroupManagersSetTargetPoolsRequest
-instanceGroupManagersSetTargetPoolsRequest =
-  InstanceGroupManagersSetTargetPoolsRequest'
-    {_igmstprFingerprint = Nothing, _igmstprTargetPools = Nothing}
-
-
--- | The fingerprint of the target pools information. Use this optional
--- property to prevent conflicts when multiple users change the target
--- pools settings concurrently. Obtain the fingerprint with the
--- instanceGroupManagers.get method. Then, include the fingerprint in your
--- request to ensure that you do not overwrite changes that were applied
--- from another concurrent request.
-igmstprFingerprint :: Lens' InstanceGroupManagersSetTargetPoolsRequest (Maybe ByteString)
-igmstprFingerprint
-  = lens _igmstprFingerprint
-      (\ s a -> s{_igmstprFingerprint = a})
-      . mapping _Bytes
-
--- | The list of target pool URLs that instances in this managed instance
--- group belong to. The managed instance group applies these target pools
--- to all of the instances in the group. Existing instances and new
--- instances in the group all receive these target pool settings.
-igmstprTargetPools :: Lens' InstanceGroupManagersSetTargetPoolsRequest [Text]
-igmstprTargetPools
-  = lens _igmstprTargetPools
-      (\ s a -> s{_igmstprTargetPools = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON
-           InstanceGroupManagersSetTargetPoolsRequest
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupManagersSetTargetPoolsRequest"
-              (\ o ->
-                 InstanceGroupManagersSetTargetPoolsRequest' <$>
-                   (o .:? "fingerprint") <*>
-                     (o .:? "targetPools" .!= mempty))
-
-instance ToJSON
-           InstanceGroupManagersSetTargetPoolsRequest
-         where
-        toJSON
-          InstanceGroupManagersSetTargetPoolsRequest'{..}
-          = object
-              (catMaybes
-                 [("fingerprint" .=) <$> _igmstprFingerprint,
-                  ("targetPools" .=) <$> _igmstprTargetPools])
-
--- | Represents a Commitment resource. Creating a Commitment resource means
--- that you are purchasing a committed use contract with an explicit start
--- and end time. You can create commitments based on vCPUs and memory usage
--- and receive discounted rates. For full details, read Signing Up for
--- Committed Use Discounts. Committed use discounts are subject to Google
--- Cloud Platform\'s Service Specific Terms. By purchasing a committed use
--- discount, you agree to these terms. Committed use discounts will not
--- renew, so you must purchase a new commitment to continue receiving
--- discounts. (== resource_for beta.commitments ==) (== resource_for
--- v1.commitments ==)
---
--- /See:/ 'commitment' smart constructor.
-data Commitment =
-  Commitment'
-    { _cStatus            :: !(Maybe CommitmentStatus)
-    , _cKind              :: !Text
-    , _cPlan              :: !(Maybe CommitmentPlan)
-    , _cResources         :: !(Maybe [ResourceCommitment])
-    , _cEndTimestamp      :: !(Maybe Text)
-    , _cSelfLink          :: !(Maybe Text)
-    , _cName              :: !(Maybe Text)
-    , _cStatusMessage     :: !(Maybe Text)
-    , _cCreationTimestamp :: !(Maybe Text)
-    , _cId                :: !(Maybe (Textual Word64))
-    , _cRegion            :: !(Maybe Text)
-    , _cStartTimestamp    :: !(Maybe Text)
-    , _cDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Commitment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cStatus'
---
--- * 'cKind'
---
--- * 'cPlan'
---
--- * 'cResources'
---
--- * 'cEndTimestamp'
---
--- * 'cSelfLink'
---
--- * 'cName'
---
--- * 'cStatusMessage'
---
--- * 'cCreationTimestamp'
---
--- * 'cId'
---
--- * 'cRegion'
---
--- * 'cStartTimestamp'
---
--- * 'cDescription'
-commitment
-    :: Commitment
-commitment =
-  Commitment'
-    { _cStatus = Nothing
-    , _cKind = "compute#commitment"
-    , _cPlan = Nothing
-    , _cResources = Nothing
-    , _cEndTimestamp = Nothing
-    , _cSelfLink = Nothing
-    , _cName = Nothing
-    , _cStatusMessage = Nothing
-    , _cCreationTimestamp = Nothing
-    , _cId = Nothing
-    , _cRegion = Nothing
-    , _cStartTimestamp = Nothing
-    , _cDescription = Nothing
-    }
-
-
--- | [Output Only] Status of the commitment with regards to eventual
--- expiration (each commitment has an end date defined). One of the
--- following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-cStatus :: Lens' Commitment (Maybe CommitmentStatus)
-cStatus = lens _cStatus (\ s a -> s{_cStatus = a})
-
--- | [Output Only] Type of the resource. Always compute#commitment for
--- commitments.
-cKind :: Lens' Commitment Text
-cKind = lens _cKind (\ s a -> s{_cKind = a})
-
--- | The plan for this commitment, which determines duration and discount
--- rate. The currently supported plans are TWELVE_MONTH (1 year), and
--- THIRTY_SIX_MONTH (3 years).
-cPlan :: Lens' Commitment (Maybe CommitmentPlan)
-cPlan = lens _cPlan (\ s a -> s{_cPlan = a})
-
--- | A list of commitment amounts for particular resources. Note that VCPU
--- and MEMORY resource commitments must occur together.
-cResources :: Lens' Commitment [ResourceCommitment]
-cResources
-  = lens _cResources (\ s a -> s{_cResources = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Commitment end time in RFC3339 text format.
-cEndTimestamp :: Lens' Commitment (Maybe Text)
-cEndTimestamp
-  = lens _cEndTimestamp
-      (\ s a -> s{_cEndTimestamp = a})
-
--- | [Output Only] Server-defined URL for the resource.
-cSelfLink :: Lens' Commitment (Maybe Text)
-cSelfLink
-  = lens _cSelfLink (\ s a -> s{_cSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-cName :: Lens' Commitment (Maybe Text)
-cName = lens _cName (\ s a -> s{_cName = a})
-
--- | [Output Only] An optional, human-readable explanation of the status.
-cStatusMessage :: Lens' Commitment (Maybe Text)
-cStatusMessage
-  = lens _cStatusMessage
-      (\ s a -> s{_cStatusMessage = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-cCreationTimestamp :: Lens' Commitment (Maybe Text)
-cCreationTimestamp
-  = lens _cCreationTimestamp
-      (\ s a -> s{_cCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-cId :: Lens' Commitment (Maybe Word64)
-cId
-  = lens _cId (\ s a -> s{_cId = a}) . mapping _Coerce
-
--- | [Output Only] URL of the region where this commitment may be used.
-cRegion :: Lens' Commitment (Maybe Text)
-cRegion = lens _cRegion (\ s a -> s{_cRegion = a})
-
--- | [Output Only] Commitment start time in RFC3339 text format.
-cStartTimestamp :: Lens' Commitment (Maybe Text)
-cStartTimestamp
-  = lens _cStartTimestamp
-      (\ s a -> s{_cStartTimestamp = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-cDescription :: Lens' Commitment (Maybe Text)
-cDescription
-  = lens _cDescription (\ s a -> s{_cDescription = a})
-
-instance FromJSON Commitment where
-        parseJSON
-          = withObject "Commitment"
-              (\ o ->
-                 Commitment' <$>
-                   (o .:? "status") <*>
-                     (o .:? "kind" .!= "compute#commitment")
-                     <*> (o .:? "plan")
-                     <*> (o .:? "resources" .!= mempty)
-                     <*> (o .:? "endTimestamp")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "statusMessage")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "startTimestamp")
-                     <*> (o .:? "description"))
-
-instance ToJSON Commitment where
-        toJSON Commitment'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _cStatus, Just ("kind" .= _cKind),
-                  ("plan" .=) <$> _cPlan,
-                  ("resources" .=) <$> _cResources,
-                  ("endTimestamp" .=) <$> _cEndTimestamp,
-                  ("selfLink" .=) <$> _cSelfLink,
-                  ("name" .=) <$> _cName,
-                  ("statusMessage" .=) <$> _cStatusMessage,
-                  ("creationTimestamp" .=) <$> _cCreationTimestamp,
-                  ("id" .=) <$> _cId, ("region" .=) <$> _cRegion,
-                  ("startTimestamp" .=) <$> _cStartTimestamp,
-                  ("description" .=) <$> _cDescription])
-
--- | Contains a list of HttpsHealthCheck resources.
---
--- /See:/ 'httpsHealthCheckList' smart constructor.
-data HTTPSHealthCheckList =
-  HTTPSHealthCheckList'
-    { _hhclNextPageToken :: !(Maybe Text)
-    , _hhclKind          :: !Text
-    , _hhclItems         :: !(Maybe [HTTPSHealthCheck])
-    , _hhclSelfLink      :: !(Maybe Text)
-    , _hhclWarning       :: !(Maybe HTTPSHealthCheckListWarning)
-    , _hhclId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthCheckList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhclNextPageToken'
---
--- * 'hhclKind'
---
--- * 'hhclItems'
---
--- * 'hhclSelfLink'
---
--- * 'hhclWarning'
---
--- * 'hhclId'
-httpsHealthCheckList
-    :: HTTPSHealthCheckList
-httpsHealthCheckList =
-  HTTPSHealthCheckList'
-    { _hhclNextPageToken = Nothing
-    , _hhclKind = "compute#httpsHealthCheckList"
-    , _hhclItems = Nothing
-    , _hhclSelfLink = Nothing
-    , _hhclWarning = Nothing
-    , _hhclId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-hhclNextPageToken :: Lens' HTTPSHealthCheckList (Maybe Text)
-hhclNextPageToken
-  = lens _hhclNextPageToken
-      (\ s a -> s{_hhclNextPageToken = a})
-
--- | Type of resource.
-hhclKind :: Lens' HTTPSHealthCheckList Text
-hhclKind = lens _hhclKind (\ s a -> s{_hhclKind = a})
-
--- | A list of HttpsHealthCheck resources.
-hhclItems :: Lens' HTTPSHealthCheckList [HTTPSHealthCheck]
-hhclItems
-  = lens _hhclItems (\ s a -> s{_hhclItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-hhclSelfLink :: Lens' HTTPSHealthCheckList (Maybe Text)
-hhclSelfLink
-  = lens _hhclSelfLink (\ s a -> s{_hhclSelfLink = a})
-
--- | [Output Only] Informational warning message.
-hhclWarning :: Lens' HTTPSHealthCheckList (Maybe HTTPSHealthCheckListWarning)
-hhclWarning
-  = lens _hhclWarning (\ s a -> s{_hhclWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-hhclId :: Lens' HTTPSHealthCheckList (Maybe Text)
-hhclId = lens _hhclId (\ s a -> s{_hhclId = a})
-
-instance FromJSON HTTPSHealthCheckList where
-        parseJSON
-          = withObject "HTTPSHealthCheckList"
-              (\ o ->
-                 HTTPSHealthCheckList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#httpsHealthCheckList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON HTTPSHealthCheckList where
-        toJSON HTTPSHealthCheckList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _hhclNextPageToken,
-                  Just ("kind" .= _hhclKind),
-                  ("items" .=) <$> _hhclItems,
-                  ("selfLink" .=) <$> _hhclSelfLink,
-                  ("warning" .=) <$> _hhclWarning,
-                  ("id" .=) <$> _hhclId])
-
---
--- /See:/ 'addressListWarningDataItem' smart constructor.
-data AddressListWarningDataItem =
-  AddressListWarningDataItem'
-    { _addValue :: !(Maybe Text)
-    , _addKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'addValue'
---
--- * 'addKey'
-addressListWarningDataItem
-    :: AddressListWarningDataItem
-addressListWarningDataItem =
-  AddressListWarningDataItem' {_addValue = Nothing, _addKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-addValue :: Lens' AddressListWarningDataItem (Maybe Text)
-addValue = lens _addValue (\ s a -> s{_addValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-addKey :: Lens' AddressListWarningDataItem (Maybe Text)
-addKey = lens _addKey (\ s a -> s{_addKey = a})
-
-instance FromJSON AddressListWarningDataItem where
-        parseJSON
-          = withObject "AddressListWarningDataItem"
-              (\ o ->
-                 AddressListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AddressListWarningDataItem where
-        toJSON AddressListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _addValue, ("key" .=) <$> _addKey])
-
---
--- /See:/ 'operationErrorErrorsItem' smart constructor.
-data OperationErrorErrorsItem =
-  OperationErrorErrorsItem'
-    { _oeeiLocation :: !(Maybe Text)
-    , _oeeiCode     :: !(Maybe Text)
-    , _oeeiMessage  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationErrorErrorsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'oeeiLocation'
---
--- * 'oeeiCode'
---
--- * 'oeeiMessage'
-operationErrorErrorsItem
-    :: OperationErrorErrorsItem
-operationErrorErrorsItem =
-  OperationErrorErrorsItem'
-    {_oeeiLocation = Nothing, _oeeiCode = Nothing, _oeeiMessage = Nothing}
-
-
--- | [Output Only] Indicates the field in the request that caused the error.
--- This property is optional.
-oeeiLocation :: Lens' OperationErrorErrorsItem (Maybe Text)
-oeeiLocation
-  = lens _oeeiLocation (\ s a -> s{_oeeiLocation = a})
-
--- | [Output Only] The error type identifier for this error.
-oeeiCode :: Lens' OperationErrorErrorsItem (Maybe Text)
-oeeiCode = lens _oeeiCode (\ s a -> s{_oeeiCode = a})
-
--- | [Output Only] An optional, human-readable error message.
-oeeiMessage :: Lens' OperationErrorErrorsItem (Maybe Text)
-oeeiMessage
-  = lens _oeeiMessage (\ s a -> s{_oeeiMessage = a})
-
-instance FromJSON OperationErrorErrorsItem where
-        parseJSON
-          = withObject "OperationErrorErrorsItem"
-              (\ o ->
-                 OperationErrorErrorsItem' <$>
-                   (o .:? "location") <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON OperationErrorErrorsItem where
-        toJSON OperationErrorErrorsItem'{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _oeeiLocation,
-                  ("code" .=) <$> _oeeiCode,
-                  ("message" .=) <$> _oeeiMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'commitmentListWarning' smart constructor.
-data CommitmentListWarning =
-  CommitmentListWarning'
-    { _clwData    :: !(Maybe [CommitmentListWarningDataItem])
-    , _clwCode    :: !(Maybe CommitmentListWarningCode)
-    , _clwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clwData'
---
--- * 'clwCode'
---
--- * 'clwMessage'
-commitmentListWarning
-    :: CommitmentListWarning
-commitmentListWarning =
-  CommitmentListWarning'
-    {_clwData = Nothing, _clwCode = Nothing, _clwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-clwData :: Lens' CommitmentListWarning [CommitmentListWarningDataItem]
-clwData
-  = lens _clwData (\ s a -> s{_clwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-clwCode :: Lens' CommitmentListWarning (Maybe CommitmentListWarningCode)
-clwCode = lens _clwCode (\ s a -> s{_clwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-clwMessage :: Lens' CommitmentListWarning (Maybe Text)
-clwMessage
-  = lens _clwMessage (\ s a -> s{_clwMessage = a})
-
-instance FromJSON CommitmentListWarning where
-        parseJSON
-          = withObject "CommitmentListWarning"
-              (\ o ->
-                 CommitmentListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON CommitmentListWarning where
-        toJSON CommitmentListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _clwData, ("code" .=) <$> _clwCode,
-                  ("message" .=) <$> _clwMessage])
-
--- | A license resource.
---
--- /See:/ 'license' smart constructor.
-data License =
-  License'
-    { _lChargesUseFee        :: !(Maybe Bool)
-    , _lKind                 :: !Text
-    , _lResourceRequirements :: !(Maybe LicenseResourceRequirements)
-    , _lTransferable         :: !(Maybe Bool)
-    , _lSelfLink             :: !(Maybe Text)
-    , _lName                 :: !(Maybe Text)
-    , _lCreationTimestamp    :: !(Maybe Text)
-    , _lId                   :: !(Maybe (Textual Word64))
-    , _lDescription          :: !(Maybe Text)
-    , _lLicenseCode          :: !(Maybe (Textual Word64))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'License' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lChargesUseFee'
---
--- * 'lKind'
---
--- * 'lResourceRequirements'
---
--- * 'lTransferable'
---
--- * 'lSelfLink'
---
--- * 'lName'
---
--- * 'lCreationTimestamp'
---
--- * 'lId'
---
--- * 'lDescription'
---
--- * 'lLicenseCode'
-license
-    :: License
-license =
-  License'
-    { _lChargesUseFee = Nothing
-    , _lKind = "compute#license"
-    , _lResourceRequirements = Nothing
-    , _lTransferable = Nothing
-    , _lSelfLink = Nothing
-    , _lName = Nothing
-    , _lCreationTimestamp = Nothing
-    , _lId = Nothing
-    , _lDescription = Nothing
-    , _lLicenseCode = Nothing
-    }
-
-
--- | [Output Only] Deprecated. This field no longer reflects whether a
--- license charges a usage fee.
-lChargesUseFee :: Lens' License (Maybe Bool)
-lChargesUseFee
-  = lens _lChargesUseFee
-      (\ s a -> s{_lChargesUseFee = a})
-
--- | [Output Only] Type of resource. Always compute#license for licenses.
-lKind :: Lens' License Text
-lKind = lens _lKind (\ s a -> s{_lKind = a})
-
-lResourceRequirements :: Lens' License (Maybe LicenseResourceRequirements)
-lResourceRequirements
-  = lens _lResourceRequirements
-      (\ s a -> s{_lResourceRequirements = a})
-
--- | If false, licenses will not be copied from the source resource when
--- creating an image from a disk, disk from snapshot, or snapshot from
--- disk.
-lTransferable :: Lens' License (Maybe Bool)
-lTransferable
-  = lens _lTransferable
-      (\ s a -> s{_lTransferable = a})
-
--- | [Output Only] Server-defined URL for the resource.
-lSelfLink :: Lens' License (Maybe Text)
-lSelfLink
-  = lens _lSelfLink (\ s a -> s{_lSelfLink = a})
-
--- | Name of the resource. The name must be 1-63 characters long and comply
--- with RFC1035.
-lName :: Lens' License (Maybe Text)
-lName = lens _lName (\ s a -> s{_lName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-lCreationTimestamp :: Lens' License (Maybe Text)
-lCreationTimestamp
-  = lens _lCreationTimestamp
-      (\ s a -> s{_lCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-lId :: Lens' License (Maybe Word64)
-lId
-  = lens _lId (\ s a -> s{_lId = a}) . mapping _Coerce
-
--- | An optional textual description of the resource; provided by the client
--- when the resource is created.
-lDescription :: Lens' License (Maybe Text)
-lDescription
-  = lens _lDescription (\ s a -> s{_lDescription = a})
-
--- | [Output Only] The unique code used to attach this license to images,
--- snapshots, and disks.
-lLicenseCode :: Lens' License (Maybe Word64)
-lLicenseCode
-  = lens _lLicenseCode (\ s a -> s{_lLicenseCode = a})
-      . mapping _Coerce
-
-instance FromJSON License where
-        parseJSON
-          = withObject "License"
-              (\ o ->
-                 License' <$>
-                   (o .:? "chargesUseFee") <*>
-                     (o .:? "kind" .!= "compute#license")
-                     <*> (o .:? "resourceRequirements")
-                     <*> (o .:? "transferable")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description")
-                     <*> (o .:? "licenseCode"))
-
-instance ToJSON License where
-        toJSON License'{..}
-          = object
-              (catMaybes
-                 [("chargesUseFee" .=) <$> _lChargesUseFee,
-                  Just ("kind" .= _lKind),
-                  ("resourceRequirements" .=) <$>
-                    _lResourceRequirements,
-                  ("transferable" .=) <$> _lTransferable,
-                  ("selfLink" .=) <$> _lSelfLink,
-                  ("name" .=) <$> _lName,
-                  ("creationTimestamp" .=) <$> _lCreationTimestamp,
-                  ("id" .=) <$> _lId,
-                  ("description" .=) <$> _lDescription,
-                  ("licenseCode" .=) <$> _lLicenseCode])
-
--- | A path-matching rule for a URL. If matched, will use the specified
--- BackendService to handle the traffic arriving at this URL.
---
--- /See:/ 'pathRule' smart constructor.
-data PathRule =
-  PathRule'
-    { _prService :: !(Maybe Text)
-    , _prPaths   :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PathRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'prService'
---
--- * 'prPaths'
-pathRule
-    :: PathRule
-pathRule = PathRule' {_prService = Nothing, _prPaths = Nothing}
-
-
--- | The full or partial URL of the backend service resource to which traffic
--- is directed if this rule is matched. If routeAction is additionally
--- specified, advanced routing actions like URL Rewrites, etc. take effect
--- prior to sending the request to the backend. However, if service is
--- specified, routeAction cannot contain any weightedBackendService s.
--- Conversely, if routeAction specifies any weightedBackendServices,
--- service must not be specified. Only one of urlRedirect, service or
--- routeAction.weightedBackendService must be set.
-prService :: Lens' PathRule (Maybe Text)
-prService
-  = lens _prService (\ s a -> s{_prService = a})
-
--- | The list of path patterns to match. Each must start with \/ and the only
--- place a * is allowed is at the end following a \/. The string fed to the
--- path matcher does not include any text after the first ? or #, and those
--- chars are not allowed here.
-prPaths :: Lens' PathRule [Text]
-prPaths
-  = lens _prPaths (\ s a -> s{_prPaths = a}) . _Default
-      . _Coerce
-
-instance FromJSON PathRule where
-        parseJSON
-          = withObject "PathRule"
-              (\ o ->
-                 PathRule' <$>
-                   (o .:? "service") <*> (o .:? "paths" .!= mempty))
-
-instance ToJSON PathRule where
-        toJSON PathRule'{..}
-          = object
-              (catMaybes
-                 [("service" .=) <$> _prService,
-                  ("paths" .=) <$> _prPaths])
-
---
--- /See:/ 'licenseCodeLicenseAlias' smart constructor.
-data LicenseCodeLicenseAlias =
-  LicenseCodeLicenseAlias'
-    { _lclaSelfLink    :: !(Maybe Text)
-    , _lclaDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicenseCodeLicenseAlias' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lclaSelfLink'
---
--- * 'lclaDescription'
-licenseCodeLicenseAlias
-    :: LicenseCodeLicenseAlias
-licenseCodeLicenseAlias =
-  LicenseCodeLicenseAlias' {_lclaSelfLink = Nothing, _lclaDescription = Nothing}
-
-
--- | [Output Only] URL of license corresponding to this License Code.
-lclaSelfLink :: Lens' LicenseCodeLicenseAlias (Maybe Text)
-lclaSelfLink
-  = lens _lclaSelfLink (\ s a -> s{_lclaSelfLink = a})
-
--- | [Output Only] Description of this License Code.
-lclaDescription :: Lens' LicenseCodeLicenseAlias (Maybe Text)
-lclaDescription
-  = lens _lclaDescription
-      (\ s a -> s{_lclaDescription = a})
-
-instance FromJSON LicenseCodeLicenseAlias where
-        parseJSON
-          = withObject "LicenseCodeLicenseAlias"
-              (\ o ->
-                 LicenseCodeLicenseAlias' <$>
-                   (o .:? "selfLink") <*> (o .:? "description"))
-
-instance ToJSON LicenseCodeLicenseAlias where
-        toJSON LicenseCodeLicenseAlias'{..}
-          = object
-              (catMaybes
-                 [("selfLink" .=) <$> _lclaSelfLink,
-                  ("description" .=) <$> _lclaDescription])
-
---
--- /See:/ 'interconnectAttachmentsScopedListWarningDataItem' smart constructor.
-data InterconnectAttachmentsScopedListWarningDataItem =
-  InterconnectAttachmentsScopedListWarningDataItem'
-    { _iaslwdiValue :: !(Maybe Text)
-    , _iaslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaslwdiValue'
---
--- * 'iaslwdiKey'
-interconnectAttachmentsScopedListWarningDataItem
-    :: InterconnectAttachmentsScopedListWarningDataItem
-interconnectAttachmentsScopedListWarningDataItem =
-  InterconnectAttachmentsScopedListWarningDataItem'
-    {_iaslwdiValue = Nothing, _iaslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-iaslwdiValue :: Lens' InterconnectAttachmentsScopedListWarningDataItem (Maybe Text)
-iaslwdiValue
-  = lens _iaslwdiValue (\ s a -> s{_iaslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-iaslwdiKey :: Lens' InterconnectAttachmentsScopedListWarningDataItem (Maybe Text)
-iaslwdiKey
-  = lens _iaslwdiKey (\ s a -> s{_iaslwdiKey = a})
-
-instance FromJSON
-           InterconnectAttachmentsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentsScopedListWarningDataItem"
-              (\ o ->
-                 InterconnectAttachmentsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InterconnectAttachmentsScopedListWarningDataItem
-         where
-        toJSON
-          InterconnectAttachmentsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _iaslwdiValue,
-                  ("key" .=) <$> _iaslwdiKey])
-
---
--- /See:/ 'securityPolicyListWarningDataItem' smart constructor.
-data SecurityPolicyListWarningDataItem =
-  SecurityPolicyListWarningDataItem'
-    { _secValue :: !(Maybe Text)
-    , _secKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'secValue'
---
--- * 'secKey'
-securityPolicyListWarningDataItem
-    :: SecurityPolicyListWarningDataItem
-securityPolicyListWarningDataItem =
-  SecurityPolicyListWarningDataItem' {_secValue = Nothing, _secKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-secValue :: Lens' SecurityPolicyListWarningDataItem (Maybe Text)
-secValue = lens _secValue (\ s a -> s{_secValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-secKey :: Lens' SecurityPolicyListWarningDataItem (Maybe Text)
-secKey = lens _secKey (\ s a -> s{_secKey = a})
-
-instance FromJSON SecurityPolicyListWarningDataItem
-         where
-        parseJSON
-          = withObject "SecurityPolicyListWarningDataItem"
-              (\ o ->
-                 SecurityPolicyListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON SecurityPolicyListWarningDataItem
-         where
-        toJSON SecurityPolicyListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _secValue, ("key" .=) <$> _secKey])
-
--- | Provides the configuration for logging a type of permissions. Example: {
--- \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\",
--- \"exempted_members\": [ \"user:foo\'gmail.com\" ] }, { \"log_type\":
--- \"DATA_WRITE\", } ] } This enables \'DATA_READ\' and \'DATA_WRITE\'
--- logging, while exempting foo\'gmail.com from DATA_READ logging.
---
--- /See:/ 'auditLogConfig' smart constructor.
-data AuditLogConfig =
-  AuditLogConfig'
-    { _alcLogType         :: !(Maybe AuditLogConfigLogType)
-    , _alcExemptedMembers :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AuditLogConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alcLogType'
---
--- * 'alcExemptedMembers'
-auditLogConfig
-    :: AuditLogConfig
-auditLogConfig =
-  AuditLogConfig' {_alcLogType = Nothing, _alcExemptedMembers = Nothing}
-
-
--- | The log type that this config enables.
-alcLogType :: Lens' AuditLogConfig (Maybe AuditLogConfigLogType)
-alcLogType
-  = lens _alcLogType (\ s a -> s{_alcLogType = a})
-
--- | Specifies the identities that do not cause logging for this type of
--- permission. Follows the same format of [Binding.members][].
-alcExemptedMembers :: Lens' AuditLogConfig [Text]
-alcExemptedMembers
-  = lens _alcExemptedMembers
-      (\ s a -> s{_alcExemptedMembers = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON AuditLogConfig where
-        parseJSON
-          = withObject "AuditLogConfig"
-              (\ o ->
-                 AuditLogConfig' <$>
-                   (o .:? "logType") <*>
-                     (o .:? "exemptedMembers" .!= mempty))
-
-instance ToJSON AuditLogConfig where
-        toJSON AuditLogConfig'{..}
-          = object
-              (catMaybes
-                 [("logType" .=) <$> _alcLogType,
-                  ("exemptedMembers" .=) <$> _alcExemptedMembers])
-
---
--- /See:/ 'commitmentsScopedListWarningDataItem' smart constructor.
-data CommitmentsScopedListWarningDataItem =
-  CommitmentsScopedListWarningDataItem'
-    { _cslwdiValue :: !(Maybe Text)
-    , _cslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cslwdiValue'
---
--- * 'cslwdiKey'
-commitmentsScopedListWarningDataItem
-    :: CommitmentsScopedListWarningDataItem
-commitmentsScopedListWarningDataItem =
-  CommitmentsScopedListWarningDataItem'
-    {_cslwdiValue = Nothing, _cslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-cslwdiValue :: Lens' CommitmentsScopedListWarningDataItem (Maybe Text)
-cslwdiValue
-  = lens _cslwdiValue (\ s a -> s{_cslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-cslwdiKey :: Lens' CommitmentsScopedListWarningDataItem (Maybe Text)
-cslwdiKey
-  = lens _cslwdiKey (\ s a -> s{_cslwdiKey = a})
-
-instance FromJSON
-           CommitmentsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "CommitmentsScopedListWarningDataItem"
-              (\ o ->
-                 CommitmentsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON CommitmentsScopedListWarningDataItem
-         where
-        toJSON CommitmentsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _cslwdiValue,
-                  ("key" .=) <$> _cslwdiKey])
-
--- | Represents an InterconnectAttachment (VLAN attachment) resource. For
--- more information, see Creating VLAN Attachments. (== resource_for
--- beta.interconnectAttachments ==) (== resource_for
--- v1.interconnectAttachments ==)
---
--- /See:/ 'interconnectAttachment' smart constructor.
-data InterconnectAttachment =
-  InterconnectAttachment'
-    { _iaState                   :: !(Maybe InterconnectAttachmentState)
-    , _iaPartnerASN              :: !(Maybe (Textual Int64))
-    , _iaPairingKey              :: !(Maybe Text)
-    , _iaKind                    :: !Text
-    , _iaCustomerRouterIPAddress :: !(Maybe Text)
-    , _iaPartnerMetadata         :: !(Maybe InterconnectAttachmentPartnerMetadata)
-    , _iaRouter                  :: !(Maybe Text)
-    , _iaOperationalStatus       :: !(Maybe InterconnectAttachmentOperationalStatus)
-    , _iaSelfLink                :: !(Maybe Text)
-    , _iaName                    :: !(Maybe Text)
-    , _iaBandwidth               :: !(Maybe InterconnectAttachmentBandwidth)
-    , _iaGoogleReferenceId       :: !(Maybe Text)
-    , _iaCreationTimestamp       :: !(Maybe Text)
-    , _iaEdgeAvailabilityDomain  :: !(Maybe InterconnectAttachmentEdgeAvailabilityDomain)
-    , _iaInterconnect            :: !(Maybe Text)
-    , _iaAdminEnabled            :: !(Maybe Bool)
-    , _iaVLANTag8021q            :: !(Maybe (Textual Int32))
-    , _iaCloudRouterIPAddress    :: !(Maybe Text)
-    , _iaId                      :: !(Maybe (Textual Word64))
-    , _iaCandidateSubnets        :: !(Maybe [Text])
-    , _iaRegion                  :: !(Maybe Text)
-    , _iaType                    :: !(Maybe InterconnectAttachmentType)
-    , _iaDescription             :: !(Maybe Text)
-    , _iaPrivateInterconnectInfo :: !(Maybe InterconnectAttachmentPrivateInfo)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachment' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaState'
---
--- * 'iaPartnerASN'
---
--- * 'iaPairingKey'
---
--- * 'iaKind'
---
--- * 'iaCustomerRouterIPAddress'
---
--- * 'iaPartnerMetadata'
---
--- * 'iaRouter'
---
--- * 'iaOperationalStatus'
---
--- * 'iaSelfLink'
---
--- * 'iaName'
---
--- * 'iaBandwidth'
---
--- * 'iaGoogleReferenceId'
---
--- * 'iaCreationTimestamp'
---
--- * 'iaEdgeAvailabilityDomain'
---
--- * 'iaInterconnect'
---
--- * 'iaAdminEnabled'
---
--- * 'iaVLANTag8021q'
---
--- * 'iaCloudRouterIPAddress'
---
--- * 'iaId'
---
--- * 'iaCandidateSubnets'
---
--- * 'iaRegion'
---
--- * 'iaType'
---
--- * 'iaDescription'
---
--- * 'iaPrivateInterconnectInfo'
-interconnectAttachment
-    :: InterconnectAttachment
-interconnectAttachment =
-  InterconnectAttachment'
-    { _iaState = Nothing
-    , _iaPartnerASN = Nothing
-    , _iaPairingKey = Nothing
-    , _iaKind = "compute#interconnectAttachment"
-    , _iaCustomerRouterIPAddress = Nothing
-    , _iaPartnerMetadata = Nothing
-    , _iaRouter = Nothing
-    , _iaOperationalStatus = Nothing
-    , _iaSelfLink = Nothing
-    , _iaName = Nothing
-    , _iaBandwidth = Nothing
-    , _iaGoogleReferenceId = Nothing
-    , _iaCreationTimestamp = Nothing
-    , _iaEdgeAvailabilityDomain = Nothing
-    , _iaInterconnect = Nothing
-    , _iaAdminEnabled = Nothing
-    , _iaVLANTag8021q = Nothing
-    , _iaCloudRouterIPAddress = Nothing
-    , _iaId = Nothing
-    , _iaCandidateSubnets = Nothing
-    , _iaRegion = Nothing
-    , _iaType = Nothing
-    , _iaDescription = Nothing
-    , _iaPrivateInterconnectInfo = Nothing
-    }
-
-
--- | [Output Only] The current state of this attachment\'s functionality.
-iaState :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentState)
-iaState = lens _iaState (\ s a -> s{_iaState = a})
-
--- | Optional BGP ASN for the router that should be supplied by a layer 3
--- Partner if they configured BGP on behalf of the customer. Output only
--- for PARTNER type, input only for PARTNER_PROVIDER, not available for
--- DEDICATED.
-iaPartnerASN :: Lens' InterconnectAttachment (Maybe Int64)
-iaPartnerASN
-  = lens _iaPartnerASN (\ s a -> s{_iaPartnerASN = a})
-      . mapping _Coerce
-
--- | [Output only for type PARTNER. Input only for PARTNER_PROVIDER. Not
--- present for DEDICATED]. The opaque identifier of an PARTNER attachment
--- used to initiate provisioning with a selected partner. Of the form
--- \"XXXXX\/region\/domain\"
-iaPairingKey :: Lens' InterconnectAttachment (Maybe Text)
-iaPairingKey
-  = lens _iaPairingKey (\ s a -> s{_iaPairingKey = a})
-
--- | [Output Only] Type of the resource. Always
--- compute#interconnectAttachment for interconnect attachments.
-iaKind :: Lens' InterconnectAttachment Text
-iaKind = lens _iaKind (\ s a -> s{_iaKind = a})
-
--- | [Output Only] IPv4 address + prefix length to be configured on the
--- customer router subinterface for this interconnect attachment.
-iaCustomerRouterIPAddress :: Lens' InterconnectAttachment (Maybe Text)
-iaCustomerRouterIPAddress
-  = lens _iaCustomerRouterIPAddress
-      (\ s a -> s{_iaCustomerRouterIPAddress = a})
-
--- | Informational metadata about Partner attachments from Partners to
--- display to customers. Output only for for PARTNER type, mutable for
--- PARTNER_PROVIDER, not available for DEDICATED.
-iaPartnerMetadata :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentPartnerMetadata)
-iaPartnerMetadata
-  = lens _iaPartnerMetadata
-      (\ s a -> s{_iaPartnerMetadata = a})
-
--- | URL of the Cloud Router to be used for dynamic routing. This router must
--- be in the same region as this InterconnectAttachment. The
--- InterconnectAttachment will automatically connect the Interconnect to
--- the network & region within which the Cloud Router is configured.
-iaRouter :: Lens' InterconnectAttachment (Maybe Text)
-iaRouter = lens _iaRouter (\ s a -> s{_iaRouter = a})
-
--- | [Output Only] The current status of whether or not this interconnect
--- attachment is functional.
-iaOperationalStatus :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentOperationalStatus)
-iaOperationalStatus
-  = lens _iaOperationalStatus
-      (\ s a -> s{_iaOperationalStatus = a})
-
--- | [Output Only] Server-defined URL for the resource.
-iaSelfLink :: Lens' InterconnectAttachment (Maybe Text)
-iaSelfLink
-  = lens _iaSelfLink (\ s a -> s{_iaSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-iaName :: Lens' InterconnectAttachment (Maybe Text)
-iaName = lens _iaName (\ s a -> s{_iaName = a})
-
--- | Provisioned bandwidth capacity for the interconnectAttachment. Can be
--- set by the partner to update the customer\'s provisioned bandwidth.
--- Output only for PARTNER type, mutable for PARTNER_PROVIDER and
--- DEDICATED.
-iaBandwidth :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentBandwidth)
-iaBandwidth
-  = lens _iaBandwidth (\ s a -> s{_iaBandwidth = a})
-
--- | [Output Only] Google reference ID, to be used when raising support
--- tickets with Google or otherwise to debug backend connectivity issues.
-iaGoogleReferenceId :: Lens' InterconnectAttachment (Maybe Text)
-iaGoogleReferenceId
-  = lens _iaGoogleReferenceId
-      (\ s a -> s{_iaGoogleReferenceId = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-iaCreationTimestamp :: Lens' InterconnectAttachment (Maybe Text)
-iaCreationTimestamp
-  = lens _iaCreationTimestamp
-      (\ s a -> s{_iaCreationTimestamp = a})
-
--- | Desired availability domain for the attachment. Only available for type
--- PARTNER, at creation time. For improved reliability, customers should
--- configure a pair of attachments with one per availability domain. The
--- selected availability domain will be provided to the Partner via the
--- pairing key so that the provisioned circuit will lie in the specified
--- domain. If not specified, the value will default to
--- AVAILABILITY_DOMAIN_ANY.
-iaEdgeAvailabilityDomain :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentEdgeAvailabilityDomain)
-iaEdgeAvailabilityDomain
-  = lens _iaEdgeAvailabilityDomain
-      (\ s a -> s{_iaEdgeAvailabilityDomain = a})
-
--- | URL of the underlying Interconnect object that this attachment\'s
--- traffic will traverse through.
-iaInterconnect :: Lens' InterconnectAttachment (Maybe Text)
-iaInterconnect
-  = lens _iaInterconnect
-      (\ s a -> s{_iaInterconnect = a})
-
--- | Determines whether this Attachment will carry packets. Not present for
--- PARTNER_PROVIDER.
-iaAdminEnabled :: Lens' InterconnectAttachment (Maybe Bool)
-iaAdminEnabled
-  = lens _iaAdminEnabled
-      (\ s a -> s{_iaAdminEnabled = a})
-
--- | The IEEE 802.1Q VLAN tag for this attachment, in the range 2-4094. Only
--- specified at creation time.
-iaVLANTag8021q :: Lens' InterconnectAttachment (Maybe Int32)
-iaVLANTag8021q
-  = lens _iaVLANTag8021q
-      (\ s a -> s{_iaVLANTag8021q = a})
-      . mapping _Coerce
-
--- | [Output Only] IPv4 address + prefix length to be configured on Cloud
--- Router Interface for this interconnect attachment.
-iaCloudRouterIPAddress :: Lens' InterconnectAttachment (Maybe Text)
-iaCloudRouterIPAddress
-  = lens _iaCloudRouterIPAddress
-      (\ s a -> s{_iaCloudRouterIPAddress = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-iaId :: Lens' InterconnectAttachment (Maybe Word64)
-iaId
-  = lens _iaId (\ s a -> s{_iaId = a}) .
-      mapping _Coerce
-
--- | Up to 16 candidate prefixes that can be used to restrict the allocation
--- of cloudRouterIpAddress and customerRouterIpAddress for this attachment.
--- All prefixes must be within link-local address space (169.254.0.0\/16)
--- and must be \/29 or shorter (\/28, \/27, etc). Google will attempt to
--- select an unused \/29 from the supplied candidate prefix(es). The
--- request will fail if all possible \/29s are in use on Google?s edge. If
--- not supplied, Google will randomly select an unused \/29 from all of
--- link-local space.
-iaCandidateSubnets :: Lens' InterconnectAttachment [Text]
-iaCandidateSubnets
-  = lens _iaCandidateSubnets
-      (\ s a -> s{_iaCandidateSubnets = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] URL of the region where the regional interconnect
--- attachment resides. You must specify this field as part of the HTTP
--- request URL. It is not settable as a field in the request body.
-iaRegion :: Lens' InterconnectAttachment (Maybe Text)
-iaRegion = lens _iaRegion (\ s a -> s{_iaRegion = a})
-
-iaType :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentType)
-iaType = lens _iaType (\ s a -> s{_iaType = a})
-
--- | An optional description of this resource.
-iaDescription :: Lens' InterconnectAttachment (Maybe Text)
-iaDescription
-  = lens _iaDescription
-      (\ s a -> s{_iaDescription = a})
-
--- | [Output Only] Information specific to an InterconnectAttachment. This
--- property is populated if the interconnect that this is attached to is of
--- type DEDICATED.
-iaPrivateInterconnectInfo :: Lens' InterconnectAttachment (Maybe InterconnectAttachmentPrivateInfo)
-iaPrivateInterconnectInfo
-  = lens _iaPrivateInterconnectInfo
-      (\ s a -> s{_iaPrivateInterconnectInfo = a})
-
-instance FromJSON InterconnectAttachment where
-        parseJSON
-          = withObject "InterconnectAttachment"
-              (\ o ->
-                 InterconnectAttachment' <$>
-                   (o .:? "state") <*> (o .:? "partnerAsn") <*>
-                     (o .:? "pairingKey")
-                     <*>
-                     (o .:? "kind" .!= "compute#interconnectAttachment")
-                     <*> (o .:? "customerRouterIpAddress")
-                     <*> (o .:? "partnerMetadata")
-                     <*> (o .:? "router")
-                     <*> (o .:? "operationalStatus")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "bandwidth")
-                     <*> (o .:? "googleReferenceId")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "edgeAvailabilityDomain")
-                     <*> (o .:? "interconnect")
-                     <*> (o .:? "adminEnabled")
-                     <*> (o .:? "vlanTag8021q")
-                     <*> (o .:? "cloudRouterIpAddress")
-                     <*> (o .:? "id")
-                     <*> (o .:? "candidateSubnets" .!= mempty)
-                     <*> (o .:? "region")
-                     <*> (o .:? "type")
-                     <*> (o .:? "description")
-                     <*> (o .:? "privateInterconnectInfo"))
-
-instance ToJSON InterconnectAttachment where
-        toJSON InterconnectAttachment'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _iaState,
-                  ("partnerAsn" .=) <$> _iaPartnerASN,
-                  ("pairingKey" .=) <$> _iaPairingKey,
-                  Just ("kind" .= _iaKind),
-                  ("customerRouterIpAddress" .=) <$>
-                    _iaCustomerRouterIPAddress,
-                  ("partnerMetadata" .=) <$> _iaPartnerMetadata,
-                  ("router" .=) <$> _iaRouter,
-                  ("operationalStatus" .=) <$> _iaOperationalStatus,
-                  ("selfLink" .=) <$> _iaSelfLink,
-                  ("name" .=) <$> _iaName,
-                  ("bandwidth" .=) <$> _iaBandwidth,
-                  ("googleReferenceId" .=) <$> _iaGoogleReferenceId,
-                  ("creationTimestamp" .=) <$> _iaCreationTimestamp,
-                  ("edgeAvailabilityDomain" .=) <$>
-                    _iaEdgeAvailabilityDomain,
-                  ("interconnect" .=) <$> _iaInterconnect,
-                  ("adminEnabled" .=) <$> _iaAdminEnabled,
-                  ("vlanTag8021q" .=) <$> _iaVLANTag8021q,
-                  ("cloudRouterIpAddress" .=) <$>
-                    _iaCloudRouterIPAddress,
-                  ("id" .=) <$> _iaId,
-                  ("candidateSubnets" .=) <$> _iaCandidateSubnets,
-                  ("region" .=) <$> _iaRegion, ("type" .=) <$> _iaType,
-                  ("description" .=) <$> _iaDescription,
-                  ("privateInterconnectInfo" .=) <$>
-                    _iaPrivateInterconnectInfo])
-
--- | Contains a list of instances.
---
--- /See:/ 'instanceList' smart constructor.
-data InstanceList =
-  InstanceList'
-    { _insNextPageToken :: !(Maybe Text)
-    , _insKind          :: !Text
-    , _insItems         :: !(Maybe [Instance])
-    , _insSelfLink      :: !(Maybe Text)
-    , _insWarning       :: !(Maybe InstanceListWarning)
-    , _insId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'insNextPageToken'
---
--- * 'insKind'
---
--- * 'insItems'
---
--- * 'insSelfLink'
---
--- * 'insWarning'
---
--- * 'insId'
-instanceList
-    :: InstanceList
-instanceList =
-  InstanceList'
-    { _insNextPageToken = Nothing
-    , _insKind = "compute#instanceList"
-    , _insItems = Nothing
-    , _insSelfLink = Nothing
-    , _insWarning = Nothing
-    , _insId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-insNextPageToken :: Lens' InstanceList (Maybe Text)
-insNextPageToken
-  = lens _insNextPageToken
-      (\ s a -> s{_insNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#instanceList for lists of
--- Instance resources.
-insKind :: Lens' InstanceList Text
-insKind = lens _insKind (\ s a -> s{_insKind = a})
-
--- | A list of Instance resources.
-insItems :: Lens' InstanceList [Instance]
-insItems
-  = lens _insItems (\ s a -> s{_insItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-insSelfLink :: Lens' InstanceList (Maybe Text)
-insSelfLink
-  = lens _insSelfLink (\ s a -> s{_insSelfLink = a})
-
--- | [Output Only] Informational warning message.
-insWarning :: Lens' InstanceList (Maybe InstanceListWarning)
-insWarning
-  = lens _insWarning (\ s a -> s{_insWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-insId :: Lens' InstanceList (Maybe Text)
-insId = lens _insId (\ s a -> s{_insId = a})
-
-instance FromJSON InstanceList where
-        parseJSON
-          = withObject "InstanceList"
-              (\ o ->
-                 InstanceList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#instanceList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InstanceList where
-        toJSON InstanceList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _insNextPageToken,
-                  Just ("kind" .= _insKind),
-                  ("items" .=) <$> _insItems,
-                  ("selfLink" .=) <$> _insSelfLink,
-                  ("warning" .=) <$> _insWarning,
-                  ("id" .=) <$> _insId])
-
--- | The labels to set for this resource.
---
--- /See:/ 'regionSetLabelsRequestLabels' smart constructor.
-newtype RegionSetLabelsRequestLabels =
-  RegionSetLabelsRequestLabels'
-    { _rslrlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionSetLabelsRequestLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rslrlAddtional'
-regionSetLabelsRequestLabels
-    :: HashMap Text Text -- ^ 'rslrlAddtional'
-    -> RegionSetLabelsRequestLabels
-regionSetLabelsRequestLabels pRslrlAddtional_ =
-  RegionSetLabelsRequestLabels' {_rslrlAddtional = _Coerce # pRslrlAddtional_}
-
-
-rslrlAddtional :: Lens' RegionSetLabelsRequestLabels (HashMap Text Text)
-rslrlAddtional
-  = lens _rslrlAddtional
-      (\ s a -> s{_rslrlAddtional = a})
-      . _Coerce
-
-instance FromJSON RegionSetLabelsRequestLabels where
-        parseJSON
-          = withObject "RegionSetLabelsRequestLabels"
-              (\ o ->
-                 RegionSetLabelsRequestLabels' <$>
-                   (parseJSONObject o))
-
-instance ToJSON RegionSetLabelsRequestLabels where
-        toJSON = toJSON . _rslrlAddtional
-
---
--- /See:/ 'networkListWarningDataItem' smart constructor.
-data NetworkListWarningDataItem =
-  NetworkListWarningDataItem'
-    { _nlwdiValue :: !(Maybe Text)
-    , _nlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nlwdiValue'
---
--- * 'nlwdiKey'
-networkListWarningDataItem
-    :: NetworkListWarningDataItem
-networkListWarningDataItem =
-  NetworkListWarningDataItem' {_nlwdiValue = Nothing, _nlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-nlwdiValue :: Lens' NetworkListWarningDataItem (Maybe Text)
-nlwdiValue
-  = lens _nlwdiValue (\ s a -> s{_nlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-nlwdiKey :: Lens' NetworkListWarningDataItem (Maybe Text)
-nlwdiKey = lens _nlwdiKey (\ s a -> s{_nlwdiKey = a})
-
-instance FromJSON NetworkListWarningDataItem where
-        parseJSON
-          = withObject "NetworkListWarningDataItem"
-              (\ o ->
-                 NetworkListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON NetworkListWarningDataItem where
-        toJSON NetworkListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _nlwdiValue,
-                  ("key" .=) <$> _nlwdiKey])
-
--- | Message containing what to include in the cache key for a request for
--- Cloud CDN.
---
--- /See:/ 'cacheKeyPolicy' smart constructor.
-data CacheKeyPolicy =
-  CacheKeyPolicy'
-    { _ckpQueryStringWhiteList :: !(Maybe [Text])
-    , _ckpIncludeHost          :: !(Maybe Bool)
-    , _ckpIncludeProtocol      :: !(Maybe Bool)
-    , _ckpQueryStringBlackList :: !(Maybe [Text])
-    , _ckpIncludeQueryString   :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CacheKeyPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ckpQueryStringWhiteList'
---
--- * 'ckpIncludeHost'
---
--- * 'ckpIncludeProtocol'
---
--- * 'ckpQueryStringBlackList'
---
--- * 'ckpIncludeQueryString'
-cacheKeyPolicy
-    :: CacheKeyPolicy
-cacheKeyPolicy =
-  CacheKeyPolicy'
-    { _ckpQueryStringWhiteList = Nothing
-    , _ckpIncludeHost = Nothing
-    , _ckpIncludeProtocol = Nothing
-    , _ckpQueryStringBlackList = Nothing
-    , _ckpIncludeQueryString = Nothing
-    }
-
-
--- | Names of query string parameters to include in cache keys. All other
--- parameters will be excluded. Either specify query_string_whitelist or
--- query_string_blacklist, not both. \'&\' and \'=\' will be percent
--- encoded and not treated as delimiters.
-ckpQueryStringWhiteList :: Lens' CacheKeyPolicy [Text]
-ckpQueryStringWhiteList
-  = lens _ckpQueryStringWhiteList
-      (\ s a -> s{_ckpQueryStringWhiteList = a})
-      . _Default
-      . _Coerce
-
--- | If true, requests to different hosts will be cached separately.
-ckpIncludeHost :: Lens' CacheKeyPolicy (Maybe Bool)
-ckpIncludeHost
-  = lens _ckpIncludeHost
-      (\ s a -> s{_ckpIncludeHost = a})
-
--- | If true, http and https requests will be cached separately.
-ckpIncludeProtocol :: Lens' CacheKeyPolicy (Maybe Bool)
-ckpIncludeProtocol
-  = lens _ckpIncludeProtocol
-      (\ s a -> s{_ckpIncludeProtocol = a})
-
--- | Names of query string parameters to exclude in cache keys. All other
--- parameters will be included. Either specify query_string_whitelist or
--- query_string_blacklist, not both. \'&\' and \'=\' will be percent
--- encoded and not treated as delimiters.
-ckpQueryStringBlackList :: Lens' CacheKeyPolicy [Text]
-ckpQueryStringBlackList
-  = lens _ckpQueryStringBlackList
-      (\ s a -> s{_ckpQueryStringBlackList = a})
-      . _Default
-      . _Coerce
-
--- | If true, include query string parameters in the cache key according to
--- query_string_whitelist and query_string_blacklist. If neither is set,
--- the entire query string will be included. If false, the query string
--- will be excluded from the cache key entirely.
-ckpIncludeQueryString :: Lens' CacheKeyPolicy (Maybe Bool)
-ckpIncludeQueryString
-  = lens _ckpIncludeQueryString
-      (\ s a -> s{_ckpIncludeQueryString = a})
-
-instance FromJSON CacheKeyPolicy where
-        parseJSON
-          = withObject "CacheKeyPolicy"
-              (\ o ->
-                 CacheKeyPolicy' <$>
-                   (o .:? "queryStringWhitelist" .!= mempty) <*>
-                     (o .:? "includeHost")
-                     <*> (o .:? "includeProtocol")
-                     <*> (o .:? "queryStringBlacklist" .!= mempty)
-                     <*> (o .:? "includeQueryString"))
-
-instance ToJSON CacheKeyPolicy where
-        toJSON CacheKeyPolicy'{..}
-          = object
-              (catMaybes
-                 [("queryStringWhitelist" .=) <$>
-                    _ckpQueryStringWhiteList,
-                  ("includeHost" .=) <$> _ckpIncludeHost,
-                  ("includeProtocol" .=) <$> _ckpIncludeProtocol,
-                  ("queryStringBlacklist" .=) <$>
-                    _ckpQueryStringBlackList,
-                  ("includeQueryString" .=) <$>
-                    _ckpIncludeQueryString])
-
---
--- /See:/ 'commitmentAggregatedListWarningDataItem' smart constructor.
-data CommitmentAggregatedListWarningDataItem =
-  CommitmentAggregatedListWarningDataItem'
-    { _calwdiValue :: !(Maybe Text)
-    , _calwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'calwdiValue'
---
--- * 'calwdiKey'
-commitmentAggregatedListWarningDataItem
-    :: CommitmentAggregatedListWarningDataItem
-commitmentAggregatedListWarningDataItem =
-  CommitmentAggregatedListWarningDataItem'
-    {_calwdiValue = Nothing, _calwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-calwdiValue :: Lens' CommitmentAggregatedListWarningDataItem (Maybe Text)
-calwdiValue
-  = lens _calwdiValue (\ s a -> s{_calwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-calwdiKey :: Lens' CommitmentAggregatedListWarningDataItem (Maybe Text)
-calwdiKey
-  = lens _calwdiKey (\ s a -> s{_calwdiKey = a})
-
-instance FromJSON
-           CommitmentAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "CommitmentAggregatedListWarningDataItem"
-              (\ o ->
-                 CommitmentAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           CommitmentAggregatedListWarningDataItem
-         where
-        toJSON CommitmentAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _calwdiValue,
-                  ("key" .=) <$> _calwdiKey])
-
---
--- /See:/ 'regionInstanceGroupListWarningDataItem' smart constructor.
-data RegionInstanceGroupListWarningDataItem =
-  RegionInstanceGroupListWarningDataItem'
-    { _riglwdiValue :: !(Maybe Text)
-    , _riglwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riglwdiValue'
---
--- * 'riglwdiKey'
-regionInstanceGroupListWarningDataItem
-    :: RegionInstanceGroupListWarningDataItem
-regionInstanceGroupListWarningDataItem =
-  RegionInstanceGroupListWarningDataItem'
-    {_riglwdiValue = Nothing, _riglwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-riglwdiValue :: Lens' RegionInstanceGroupListWarningDataItem (Maybe Text)
-riglwdiValue
-  = lens _riglwdiValue (\ s a -> s{_riglwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-riglwdiKey :: Lens' RegionInstanceGroupListWarningDataItem (Maybe Text)
-riglwdiKey
-  = lens _riglwdiKey (\ s a -> s{_riglwdiKey = a})
-
-instance FromJSON
-           RegionInstanceGroupListWarningDataItem
-         where
-        parseJSON
-          = withObject "RegionInstanceGroupListWarningDataItem"
-              (\ o ->
-                 RegionInstanceGroupListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           RegionInstanceGroupListWarningDataItem
-         where
-        toJSON RegionInstanceGroupListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _riglwdiValue,
-                  ("key" .=) <$> _riglwdiKey])
-
--- | A list of SubnetworksScopedList resources.
---
--- /See:/ 'subnetworkAggregatedListItems' smart constructor.
-newtype SubnetworkAggregatedListItems =
-  SubnetworkAggregatedListItems'
-    { _saliAddtional :: HashMap Text SubnetworksScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworkAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'saliAddtional'
-subnetworkAggregatedListItems
-    :: HashMap Text SubnetworksScopedList -- ^ 'saliAddtional'
-    -> SubnetworkAggregatedListItems
-subnetworkAggregatedListItems pSaliAddtional_ =
-  SubnetworkAggregatedListItems' {_saliAddtional = _Coerce # pSaliAddtional_}
-
-
--- | Name of the scope containing this set of Subnetworks.
-saliAddtional :: Lens' SubnetworkAggregatedListItems (HashMap Text SubnetworksScopedList)
-saliAddtional
-  = lens _saliAddtional
-      (\ s a -> s{_saliAddtional = a})
-      . _Coerce
-
-instance FromJSON SubnetworkAggregatedListItems where
-        parseJSON
-          = withObject "SubnetworkAggregatedListItems"
-              (\ o ->
-                 SubnetworkAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON SubnetworkAggregatedListItems where
-        toJSON = toJSON . _saliAddtional
-
--- | A list of NetworkEndpointGroupsScopedList resources.
---
--- /See:/ 'networkEndpointGroupAggregatedListItems' smart constructor.
-newtype NetworkEndpointGroupAggregatedListItems =
-  NetworkEndpointGroupAggregatedListItems'
-    { _negaliAddtional :: HashMap Text NetworkEndpointGroupsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negaliAddtional'
-networkEndpointGroupAggregatedListItems
-    :: HashMap Text NetworkEndpointGroupsScopedList -- ^ 'negaliAddtional'
-    -> NetworkEndpointGroupAggregatedListItems
-networkEndpointGroupAggregatedListItems pNegaliAddtional_ =
-  NetworkEndpointGroupAggregatedListItems'
-    {_negaliAddtional = _Coerce # pNegaliAddtional_}
-
-
--- | The name of the scope that contains this set of network endpoint groups.
-negaliAddtional :: Lens' NetworkEndpointGroupAggregatedListItems (HashMap Text NetworkEndpointGroupsScopedList)
-negaliAddtional
-  = lens _negaliAddtional
-      (\ s a -> s{_negaliAddtional = a})
-      . _Coerce
-
-instance FromJSON
-           NetworkEndpointGroupAggregatedListItems
-         where
-        parseJSON
-          = withObject
-              "NetworkEndpointGroupAggregatedListItems"
-              (\ o ->
-                 NetworkEndpointGroupAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON
-           NetworkEndpointGroupAggregatedListItems
-         where
-        toJSON = toJSON . _negaliAddtional
-
---
--- /See:/ 'interconnectAttachmentAggregatedListWarningDataItem' smart constructor.
-data InterconnectAttachmentAggregatedListWarningDataItem =
-  InterconnectAttachmentAggregatedListWarningDataItem'
-    { _iaalwdiValue :: !(Maybe Text)
-    , _iaalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaalwdiValue'
---
--- * 'iaalwdiKey'
-interconnectAttachmentAggregatedListWarningDataItem
-    :: InterconnectAttachmentAggregatedListWarningDataItem
-interconnectAttachmentAggregatedListWarningDataItem =
-  InterconnectAttachmentAggregatedListWarningDataItem'
-    {_iaalwdiValue = Nothing, _iaalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-iaalwdiValue :: Lens' InterconnectAttachmentAggregatedListWarningDataItem (Maybe Text)
-iaalwdiValue
-  = lens _iaalwdiValue (\ s a -> s{_iaalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-iaalwdiKey :: Lens' InterconnectAttachmentAggregatedListWarningDataItem (Maybe Text)
-iaalwdiKey
-  = lens _iaalwdiKey (\ s a -> s{_iaalwdiKey = a})
-
-instance FromJSON
-           InterconnectAttachmentAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentAggregatedListWarningDataItem"
-              (\ o ->
-                 InterconnectAttachmentAggregatedListWarningDataItem'
-                   <$> (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InterconnectAttachmentAggregatedListWarningDataItem
-         where
-        toJSON
-          InterconnectAttachmentAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _iaalwdiValue,
-                  ("key" .=) <$> _iaalwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'interconnectAttachmentListWarning' smart constructor.
-data InterconnectAttachmentListWarning =
-  InterconnectAttachmentListWarning'
-    { _intData    :: !(Maybe [InterconnectAttachmentListWarningDataItem])
-    , _intCode    :: !(Maybe InterconnectAttachmentListWarningCode)
-    , _intMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'intData'
---
--- * 'intCode'
---
--- * 'intMessage'
-interconnectAttachmentListWarning
-    :: InterconnectAttachmentListWarning
-interconnectAttachmentListWarning =
-  InterconnectAttachmentListWarning'
-    {_intData = Nothing, _intCode = Nothing, _intMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-intData :: Lens' InterconnectAttachmentListWarning [InterconnectAttachmentListWarningDataItem]
-intData
-  = lens _intData (\ s a -> s{_intData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-intCode :: Lens' InterconnectAttachmentListWarning (Maybe InterconnectAttachmentListWarningCode)
-intCode = lens _intCode (\ s a -> s{_intCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-intMessage :: Lens' InterconnectAttachmentListWarning (Maybe Text)
-intMessage
-  = lens _intMessage (\ s a -> s{_intMessage = a})
-
-instance FromJSON InterconnectAttachmentListWarning
-         where
-        parseJSON
-          = withObject "InterconnectAttachmentListWarning"
-              (\ o ->
-                 InterconnectAttachmentListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InterconnectAttachmentListWarning
-         where
-        toJSON InterconnectAttachmentListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _intData, ("code" .=) <$> _intCode,
-                  ("message" .=) <$> _intMessage])
-
--- | A condition to be met.
---
--- /See:/ 'condition' smart constructor.
-data Condition =
-  Condition'
-    { _cOp     :: !(Maybe ConditionOp)
-    , _cIAM    :: !(Maybe ConditionIAM)
-    , _cValues :: !(Maybe [Text])
-    , _cSys    :: !(Maybe ConditionSys)
-    , _cSvc    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Condition' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cOp'
---
--- * 'cIAM'
---
--- * 'cValues'
---
--- * 'cSys'
---
--- * 'cSvc'
-condition
-    :: Condition
-condition =
-  Condition'
-    { _cOp = Nothing
-    , _cIAM = Nothing
-    , _cValues = Nothing
-    , _cSys = Nothing
-    , _cSvc = Nothing
-    }
-
-
--- | An operator to apply the subject with.
-cOp :: Lens' Condition (Maybe ConditionOp)
-cOp = lens _cOp (\ s a -> s{_cOp = a})
-
--- | Trusted attributes supplied by the IAM system.
-cIAM :: Lens' Condition (Maybe ConditionIAM)
-cIAM = lens _cIAM (\ s a -> s{_cIAM = a})
-
--- | The objects of the condition.
-cValues :: Lens' Condition [Text]
-cValues
-  = lens _cValues (\ s a -> s{_cValues = a}) . _Default
-      . _Coerce
-
--- | Trusted attributes supplied by any service that owns resources and uses
--- the IAM system for access control.
-cSys :: Lens' Condition (Maybe ConditionSys)
-cSys = lens _cSys (\ s a -> s{_cSys = a})
-
--- | Trusted attributes discharged by the service.
-cSvc :: Lens' Condition (Maybe Text)
-cSvc = lens _cSvc (\ s a -> s{_cSvc = a})
-
-instance FromJSON Condition where
-        parseJSON
-          = withObject "Condition"
-              (\ o ->
-                 Condition' <$>
-                   (o .:? "op") <*> (o .:? "iam") <*>
-                     (o .:? "values" .!= mempty)
-                     <*> (o .:? "sys")
-                     <*> (o .:? "svc"))
-
-instance ToJSON Condition where
-        toJSON Condition'{..}
-          = object
-              (catMaybes
-                 [("op" .=) <$> _cOp, ("iam" .=) <$> _cIAM,
-                  ("values" .=) <$> _cValues, ("sys" .=) <$> _cSys,
-                  ("svc" .=) <$> _cSvc])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'addressAggregatedListWarning' smart constructor.
-data AddressAggregatedListWarning =
-  AddressAggregatedListWarning'
-    { _addData    :: !(Maybe [AddressAggregatedListWarningDataItem])
-    , _addCode    :: !(Maybe AddressAggregatedListWarningCode)
-    , _addMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'addData'
---
--- * 'addCode'
---
--- * 'addMessage'
-addressAggregatedListWarning
-    :: AddressAggregatedListWarning
-addressAggregatedListWarning =
-  AddressAggregatedListWarning'
-    {_addData = Nothing, _addCode = Nothing, _addMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-addData :: Lens' AddressAggregatedListWarning [AddressAggregatedListWarningDataItem]
-addData
-  = lens _addData (\ s a -> s{_addData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-addCode :: Lens' AddressAggregatedListWarning (Maybe AddressAggregatedListWarningCode)
-addCode = lens _addCode (\ s a -> s{_addCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-addMessage :: Lens' AddressAggregatedListWarning (Maybe Text)
-addMessage
-  = lens _addMessage (\ s a -> s{_addMessage = a})
-
-instance FromJSON AddressAggregatedListWarning where
-        parseJSON
-          = withObject "AddressAggregatedListWarning"
-              (\ o ->
-                 AddressAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AddressAggregatedListWarning where
-        toJSON AddressAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _addData, ("code" .=) <$> _addCode,
-                  ("message" .=) <$> _addMessage])
-
---
--- /See:/ 'managedInstanceLastAttempt' smart constructor.
-newtype ManagedInstanceLastAttempt =
-  ManagedInstanceLastAttempt'
-    { _milaErrors :: Maybe ManagedInstanceLastAttemptErrors
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedInstanceLastAttempt' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'milaErrors'
-managedInstanceLastAttempt
-    :: ManagedInstanceLastAttempt
-managedInstanceLastAttempt = ManagedInstanceLastAttempt' {_milaErrors = Nothing}
-
-
--- | [Output Only] Encountered errors during the last attempt to create or
--- delete the instance.
-milaErrors :: Lens' ManagedInstanceLastAttempt (Maybe ManagedInstanceLastAttemptErrors)
-milaErrors
-  = lens _milaErrors (\ s a -> s{_milaErrors = a})
-
-instance FromJSON ManagedInstanceLastAttempt where
-        parseJSON
-          = withObject "ManagedInstanceLastAttempt"
-              (\ o ->
-                 ManagedInstanceLastAttempt' <$> (o .:? "errors"))
-
-instance ToJSON ManagedInstanceLastAttempt where
-        toJSON ManagedInstanceLastAttempt'{..}
-          = object (catMaybes [("errors" .=) <$> _milaErrors])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'licensesListResponseWarning' smart constructor.
-data LicensesListResponseWarning =
-  LicensesListResponseWarning'
-    { _llrwData    :: !(Maybe [LicensesListResponseWarningDataItem])
-    , _llrwCode    :: !(Maybe LicensesListResponseWarningCode)
-    , _llrwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesListResponseWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'llrwData'
---
--- * 'llrwCode'
---
--- * 'llrwMessage'
-licensesListResponseWarning
-    :: LicensesListResponseWarning
-licensesListResponseWarning =
-  LicensesListResponseWarning'
-    {_llrwData = Nothing, _llrwCode = Nothing, _llrwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-llrwData :: Lens' LicensesListResponseWarning [LicensesListResponseWarningDataItem]
-llrwData
-  = lens _llrwData (\ s a -> s{_llrwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-llrwCode :: Lens' LicensesListResponseWarning (Maybe LicensesListResponseWarningCode)
-llrwCode = lens _llrwCode (\ s a -> s{_llrwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-llrwMessage :: Lens' LicensesListResponseWarning (Maybe Text)
-llrwMessage
-  = lens _llrwMessage (\ s a -> s{_llrwMessage = a})
-
-instance FromJSON LicensesListResponseWarning where
-        parseJSON
-          = withObject "LicensesListResponseWarning"
-              (\ o ->
-                 LicensesListResponseWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON LicensesListResponseWarning where
-        toJSON LicensesListResponseWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _llrwData,
-                  ("code" .=) <$> _llrwCode,
-                  ("message" .=) <$> _llrwMessage])
-
---
--- /See:/ 'autoscalerStatusDetails' smart constructor.
-data AutoscalerStatusDetails =
-  AutoscalerStatusDetails'
-    { _asdType    :: !(Maybe AutoscalerStatusDetailsType)
-    , _asdMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalerStatusDetails' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'asdType'
---
--- * 'asdMessage'
-autoscalerStatusDetails
-    :: AutoscalerStatusDetails
-autoscalerStatusDetails =
-  AutoscalerStatusDetails' {_asdType = Nothing, _asdMessage = Nothing}
-
-
--- | The type of error returned.
-asdType :: Lens' AutoscalerStatusDetails (Maybe AutoscalerStatusDetailsType)
-asdType = lens _asdType (\ s a -> s{_asdType = a})
-
--- | The status message.
-asdMessage :: Lens' AutoscalerStatusDetails (Maybe Text)
-asdMessage
-  = lens _asdMessage (\ s a -> s{_asdMessage = a})
-
-instance FromJSON AutoscalerStatusDetails where
-        parseJSON
-          = withObject "AutoscalerStatusDetails"
-              (\ o ->
-                 AutoscalerStatusDetails' <$>
-                   (o .:? "type") <*> (o .:? "message"))
-
-instance ToJSON AutoscalerStatusDetails where
-        toJSON AutoscalerStatusDetails'{..}
-          = object
-              (catMaybes
-                 [("type" .=) <$> _asdType,
-                  ("message" .=) <$> _asdMessage])
-
--- | Contains a list of BackendService resources.
---
--- /See:/ 'backendServiceList' smart constructor.
-data BackendServiceList =
-  BackendServiceList'
-    { _bslNextPageToken :: !(Maybe Text)
-    , _bslKind          :: !Text
-    , _bslItems         :: !(Maybe [BackendService])
-    , _bslSelfLink      :: !(Maybe Text)
-    , _bslWarning       :: !(Maybe BackendServiceListWarning)
-    , _bslId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bslNextPageToken'
---
--- * 'bslKind'
---
--- * 'bslItems'
---
--- * 'bslSelfLink'
---
--- * 'bslWarning'
---
--- * 'bslId'
-backendServiceList
-    :: BackendServiceList
-backendServiceList =
-  BackendServiceList'
-    { _bslNextPageToken = Nothing
-    , _bslKind = "compute#backendServiceList"
-    , _bslItems = Nothing
-    , _bslSelfLink = Nothing
-    , _bslWarning = Nothing
-    , _bslId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-bslNextPageToken :: Lens' BackendServiceList (Maybe Text)
-bslNextPageToken
-  = lens _bslNextPageToken
-      (\ s a -> s{_bslNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#backendServiceList for
--- lists of backend services.
-bslKind :: Lens' BackendServiceList Text
-bslKind = lens _bslKind (\ s a -> s{_bslKind = a})
-
--- | A list of BackendService resources.
-bslItems :: Lens' BackendServiceList [BackendService]
-bslItems
-  = lens _bslItems (\ s a -> s{_bslItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-bslSelfLink :: Lens' BackendServiceList (Maybe Text)
-bslSelfLink
-  = lens _bslSelfLink (\ s a -> s{_bslSelfLink = a})
-
--- | [Output Only] Informational warning message.
-bslWarning :: Lens' BackendServiceList (Maybe BackendServiceListWarning)
-bslWarning
-  = lens _bslWarning (\ s a -> s{_bslWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-bslId :: Lens' BackendServiceList (Maybe Text)
-bslId = lens _bslId (\ s a -> s{_bslId = a})
-
-instance FromJSON BackendServiceList where
-        parseJSON
-          = withObject "BackendServiceList"
-              (\ o ->
-                 BackendServiceList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#backendServiceList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON BackendServiceList where
-        toJSON BackendServiceList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _bslNextPageToken,
-                  Just ("kind" .= _bslKind),
-                  ("items" .=) <$> _bslItems,
-                  ("selfLink" .=) <$> _bslSelfLink,
-                  ("warning" .=) <$> _bslWarning,
-                  ("id" .=) <$> _bslId])
-
---
--- /See:/ 'xpnHostListWarningDataItem' smart constructor.
-data XpnHostListWarningDataItem =
-  XpnHostListWarningDataItem'
-    { _xhlwdiValue :: !(Maybe Text)
-    , _xhlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'XpnHostListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'xhlwdiValue'
---
--- * 'xhlwdiKey'
-xpnHostListWarningDataItem
-    :: XpnHostListWarningDataItem
-xpnHostListWarningDataItem =
-  XpnHostListWarningDataItem' {_xhlwdiValue = Nothing, _xhlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-xhlwdiValue :: Lens' XpnHostListWarningDataItem (Maybe Text)
-xhlwdiValue
-  = lens _xhlwdiValue (\ s a -> s{_xhlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-xhlwdiKey :: Lens' XpnHostListWarningDataItem (Maybe Text)
-xhlwdiKey
-  = lens _xhlwdiKey (\ s a -> s{_xhlwdiKey = a})
-
-instance FromJSON XpnHostListWarningDataItem where
-        parseJSON
-          = withObject "XpnHostListWarningDataItem"
-              (\ o ->
-                 XpnHostListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON XpnHostListWarningDataItem where
-        toJSON XpnHostListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _xhlwdiValue,
-                  ("key" .=) <$> _xhlwdiKey])
-
---
--- /See:/ 'zoneListWarningDataItem' smart constructor.
-data ZoneListWarningDataItem =
-  ZoneListWarningDataItem'
-    { _zlwdiValue :: !(Maybe Text)
-    , _zlwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zlwdiValue'
---
--- * 'zlwdiKey'
-zoneListWarningDataItem
-    :: ZoneListWarningDataItem
-zoneListWarningDataItem =
-  ZoneListWarningDataItem' {_zlwdiValue = Nothing, _zlwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-zlwdiValue :: Lens' ZoneListWarningDataItem (Maybe Text)
-zlwdiValue
-  = lens _zlwdiValue (\ s a -> s{_zlwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-zlwdiKey :: Lens' ZoneListWarningDataItem (Maybe Text)
-zlwdiKey = lens _zlwdiKey (\ s a -> s{_zlwdiKey = a})
-
-instance FromJSON ZoneListWarningDataItem where
-        parseJSON
-          = withObject "ZoneListWarningDataItem"
-              (\ o ->
-                 ZoneListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON ZoneListWarningDataItem where
-        toJSON ZoneListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _zlwdiValue,
-                  ("key" .=) <$> _zlwdiKey])
-
---
--- /See:/ 'regionSetPolicyRequest' smart constructor.
-data RegionSetPolicyRequest =
-  RegionSetPolicyRequest'
-    { _rsprEtag     :: !(Maybe Bytes)
-    , _rsprBindings :: !(Maybe [Binding])
-    , _rsprPolicy   :: !(Maybe Policy)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionSetPolicyRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rsprEtag'
---
--- * 'rsprBindings'
---
--- * 'rsprPolicy'
-regionSetPolicyRequest
-    :: RegionSetPolicyRequest
-regionSetPolicyRequest =
-  RegionSetPolicyRequest'
-    {_rsprEtag = Nothing, _rsprBindings = Nothing, _rsprPolicy = Nothing}
-
-
--- | Flatten Policy to create a backward compatible wire-format. Deprecated.
--- Use \'policy\' to specify the etag.
-rsprEtag :: Lens' RegionSetPolicyRequest (Maybe ByteString)
-rsprEtag
-  = lens _rsprEtag (\ s a -> s{_rsprEtag = a}) .
-      mapping _Bytes
-
--- | Flatten Policy to create a backwacd compatible wire-format. Deprecated.
--- Use \'policy\' to specify bindings.
-rsprBindings :: Lens' RegionSetPolicyRequest [Binding]
-rsprBindings
-  = lens _rsprBindings (\ s a -> s{_rsprBindings = a})
-      . _Default
-      . _Coerce
-
--- | REQUIRED: The complete policy to be applied to the \'resource\'. The
--- size of the policy is limited to a few 10s of KB. An empty policy is in
--- general a valid policy but certain services (like Projects) might reject
--- them.
-rsprPolicy :: Lens' RegionSetPolicyRequest (Maybe Policy)
-rsprPolicy
-  = lens _rsprPolicy (\ s a -> s{_rsprPolicy = a})
-
-instance FromJSON RegionSetPolicyRequest where
-        parseJSON
-          = withObject "RegionSetPolicyRequest"
-              (\ o ->
-                 RegionSetPolicyRequest' <$>
-                   (o .:? "etag") <*> (o .:? "bindings" .!= mempty) <*>
-                     (o .:? "policy"))
-
-instance ToJSON RegionSetPolicyRequest where
-        toJSON RegionSetPolicyRequest'{..}
-          = object
-              (catMaybes
-                 [("etag" .=) <$> _rsprEtag,
-                  ("bindings" .=) <$> _rsprBindings,
-                  ("policy" .=) <$> _rsprPolicy])
-
--- | [Output Only] An informational warning that replaces the list of
--- instance groups when the list is empty.
---
--- /See:/ 'instanceGroupsScopedListWarning' smart constructor.
-data InstanceGroupsScopedListWarning =
-  InstanceGroupsScopedListWarning'
-    { _igslwData    :: !(Maybe [InstanceGroupsScopedListWarningDataItem])
-    , _igslwCode    :: !(Maybe InstanceGroupsScopedListWarningCode)
-    , _igslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igslwData'
---
--- * 'igslwCode'
---
--- * 'igslwMessage'
-instanceGroupsScopedListWarning
-    :: InstanceGroupsScopedListWarning
-instanceGroupsScopedListWarning =
-  InstanceGroupsScopedListWarning'
-    {_igslwData = Nothing, _igslwCode = Nothing, _igslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-igslwData :: Lens' InstanceGroupsScopedListWarning [InstanceGroupsScopedListWarningDataItem]
-igslwData
-  = lens _igslwData (\ s a -> s{_igslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-igslwCode :: Lens' InstanceGroupsScopedListWarning (Maybe InstanceGroupsScopedListWarningCode)
-igslwCode
-  = lens _igslwCode (\ s a -> s{_igslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-igslwMessage :: Lens' InstanceGroupsScopedListWarning (Maybe Text)
-igslwMessage
-  = lens _igslwMessage (\ s a -> s{_igslwMessage = a})
-
-instance FromJSON InstanceGroupsScopedListWarning
-         where
-        parseJSON
-          = withObject "InstanceGroupsScopedListWarning"
-              (\ o ->
-                 InstanceGroupsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceGroupsScopedListWarning where
-        toJSON InstanceGroupsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _igslwData,
-                  ("code" .=) <$> _igslwCode,
-                  ("message" .=) <$> _igslwMessage])
-
--- | CPU utilization policy.
---
--- /See:/ 'autoscalingPolicyCPUUtilization' smart constructor.
-newtype AutoscalingPolicyCPUUtilization =
-  AutoscalingPolicyCPUUtilization'
-    { _apcuUtilizationTarget :: Maybe (Textual Double)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalingPolicyCPUUtilization' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apcuUtilizationTarget'
-autoscalingPolicyCPUUtilization
-    :: AutoscalingPolicyCPUUtilization
-autoscalingPolicyCPUUtilization =
-  AutoscalingPolicyCPUUtilization' {_apcuUtilizationTarget = Nothing}
-
-
--- | The target CPU utilization that the autoscaler should maintain. Must be
--- a float value in the range (0, 1]. If not specified, the default is 0.6.
--- If the CPU level is below the target utilization, the autoscaler scales
--- down the number of instances until it reaches the minimum number of
--- instances you specified or until the average CPU of your instances
--- reaches the target utilization. If the average CPU is above the target
--- utilization, the autoscaler scales up until it reaches the maximum
--- number of instances you specified or until the average utilization
--- reaches the target utilization.
-apcuUtilizationTarget :: Lens' AutoscalingPolicyCPUUtilization (Maybe Double)
-apcuUtilizationTarget
-  = lens _apcuUtilizationTarget
-      (\ s a -> s{_apcuUtilizationTarget = a})
-      . mapping _Coerce
-
-instance FromJSON AutoscalingPolicyCPUUtilization
-         where
-        parseJSON
-          = withObject "AutoscalingPolicyCPUUtilization"
-              (\ o ->
-                 AutoscalingPolicyCPUUtilization' <$>
-                   (o .:? "utilizationTarget"))
-
-instance ToJSON AutoscalingPolicyCPUUtilization where
-        toJSON AutoscalingPolicyCPUUtilization'{..}
-          = object
-              (catMaybes
-                 [("utilizationTarget" .=) <$>
-                    _apcuUtilizationTarget])
-
---
--- /See:/ 'instanceGroupsScopedListWarningDataItem' smart constructor.
-data InstanceGroupsScopedListWarningDataItem =
-  InstanceGroupsScopedListWarningDataItem'
-    { _igslwdiValue :: !(Maybe Text)
-    , _igslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igslwdiValue'
---
--- * 'igslwdiKey'
-instanceGroupsScopedListWarningDataItem
-    :: InstanceGroupsScopedListWarningDataItem
-instanceGroupsScopedListWarningDataItem =
-  InstanceGroupsScopedListWarningDataItem'
-    {_igslwdiValue = Nothing, _igslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-igslwdiValue :: Lens' InstanceGroupsScopedListWarningDataItem (Maybe Text)
-igslwdiValue
-  = lens _igslwdiValue (\ s a -> s{_igslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-igslwdiKey :: Lens' InstanceGroupsScopedListWarningDataItem (Maybe Text)
-igslwdiKey
-  = lens _igslwdiKey (\ s a -> s{_igslwdiKey = a})
-
-instance FromJSON
-           InstanceGroupsScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InstanceGroupsScopedListWarningDataItem"
-              (\ o ->
-                 InstanceGroupsScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InstanceGroupsScopedListWarningDataItem
-         where
-        toJSON InstanceGroupsScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _igslwdiValue,
-                  ("key" .=) <$> _igslwdiKey])
-
---
--- /See:/ 'securityPolicyRuleMatcherConfig' smart constructor.
-newtype SecurityPolicyRuleMatcherConfig =
-  SecurityPolicyRuleMatcherConfig'
-    { _sprmcSrcIPRanges :: Maybe [Text]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyRuleMatcherConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprmcSrcIPRanges'
-securityPolicyRuleMatcherConfig
-    :: SecurityPolicyRuleMatcherConfig
-securityPolicyRuleMatcherConfig =
-  SecurityPolicyRuleMatcherConfig' {_sprmcSrcIPRanges = Nothing}
-
-
--- | CIDR IP address range.
-sprmcSrcIPRanges :: Lens' SecurityPolicyRuleMatcherConfig [Text]
-sprmcSrcIPRanges
-  = lens _sprmcSrcIPRanges
-      (\ s a -> s{_sprmcSrcIPRanges = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON SecurityPolicyRuleMatcherConfig
-         where
-        parseJSON
-          = withObject "SecurityPolicyRuleMatcherConfig"
-              (\ o ->
-                 SecurityPolicyRuleMatcherConfig' <$>
-                   (o .:? "srcIpRanges" .!= mempty))
-
-instance ToJSON SecurityPolicyRuleMatcherConfig where
-        toJSON SecurityPolicyRuleMatcherConfig'{..}
-          = object
-              (catMaybes
-                 [("srcIpRanges" .=) <$> _sprmcSrcIPRanges])
-
---
--- /See:/ 'licensesListResponseWarningDataItem' smart constructor.
-data LicensesListResponseWarningDataItem =
-  LicensesListResponseWarningDataItem'
-    { _llrwdiValue :: !(Maybe Text)
-    , _llrwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesListResponseWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'llrwdiValue'
---
--- * 'llrwdiKey'
-licensesListResponseWarningDataItem
-    :: LicensesListResponseWarningDataItem
-licensesListResponseWarningDataItem =
-  LicensesListResponseWarningDataItem'
-    {_llrwdiValue = Nothing, _llrwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-llrwdiValue :: Lens' LicensesListResponseWarningDataItem (Maybe Text)
-llrwdiValue
-  = lens _llrwdiValue (\ s a -> s{_llrwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-llrwdiKey :: Lens' LicensesListResponseWarningDataItem (Maybe Text)
-llrwdiKey
-  = lens _llrwdiKey (\ s a -> s{_llrwdiKey = a})
-
-instance FromJSON LicensesListResponseWarningDataItem
-         where
-        parseJSON
-          = withObject "LicensesListResponseWarningDataItem"
-              (\ o ->
-                 LicensesListResponseWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON LicensesListResponseWarningDataItem
-         where
-        toJSON LicensesListResponseWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _llrwdiValue,
-                  ("key" .=) <$> _llrwdiKey])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'xpnHostListWarning' smart constructor.
-data XpnHostListWarning =
-  XpnHostListWarning'
-    { _xhlwData    :: !(Maybe [XpnHostListWarningDataItem])
-    , _xhlwCode    :: !(Maybe XpnHostListWarningCode)
-    , _xhlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'XpnHostListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'xhlwData'
---
--- * 'xhlwCode'
---
--- * 'xhlwMessage'
-xpnHostListWarning
-    :: XpnHostListWarning
-xpnHostListWarning =
-  XpnHostListWarning'
-    {_xhlwData = Nothing, _xhlwCode = Nothing, _xhlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-xhlwData :: Lens' XpnHostListWarning [XpnHostListWarningDataItem]
-xhlwData
-  = lens _xhlwData (\ s a -> s{_xhlwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-xhlwCode :: Lens' XpnHostListWarning (Maybe XpnHostListWarningCode)
-xhlwCode = lens _xhlwCode (\ s a -> s{_xhlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-xhlwMessage :: Lens' XpnHostListWarning (Maybe Text)
-xhlwMessage
-  = lens _xhlwMessage (\ s a -> s{_xhlwMessage = a})
-
-instance FromJSON XpnHostListWarning where
-        parseJSON
-          = withObject "XpnHostListWarning"
-              (\ o ->
-                 XpnHostListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON XpnHostListWarning where
-        toJSON XpnHostListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _xhlwData,
-                  ("code" .=) <$> _xhlwCode,
-                  ("message" .=) <$> _xhlwMessage])
-
---
--- /See:/ 'resourceGroupReference' smart constructor.
-newtype ResourceGroupReference =
-  ResourceGroupReference'
-    { _rgrGroup :: Maybe Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ResourceGroupReference' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rgrGroup'
-resourceGroupReference
-    :: ResourceGroupReference
-resourceGroupReference = ResourceGroupReference' {_rgrGroup = Nothing}
-
-
--- | A URI referencing one of the instance groups or network endpoint groups
--- listed in the backend service.
-rgrGroup :: Lens' ResourceGroupReference (Maybe Text)
-rgrGroup = lens _rgrGroup (\ s a -> s{_rgrGroup = a})
-
-instance FromJSON ResourceGroupReference where
-        parseJSON
-          = withObject "ResourceGroupReference"
-              (\ o -> ResourceGroupReference' <$> (o .:? "group"))
-
-instance ToJSON ResourceGroupReference where
-        toJSON ResourceGroupReference'{..}
-          = object (catMaybes [("group" .=) <$> _rgrGroup])
-
--- | Contains a list of VmEndpointNatMappings.
---
--- /See:/ 'vMEndpointNATMAppingsList' smart constructor.
-data VMEndpointNATMAppingsList =
-  VMEndpointNATMAppingsList'
-    { _vmenatmalNextPageToken :: !(Maybe Text)
-    , _vmenatmalKind          :: !Text
-    , _vmenatmalResult        :: !(Maybe [VMEndpointNATMAppings])
-    , _vmenatmalSelfLink      :: !(Maybe Text)
-    , _vmenatmalWarning       :: !(Maybe VMEndpointNATMAppingsListWarning)
-    , _vmenatmalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VMEndpointNATMAppingsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vmenatmalNextPageToken'
---
--- * 'vmenatmalKind'
---
--- * 'vmenatmalResult'
---
--- * 'vmenatmalSelfLink'
---
--- * 'vmenatmalWarning'
---
--- * 'vmenatmalId'
-vMEndpointNATMAppingsList
-    :: VMEndpointNATMAppingsList
-vMEndpointNATMAppingsList =
-  VMEndpointNATMAppingsList'
-    { _vmenatmalNextPageToken = Nothing
-    , _vmenatmalKind = "compute#vmEndpointNatMappingsList"
-    , _vmenatmalResult = Nothing
-    , _vmenatmalSelfLink = Nothing
-    , _vmenatmalWarning = Nothing
-    , _vmenatmalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-vmenatmalNextPageToken :: Lens' VMEndpointNATMAppingsList (Maybe Text)
-vmenatmalNextPageToken
-  = lens _vmenatmalNextPageToken
-      (\ s a -> s{_vmenatmalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#vmEndpointNatMappingsList
--- for lists of Nat mappings of VM endpoints.
-vmenatmalKind :: Lens' VMEndpointNATMAppingsList Text
-vmenatmalKind
-  = lens _vmenatmalKind
-      (\ s a -> s{_vmenatmalKind = a})
-
--- | [Output Only] A list of Nat mapping information of VM endpoints.
-vmenatmalResult :: Lens' VMEndpointNATMAppingsList [VMEndpointNATMAppings]
-vmenatmalResult
-  = lens _vmenatmalResult
-      (\ s a -> s{_vmenatmalResult = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-vmenatmalSelfLink :: Lens' VMEndpointNATMAppingsList (Maybe Text)
-vmenatmalSelfLink
-  = lens _vmenatmalSelfLink
-      (\ s a -> s{_vmenatmalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-vmenatmalWarning :: Lens' VMEndpointNATMAppingsList (Maybe VMEndpointNATMAppingsListWarning)
-vmenatmalWarning
-  = lens _vmenatmalWarning
-      (\ s a -> s{_vmenatmalWarning = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-vmenatmalId :: Lens' VMEndpointNATMAppingsList (Maybe Text)
-vmenatmalId
-  = lens _vmenatmalId (\ s a -> s{_vmenatmalId = a})
-
-instance FromJSON VMEndpointNATMAppingsList where
-        parseJSON
-          = withObject "VMEndpointNATMAppingsList"
-              (\ o ->
-                 VMEndpointNATMAppingsList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#vmEndpointNatMappingsList")
-                     <*> (o .:? "result" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON VMEndpointNATMAppingsList where
-        toJSON VMEndpointNATMAppingsList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _vmenatmalNextPageToken,
-                  Just ("kind" .= _vmenatmalKind),
-                  ("result" .=) <$> _vmenatmalResult,
-                  ("selfLink" .=) <$> _vmenatmalSelfLink,
-                  ("warning" .=) <$> _vmenatmalWarning,
-                  ("id" .=) <$> _vmenatmalId])
-
--- | Represents a Firewall resource.
---
--- /See:/ 'firewall' smart constructor.
-data Firewall =
-  Firewall'
-    { _fSourceTags            :: !(Maybe [Text])
-    , _fSourceServiceAccounts :: !(Maybe [Text])
-    , _fPriority              :: !(Maybe (Textual Int32))
-    , _fDirection             :: !(Maybe FirewallDirection)
-    , _fKind                  :: !Text
-    , _fDisabled              :: !(Maybe Bool)
-    , _fTargetTags            :: !(Maybe [Text])
-    , _fNetwork               :: !(Maybe Text)
-    , _fSourceRanges          :: !(Maybe [Text])
-    , _fSelfLink              :: !(Maybe Text)
-    , _fName                  :: !(Maybe Text)
-    , _fDenied                :: !(Maybe [FirewallDeniedItem])
-    , _fCreationTimestamp     :: !(Maybe Text)
-    , _fId                    :: !(Maybe (Textual Word64))
-    , _fAllowed               :: !(Maybe [FirewallAllowedItem])
-    , _fDestinationRanges     :: !(Maybe [Text])
-    , _fLogConfig             :: !(Maybe FirewallLogConfig)
-    , _fTargetServiceAccounts :: !(Maybe [Text])
-    , _fDescription           :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Firewall' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fSourceTags'
---
--- * 'fSourceServiceAccounts'
---
--- * 'fPriority'
---
--- * 'fDirection'
---
--- * 'fKind'
---
--- * 'fDisabled'
---
--- * 'fTargetTags'
---
--- * 'fNetwork'
---
--- * 'fSourceRanges'
---
--- * 'fSelfLink'
---
--- * 'fName'
---
--- * 'fDenied'
---
--- * 'fCreationTimestamp'
---
--- * 'fId'
---
--- * 'fAllowed'
---
--- * 'fDestinationRanges'
---
--- * 'fLogConfig'
---
--- * 'fTargetServiceAccounts'
---
--- * 'fDescription'
-firewall
-    :: Firewall
-firewall =
-  Firewall'
-    { _fSourceTags = Nothing
-    , _fSourceServiceAccounts = Nothing
-    , _fPriority = Nothing
-    , _fDirection = Nothing
-    , _fKind = "compute#firewall"
-    , _fDisabled = Nothing
-    , _fTargetTags = Nothing
-    , _fNetwork = Nothing
-    , _fSourceRanges = Nothing
-    , _fSelfLink = Nothing
-    , _fName = Nothing
-    , _fDenied = Nothing
-    , _fCreationTimestamp = Nothing
-    , _fId = Nothing
-    , _fAllowed = Nothing
-    , _fDestinationRanges = Nothing
-    , _fLogConfig = Nothing
-    , _fTargetServiceAccounts = Nothing
-    , _fDescription = Nothing
-    }
-
-
--- | If source tags are specified, the firewall rule applies only to traffic
--- with source IPs that match the primary network interfaces of VM
--- instances that have the tag and are in the same VPC network. Source tags
--- cannot be used to control traffic to an instance\'s external IP address,
--- it only applies to traffic between instances in the same virtual
--- network. Because tags are associated with instances, not IP addresses.
--- One or both of sourceRanges and sourceTags may be set. If both
--- properties are set, the firewall will apply to traffic that has source
--- IP address within sourceRanges OR the source IP that belongs to a tag
--- listed in the sourceTags property. The connection does not need to match
--- both properties for the firewall to apply.
-fSourceTags :: Lens' Firewall [Text]
-fSourceTags
-  = lens _fSourceTags (\ s a -> s{_fSourceTags = a}) .
-      _Default
-      . _Coerce
-
--- | If source service accounts are specified, the firewall will apply only
--- to traffic originating from an instance with a service account in this
--- list. Source service accounts cannot be used to control traffic to an
--- instance\'s external IP address because service accounts are associated
--- with an instance, not an IP address. sourceRanges can be set at the same
--- time as sourceServiceAccounts. If both are set, the firewall will apply
--- to traffic that has source IP address within sourceRanges OR the source
--- IP belongs to an instance with service account listed in
--- sourceServiceAccount. The connection does not need to match both
--- properties for the firewall to apply. sourceServiceAccounts cannot be
--- used at the same time as sourceTags or targetTags.
-fSourceServiceAccounts :: Lens' Firewall [Text]
-fSourceServiceAccounts
-  = lens _fSourceServiceAccounts
-      (\ s a -> s{_fSourceServiceAccounts = a})
-      . _Default
-      . _Coerce
-
--- | Priority for this rule. This is an integer between 0 and 65535, both
--- inclusive. When not specified, the value assumed is 1000. Relative
--- priorities determine precedence of conflicting rules. Lower value of
--- priority implies higher precedence (eg, a rule with priority 0 has
--- higher precedence than a rule with priority 1). DENY rules take
--- precedence over ALLOW rules having equal priority.
-fPriority :: Lens' Firewall (Maybe Int32)
-fPriority
-  = lens _fPriority (\ s a -> s{_fPriority = a}) .
-      mapping _Coerce
-
--- | Direction of traffic to which this firewall applies; default is INGRESS.
--- Note: For INGRESS traffic, it is NOT supported to specify
--- destinationRanges; For EGRESS traffic, it is NOT supported to specify
--- sourceRanges OR sourceTags.
-fDirection :: Lens' Firewall (Maybe FirewallDirection)
-fDirection
-  = lens _fDirection (\ s a -> s{_fDirection = a})
-
--- | [Output Only] Type of the resource. Always compute#firewall for firewall
--- rules.
-fKind :: Lens' Firewall Text
-fKind = lens _fKind (\ s a -> s{_fKind = a})
-
--- | Denotes whether the firewall rule is disabled, i.e not applied to the
--- network it is associated with. When set to true, the firewall rule is
--- not enforced and the network behaves as if it did not exist. If this is
--- unspecified, the firewall rule will be enabled.
-fDisabled :: Lens' Firewall (Maybe Bool)
-fDisabled
-  = lens _fDisabled (\ s a -> s{_fDisabled = a})
-
--- | A list of tags that controls which instances the firewall rule applies
--- to. If targetTags are specified, then the firewall rule applies only to
--- instances in the VPC network that have one of those tags. If no
--- targetTags are specified, the firewall rule applies to all instances on
--- the specified network.
-fTargetTags :: Lens' Firewall [Text]
-fTargetTags
-  = lens _fTargetTags (\ s a -> s{_fTargetTags = a}) .
-      _Default
-      . _Coerce
-
--- | URL of the network resource for this firewall rule. If not specified
--- when creating a firewall rule, the default network is used:
--- global\/networks\/default If you choose to specify this property, you
--- can specify the network as a full or partial URL. For example, the
--- following are all valid URLs: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/myproject\/global\/networks\/my-network
--- - projects\/myproject\/global\/networks\/my-network -
--- global\/networks\/default
-fNetwork :: Lens' Firewall (Maybe Text)
-fNetwork = lens _fNetwork (\ s a -> s{_fNetwork = a})
-
--- | If source ranges are specified, the firewall will apply only to traffic
--- that has source IP address in these ranges. These ranges must be
--- expressed in CIDR format. One or both of sourceRanges and sourceTags may
--- be set. If both properties are set, the firewall will apply to traffic
--- that has source IP address within sourceRanges OR the source IP that
--- belongs to a tag listed in the sourceTags property. The connection does
--- not need to match both properties for the firewall to apply. Only IPv4
--- is supported.
-fSourceRanges :: Lens' Firewall [Text]
-fSourceRanges
-  = lens _fSourceRanges
-      (\ s a -> s{_fSourceRanges = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for the resource.
-fSelfLink :: Lens' Firewall (Maybe Text)
-fSelfLink
-  = lens _fSelfLink (\ s a -> s{_fSelfLink = a})
-
--- | Name of the resource; provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-fName :: Lens' Firewall (Maybe Text)
-fName = lens _fName (\ s a -> s{_fName = a})
-
--- | The list of DENY rules specified by this firewall. Each rule specifies a
--- protocol and port-range tuple that describes a denied connection.
-fDenied :: Lens' Firewall [FirewallDeniedItem]
-fDenied
-  = lens _fDenied (\ s a -> s{_fDenied = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-fCreationTimestamp :: Lens' Firewall (Maybe Text)
-fCreationTimestamp
-  = lens _fCreationTimestamp
-      (\ s a -> s{_fCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-fId :: Lens' Firewall (Maybe Word64)
-fId
-  = lens _fId (\ s a -> s{_fId = a}) . mapping _Coerce
-
--- | The list of ALLOW rules specified by this firewall. Each rule specifies
--- a protocol and port-range tuple that describes a permitted connection.
-fAllowed :: Lens' Firewall [FirewallAllowedItem]
-fAllowed
-  = lens _fAllowed (\ s a -> s{_fAllowed = a}) .
-      _Default
-      . _Coerce
-
--- | If destination ranges are specified, the firewall will apply only to
--- traffic that has destination IP address in these ranges. These ranges
--- must be expressed in CIDR format. Only IPv4 is supported.
-fDestinationRanges :: Lens' Firewall [Text]
-fDestinationRanges
-  = lens _fDestinationRanges
-      (\ s a -> s{_fDestinationRanges = a})
-      . _Default
-      . _Coerce
-
--- | This field denotes the logging options for a particular firewall rule.
--- If logging is enabled, logs will be exported to Stackdriver.
-fLogConfig :: Lens' Firewall (Maybe FirewallLogConfig)
-fLogConfig
-  = lens _fLogConfig (\ s a -> s{_fLogConfig = a})
-
--- | A list of service accounts indicating sets of instances located in the
--- network that may make network connections as specified in allowed[].
--- targetServiceAccounts cannot be used at the same time as targetTags or
--- sourceTags. If neither targetServiceAccounts nor targetTags are
--- specified, the firewall rule applies to all instances on the specified
--- network.
-fTargetServiceAccounts :: Lens' Firewall [Text]
-fTargetServiceAccounts
-  = lens _fTargetServiceAccounts
-      (\ s a -> s{_fTargetServiceAccounts = a})
-      . _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-fDescription :: Lens' Firewall (Maybe Text)
-fDescription
-  = lens _fDescription (\ s a -> s{_fDescription = a})
-
-instance FromJSON Firewall where
-        parseJSON
-          = withObject "Firewall"
-              (\ o ->
-                 Firewall' <$>
-                   (o .:? "sourceTags" .!= mempty) <*>
-                     (o .:? "sourceServiceAccounts" .!= mempty)
-                     <*> (o .:? "priority")
-                     <*> (o .:? "direction")
-                     <*> (o .:? "kind" .!= "compute#firewall")
-                     <*> (o .:? "disabled")
-                     <*> (o .:? "targetTags" .!= mempty)
-                     <*> (o .:? "network")
-                     <*> (o .:? "sourceRanges" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "denied" .!= mempty)
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "allowed" .!= mempty)
-                     <*> (o .:? "destinationRanges" .!= mempty)
-                     <*> (o .:? "logConfig")
-                     <*> (o .:? "targetServiceAccounts" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON Firewall where
-        toJSON Firewall'{..}
-          = object
-              (catMaybes
-                 [("sourceTags" .=) <$> _fSourceTags,
-                  ("sourceServiceAccounts" .=) <$>
-                    _fSourceServiceAccounts,
-                  ("priority" .=) <$> _fPriority,
-                  ("direction" .=) <$> _fDirection,
-                  Just ("kind" .= _fKind),
-                  ("disabled" .=) <$> _fDisabled,
-                  ("targetTags" .=) <$> _fTargetTags,
-                  ("network" .=) <$> _fNetwork,
-                  ("sourceRanges" .=) <$> _fSourceRanges,
-                  ("selfLink" .=) <$> _fSelfLink,
-                  ("name" .=) <$> _fName, ("denied" .=) <$> _fDenied,
-                  ("creationTimestamp" .=) <$> _fCreationTimestamp,
-                  ("id" .=) <$> _fId, ("allowed" .=) <$> _fAllowed,
-                  ("destinationRanges" .=) <$> _fDestinationRanges,
-                  ("logConfig" .=) <$> _fLogConfig,
-                  ("targetServiceAccounts" .=) <$>
-                    _fTargetServiceAccounts,
-                  ("description" .=) <$> _fDescription])
-
--- | Informational warning which replaces the list of addresses when the list
--- is empty.
---
--- /See:/ 'interconnectAttachmentsScopedListWarning' smart constructor.
-data InterconnectAttachmentsScopedListWarning =
-  InterconnectAttachmentsScopedListWarning'
-    { _iaslwData    :: !(Maybe [InterconnectAttachmentsScopedListWarningDataItem])
-    , _iaslwCode    :: !(Maybe InterconnectAttachmentsScopedListWarningCode)
-    , _iaslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaslwData'
---
--- * 'iaslwCode'
---
--- * 'iaslwMessage'
-interconnectAttachmentsScopedListWarning
-    :: InterconnectAttachmentsScopedListWarning
-interconnectAttachmentsScopedListWarning =
-  InterconnectAttachmentsScopedListWarning'
-    {_iaslwData = Nothing, _iaslwCode = Nothing, _iaslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-iaslwData :: Lens' InterconnectAttachmentsScopedListWarning [InterconnectAttachmentsScopedListWarningDataItem]
-iaslwData
-  = lens _iaslwData (\ s a -> s{_iaslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-iaslwCode :: Lens' InterconnectAttachmentsScopedListWarning (Maybe InterconnectAttachmentsScopedListWarningCode)
-iaslwCode
-  = lens _iaslwCode (\ s a -> s{_iaslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-iaslwMessage :: Lens' InterconnectAttachmentsScopedListWarning (Maybe Text)
-iaslwMessage
-  = lens _iaslwMessage (\ s a -> s{_iaslwMessage = a})
-
-instance FromJSON
-           InterconnectAttachmentsScopedListWarning
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentsScopedListWarning"
-              (\ o ->
-                 InterconnectAttachmentsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           InterconnectAttachmentsScopedListWarning
-         where
-        toJSON InterconnectAttachmentsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _iaslwData,
-                  ("code" .=) <$> _iaslwCode,
-                  ("message" .=) <$> _iaslwMessage])
-
--- | UrlMaps A host-matching rule for a URL. If matched, will use the named
--- PathMatcher to select the BackendService.
---
--- /See:/ 'hostRule' smart constructor.
-data HostRule =
-  HostRule'
-    { _hrHosts       :: !(Maybe [Text])
-    , _hrDescription :: !(Maybe Text)
-    , _hrPathMatcher :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HostRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hrHosts'
---
--- * 'hrDescription'
---
--- * 'hrPathMatcher'
-hostRule
-    :: HostRule
-hostRule =
-  HostRule'
-    {_hrHosts = Nothing, _hrDescription = Nothing, _hrPathMatcher = Nothing}
-
-
--- | The list of host patterns to match. They must be valid hostnames, except
--- * will match any string of ([a-z0-9-.]*). In that case, * must be the
--- first character and must be followed in the pattern by either - or ..
-hrHosts :: Lens' HostRule [Text]
-hrHosts
-  = lens _hrHosts (\ s a -> s{_hrHosts = a}) . _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-hrDescription :: Lens' HostRule (Maybe Text)
-hrDescription
-  = lens _hrDescription
-      (\ s a -> s{_hrDescription = a})
-
--- | The name of the PathMatcher to use to match the path portion of the URL
--- if the hostRule matches the URL\'s host portion.
-hrPathMatcher :: Lens' HostRule (Maybe Text)
-hrPathMatcher
-  = lens _hrPathMatcher
-      (\ s a -> s{_hrPathMatcher = a})
-
-instance FromJSON HostRule where
-        parseJSON
-          = withObject "HostRule"
-              (\ o ->
-                 HostRule' <$>
-                   (o .:? "hosts" .!= mempty) <*> (o .:? "description")
-                     <*> (o .:? "pathMatcher"))
-
-instance ToJSON HostRule where
-        toJSON HostRule'{..}
-          = object
-              (catMaybes
-                 [("hosts" .=) <$> _hrHosts,
-                  ("description" .=) <$> _hrDescription,
-                  ("pathMatcher" .=) <$> _hrPathMatcher])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'securityPolicyListWarning' smart constructor.
-data SecurityPolicyListWarning =
-  SecurityPolicyListWarning'
-    { _secData    :: !(Maybe [SecurityPolicyListWarningDataItem])
-    , _secCode    :: !(Maybe SecurityPolicyListWarningCode)
-    , _secMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPolicyListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'secData'
---
--- * 'secCode'
---
--- * 'secMessage'
-securityPolicyListWarning
-    :: SecurityPolicyListWarning
-securityPolicyListWarning =
-  SecurityPolicyListWarning'
-    {_secData = Nothing, _secCode = Nothing, _secMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-secData :: Lens' SecurityPolicyListWarning [SecurityPolicyListWarningDataItem]
-secData
-  = lens _secData (\ s a -> s{_secData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-secCode :: Lens' SecurityPolicyListWarning (Maybe SecurityPolicyListWarningCode)
-secCode = lens _secCode (\ s a -> s{_secCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-secMessage :: Lens' SecurityPolicyListWarning (Maybe Text)
-secMessage
-  = lens _secMessage (\ s a -> s{_secMessage = a})
-
-instance FromJSON SecurityPolicyListWarning where
-        parseJSON
-          = withObject "SecurityPolicyListWarning"
-              (\ o ->
-                 SecurityPolicyListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON SecurityPolicyListWarning where
-        toJSON SecurityPolicyListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _secData, ("code" .=) <$> _secCode,
-                  ("message" .=) <$> _secMessage])
-
--- | A quotas entry.
---
--- /See:/ 'quota' smart constructor.
-data Quota =
-  Quota'
-    { _qOwner  :: !(Maybe Text)
-    , _qMetric :: !(Maybe QuotaMetric)
-    , _qLimit  :: !(Maybe (Textual Double))
-    , _qUsage  :: !(Maybe (Textual Double))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Quota' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'qOwner'
---
--- * 'qMetric'
---
--- * 'qLimit'
---
--- * 'qUsage'
-quota
-    :: Quota
-quota =
-  Quota'
-    { _qOwner = Nothing
-    , _qMetric = Nothing
-    , _qLimit = Nothing
-    , _qUsage = Nothing
-    }
-
-
--- | [Output Only] Owning resource. This is the resource on which this quota
--- is applied.
-qOwner :: Lens' Quota (Maybe Text)
-qOwner = lens _qOwner (\ s a -> s{_qOwner = a})
-
--- | [Output Only] Name of the quota metric.
-qMetric :: Lens' Quota (Maybe QuotaMetric)
-qMetric = lens _qMetric (\ s a -> s{_qMetric = a})
-
--- | [Output Only] Quota limit for this metric.
-qLimit :: Lens' Quota (Maybe Double)
-qLimit
-  = lens _qLimit (\ s a -> s{_qLimit = a}) .
-      mapping _Coerce
-
--- | [Output Only] Current usage of this metric.
-qUsage :: Lens' Quota (Maybe Double)
-qUsage
-  = lens _qUsage (\ s a -> s{_qUsage = a}) .
-      mapping _Coerce
-
-instance FromJSON Quota where
-        parseJSON
-          = withObject "Quota"
-              (\ o ->
-                 Quota' <$>
-                   (o .:? "owner") <*> (o .:? "metric") <*>
-                     (o .:? "limit")
-                     <*> (o .:? "usage"))
-
-instance ToJSON Quota where
-        toJSON Quota'{..}
-          = object
-              (catMaybes
-                 [("owner" .=) <$> _qOwner,
-                  ("metric" .=) <$> _qMetric, ("limit" .=) <$> _qLimit,
-                  ("usage" .=) <$> _qUsage])
-
--- | InstanceGroups (== resource_for beta.instanceGroups ==) (== resource_for
--- v1.instanceGroups ==) (== resource_for beta.regionInstanceGroups ==) (==
--- resource_for v1.regionInstanceGroups ==)
---
--- /See:/ 'instanceGroup' smart constructor.
-data InstanceGroup =
-  InstanceGroup'
-    { _ig1Size              :: !(Maybe (Textual Int32))
-    , _ig1Kind              :: !Text
-    , _ig1Fingerprint       :: !(Maybe Bytes)
-    , _ig1Network           :: !(Maybe Text)
-    , _ig1Zone              :: !(Maybe Text)
-    , _ig1SelfLink          :: !(Maybe Text)
-    , _ig1Name              :: !(Maybe Text)
-    , _ig1CreationTimestamp :: !(Maybe Text)
-    , _ig1Subnetwork        :: !(Maybe Text)
-    , _ig1Id                :: !(Maybe (Textual Word64))
-    , _ig1Region            :: !(Maybe Text)
-    , _ig1Description       :: !(Maybe Text)
-    , _ig1NamedPorts        :: !(Maybe [NamedPort])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ig1Size'
---
--- * 'ig1Kind'
---
--- * 'ig1Fingerprint'
---
--- * 'ig1Network'
---
--- * 'ig1Zone'
---
--- * 'ig1SelfLink'
---
--- * 'ig1Name'
---
--- * 'ig1CreationTimestamp'
---
--- * 'ig1Subnetwork'
---
--- * 'ig1Id'
---
--- * 'ig1Region'
---
--- * 'ig1Description'
---
--- * 'ig1NamedPorts'
-instanceGroup
-    :: InstanceGroup
-instanceGroup =
-  InstanceGroup'
-    { _ig1Size = Nothing
-    , _ig1Kind = "compute#instanceGroup"
-    , _ig1Fingerprint = Nothing
-    , _ig1Network = Nothing
-    , _ig1Zone = Nothing
-    , _ig1SelfLink = Nothing
-    , _ig1Name = Nothing
-    , _ig1CreationTimestamp = Nothing
-    , _ig1Subnetwork = Nothing
-    , _ig1Id = Nothing
-    , _ig1Region = Nothing
-    , _ig1Description = Nothing
-    , _ig1NamedPorts = Nothing
-    }
-
-
--- | [Output Only] The total number of instances in the instance group.
-ig1Size :: Lens' InstanceGroup (Maybe Int32)
-ig1Size
-  = lens _ig1Size (\ s a -> s{_ig1Size = a}) .
-      mapping _Coerce
-
--- | [Output Only] The resource type, which is always compute#instanceGroup
--- for instance groups.
-ig1Kind :: Lens' InstanceGroup Text
-ig1Kind = lens _ig1Kind (\ s a -> s{_ig1Kind = a})
-
--- | [Output Only] The fingerprint of the named ports. The system uses this
--- fingerprint to detect conflicts when multiple users change the named
--- ports concurrently.
-ig1Fingerprint :: Lens' InstanceGroup (Maybe ByteString)
-ig1Fingerprint
-  = lens _ig1Fingerprint
-      (\ s a -> s{_ig1Fingerprint = a})
-      . mapping _Bytes
-
--- | The URL of the network to which all instances in the instance group
--- belong.
-ig1Network :: Lens' InstanceGroup (Maybe Text)
-ig1Network
-  = lens _ig1Network (\ s a -> s{_ig1Network = a})
-
--- | [Output Only] The URL of the zone where the instance group is located
--- (for zonal resources).
-ig1Zone :: Lens' InstanceGroup (Maybe Text)
-ig1Zone = lens _ig1Zone (\ s a -> s{_ig1Zone = a})
-
--- | [Output Only] The URL for this instance group. The server generates this
--- URL.
-ig1SelfLink :: Lens' InstanceGroup (Maybe Text)
-ig1SelfLink
-  = lens _ig1SelfLink (\ s a -> s{_ig1SelfLink = a})
-
--- | The name of the instance group. The name must be 1-63 characters long,
--- and comply with RFC1035.
-ig1Name :: Lens' InstanceGroup (Maybe Text)
-ig1Name = lens _ig1Name (\ s a -> s{_ig1Name = a})
-
--- | [Output Only] The creation timestamp for this instance group in RFC3339
--- text format.
-ig1CreationTimestamp :: Lens' InstanceGroup (Maybe Text)
-ig1CreationTimestamp
-  = lens _ig1CreationTimestamp
-      (\ s a -> s{_ig1CreationTimestamp = a})
-
--- | [Output Only] The URL of the subnetwork to which all instances in the
--- instance group belong.
-ig1Subnetwork :: Lens' InstanceGroup (Maybe Text)
-ig1Subnetwork
-  = lens _ig1Subnetwork
-      (\ s a -> s{_ig1Subnetwork = a})
-
--- | [Output Only] A unique identifier for this instance group, generated by
--- the server.
-ig1Id :: Lens' InstanceGroup (Maybe Word64)
-ig1Id
-  = lens _ig1Id (\ s a -> s{_ig1Id = a}) .
-      mapping _Coerce
-
--- | [Output Only] The URL of the region where the instance group is located
--- (for regional resources).
-ig1Region :: Lens' InstanceGroup (Maybe Text)
-ig1Region
-  = lens _ig1Region (\ s a -> s{_ig1Region = a})
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-ig1Description :: Lens' InstanceGroup (Maybe Text)
-ig1Description
-  = lens _ig1Description
-      (\ s a -> s{_ig1Description = a})
-
--- | Assigns a name to a port number. For example: {name: \"http\", port: 80}
--- This allows the system to reference ports by the assigned name instead
--- of a port number. Named ports can also contain multiple ports. For
--- example: [{name: \"http\", port: 80},{name: \"http\", port: 8080}] Named
--- ports apply to all instances in this instance group.
-ig1NamedPorts :: Lens' InstanceGroup [NamedPort]
-ig1NamedPorts
-  = lens _ig1NamedPorts
-      (\ s a -> s{_ig1NamedPorts = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroup where
-        parseJSON
-          = withObject "InstanceGroup"
-              (\ o ->
-                 InstanceGroup' <$>
-                   (o .:? "size") <*>
-                     (o .:? "kind" .!= "compute#instanceGroup")
-                     <*> (o .:? "fingerprint")
-                     <*> (o .:? "network")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "subnetwork")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "description")
-                     <*> (o .:? "namedPorts" .!= mempty))
-
-instance ToJSON InstanceGroup where
-        toJSON InstanceGroup'{..}
-          = object
-              (catMaybes
-                 [("size" .=) <$> _ig1Size, Just ("kind" .= _ig1Kind),
-                  ("fingerprint" .=) <$> _ig1Fingerprint,
-                  ("network" .=) <$> _ig1Network,
-                  ("zone" .=) <$> _ig1Zone,
-                  ("selfLink" .=) <$> _ig1SelfLink,
-                  ("name" .=) <$> _ig1Name,
-                  ("creationTimestamp" .=) <$> _ig1CreationTimestamp,
-                  ("subnetwork" .=) <$> _ig1Subnetwork,
-                  ("id" .=) <$> _ig1Id, ("region" .=) <$> _ig1Region,
-                  ("description" .=) <$> _ig1Description,
-                  ("namedPorts" .=) <$> _ig1NamedPorts])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'addressListWarning' smart constructor.
-data AddressListWarning =
-  AddressListWarning'
-    { _alwlData    :: !(Maybe [AddressListWarningDataItem])
-    , _alwlCode    :: !(Maybe AddressListWarningCode)
-    , _alwlMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alwlData'
---
--- * 'alwlCode'
---
--- * 'alwlMessage'
-addressListWarning
-    :: AddressListWarning
-addressListWarning =
-  AddressListWarning'
-    {_alwlData = Nothing, _alwlCode = Nothing, _alwlMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-alwlData :: Lens' AddressListWarning [AddressListWarningDataItem]
-alwlData
-  = lens _alwlData (\ s a -> s{_alwlData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-alwlCode :: Lens' AddressListWarning (Maybe AddressListWarningCode)
-alwlCode = lens _alwlCode (\ s a -> s{_alwlCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-alwlMessage :: Lens' AddressListWarning (Maybe Text)
-alwlMessage
-  = lens _alwlMessage (\ s a -> s{_alwlMessage = a})
-
-instance FromJSON AddressListWarning where
-        parseJSON
-          = withObject "AddressListWarning"
-              (\ o ->
-                 AddressListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON AddressListWarning where
-        toJSON AddressListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _alwlData,
-                  ("code" .=) <$> _alwlCode,
-                  ("message" .=) <$> _alwlMessage])
-
---
--- /See:/ 'regionSetLabelsRequest' smart constructor.
-data RegionSetLabelsRequest =
-  RegionSetLabelsRequest'
-    { _rslrLabels           :: !(Maybe RegionSetLabelsRequestLabels)
-    , _rslrLabelFingerprint :: !(Maybe Bytes)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionSetLabelsRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rslrLabels'
---
--- * 'rslrLabelFingerprint'
-regionSetLabelsRequest
-    :: RegionSetLabelsRequest
-regionSetLabelsRequest =
-  RegionSetLabelsRequest'
-    {_rslrLabels = Nothing, _rslrLabelFingerprint = Nothing}
-
-
--- | The labels to set for this resource.
-rslrLabels :: Lens' RegionSetLabelsRequest (Maybe RegionSetLabelsRequestLabels)
-rslrLabels
-  = lens _rslrLabels (\ s a -> s{_rslrLabels = a})
-
--- | The fingerprint of the previous set of labels for this resource, used to
--- detect conflicts. The fingerprint is initially generated by Compute
--- Engine and changes after every request to modify or update labels. You
--- must always provide an up-to-date fingerprint hash in order to update or
--- change labels. Make a get() request to the resource to get the latest
--- fingerprint.
-rslrLabelFingerprint :: Lens' RegionSetLabelsRequest (Maybe ByteString)
-rslrLabelFingerprint
-  = lens _rslrLabelFingerprint
-      (\ s a -> s{_rslrLabelFingerprint = a})
-      . mapping _Bytes
-
-instance FromJSON RegionSetLabelsRequest where
-        parseJSON
-          = withObject "RegionSetLabelsRequest"
-              (\ o ->
-                 RegionSetLabelsRequest' <$>
-                   (o .:? "labels") <*> (o .:? "labelFingerprint"))
-
-instance ToJSON RegionSetLabelsRequest where
-        toJSON RegionSetLabelsRequest'{..}
-          = object
-              (catMaybes
-                 [("labels" .=) <$> _rslrLabels,
-                  ("labelFingerprint" .=) <$> _rslrLabelFingerprint])
-
---
--- /See:/ 'routerInterface' smart constructor.
-data RouterInterface =
-  RouterInterface'
-    { _riLinkedInterconnectAttachment :: !(Maybe Text)
-    , _riName                         :: !(Maybe Text)
-    , _riManagementType               :: !(Maybe RouterInterfaceManagementType)
-    , _riIPRange                      :: !(Maybe Text)
-    , _riLinkedVPNTunnel              :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RouterInterface' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riLinkedInterconnectAttachment'
---
--- * 'riName'
---
--- * 'riManagementType'
---
--- * 'riIPRange'
---
--- * 'riLinkedVPNTunnel'
-routerInterface
-    :: RouterInterface
-routerInterface =
-  RouterInterface'
-    { _riLinkedInterconnectAttachment = Nothing
-    , _riName = Nothing
-    , _riManagementType = Nothing
-    , _riIPRange = Nothing
-    , _riLinkedVPNTunnel = Nothing
-    }
-
-
--- | URI of the linked interconnect attachment. It must be in the same region
--- as the router. Each interface can have at most one linked resource and
--- it could either be a VPN Tunnel or an interconnect attachment.
-riLinkedInterconnectAttachment :: Lens' RouterInterface (Maybe Text)
-riLinkedInterconnectAttachment
-  = lens _riLinkedInterconnectAttachment
-      (\ s a -> s{_riLinkedInterconnectAttachment = a})
-
--- | Name of this interface entry. The name must be 1-63 characters long and
--- comply with RFC1035.
-riName :: Lens' RouterInterface (Maybe Text)
-riName = lens _riName (\ s a -> s{_riName = a})
-
--- | [Output Only] The resource that configures and manages this interface.
--- MANAGED_BY_USER is the default value and can be managed by you or other
--- users; MANAGED_BY_ATTACHMENT is an interface that is configured and
--- managed by Cloud Interconnect, specifically by an InterconnectAttachment
--- of type PARTNER. Google will automatically create, update, and delete
--- this type of interface when the PARTNER InterconnectAttachment is
--- created, updated, or deleted.
-riManagementType :: Lens' RouterInterface (Maybe RouterInterfaceManagementType)
-riManagementType
-  = lens _riManagementType
-      (\ s a -> s{_riManagementType = a})
-
--- | IP address and range of the interface. The IP range must be in the
--- RFC3927 link-local IP space. The value must be a CIDR-formatted string,
--- for example: 169.254.0.1\/30. NOTE: Do not truncate the address as it
--- represents the IP address of the interface.
-riIPRange :: Lens' RouterInterface (Maybe Text)
-riIPRange
-  = lens _riIPRange (\ s a -> s{_riIPRange = a})
-
--- | URI of the linked VPN tunnel. It must be in the same region as the
--- router. Each interface can have at most one linked resource and it could
--- either be a VPN Tunnel or an interconnect attachment.
-riLinkedVPNTunnel :: Lens' RouterInterface (Maybe Text)
-riLinkedVPNTunnel
-  = lens _riLinkedVPNTunnel
-      (\ s a -> s{_riLinkedVPNTunnel = a})
-
-instance FromJSON RouterInterface where
-        parseJSON
-          = withObject "RouterInterface"
-              (\ o ->
-                 RouterInterface' <$>
-                   (o .:? "linkedInterconnectAttachment") <*>
-                     (o .:? "name")
-                     <*> (o .:? "managementType")
-                     <*> (o .:? "ipRange")
-                     <*> (o .:? "linkedVpnTunnel"))
-
-instance ToJSON RouterInterface where
-        toJSON RouterInterface'{..}
-          = object
-              (catMaybes
-                 [("linkedInterconnectAttachment" .=) <$>
-                    _riLinkedInterconnectAttachment,
-                  ("name" .=) <$> _riName,
-                  ("managementType" .=) <$> _riManagementType,
-                  ("ipRange" .=) <$> _riIPRange,
-                  ("linkedVpnTunnel" .=) <$> _riLinkedVPNTunnel])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'networkListWarning' smart constructor.
-data NetworkListWarning =
-  NetworkListWarning'
-    { _nlwData    :: !(Maybe [NetworkListWarningDataItem])
-    , _nlwCode    :: !(Maybe NetworkListWarningCode)
-    , _nlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nlwData'
---
--- * 'nlwCode'
---
--- * 'nlwMessage'
-networkListWarning
-    :: NetworkListWarning
-networkListWarning =
-  NetworkListWarning'
-    {_nlwData = Nothing, _nlwCode = Nothing, _nlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-nlwData :: Lens' NetworkListWarning [NetworkListWarningDataItem]
-nlwData
-  = lens _nlwData (\ s a -> s{_nlwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-nlwCode :: Lens' NetworkListWarning (Maybe NetworkListWarningCode)
-nlwCode = lens _nlwCode (\ s a -> s{_nlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-nlwMessage :: Lens' NetworkListWarning (Maybe Text)
-nlwMessage
-  = lens _nlwMessage (\ s a -> s{_nlwMessage = a})
-
-instance FromJSON NetworkListWarning where
-        parseJSON
-          = withObject "NetworkListWarning"
-              (\ o ->
-                 NetworkListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON NetworkListWarning where
-        toJSON NetworkListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _nlwData, ("code" .=) <$> _nlwCode,
-                  ("message" .=) <$> _nlwMessage])
-
--- | Contains a list of Snapshot resources.
---
--- /See:/ 'snapshotList' smart constructor.
-data SnapshotList =
-  SnapshotList'
-    { _snaNextPageToken :: !(Maybe Text)
-    , _snaKind          :: !Text
-    , _snaItems         :: !(Maybe [Snapshot])
-    , _snaSelfLink      :: !(Maybe Text)
-    , _snaWarning       :: !(Maybe SnapshotListWarning)
-    , _snaId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'snaNextPageToken'
---
--- * 'snaKind'
---
--- * 'snaItems'
---
--- * 'snaSelfLink'
---
--- * 'snaWarning'
---
--- * 'snaId'
-snapshotList
-    :: SnapshotList
-snapshotList =
-  SnapshotList'
-    { _snaNextPageToken = Nothing
-    , _snaKind = "compute#snapshotList"
-    , _snaItems = Nothing
-    , _snaSelfLink = Nothing
-    , _snaWarning = Nothing
-    , _snaId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-snaNextPageToken :: Lens' SnapshotList (Maybe Text)
-snaNextPageToken
-  = lens _snaNextPageToken
-      (\ s a -> s{_snaNextPageToken = a})
-
--- | Type of resource.
-snaKind :: Lens' SnapshotList Text
-snaKind = lens _snaKind (\ s a -> s{_snaKind = a})
-
--- | A list of Snapshot resources.
-snaItems :: Lens' SnapshotList [Snapshot]
-snaItems
-  = lens _snaItems (\ s a -> s{_snaItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-snaSelfLink :: Lens' SnapshotList (Maybe Text)
-snaSelfLink
-  = lens _snaSelfLink (\ s a -> s{_snaSelfLink = a})
-
--- | [Output Only] Informational warning message.
-snaWarning :: Lens' SnapshotList (Maybe SnapshotListWarning)
-snaWarning
-  = lens _snaWarning (\ s a -> s{_snaWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-snaId :: Lens' SnapshotList (Maybe Text)
-snaId = lens _snaId (\ s a -> s{_snaId = a})
-
-instance FromJSON SnapshotList where
-        parseJSON
-          = withObject "SnapshotList"
-              (\ o ->
-                 SnapshotList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#snapshotList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON SnapshotList where
-        toJSON SnapshotList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _snaNextPageToken,
-                  Just ("kind" .= _snaKind),
-                  ("items" .=) <$> _snaItems,
-                  ("selfLink" .=) <$> _snaSelfLink,
-                  ("warning" .=) <$> _snaWarning,
-                  ("id" .=) <$> _snaId])
-
--- | Diagnostics information about interconnect, contains detailed and
--- current technical information about Google?s side of the connection.
---
--- /See:/ 'interconnectDiagnostics' smart constructor.
-data InterconnectDiagnostics =
-  InterconnectDiagnostics'
-    { _idMACAddress :: !(Maybe Text)
-    , _idArpCaches  :: !(Maybe [InterconnectDiagnosticsARPEntry])
-    , _idLinks      :: !(Maybe [InterconnectDiagnosticsLinkStatus])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectDiagnostics' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idMACAddress'
---
--- * 'idArpCaches'
---
--- * 'idLinks'
-interconnectDiagnostics
-    :: InterconnectDiagnostics
-interconnectDiagnostics =
-  InterconnectDiagnostics'
-    {_idMACAddress = Nothing, _idArpCaches = Nothing, _idLinks = Nothing}
-
-
--- | The MAC address of the Interconnect\'s bundle interface.
-idMACAddress :: Lens' InterconnectDiagnostics (Maybe Text)
-idMACAddress
-  = lens _idMACAddress (\ s a -> s{_idMACAddress = a})
-
--- | A list of InterconnectDiagnostics.ARPEntry objects, describing
--- individual neighbors currently seen by the Google router in the ARP
--- cache for the Interconnect. This will be empty when the Interconnect is
--- not bundled.
-idArpCaches :: Lens' InterconnectDiagnostics [InterconnectDiagnosticsARPEntry]
-idArpCaches
-  = lens _idArpCaches (\ s a -> s{_idArpCaches = a}) .
-      _Default
-      . _Coerce
-
--- | A list of InterconnectDiagnostics.LinkStatus objects, describing the
--- status for each link on the Interconnect.
-idLinks :: Lens' InterconnectDiagnostics [InterconnectDiagnosticsLinkStatus]
-idLinks
-  = lens _idLinks (\ s a -> s{_idLinks = a}) . _Default
-      . _Coerce
-
-instance FromJSON InterconnectDiagnostics where
-        parseJSON
-          = withObject "InterconnectDiagnostics"
-              (\ o ->
-                 InterconnectDiagnostics' <$>
-                   (o .:? "macAddress") <*>
-                     (o .:? "arpCaches" .!= mempty)
-                     <*> (o .:? "links" .!= mempty))
-
-instance ToJSON InterconnectDiagnostics where
-        toJSON InterconnectDiagnostics'{..}
-          = object
-              (catMaybes
-                 [("macAddress" .=) <$> _idMACAddress,
-                  ("arpCaches" .=) <$> _idArpCaches,
-                  ("links" .=) <$> _idLinks])
-
---
--- /See:/ 'licenseCode' smart constructor.
-data LicenseCode =
-  LicenseCode'
-    { _lcState             :: !(Maybe LicenseCodeState)
-    , _lcKind              :: !Text
-    , _lcTransferable      :: !(Maybe Bool)
-    , _lcSelfLink          :: !(Maybe Text)
-    , _lcName              :: !(Maybe Text)
-    , _lcCreationTimestamp :: !(Maybe Text)
-    , _lcId                :: !(Maybe (Textual Word64))
-    , _lcLicenseAlias      :: !(Maybe [LicenseCodeLicenseAlias])
-    , _lcDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicenseCode' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcState'
---
--- * 'lcKind'
---
--- * 'lcTransferable'
---
--- * 'lcSelfLink'
---
--- * 'lcName'
---
--- * 'lcCreationTimestamp'
---
--- * 'lcId'
---
--- * 'lcLicenseAlias'
---
--- * 'lcDescription'
-licenseCode
-    :: LicenseCode
-licenseCode =
-  LicenseCode'
-    { _lcState = Nothing
-    , _lcKind = "compute#licenseCode"
-    , _lcTransferable = Nothing
-    , _lcSelfLink = Nothing
-    , _lcName = Nothing
-    , _lcCreationTimestamp = Nothing
-    , _lcId = Nothing
-    , _lcLicenseAlias = Nothing
-    , _lcDescription = Nothing
-    }
-
-
--- | [Output Only] Current state of this License Code.
-lcState :: Lens' LicenseCode (Maybe LicenseCodeState)
-lcState = lens _lcState (\ s a -> s{_lcState = a})
-
--- | [Output Only] Type of resource. Always compute#licenseCode for licenses.
-lcKind :: Lens' LicenseCode Text
-lcKind = lens _lcKind (\ s a -> s{_lcKind = a})
-
--- | [Output Only] If true, the license will remain attached when creating
--- images or snapshots from disks. Otherwise, the license is not
--- transferred.
-lcTransferable :: Lens' LicenseCode (Maybe Bool)
-lcTransferable
-  = lens _lcTransferable
-      (\ s a -> s{_lcTransferable = a})
-
--- | [Output Only] Server-defined URL for the resource.
-lcSelfLink :: Lens' LicenseCode (Maybe Text)
-lcSelfLink
-  = lens _lcSelfLink (\ s a -> s{_lcSelfLink = a})
-
--- | [Output Only] Name of the resource. The name is 1-20 characters long and
--- must be a valid 64 bit integer.
-lcName :: Lens' LicenseCode (Maybe Text)
-lcName = lens _lcName (\ s a -> s{_lcName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-lcCreationTimestamp :: Lens' LicenseCode (Maybe Text)
-lcCreationTimestamp
-  = lens _lcCreationTimestamp
-      (\ s a -> s{_lcCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-lcId :: Lens' LicenseCode (Maybe Word64)
-lcId
-  = lens _lcId (\ s a -> s{_lcId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL and description aliases of Licenses with the same
--- License Code.
-lcLicenseAlias :: Lens' LicenseCode [LicenseCodeLicenseAlias]
-lcLicenseAlias
-  = lens _lcLicenseAlias
-      (\ s a -> s{_lcLicenseAlias = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Description of this License Code.
-lcDescription :: Lens' LicenseCode (Maybe Text)
-lcDescription
-  = lens _lcDescription
-      (\ s a -> s{_lcDescription = a})
-
-instance FromJSON LicenseCode where
-        parseJSON
-          = withObject "LicenseCode"
-              (\ o ->
-                 LicenseCode' <$>
-                   (o .:? "state") <*>
-                     (o .:? "kind" .!= "compute#licenseCode")
-                     <*> (o .:? "transferable")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "licenseAlias" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON LicenseCode where
-        toJSON LicenseCode'{..}
-          = object
-              (catMaybes
-                 [("state" .=) <$> _lcState, Just ("kind" .= _lcKind),
-                  ("transferable" .=) <$> _lcTransferable,
-                  ("selfLink" .=) <$> _lcSelfLink,
-                  ("name" .=) <$> _lcName,
-                  ("creationTimestamp" .=) <$> _lcCreationTimestamp,
-                  ("id" .=) <$> _lcId,
-                  ("licenseAlias" .=) <$> _lcLicenseAlias,
-                  ("description" .=) <$> _lcDescription])
-
---
--- /See:/ 'testFailure' smart constructor.
-data TestFailure =
-  TestFailure'
-    { _tfPath            :: !(Maybe Text)
-    , _tfExpectedService :: !(Maybe Text)
-    , _tfHost            :: !(Maybe Text)
-    , _tfActualService   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TestFailure' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tfPath'
---
--- * 'tfExpectedService'
---
--- * 'tfHost'
---
--- * 'tfActualService'
-testFailure
-    :: TestFailure
-testFailure =
-  TestFailure'
-    { _tfPath = Nothing
-    , _tfExpectedService = Nothing
-    , _tfHost = Nothing
-    , _tfActualService = Nothing
-    }
-
-
-tfPath :: Lens' TestFailure (Maybe Text)
-tfPath = lens _tfPath (\ s a -> s{_tfPath = a})
-
-tfExpectedService :: Lens' TestFailure (Maybe Text)
-tfExpectedService
-  = lens _tfExpectedService
-      (\ s a -> s{_tfExpectedService = a})
-
-tfHost :: Lens' TestFailure (Maybe Text)
-tfHost = lens _tfHost (\ s a -> s{_tfHost = a})
-
-tfActualService :: Lens' TestFailure (Maybe Text)
-tfActualService
-  = lens _tfActualService
-      (\ s a -> s{_tfActualService = a})
-
-instance FromJSON TestFailure where
-        parseJSON
-          = withObject "TestFailure"
-              (\ o ->
-                 TestFailure' <$>
-                   (o .:? "path") <*> (o .:? "expectedService") <*>
-                     (o .:? "host")
-                     <*> (o .:? "actualService"))
-
-instance ToJSON TestFailure where
-        toJSON TestFailure'{..}
-          = object
-              (catMaybes
-                 [("path" .=) <$> _tfPath,
-                  ("expectedService" .=) <$> _tfExpectedService,
-                  ("host" .=) <$> _tfHost,
-                  ("actualService" .=) <$> _tfActualService])
-
---
--- /See:/ 'commitmentListWarningDataItem' smart constructor.
-data CommitmentListWarningDataItem =
-  CommitmentListWarningDataItem'
-    { _clwdiValue :: !(Maybe Text)
-    , _clwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clwdiValue'
---
--- * 'clwdiKey'
-commitmentListWarningDataItem
-    :: CommitmentListWarningDataItem
-commitmentListWarningDataItem =
-  CommitmentListWarningDataItem' {_clwdiValue = Nothing, _clwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-clwdiValue :: Lens' CommitmentListWarningDataItem (Maybe Text)
-clwdiValue
-  = lens _clwdiValue (\ s a -> s{_clwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-clwdiKey :: Lens' CommitmentListWarningDataItem (Maybe Text)
-clwdiKey = lens _clwdiKey (\ s a -> s{_clwdiKey = a})
-
-instance FromJSON CommitmentListWarningDataItem where
-        parseJSON
-          = withObject "CommitmentListWarningDataItem"
-              (\ o ->
-                 CommitmentListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON CommitmentListWarningDataItem where
-        toJSON CommitmentListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _clwdiValue,
-                  ("key" .=) <$> _clwdiKey])
-
---
--- /See:/ 'managedInstanceVersion' smart constructor.
-data ManagedInstanceVersion =
-  ManagedInstanceVersion'
-    { _mivInstanceTemplate :: !(Maybe Text)
-    , _mivName             :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedInstanceVersion' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mivInstanceTemplate'
---
--- * 'mivName'
-managedInstanceVersion
-    :: ManagedInstanceVersion
-managedInstanceVersion =
-  ManagedInstanceVersion' {_mivInstanceTemplate = Nothing, _mivName = Nothing}
-
-
--- | [Output Only] The intended template of the instance. This field is empty
--- when current_action is one of { DELETING, ABANDONING }.
-mivInstanceTemplate :: Lens' ManagedInstanceVersion (Maybe Text)
-mivInstanceTemplate
-  = lens _mivInstanceTemplate
-      (\ s a -> s{_mivInstanceTemplate = a})
-
--- | [Output Only] Name of the version.
-mivName :: Lens' ManagedInstanceVersion (Maybe Text)
-mivName = lens _mivName (\ s a -> s{_mivName = a})
-
-instance FromJSON ManagedInstanceVersion where
-        parseJSON
-          = withObject "ManagedInstanceVersion"
-              (\ o ->
-                 ManagedInstanceVersion' <$>
-                   (o .:? "instanceTemplate") <*> (o .:? "name"))
-
-instance ToJSON ManagedInstanceVersion where
-        toJSON ManagedInstanceVersion'{..}
-          = object
-              (catMaybes
-                 [("instanceTemplate" .=) <$> _mivInstanceTemplate,
-                  ("name" .=) <$> _mivName])
-
--- | [Output Only] Informational warning which replaces the list of
--- commitments when the list is empty.
---
--- /See:/ 'commitmentsScopedListWarning' smart constructor.
-data CommitmentsScopedListWarning =
-  CommitmentsScopedListWarning'
-    { _cslwData    :: !(Maybe [CommitmentsScopedListWarningDataItem])
-    , _cslwCode    :: !(Maybe CommitmentsScopedListWarningCode)
-    , _cslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentsScopedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cslwData'
---
--- * 'cslwCode'
---
--- * 'cslwMessage'
-commitmentsScopedListWarning
-    :: CommitmentsScopedListWarning
-commitmentsScopedListWarning =
-  CommitmentsScopedListWarning'
-    {_cslwData = Nothing, _cslwCode = Nothing, _cslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-cslwData :: Lens' CommitmentsScopedListWarning [CommitmentsScopedListWarningDataItem]
-cslwData
-  = lens _cslwData (\ s a -> s{_cslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-cslwCode :: Lens' CommitmentsScopedListWarning (Maybe CommitmentsScopedListWarningCode)
-cslwCode = lens _cslwCode (\ s a -> s{_cslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-cslwMessage :: Lens' CommitmentsScopedListWarning (Maybe Text)
-cslwMessage
-  = lens _cslwMessage (\ s a -> s{_cslwMessage = a})
-
-instance FromJSON CommitmentsScopedListWarning where
-        parseJSON
-          = withObject "CommitmentsScopedListWarning"
-              (\ o ->
-                 CommitmentsScopedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON CommitmentsScopedListWarning where
-        toJSON CommitmentsScopedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _cslwData,
-                  ("code" .=) <$> _cslwCode,
-                  ("message" .=) <$> _cslwMessage])
-
--- | An instance\'s serial console output.
---
--- /See:/ 'serialPortOutput' smart constructor.
-data SerialPortOutput =
-  SerialPortOutput'
-    { _spoNext     :: !(Maybe (Textual Int64))
-    , _spoContents :: !(Maybe Text)
-    , _spoKind     :: !Text
-    , _spoStart    :: !(Maybe (Textual Int64))
-    , _spoSelfLink :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SerialPortOutput' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spoNext'
---
--- * 'spoContents'
---
--- * 'spoKind'
---
--- * 'spoStart'
---
--- * 'spoSelfLink'
-serialPortOutput
-    :: SerialPortOutput
-serialPortOutput =
-  SerialPortOutput'
-    { _spoNext = Nothing
-    , _spoContents = Nothing
-    , _spoKind = "compute#serialPortOutput"
-    , _spoStart = Nothing
-    , _spoSelfLink = Nothing
-    }
-
-
--- | [Output Only] The position of the next byte of content from the serial
--- console output. Use this value in the next request as the start
--- parameter.
-spoNext :: Lens' SerialPortOutput (Maybe Int64)
-spoNext
-  = lens _spoNext (\ s a -> s{_spoNext = a}) .
-      mapping _Coerce
-
--- | [Output Only] The contents of the console output.
-spoContents :: Lens' SerialPortOutput (Maybe Text)
-spoContents
-  = lens _spoContents (\ s a -> s{_spoContents = a})
-
--- | [Output Only] Type of the resource. Always compute#serialPortOutput for
--- serial port output.
-spoKind :: Lens' SerialPortOutput Text
-spoKind = lens _spoKind (\ s a -> s{_spoKind = a})
-
--- | The starting byte position of the output that was returned. This should
--- match the start parameter sent with the request. If the serial console
--- output exceeds the size of the buffer, older output will be overwritten
--- by newer content and the start values will be mismatched.
-spoStart :: Lens' SerialPortOutput (Maybe Int64)
-spoStart
-  = lens _spoStart (\ s a -> s{_spoStart = a}) .
-      mapping _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-spoSelfLink :: Lens' SerialPortOutput (Maybe Text)
-spoSelfLink
-  = lens _spoSelfLink (\ s a -> s{_spoSelfLink = a})
-
-instance FromJSON SerialPortOutput where
-        parseJSON
-          = withObject "SerialPortOutput"
-              (\ o ->
-                 SerialPortOutput' <$>
-                   (o .:? "next") <*> (o .:? "contents") <*>
-                     (o .:? "kind" .!= "compute#serialPortOutput")
-                     <*> (o .:? "start")
-                     <*> (o .:? "selfLink"))
-
-instance ToJSON SerialPortOutput where
-        toJSON SerialPortOutput'{..}
-          = object
-              (catMaybes
-                 [("next" .=) <$> _spoNext,
-                  ("contents" .=) <$> _spoContents,
-                  Just ("kind" .= _spoKind),
-                  ("start" .=) <$> _spoStart,
-                  ("selfLink" .=) <$> _spoSelfLink])
-
---
--- /See:/ 'targetVPNGatewayAggregatedList' smart constructor.
-data TargetVPNGatewayAggregatedList =
-  TargetVPNGatewayAggregatedList'
-    { _tvgalNextPageToken :: !(Maybe Text)
-    , _tvgalKind          :: !Text
-    , _tvgalItems         :: !(Maybe TargetVPNGatewayAggregatedListItems)
-    , _tvgalSelfLink      :: !(Maybe Text)
-    , _tvgalWarning       :: !(Maybe TargetVPNGatewayAggregatedListWarning)
-    , _tvgalId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewayAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgalNextPageToken'
---
--- * 'tvgalKind'
---
--- * 'tvgalItems'
---
--- * 'tvgalSelfLink'
---
--- * 'tvgalWarning'
---
--- * 'tvgalId'
-targetVPNGatewayAggregatedList
-    :: TargetVPNGatewayAggregatedList
-targetVPNGatewayAggregatedList =
-  TargetVPNGatewayAggregatedList'
-    { _tvgalNextPageToken = Nothing
-    , _tvgalKind = "compute#targetVpnGatewayAggregatedList"
-    , _tvgalItems = Nothing
-    , _tvgalSelfLink = Nothing
-    , _tvgalWarning = Nothing
-    , _tvgalId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-tvgalNextPageToken :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)
-tvgalNextPageToken
-  = lens _tvgalNextPageToken
-      (\ s a -> s{_tvgalNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#targetVpnGateway for
--- target VPN gateways.
-tvgalKind :: Lens' TargetVPNGatewayAggregatedList Text
-tvgalKind
-  = lens _tvgalKind (\ s a -> s{_tvgalKind = a})
-
--- | A list of TargetVpnGateway resources.
-tvgalItems :: Lens' TargetVPNGatewayAggregatedList (Maybe TargetVPNGatewayAggregatedListItems)
-tvgalItems
-  = lens _tvgalItems (\ s a -> s{_tvgalItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-tvgalSelfLink :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)
-tvgalSelfLink
-  = lens _tvgalSelfLink
-      (\ s a -> s{_tvgalSelfLink = a})
-
--- | [Output Only] Informational warning message.
-tvgalWarning :: Lens' TargetVPNGatewayAggregatedList (Maybe TargetVPNGatewayAggregatedListWarning)
-tvgalWarning
-  = lens _tvgalWarning (\ s a -> s{_tvgalWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-tvgalId :: Lens' TargetVPNGatewayAggregatedList (Maybe Text)
-tvgalId = lens _tvgalId (\ s a -> s{_tvgalId = a})
-
-instance FromJSON TargetVPNGatewayAggregatedList
-         where
-        parseJSON
-          = withObject "TargetVPNGatewayAggregatedList"
-              (\ o ->
-                 TargetVPNGatewayAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#targetVpnGatewayAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON TargetVPNGatewayAggregatedList where
-        toJSON TargetVPNGatewayAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _tvgalNextPageToken,
-                  Just ("kind" .= _tvgalKind),
-                  ("items" .=) <$> _tvgalItems,
-                  ("selfLink" .=) <$> _tvgalSelfLink,
-                  ("warning" .=) <$> _tvgalWarning,
-                  ("id" .=) <$> _tvgalId])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'interconnectAttachmentAggregatedListWarning' smart constructor.
-data InterconnectAttachmentAggregatedListWarning =
-  InterconnectAttachmentAggregatedListWarning'
-    { _iaalwData    :: !(Maybe [InterconnectAttachmentAggregatedListWarningDataItem])
-    , _iaalwCode    :: !(Maybe InterconnectAttachmentAggregatedListWarningCode)
-    , _iaalwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaalwData'
---
--- * 'iaalwCode'
---
--- * 'iaalwMessage'
-interconnectAttachmentAggregatedListWarning
-    :: InterconnectAttachmentAggregatedListWarning
-interconnectAttachmentAggregatedListWarning =
-  InterconnectAttachmentAggregatedListWarning'
-    {_iaalwData = Nothing, _iaalwCode = Nothing, _iaalwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-iaalwData :: Lens' InterconnectAttachmentAggregatedListWarning [InterconnectAttachmentAggregatedListWarningDataItem]
-iaalwData
-  = lens _iaalwData (\ s a -> s{_iaalwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-iaalwCode :: Lens' InterconnectAttachmentAggregatedListWarning (Maybe InterconnectAttachmentAggregatedListWarningCode)
-iaalwCode
-  = lens _iaalwCode (\ s a -> s{_iaalwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-iaalwMessage :: Lens' InterconnectAttachmentAggregatedListWarning (Maybe Text)
-iaalwMessage
-  = lens _iaalwMessage (\ s a -> s{_iaalwMessage = a})
-
-instance FromJSON
-           InterconnectAttachmentAggregatedListWarning
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentAggregatedListWarning"
-              (\ o ->
-                 InterconnectAttachmentAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           InterconnectAttachmentAggregatedListWarning
-         where
-        toJSON
-          InterconnectAttachmentAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _iaalwData,
-                  ("code" .=) <$> _iaalwCode,
-                  ("message" .=) <$> _iaalwMessage])
-
---
--- /See:/ 'metadataItemsItem' smart constructor.
-data MetadataItemsItem =
-  MetadataItemsItem'
-    { _miiValue :: !(Maybe Text)
-    , _miiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MetadataItemsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'miiValue'
---
--- * 'miiKey'
-metadataItemsItem
-    :: MetadataItemsItem
-metadataItemsItem = MetadataItemsItem' {_miiValue = Nothing, _miiKey = Nothing}
-
-
--- | Value for the metadata entry. These are free-form strings, and only have
--- meaning as interpreted by the image running in the instance. The only
--- restriction placed on values is that their size must be less than or
--- equal to 262144 bytes (256 KiB).
-miiValue :: Lens' MetadataItemsItem (Maybe Text)
-miiValue = lens _miiValue (\ s a -> s{_miiValue = a})
-
--- | Key for the metadata entry. Keys must conform to the following regexp:
--- [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is reflected
--- as part of a URL in the metadata server. Additionally, to avoid
--- ambiguity, keys must not conflict with any other metadata keys for the
--- project.
-miiKey :: Lens' MetadataItemsItem (Maybe Text)
-miiKey = lens _miiKey (\ s a -> s{_miiKey = a})
-
-instance FromJSON MetadataItemsItem where
-        parseJSON
-          = withObject "MetadataItemsItem"
-              (\ o ->
-                 MetadataItemsItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON MetadataItemsItem where
-        toJSON MetadataItemsItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _miiValue, ("key" .=) <$> _miiKey])
-
--- | Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs
---
--- /See:/ 'signedURLKey' smart constructor.
-data SignedURLKey =
-  SignedURLKey'
-    { _sukKeyValue :: !(Maybe Text)
-    , _sukKeyName  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SignedURLKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sukKeyValue'
---
--- * 'sukKeyName'
-signedURLKey
-    :: SignedURLKey
-signedURLKey = SignedURLKey' {_sukKeyValue = Nothing, _sukKeyName = Nothing}
-
-
--- | 128-bit key value used for signing the URL. The key value must be a
--- valid RFC 4648 Section 5 base64url encoded string.
-sukKeyValue :: Lens' SignedURLKey (Maybe Text)
-sukKeyValue
-  = lens _sukKeyValue (\ s a -> s{_sukKeyValue = a})
-
--- | Name of the key. The name must be 1-63 characters long, and comply with
--- RFC1035. Specifically, the name must be 1-63 characters long and match
--- the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the
--- first character must be a lowercase letter, and all following characters
--- must be a dash, lowercase letter, or digit, except the last character,
--- which cannot be a dash.
-sukKeyName :: Lens' SignedURLKey (Maybe Text)
-sukKeyName
-  = lens _sukKeyName (\ s a -> s{_sukKeyName = a})
-
-instance FromJSON SignedURLKey where
-        parseJSON
-          = withObject "SignedURLKey"
-              (\ o ->
-                 SignedURLKey' <$>
-                   (o .:? "keyValue") <*> (o .:? "keyName"))
-
-instance ToJSON SignedURLKey where
-        toJSON SignedURLKey'{..}
-          = object
-              (catMaybes
-                 [("keyValue" .=) <$> _sukKeyValue,
-                  ("keyName" .=) <$> _sukKeyName])
-
--- | A TargetHttpsProxy resource. This resource defines an HTTPS proxy. (==
--- resource_for beta.targetHttpsProxies ==) (== resource_for
--- v1.targetHttpsProxies ==)
---
--- /See:/ 'targetHTTPSProxy' smart constructor.
-data TargetHTTPSProxy =
-  TargetHTTPSProxy'
-    { _thpSSLPolicy         :: !(Maybe Text)
-    , _thpURLMap            :: !(Maybe Text)
-    , _thpSSLCertificates   :: !(Maybe [Text])
-    , _thpQuicOverride      :: !(Maybe TargetHTTPSProxyQuicOverride)
-    , _thpKind              :: !Text
-    , _thpSelfLink          :: !(Maybe Text)
-    , _thpName              :: !(Maybe Text)
-    , _thpCreationTimestamp :: !(Maybe Text)
-    , _thpId                :: !(Maybe (Textual Word64))
-    , _thpDescription       :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpSSLPolicy'
---
--- * 'thpURLMap'
---
--- * 'thpSSLCertificates'
---
--- * 'thpQuicOverride'
---
--- * 'thpKind'
---
--- * 'thpSelfLink'
---
--- * 'thpName'
---
--- * 'thpCreationTimestamp'
---
--- * 'thpId'
---
--- * 'thpDescription'
-targetHTTPSProxy
-    :: TargetHTTPSProxy
-targetHTTPSProxy =
-  TargetHTTPSProxy'
-    { _thpSSLPolicy = Nothing
-    , _thpURLMap = Nothing
-    , _thpSSLCertificates = Nothing
-    , _thpQuicOverride = Nothing
-    , _thpKind = "compute#targetHttpsProxy"
-    , _thpSelfLink = Nothing
-    , _thpName = Nothing
-    , _thpCreationTimestamp = Nothing
-    , _thpId = Nothing
-    , _thpDescription = Nothing
-    }
-
-
--- | URL of SslPolicy resource that will be associated with the
--- TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
--- will not have any SSL policy configured.
-thpSSLPolicy :: Lens' TargetHTTPSProxy (Maybe Text)
-thpSSLPolicy
-  = lens _thpSSLPolicy (\ s a -> s{_thpSSLPolicy = a})
-
--- | A fully-qualified or valid partial URL to the UrlMap resource that
--- defines the mapping from URL to the BackendService. For example, the
--- following are all valid URLs for specifying a URL map: -
--- https:\/\/www.googleapis.compute\/v1\/projects\/project\/global\/urlMaps\/url-map
--- - projects\/project\/global\/urlMaps\/url-map - global\/urlMaps\/url-map
-thpURLMap :: Lens' TargetHTTPSProxy (Maybe Text)
-thpURLMap
-  = lens _thpURLMap (\ s a -> s{_thpURLMap = a})
-
--- | URLs to SslCertificate resources that are used to authenticate
--- connections between users and the load balancer. At least one SSL
--- certificate must be specified. Currently, you may specify up to 15 SSL
--- certificates.
-thpSSLCertificates :: Lens' TargetHTTPSProxy [Text]
-thpSSLCertificates
-  = lens _thpSSLCertificates
-      (\ s a -> s{_thpSSLCertificates = a})
-      . _Default
-      . _Coerce
-
--- | Specifies the QUIC override policy for this TargetHttpsProxy resource.
--- This determines whether the load balancer will attempt to negotiate QUIC
--- with clients or not. Can specify one of NONE, ENABLE, or DISABLE.
--- Specify ENABLE to always enable QUIC, Enables QUIC when set to ENABLE,
--- and disables QUIC when set to DISABLE. If NONE is specified, uses the
--- QUIC policy with no user overrides, which is equivalent to DISABLE. Not
--- specifying this field is equivalent to specifying NONE.
-thpQuicOverride :: Lens' TargetHTTPSProxy (Maybe TargetHTTPSProxyQuicOverride)
-thpQuicOverride
-  = lens _thpQuicOverride
-      (\ s a -> s{_thpQuicOverride = a})
-
--- | [Output Only] Type of resource. Always compute#targetHttpsProxy for
--- target HTTPS proxies.
-thpKind :: Lens' TargetHTTPSProxy Text
-thpKind = lens _thpKind (\ s a -> s{_thpKind = a})
-
--- | [Output Only] Server-defined URL for the resource.
-thpSelfLink :: Lens' TargetHTTPSProxy (Maybe Text)
-thpSelfLink
-  = lens _thpSelfLink (\ s a -> s{_thpSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-thpName :: Lens' TargetHTTPSProxy (Maybe Text)
-thpName = lens _thpName (\ s a -> s{_thpName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-thpCreationTimestamp :: Lens' TargetHTTPSProxy (Maybe Text)
-thpCreationTimestamp
-  = lens _thpCreationTimestamp
-      (\ s a -> s{_thpCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-thpId :: Lens' TargetHTTPSProxy (Maybe Word64)
-thpId
-  = lens _thpId (\ s a -> s{_thpId = a}) .
-      mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-thpDescription :: Lens' TargetHTTPSProxy (Maybe Text)
-thpDescription
-  = lens _thpDescription
-      (\ s a -> s{_thpDescription = a})
-
-instance FromJSON TargetHTTPSProxy where
-        parseJSON
-          = withObject "TargetHTTPSProxy"
-              (\ o ->
-                 TargetHTTPSProxy' <$>
-                   (o .:? "sslPolicy") <*> (o .:? "urlMap") <*>
-                     (o .:? "sslCertificates" .!= mempty)
-                     <*> (o .:? "quicOverride")
-                     <*> (o .:? "kind" .!= "compute#targetHttpsProxy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "description"))
-
-instance ToJSON TargetHTTPSProxy where
-        toJSON TargetHTTPSProxy'{..}
-          = object
-              (catMaybes
-                 [("sslPolicy" .=) <$> _thpSSLPolicy,
-                  ("urlMap" .=) <$> _thpURLMap,
-                  ("sslCertificates" .=) <$> _thpSSLCertificates,
-                  ("quicOverride" .=) <$> _thpQuicOverride,
-                  Just ("kind" .= _thpKind),
-                  ("selfLink" .=) <$> _thpSelfLink,
-                  ("name" .=) <$> _thpName,
-                  ("creationTimestamp" .=) <$> _thpCreationTimestamp,
-                  ("id" .=) <$> _thpId,
-                  ("description" .=) <$> _thpDescription])
-
--- | Message containing connection draining configuration.
---
--- /See:/ 'connectionDraining' smart constructor.
-newtype ConnectionDraining =
-  ConnectionDraining'
-    { _cdDrainingTimeoutSec :: Maybe (Textual Int32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConnectionDraining' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cdDrainingTimeoutSec'
-connectionDraining
-    :: ConnectionDraining
-connectionDraining = ConnectionDraining' {_cdDrainingTimeoutSec = Nothing}
-
-
--- | Time for which instance will be drained (not accept new connections, but
--- still work to finish started).
-cdDrainingTimeoutSec :: Lens' ConnectionDraining (Maybe Int32)
-cdDrainingTimeoutSec
-  = lens _cdDrainingTimeoutSec
-      (\ s a -> s{_cdDrainingTimeoutSec = a})
-      . mapping _Coerce
-
-instance FromJSON ConnectionDraining where
-        parseJSON
-          = withObject "ConnectionDraining"
-              (\ o ->
-                 ConnectionDraining' <$> (o .:? "drainingTimeoutSec"))
-
-instance ToJSON ConnectionDraining where
-        toJSON ConnectionDraining'{..}
-          = object
-              (catMaybes
-                 [("drainingTimeoutSec" .=) <$>
-                    _cdDrainingTimeoutSec])
-
---
--- /See:/ 'interconnectAttachmentListWarningDataItem' smart constructor.
-data InterconnectAttachmentListWarningDataItem =
-  InterconnectAttachmentListWarningDataItem'
-    { _ialwdiValue :: !(Maybe Text)
-    , _ialwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialwdiValue'
---
--- * 'ialwdiKey'
-interconnectAttachmentListWarningDataItem
-    :: InterconnectAttachmentListWarningDataItem
-interconnectAttachmentListWarningDataItem =
-  InterconnectAttachmentListWarningDataItem'
-    {_ialwdiValue = Nothing, _ialwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-ialwdiValue :: Lens' InterconnectAttachmentListWarningDataItem (Maybe Text)
-ialwdiValue
-  = lens _ialwdiValue (\ s a -> s{_ialwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-ialwdiKey :: Lens' InterconnectAttachmentListWarningDataItem (Maybe Text)
-ialwdiKey
-  = lens _ialwdiKey (\ s a -> s{_ialwdiKey = a})
-
-instance FromJSON
-           InterconnectAttachmentListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "InterconnectAttachmentListWarningDataItem"
-              (\ o ->
-                 InterconnectAttachmentListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           InterconnectAttachmentListWarningDataItem
-         where
-        toJSON InterconnectAttachmentListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _ialwdiValue,
-                  ("key" .=) <$> _ialwdiKey])
-
---
--- /See:/ 'cacheInvalidationRule' smart constructor.
-data CacheInvalidationRule =
-  CacheInvalidationRule'
-    { _cirPath :: !(Maybe Text)
-    , _cirHost :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CacheInvalidationRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cirPath'
---
--- * 'cirHost'
-cacheInvalidationRule
-    :: CacheInvalidationRule
-cacheInvalidationRule =
-  CacheInvalidationRule' {_cirPath = Nothing, _cirHost = Nothing}
-
-
-cirPath :: Lens' CacheInvalidationRule (Maybe Text)
-cirPath = lens _cirPath (\ s a -> s{_cirPath = a})
-
--- | If set, this invalidation rule will only apply to requests with a Host
--- header matching host.
-cirHost :: Lens' CacheInvalidationRule (Maybe Text)
-cirHost = lens _cirHost (\ s a -> s{_cirHost = a})
-
-instance FromJSON CacheInvalidationRule where
-        parseJSON
-          = withObject "CacheInvalidationRule"
-              (\ o ->
-                 CacheInvalidationRule' <$>
-                   (o .:? "path") <*> (o .:? "host"))
-
-instance ToJSON CacheInvalidationRule where
-        toJSON CacheInvalidationRule'{..}
-          = object
-              (catMaybes
-                 [("path" .=) <$> _cirPath, ("host" .=) <$> _cirHost])
-
---
--- /See:/ 'addressAggregatedListWarningDataItem' smart constructor.
-data AddressAggregatedListWarningDataItem =
-  AddressAggregatedListWarningDataItem'
-    { _aalwdiaValue :: !(Maybe Text)
-    , _aalwdiaKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aalwdiaValue'
---
--- * 'aalwdiaKey'
-addressAggregatedListWarningDataItem
-    :: AddressAggregatedListWarningDataItem
-addressAggregatedListWarningDataItem =
-  AddressAggregatedListWarningDataItem'
-    {_aalwdiaValue = Nothing, _aalwdiaKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-aalwdiaValue :: Lens' AddressAggregatedListWarningDataItem (Maybe Text)
-aalwdiaValue
-  = lens _aalwdiaValue (\ s a -> s{_aalwdiaValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-aalwdiaKey :: Lens' AddressAggregatedListWarningDataItem (Maybe Text)
-aalwdiaKey
-  = lens _aalwdiaKey (\ s a -> s{_aalwdiaKey = a})
-
-instance FromJSON
-           AddressAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "AddressAggregatedListWarningDataItem"
-              (\ o ->
-                 AddressAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON AddressAggregatedListWarningDataItem
-         where
-        toJSON AddressAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _aalwdiaValue,
-                  ("key" .=) <$> _aalwdiaKey])
-
---
--- /See:/ 'targetVPNGatewaysScopedList' smart constructor.
-data TargetVPNGatewaysScopedList =
-  TargetVPNGatewaysScopedList'
-    { _tvgslTargetVPNGateways :: !(Maybe [TargetVPNGateway])
-    , _tvgslWarning           :: !(Maybe TargetVPNGatewaysScopedListWarning)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgslTargetVPNGateways'
---
--- * 'tvgslWarning'
-targetVPNGatewaysScopedList
-    :: TargetVPNGatewaysScopedList
-targetVPNGatewaysScopedList =
-  TargetVPNGatewaysScopedList'
-    {_tvgslTargetVPNGateways = Nothing, _tvgslWarning = Nothing}
-
-
--- | [Output Only] A list of target VPN gateways contained in this scope.
-tvgslTargetVPNGateways :: Lens' TargetVPNGatewaysScopedList [TargetVPNGateway]
-tvgslTargetVPNGateways
-  = lens _tvgslTargetVPNGateways
-      (\ s a -> s{_tvgslTargetVPNGateways = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] Informational warning which replaces the list of addresses
--- when the list is empty.
-tvgslWarning :: Lens' TargetVPNGatewaysScopedList (Maybe TargetVPNGatewaysScopedListWarning)
-tvgslWarning
-  = lens _tvgslWarning (\ s a -> s{_tvgslWarning = a})
-
-instance FromJSON TargetVPNGatewaysScopedList where
-        parseJSON
-          = withObject "TargetVPNGatewaysScopedList"
-              (\ o ->
-                 TargetVPNGatewaysScopedList' <$>
-                   (o .:? "targetVpnGateways" .!= mempty) <*>
-                     (o .:? "warning"))
-
-instance ToJSON TargetVPNGatewaysScopedList where
-        toJSON TargetVPNGatewaysScopedList'{..}
-          = object
-              (catMaybes
-                 [("targetVpnGateways" .=) <$>
-                    _tvgslTargetVPNGateways,
-                  ("warning" .=) <$> _tvgslWarning])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'commitmentAggregatedListWarning' smart constructor.
-data CommitmentAggregatedListWarning =
-  CommitmentAggregatedListWarning'
-    { _calwData    :: !(Maybe [CommitmentAggregatedListWarningDataItem])
-    , _calwCode    :: !(Maybe CommitmentAggregatedListWarningCode)
-    , _calwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentAggregatedListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'calwData'
---
--- * 'calwCode'
---
--- * 'calwMessage'
-commitmentAggregatedListWarning
-    :: CommitmentAggregatedListWarning
-commitmentAggregatedListWarning =
-  CommitmentAggregatedListWarning'
-    {_calwData = Nothing, _calwCode = Nothing, _calwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-calwData :: Lens' CommitmentAggregatedListWarning [CommitmentAggregatedListWarningDataItem]
-calwData
-  = lens _calwData (\ s a -> s{_calwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-calwCode :: Lens' CommitmentAggregatedListWarning (Maybe CommitmentAggregatedListWarningCode)
-calwCode = lens _calwCode (\ s a -> s{_calwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-calwMessage :: Lens' CommitmentAggregatedListWarning (Maybe Text)
-calwMessage
-  = lens _calwMessage (\ s a -> s{_calwMessage = a})
-
-instance FromJSON CommitmentAggregatedListWarning
-         where
-        parseJSON
-          = withObject "CommitmentAggregatedListWarning"
-              (\ o ->
-                 CommitmentAggregatedListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON CommitmentAggregatedListWarning where
-        toJSON CommitmentAggregatedListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _calwData,
-                  ("code" .=) <$> _calwCode,
-                  ("message" .=) <$> _calwMessage])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'regionInstanceGroupListWarning' smart constructor.
-data RegionInstanceGroupListWarning =
-  RegionInstanceGroupListWarning'
-    { _riglwData    :: !(Maybe [RegionInstanceGroupListWarningDataItem])
-    , _riglwCode    :: !(Maybe RegionInstanceGroupListWarningCode)
-    , _riglwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riglwData'
---
--- * 'riglwCode'
---
--- * 'riglwMessage'
-regionInstanceGroupListWarning
-    :: RegionInstanceGroupListWarning
-regionInstanceGroupListWarning =
-  RegionInstanceGroupListWarning'
-    {_riglwData = Nothing, _riglwCode = Nothing, _riglwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-riglwData :: Lens' RegionInstanceGroupListWarning [RegionInstanceGroupListWarningDataItem]
-riglwData
-  = lens _riglwData (\ s a -> s{_riglwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-riglwCode :: Lens' RegionInstanceGroupListWarning (Maybe RegionInstanceGroupListWarningCode)
-riglwCode
-  = lens _riglwCode (\ s a -> s{_riglwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-riglwMessage :: Lens' RegionInstanceGroupListWarning (Maybe Text)
-riglwMessage
-  = lens _riglwMessage (\ s a -> s{_riglwMessage = a})
-
-instance FromJSON RegionInstanceGroupListWarning
-         where
-        parseJSON
-          = withObject "RegionInstanceGroupListWarning"
-              (\ o ->
-                 RegionInstanceGroupListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON RegionInstanceGroupListWarning where
-        toJSON RegionInstanceGroupListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _riglwData,
-                  ("code" .=) <$> _riglwCode,
-                  ("message" .=) <$> _riglwMessage])
-
--- | An access configuration attached to an instance\'s network interface.
--- Only one access config per instance is supported.
---
--- /See:/ 'accessConfig' smart constructor.
-data AccessConfig =
-  AccessConfig'
-    { _acNetworkTier         :: !(Maybe AccessConfigNetworkTier)
-    , _acSetPublicPtr        :: !(Maybe Bool)
-    , _acKind                :: !Text
-    , _acName                :: !(Maybe Text)
-    , _acNATIP               :: !(Maybe Text)
-    , _acPublicPtrDomainName :: !(Maybe Text)
-    , _acType                :: !AccessConfigType
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AccessConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'acNetworkTier'
---
--- * 'acSetPublicPtr'
---
--- * 'acKind'
---
--- * 'acName'
---
--- * 'acNATIP'
---
--- * 'acPublicPtrDomainName'
---
--- * 'acType'
-accessConfig
-    :: AccessConfig
-accessConfig =
-  AccessConfig'
-    { _acNetworkTier = Nothing
-    , _acSetPublicPtr = Nothing
-    , _acKind = "compute#accessConfig"
-    , _acName = Nothing
-    , _acNATIP = Nothing
-    , _acPublicPtrDomainName = Nothing
-    , _acType = OneToOneNAT
-    }
-
-
--- | This signifies the networking tier used for configuring this access
--- configuration and can only take the following values: PREMIUM, STANDARD.
--- If an AccessConfig is specified without a valid external IP address, an
--- ephemeral IP will be created with this networkTier. If an AccessConfig
--- with a valid external IP address is specified, it must match that of the
--- networkTier associated with the Address resource owning that IP.
-acNetworkTier :: Lens' AccessConfig (Maybe AccessConfigNetworkTier)
-acNetworkTier
-  = lens _acNetworkTier
-      (\ s a -> s{_acNetworkTier = a})
-
--- | Specifies whether a public DNS ?PTR? record should be created to map the
--- external IP address of the instance to a DNS domain name.
-acSetPublicPtr :: Lens' AccessConfig (Maybe Bool)
-acSetPublicPtr
-  = lens _acSetPublicPtr
-      (\ s a -> s{_acSetPublicPtr = a})
-
--- | [Output Only] Type of the resource. Always compute#accessConfig for
--- access configs.
-acKind :: Lens' AccessConfig Text
-acKind = lens _acKind (\ s a -> s{_acKind = a})
-
--- | The name of this access configuration. The default and recommended name
--- is External NAT but you can use any arbitrary string you would like. For
--- example, My external IP or Network Access.
-acName :: Lens' AccessConfig (Maybe Text)
-acName = lens _acName (\ s a -> s{_acName = a})
-
--- | An external IP address associated with this instance. Specify an unused
--- static external IP address available to the project or leave this field
--- undefined to use an IP from a shared ephemeral IP address pool. If you
--- specify a static external IP address, it must live in the same region as
--- the zone of the instance.
-acNATIP :: Lens' AccessConfig (Maybe Text)
-acNATIP = lens _acNATIP (\ s a -> s{_acNATIP = a})
-
--- | The DNS domain name for the public PTR record. This field can only be
--- set when the set_public_ptr field is enabled.
-acPublicPtrDomainName :: Lens' AccessConfig (Maybe Text)
-acPublicPtrDomainName
-  = lens _acPublicPtrDomainName
-      (\ s a -> s{_acPublicPtrDomainName = a})
-
--- | The type of configuration. The default and only option is
--- ONE_TO_ONE_NAT.
-acType :: Lens' AccessConfig AccessConfigType
-acType = lens _acType (\ s a -> s{_acType = a})
-
-instance FromJSON AccessConfig where
-        parseJSON
-          = withObject "AccessConfig"
-              (\ o ->
-                 AccessConfig' <$>
-                   (o .:? "networkTier") <*> (o .:? "setPublicPtr") <*>
-                     (o .:? "kind" .!= "compute#accessConfig")
-                     <*> (o .:? "name")
-                     <*> (o .:? "natIP")
-                     <*> (o .:? "publicPtrDomainName")
-                     <*> (o .:? "type" .!= OneToOneNAT))
-
-instance ToJSON AccessConfig where
-        toJSON AccessConfig'{..}
-          = object
-              (catMaybes
-                 [("networkTier" .=) <$> _acNetworkTier,
-                  ("setPublicPtr" .=) <$> _acSetPublicPtr,
-                  Just ("kind" .= _acKind), ("name" .=) <$> _acName,
-                  ("natIP" .=) <$> _acNATIP,
-                  ("publicPtrDomainName" .=) <$>
-                    _acPublicPtrDomainName,
-                  Just ("type" .= _acType)])
-
--- | Specifies what kind of log the caller must write
---
--- /See:/ 'logConfig' smart constructor.
-data LogConfig =
-  LogConfig'
-    { _lcCloudAudit :: !(Maybe LogConfigCloudAuditOptions)
-    , _lcDataAccess :: !(Maybe LogConfigDataAccessOptions)
-    , _lcCounter    :: !(Maybe LogConfigCounterOptions)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LogConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcCloudAudit'
---
--- * 'lcDataAccess'
---
--- * 'lcCounter'
-logConfig
-    :: LogConfig
-logConfig =
-  LogConfig'
-    {_lcCloudAudit = Nothing, _lcDataAccess = Nothing, _lcCounter = Nothing}
-
-
--- | Cloud audit options.
-lcCloudAudit :: Lens' LogConfig (Maybe LogConfigCloudAuditOptions)
-lcCloudAudit
-  = lens _lcCloudAudit (\ s a -> s{_lcCloudAudit = a})
-
--- | Data access options.
-lcDataAccess :: Lens' LogConfig (Maybe LogConfigDataAccessOptions)
-lcDataAccess
-  = lens _lcDataAccess (\ s a -> s{_lcDataAccess = a})
-
--- | Counter options.
-lcCounter :: Lens' LogConfig (Maybe LogConfigCounterOptions)
-lcCounter
-  = lens _lcCounter (\ s a -> s{_lcCounter = a})
-
-instance FromJSON LogConfig where
-        parseJSON
-          = withObject "LogConfig"
-              (\ o ->
-                 LogConfig' <$>
-                   (o .:? "cloudAudit") <*> (o .:? "dataAccess") <*>
-                     (o .:? "counter"))
-
-instance ToJSON LogConfig where
-        toJSON LogConfig'{..}
-          = object
-              (catMaybes
-                 [("cloudAudit" .=) <$> _lcCloudAudit,
-                  ("dataAccess" .=) <$> _lcDataAccess,
-                  ("counter" .=) <$> _lcCounter])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'zoneListWarning' smart constructor.
-data ZoneListWarning =
-  ZoneListWarning'
-    { _zlwData    :: !(Maybe [ZoneListWarningDataItem])
-    , _zlwCode    :: !(Maybe ZoneListWarningCode)
-    , _zlwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zlwData'
---
--- * 'zlwCode'
---
--- * 'zlwMessage'
-zoneListWarning
-    :: ZoneListWarning
-zoneListWarning =
-  ZoneListWarning'
-    {_zlwData = Nothing, _zlwCode = Nothing, _zlwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-zlwData :: Lens' ZoneListWarning [ZoneListWarningDataItem]
-zlwData
-  = lens _zlwData (\ s a -> s{_zlwData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-zlwCode :: Lens' ZoneListWarning (Maybe ZoneListWarningCode)
-zlwCode = lens _zlwCode (\ s a -> s{_zlwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-zlwMessage :: Lens' ZoneListWarning (Maybe Text)
-zlwMessage
-  = lens _zlwMessage (\ s a -> s{_zlwMessage = a})
-
-instance FromJSON ZoneListWarning where
-        parseJSON
-          = withObject "ZoneListWarning"
-              (\ o ->
-                 ZoneListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON ZoneListWarning where
-        toJSON ZoneListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _zlwData, ("code" .=) <$> _zlwCode,
-                  ("message" .=) <$> _zlwMessage])
-
---
--- /See:/ 'managedInstanceLastAttemptErrorsErrorsItem' smart constructor.
-data ManagedInstanceLastAttemptErrorsErrorsItem =
-  ManagedInstanceLastAttemptErrorsErrorsItem'
-    { _milaeeiLocation :: !(Maybe Text)
-    , _milaeeiCode     :: !(Maybe Text)
-    , _milaeeiMessage  :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ManagedInstanceLastAttemptErrorsErrorsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'milaeeiLocation'
---
--- * 'milaeeiCode'
---
--- * 'milaeeiMessage'
-managedInstanceLastAttemptErrorsErrorsItem
-    :: ManagedInstanceLastAttemptErrorsErrorsItem
-managedInstanceLastAttemptErrorsErrorsItem =
-  ManagedInstanceLastAttemptErrorsErrorsItem'
-    { _milaeeiLocation = Nothing
-    , _milaeeiCode = Nothing
-    , _milaeeiMessage = Nothing
-    }
-
-
--- | [Output Only] Indicates the field in the request that caused the error.
--- This property is optional.
-milaeeiLocation :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)
-milaeeiLocation
-  = lens _milaeeiLocation
-      (\ s a -> s{_milaeeiLocation = a})
-
--- | [Output Only] The error type identifier for this error.
-milaeeiCode :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)
-milaeeiCode
-  = lens _milaeeiCode (\ s a -> s{_milaeeiCode = a})
-
--- | [Output Only] An optional, human-readable error message.
-milaeeiMessage :: Lens' ManagedInstanceLastAttemptErrorsErrorsItem (Maybe Text)
-milaeeiMessage
-  = lens _milaeeiMessage
-      (\ s a -> s{_milaeeiMessage = a})
-
-instance FromJSON
-           ManagedInstanceLastAttemptErrorsErrorsItem
-         where
-        parseJSON
-          = withObject
-              "ManagedInstanceLastAttemptErrorsErrorsItem"
-              (\ o ->
-                 ManagedInstanceLastAttemptErrorsErrorsItem' <$>
-                   (o .:? "location") <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON
-           ManagedInstanceLastAttemptErrorsErrorsItem
-         where
-        toJSON
-          ManagedInstanceLastAttemptErrorsErrorsItem'{..}
-          = object
-              (catMaybes
-                 [("location" .=) <$> _milaeeiLocation,
-                  ("code" .=) <$> _milaeeiCode,
-                  ("message" .=) <$> _milaeeiMessage])
-
---
--- /See:/ 'instancesScopedListWarningDataItem' smart constructor.
-data InstancesScopedListWarningDataItem =
-  InstancesScopedListWarningDataItem'
-    { _islwdiValue :: !(Maybe Text)
-    , _islwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islwdiValue'
---
--- * 'islwdiKey'
-instancesScopedListWarningDataItem
-    :: InstancesScopedListWarningDataItem
-instancesScopedListWarningDataItem =
-  InstancesScopedListWarningDataItem'
-    {_islwdiValue = Nothing, _islwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-islwdiValue :: Lens' InstancesScopedListWarningDataItem (Maybe Text)
-islwdiValue
-  = lens _islwdiValue (\ s a -> s{_islwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-islwdiKey :: Lens' InstancesScopedListWarningDataItem (Maybe Text)
-islwdiKey
-  = lens _islwdiKey (\ s a -> s{_islwdiKey = a})
-
-instance FromJSON InstancesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject "InstancesScopedListWarningDataItem"
-              (\ o ->
-                 InstancesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstancesScopedListWarningDataItem
-         where
-        toJSON InstancesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _islwdiValue,
-                  ("key" .=) <$> _islwdiKey])
-
--- | Labels to apply to this snapshot. These can be later modified by the
--- setLabels method. Label values may be empty.
---
--- /See:/ 'snapshotLabels' smart constructor.
-newtype SnapshotLabels =
-  SnapshotLabels'
-    { _slAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slAddtional'
-snapshotLabels
-    :: HashMap Text Text -- ^ 'slAddtional'
-    -> SnapshotLabels
-snapshotLabels pSlAddtional_ =
-  SnapshotLabels' {_slAddtional = _Coerce # pSlAddtional_}
-
-
-slAddtional :: Lens' SnapshotLabels (HashMap Text Text)
-slAddtional
-  = lens _slAddtional (\ s a -> s{_slAddtional = a}) .
-      _Coerce
-
-instance FromJSON SnapshotLabels where
-        parseJSON
-          = withObject "SnapshotLabels"
-              (\ o -> SnapshotLabels' <$> (parseJSONObject o))
-
-instance ToJSON SnapshotLabels where
-        toJSON = toJSON . _slAddtional
-
---
--- /See:/ 'backendServicesScopedListWarningDataItem' smart constructor.
-data BackendServicesScopedListWarningDataItem =
-  BackendServicesScopedListWarningDataItem'
-    { _bsslwdiValue :: !(Maybe Text)
-    , _bsslwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesScopedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsslwdiValue'
---
--- * 'bsslwdiKey'
-backendServicesScopedListWarningDataItem
-    :: BackendServicesScopedListWarningDataItem
-backendServicesScopedListWarningDataItem =
-  BackendServicesScopedListWarningDataItem'
-    {_bsslwdiValue = Nothing, _bsslwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-bsslwdiValue :: Lens' BackendServicesScopedListWarningDataItem (Maybe Text)
-bsslwdiValue
-  = lens _bsslwdiValue (\ s a -> s{_bsslwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-bsslwdiKey :: Lens' BackendServicesScopedListWarningDataItem (Maybe Text)
-bsslwdiKey
-  = lens _bsslwdiKey (\ s a -> s{_bsslwdiKey = a})
-
-instance FromJSON
-           BackendServicesScopedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "BackendServicesScopedListWarningDataItem"
-              (\ o ->
-                 BackendServicesScopedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           BackendServicesScopedListWarningDataItem
-         where
-        toJSON BackendServicesScopedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _bsslwdiValue,
-                  ("key" .=) <$> _bsslwdiKey])
-
--- | A list of NodeTemplatesScopedList resources.
---
--- /See:/ 'nodeTemplateAggregatedListItems' smart constructor.
-newtype NodeTemplateAggregatedListItems =
-  NodeTemplateAggregatedListItems'
-    { _ntaliAddtional :: HashMap Text NodeTemplatesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplateAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntaliAddtional'
-nodeTemplateAggregatedListItems
-    :: HashMap Text NodeTemplatesScopedList -- ^ 'ntaliAddtional'
-    -> NodeTemplateAggregatedListItems
-nodeTemplateAggregatedListItems pNtaliAddtional_ =
-  NodeTemplateAggregatedListItems'
-    {_ntaliAddtional = _Coerce # pNtaliAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of node templates.
-ntaliAddtional :: Lens' NodeTemplateAggregatedListItems (HashMap Text NodeTemplatesScopedList)
-ntaliAddtional
-  = lens _ntaliAddtional
-      (\ s a -> s{_ntaliAddtional = a})
-      . _Coerce
-
-instance FromJSON NodeTemplateAggregatedListItems
-         where
-        parseJSON
-          = withObject "NodeTemplateAggregatedListItems"
-              (\ o ->
-                 NodeTemplateAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON NodeTemplateAggregatedListItems where
-        toJSON = toJSON . _ntaliAddtional
-
--- | A BackendService resource. This resource defines a group of backend
--- virtual machines and their serving capacity. (== resource_for
--- v1.backendService ==) (== resource_for beta.backendService ==)
---
--- /See:/ 'backendService' smart constructor.
-data BackendService =
-  BackendService'
-    { _bsSessionAffinity      :: !(Maybe BackendServiceSessionAffinity)
-    , _bsBackends             :: !(Maybe [Backend])
-    , _bsAffinityCookieTtlSec :: !(Maybe (Textual Int32))
-    , _bsIap                  :: !(Maybe BackendServiceIAP)
-    , _bsLoadBalancingScheme  :: !(Maybe BackendServiceLoadBalancingScheme)
-    , _bsKind                 :: !Text
-    , _bsEnableCDN            :: !(Maybe Bool)
-    , _bsFingerprint          :: !(Maybe Bytes)
-    , _bsProtocol             :: !(Maybe BackendServiceProtocol)
-    , _bsCustomRequestHeaders :: !(Maybe [Text])
-    , _bsSecurityPolicy       :: !(Maybe Text)
-    , _bsCdnPolicy            :: !(Maybe BackendServiceCdnPolicy)
-    , _bsSelfLink             :: !(Maybe Text)
-    , _bsName                 :: !(Maybe Text)
-    , _bsCreationTimestamp    :: !(Maybe Text)
-    , _bsId                   :: !(Maybe (Textual Word64))
-    , _bsRegion               :: !(Maybe Text)
-    , _bsConnectionDraining   :: !(Maybe ConnectionDraining)
-    , _bsTimeoutSec           :: !(Maybe (Textual Int32))
-    , _bsDescription          :: !(Maybe Text)
-    , _bsPortName             :: !(Maybe Text)
-    , _bsHealthChecks         :: !(Maybe [Text])
-    , _bsPort                 :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendService' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsSessionAffinity'
---
--- * 'bsBackends'
---
--- * 'bsAffinityCookieTtlSec'
---
--- * 'bsIap'
---
--- * 'bsLoadBalancingScheme'
---
--- * 'bsKind'
---
--- * 'bsEnableCDN'
---
--- * 'bsFingerprint'
---
--- * 'bsProtocol'
---
--- * 'bsCustomRequestHeaders'
---
--- * 'bsSecurityPolicy'
---
--- * 'bsCdnPolicy'
---
--- * 'bsSelfLink'
---
--- * 'bsName'
---
--- * 'bsCreationTimestamp'
---
--- * 'bsId'
---
--- * 'bsRegion'
---
--- * 'bsConnectionDraining'
---
--- * 'bsTimeoutSec'
---
--- * 'bsDescription'
---
--- * 'bsPortName'
---
--- * 'bsHealthChecks'
---
--- * 'bsPort'
-backendService
-    :: BackendService
-backendService =
-  BackendService'
-    { _bsSessionAffinity = Nothing
-    , _bsBackends = Nothing
-    , _bsAffinityCookieTtlSec = Nothing
-    , _bsIap = Nothing
-    , _bsLoadBalancingScheme = Nothing
-    , _bsKind = "compute#backendService"
-    , _bsEnableCDN = Nothing
-    , _bsFingerprint = Nothing
-    , _bsProtocol = Nothing
-    , _bsCustomRequestHeaders = Nothing
-    , _bsSecurityPolicy = Nothing
-    , _bsCdnPolicy = Nothing
-    , _bsSelfLink = Nothing
-    , _bsName = Nothing
-    , _bsCreationTimestamp = Nothing
-    , _bsId = Nothing
-    , _bsRegion = Nothing
-    , _bsConnectionDraining = Nothing
-    , _bsTimeoutSec = Nothing
-    , _bsDescription = Nothing
-    , _bsPortName = Nothing
-    , _bsHealthChecks = Nothing
-    , _bsPort = Nothing
-    }
-
-
--- | Type of session affinity to use. The default is NONE. When the load
--- balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
--- GENERATED_COOKIE. When the load balancing scheme is INTERNAL, can be
--- NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. When the
--- protocol is UDP, this field is not used.
-bsSessionAffinity :: Lens' BackendService (Maybe BackendServiceSessionAffinity)
-bsSessionAffinity
-  = lens _bsSessionAffinity
-      (\ s a -> s{_bsSessionAffinity = a})
-
--- | The list of backends that serve this BackendService.
-bsBackends :: Lens' BackendService [Backend]
-bsBackends
-  = lens _bsBackends (\ s a -> s{_bsBackends = a}) .
-      _Default
-      . _Coerce
-
--- | Lifetime of cookies in seconds if session_affinity is GENERATED_COOKIE.
--- If set to 0, the cookie is non-persistent and lasts only until the end
--- of the browser session (or equivalent). The maximum allowed value for
--- TTL is one day. When the load balancing scheme is INTERNAL, this field
--- is not used.
-bsAffinityCookieTtlSec :: Lens' BackendService (Maybe Int32)
-bsAffinityCookieTtlSec
-  = lens _bsAffinityCookieTtlSec
-      (\ s a -> s{_bsAffinityCookieTtlSec = a})
-      . mapping _Coerce
-
-bsIap :: Lens' BackendService (Maybe BackendServiceIAP)
-bsIap = lens _bsIap (\ s a -> s{_bsIap = a})
-
--- | Indicates whether the backend service will be used with internal or
--- external load balancing. A backend service created for one type of load
--- balancing cannot be used with the other. Possible values are INTERNAL
--- and EXTERNAL.
-bsLoadBalancingScheme :: Lens' BackendService (Maybe BackendServiceLoadBalancingScheme)
-bsLoadBalancingScheme
-  = lens _bsLoadBalancingScheme
-      (\ s a -> s{_bsLoadBalancingScheme = a})
-
--- | [Output Only] Type of resource. Always compute#backendService for
--- backend services.
-bsKind :: Lens' BackendService Text
-bsKind = lens _bsKind (\ s a -> s{_bsKind = a})
-
--- | If true, enable Cloud CDN for this BackendService. When the load
--- balancing scheme is INTERNAL, this field is not used.
-bsEnableCDN :: Lens' BackendService (Maybe Bool)
-bsEnableCDN
-  = lens _bsEnableCDN (\ s a -> s{_bsEnableCDN = a})
-
--- | Fingerprint of this resource. A hash of the contents stored in this
--- object. This field is used in optimistic locking. This field will be
--- ignored when inserting a BackendService. An up-to-date fingerprint must
--- be provided in order to update the BackendService, otherwise the request
--- will fail with error 412 conditionNotMet. To see the latest fingerprint,
--- make a get() request to retrieve a BackendService.
-bsFingerprint :: Lens' BackendService (Maybe ByteString)
-bsFingerprint
-  = lens _bsFingerprint
-      (\ s a -> s{_bsFingerprint = a})
-      . mapping _Bytes
-
--- | The protocol this BackendService uses to communicate with backends.
--- Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP. For
--- internal load balancing, the possible values are TCP and UDP, and the
--- default is TCP.
-bsProtocol :: Lens' BackendService (Maybe BackendServiceProtocol)
-bsProtocol
-  = lens _bsProtocol (\ s a -> s{_bsProtocol = a})
-
--- | Headers that the HTTP\/S load balancer should add to proxied requests.
-bsCustomRequestHeaders :: Lens' BackendService [Text]
-bsCustomRequestHeaders
-  = lens _bsCustomRequestHeaders
-      (\ s a -> s{_bsCustomRequestHeaders = a})
-      . _Default
-      . _Coerce
-
--- | [Output Only] The resource URL for the security policy associated with
--- this backend service.
-bsSecurityPolicy :: Lens' BackendService (Maybe Text)
-bsSecurityPolicy
-  = lens _bsSecurityPolicy
-      (\ s a -> s{_bsSecurityPolicy = a})
-
--- | Cloud CDN configuration for this BackendService.
-bsCdnPolicy :: Lens' BackendService (Maybe BackendServiceCdnPolicy)
-bsCdnPolicy
-  = lens _bsCdnPolicy (\ s a -> s{_bsCdnPolicy = a})
-
--- | [Output Only] Server-defined URL for the resource.
-bsSelfLink :: Lens' BackendService (Maybe Text)
-bsSelfLink
-  = lens _bsSelfLink (\ s a -> s{_bsSelfLink = a})
-
--- | Name of the resource. Provided by the client when the resource is
--- created. The name must be 1-63 characters long, and comply with RFC1035.
--- Specifically, the name must be 1-63 characters long and match the
--- regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means the first
--- character must be a lowercase letter, and all following characters must
--- be a dash, lowercase letter, or digit, except the last character, which
--- cannot be a dash.
-bsName :: Lens' BackendService (Maybe Text)
-bsName = lens _bsName (\ s a -> s{_bsName = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-bsCreationTimestamp :: Lens' BackendService (Maybe Text)
-bsCreationTimestamp
-  = lens _bsCreationTimestamp
-      (\ s a -> s{_bsCreationTimestamp = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-bsId :: Lens' BackendService (Maybe Word64)
-bsId
-  = lens _bsId (\ s a -> s{_bsId = a}) .
-      mapping _Coerce
-
--- | [Output Only] URL of the region where the regional backend service
--- resides. This field is not applicable to global backend services. You
--- must specify this field as part of the HTTP request URL. It is not
--- settable as a field in the request body.
-bsRegion :: Lens' BackendService (Maybe Text)
-bsRegion = lens _bsRegion (\ s a -> s{_bsRegion = a})
-
-bsConnectionDraining :: Lens' BackendService (Maybe ConnectionDraining)
-bsConnectionDraining
-  = lens _bsConnectionDraining
-      (\ s a -> s{_bsConnectionDraining = a})
-
--- | How many seconds to wait for the backend before considering it a failed
--- request. Default is 30 seconds.
-bsTimeoutSec :: Lens' BackendService (Maybe Int32)
-bsTimeoutSec
-  = lens _bsTimeoutSec (\ s a -> s{_bsTimeoutSec = a})
-      . mapping _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-bsDescription :: Lens' BackendService (Maybe Text)
-bsDescription
-  = lens _bsDescription
-      (\ s a -> s{_bsDescription = a})
-
--- | Name of backend port. The same name should appear in the instance groups
--- referenced by this service. Required when the load balancing scheme is
--- EXTERNAL. When the load balancing scheme is INTERNAL, this field is not
--- used.
-bsPortName :: Lens' BackendService (Maybe Text)
-bsPortName
-  = lens _bsPortName (\ s a -> s{_bsPortName = a})
-
--- | The list of URLs to the HttpHealthCheck or HttpsHealthCheck resource for
--- health checking this BackendService. Currently at most one health check
--- can be specified, and a health check is required for Compute Engine
--- backend services. A health check must not be specified for App Engine
--- backend and Cloud Function backend. For internal load balancing, a URL
--- to a HealthCheck resource must be specified instead.
-bsHealthChecks :: Lens' BackendService [Text]
-bsHealthChecks
-  = lens _bsHealthChecks
-      (\ s a -> s{_bsHealthChecks = a})
-      . _Default
-      . _Coerce
-
--- | Deprecated in favor of portName. The TCP port to connect on the backend.
--- The default value is 80. This cannot be used for internal load
--- balancing.
-bsPort :: Lens' BackendService (Maybe Int32)
-bsPort
-  = lens _bsPort (\ s a -> s{_bsPort = a}) .
-      mapping _Coerce
-
-instance FromJSON BackendService where
-        parseJSON
-          = withObject "BackendService"
-              (\ o ->
-                 BackendService' <$>
-                   (o .:? "sessionAffinity") <*>
-                     (o .:? "backends" .!= mempty)
-                     <*> (o .:? "affinityCookieTtlSec")
-                     <*> (o .:? "iap")
-                     <*> (o .:? "loadBalancingScheme")
-                     <*> (o .:? "kind" .!= "compute#backendService")
-                     <*> (o .:? "enableCDN")
-                     <*> (o .:? "fingerprint")
-                     <*> (o .:? "protocol")
-                     <*> (o .:? "customRequestHeaders" .!= mempty)
-                     <*> (o .:? "securityPolicy")
-                     <*> (o .:? "cdnPolicy")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "name")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "id")
-                     <*> (o .:? "region")
-                     <*> (o .:? "connectionDraining")
-                     <*> (o .:? "timeoutSec")
-                     <*> (o .:? "description")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "healthChecks" .!= mempty)
-                     <*> (o .:? "port"))
-
-instance ToJSON BackendService where
-        toJSON BackendService'{..}
-          = object
-              (catMaybes
-                 [("sessionAffinity" .=) <$> _bsSessionAffinity,
-                  ("backends" .=) <$> _bsBackends,
-                  ("affinityCookieTtlSec" .=) <$>
-                    _bsAffinityCookieTtlSec,
-                  ("iap" .=) <$> _bsIap,
-                  ("loadBalancingScheme" .=) <$>
-                    _bsLoadBalancingScheme,
-                  Just ("kind" .= _bsKind),
-                  ("enableCDN" .=) <$> _bsEnableCDN,
-                  ("fingerprint" .=) <$> _bsFingerprint,
-                  ("protocol" .=) <$> _bsProtocol,
-                  ("customRequestHeaders" .=) <$>
-                    _bsCustomRequestHeaders,
-                  ("securityPolicy" .=) <$> _bsSecurityPolicy,
-                  ("cdnPolicy" .=) <$> _bsCdnPolicy,
-                  ("selfLink" .=) <$> _bsSelfLink,
-                  ("name" .=) <$> _bsName,
-                  ("creationTimestamp" .=) <$> _bsCreationTimestamp,
-                  ("id" .=) <$> _bsId, ("region" .=) <$> _bsRegion,
-                  ("connectionDraining" .=) <$> _bsConnectionDraining,
-                  ("timeoutSec" .=) <$> _bsTimeoutSec,
-                  ("description" .=) <$> _bsDescription,
-                  ("portName" .=) <$> _bsPortName,
-                  ("healthChecks" .=) <$> _bsHealthChecks,
-                  ("port" .=) <$> _bsPort])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'instanceListWarning' smart constructor.
-data InstanceListWarning =
-  InstanceListWarning'
-    { _insData    :: !(Maybe [InstanceListWarningDataItem])
-    , _insCode    :: !(Maybe InstanceListWarningCode)
-    , _insMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'insData'
---
--- * 'insCode'
---
--- * 'insMessage'
-instanceListWarning
-    :: InstanceListWarning
-instanceListWarning =
-  InstanceListWarning'
-    {_insData = Nothing, _insCode = Nothing, _insMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-insData :: Lens' InstanceListWarning [InstanceListWarningDataItem]
-insData
-  = lens _insData (\ s a -> s{_insData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-insCode :: Lens' InstanceListWarning (Maybe InstanceListWarningCode)
-insCode = lens _insCode (\ s a -> s{_insCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-insMessage :: Lens' InstanceListWarning (Maybe Text)
-insMessage
-  = lens _insMessage (\ s a -> s{_insMessage = a})
-
-instance FromJSON InstanceListWarning where
-        parseJSON
-          = withObject "InstanceListWarning"
-              (\ o ->
-                 InstanceListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON InstanceListWarning where
-        toJSON InstanceListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _insData, ("code" .=) <$> _insCode,
-                  ("message" .=) <$> _insMessage])
-
---
--- /See:/ 'instanceMoveRequest' smart constructor.
-data InstanceMoveRequest =
-  InstanceMoveRequest'
-    { _imrTargetInstance  :: !(Maybe Text)
-    , _imrDestinationZone :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceMoveRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'imrTargetInstance'
---
--- * 'imrDestinationZone'
-instanceMoveRequest
-    :: InstanceMoveRequest
-instanceMoveRequest =
-  InstanceMoveRequest'
-    {_imrTargetInstance = Nothing, _imrDestinationZone = Nothing}
-
-
--- | The URL of the target instance to move. This can be a full or partial
--- URL. For example, the following are all valid URLs to an instance: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone\/instances\/instance
--- - projects\/project\/zones\/zone\/instances\/instance -
--- zones\/zone\/instances\/instance
-imrTargetInstance :: Lens' InstanceMoveRequest (Maybe Text)
-imrTargetInstance
-  = lens _imrTargetInstance
-      (\ s a -> s{_imrTargetInstance = a})
-
--- | The URL of the destination zone to move the instance. This can be a full
--- or partial URL. For example, the following are all valid URLs to a zone:
--- -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/zones\/zone
--- - projects\/project\/zones\/zone - zones\/zone
-imrDestinationZone :: Lens' InstanceMoveRequest (Maybe Text)
-imrDestinationZone
-  = lens _imrDestinationZone
-      (\ s a -> s{_imrDestinationZone = a})
-
-instance FromJSON InstanceMoveRequest where
-        parseJSON
-          = withObject "InstanceMoveRequest"
-              (\ o ->
-                 InstanceMoveRequest' <$>
-                   (o .:? "targetInstance") <*>
-                     (o .:? "destinationZone"))
-
-instance ToJSON InstanceMoveRequest where
-        toJSON InstanceMoveRequest'{..}
-          = object
-              (catMaybes
-                 [("targetInstance" .=) <$> _imrTargetInstance,
-                  ("destinationZone" .=) <$> _imrDestinationZone])
-
--- | Describing the ARP neighbor entries seen on this link
---
--- /See:/ 'interconnectDiagnosticsARPEntry' smart constructor.
-data InterconnectDiagnosticsARPEntry =
-  InterconnectDiagnosticsARPEntry'
-    { _idarpeIPAddress  :: !(Maybe Text)
-    , _idarpeMACAddress :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectDiagnosticsARPEntry' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idarpeIPAddress'
---
--- * 'idarpeMACAddress'
-interconnectDiagnosticsARPEntry
-    :: InterconnectDiagnosticsARPEntry
-interconnectDiagnosticsARPEntry =
-  InterconnectDiagnosticsARPEntry'
-    {_idarpeIPAddress = Nothing, _idarpeMACAddress = Nothing}
-
-
--- | The IP address of this ARP neighbor.
-idarpeIPAddress :: Lens' InterconnectDiagnosticsARPEntry (Maybe Text)
-idarpeIPAddress
-  = lens _idarpeIPAddress
-      (\ s a -> s{_idarpeIPAddress = a})
-
--- | The MAC address of this ARP neighbor.
-idarpeMACAddress :: Lens' InterconnectDiagnosticsARPEntry (Maybe Text)
-idarpeMACAddress
-  = lens _idarpeMACAddress
-      (\ s a -> s{_idarpeMACAddress = a})
-
-instance FromJSON InterconnectDiagnosticsARPEntry
-         where
-        parseJSON
-          = withObject "InterconnectDiagnosticsARPEntry"
-              (\ o ->
-                 InterconnectDiagnosticsARPEntry' <$>
-                   (o .:? "ipAddress") <*> (o .:? "macAddress"))
-
-instance ToJSON InterconnectDiagnosticsARPEntry where
-        toJSON InterconnectDiagnosticsARPEntry'{..}
-          = object
-              (catMaybes
-                 [("ipAddress" .=) <$> _idarpeIPAddress,
-                  ("macAddress" .=) <$> _idarpeMACAddress])
-
--- | A shielded Instance identity entry.
---
--- /See:/ 'shieldedInstanceIdentity' smart constructor.
-data ShieldedInstanceIdentity =
-  ShieldedInstanceIdentity'
-    { _siiSigningKey    :: !(Maybe ShieldedInstanceIdentityEntry)
-    , _siiKind          :: !Text
-    , _siiEncryptionKey :: !(Maybe ShieldedInstanceIdentityEntry)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ShieldedInstanceIdentity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'siiSigningKey'
---
--- * 'siiKind'
---
--- * 'siiEncryptionKey'
-shieldedInstanceIdentity
-    :: ShieldedInstanceIdentity
-shieldedInstanceIdentity =
-  ShieldedInstanceIdentity'
-    { _siiSigningKey = Nothing
-    , _siiKind = "compute#shieldedInstanceIdentity"
-    , _siiEncryptionKey = Nothing
-    }
-
-
--- | An Attestation Key (AK) issued to the Shielded Instance\'s vTPM.
-siiSigningKey :: Lens' ShieldedInstanceIdentity (Maybe ShieldedInstanceIdentityEntry)
-siiSigningKey
-  = lens _siiSigningKey
-      (\ s a -> s{_siiSigningKey = a})
-
--- | [Output Only] Type of the resource. Always
--- compute#shieldedInstanceIdentity for shielded Instance identity entry.
-siiKind :: Lens' ShieldedInstanceIdentity Text
-siiKind = lens _siiKind (\ s a -> s{_siiKind = a})
-
--- | An Endorsement Key (EK) issued to the Shielded Instance\'s vTPM.
-siiEncryptionKey :: Lens' ShieldedInstanceIdentity (Maybe ShieldedInstanceIdentityEntry)
-siiEncryptionKey
-  = lens _siiEncryptionKey
-      (\ s a -> s{_siiEncryptionKey = a})
-
-instance FromJSON ShieldedInstanceIdentity where
-        parseJSON
-          = withObject "ShieldedInstanceIdentity"
-              (\ o ->
-                 ShieldedInstanceIdentity' <$>
-                   (o .:? "signingKey") <*>
-                     (o .:? "kind" .!= "compute#shieldedInstanceIdentity")
-                     <*> (o .:? "encryptionKey"))
-
-instance ToJSON ShieldedInstanceIdentity where
-        toJSON ShieldedInstanceIdentity'{..}
-          = object
-              (catMaybes
-                 [("signingKey" .=) <$> _siiSigningKey,
-                  Just ("kind" .= _siiKind),
-                  ("encryptionKey" .=) <$> _siiEncryptionKey])
-
--- | Contains a list of Commitment resources.
---
--- /See:/ 'commitmentList' smart constructor.
-data CommitmentList =
-  CommitmentList'
-    { _clNextPageToken :: !(Maybe Text)
-    , _clKind          :: !Text
-    , _clItems         :: !(Maybe [Commitment])
-    , _clSelfLink      :: !(Maybe Text)
-    , _clWarning       :: !(Maybe CommitmentListWarning)
-    , _clId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CommitmentList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'clNextPageToken'
---
--- * 'clKind'
---
--- * 'clItems'
---
--- * 'clSelfLink'
---
--- * 'clWarning'
---
--- * 'clId'
-commitmentList
-    :: CommitmentList
-commitmentList =
-  CommitmentList'
-    { _clNextPageToken = Nothing
-    , _clKind = "compute#commitmentList"
-    , _clItems = Nothing
-    , _clSelfLink = Nothing
-    , _clWarning = Nothing
-    , _clId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-clNextPageToken :: Lens' CommitmentList (Maybe Text)
-clNextPageToken
-  = lens _clNextPageToken
-      (\ s a -> s{_clNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#commitmentList for lists
--- of commitments.
-clKind :: Lens' CommitmentList Text
-clKind = lens _clKind (\ s a -> s{_clKind = a})
-
--- | A list of Commitment resources.
-clItems :: Lens' CommitmentList [Commitment]
-clItems
-  = lens _clItems (\ s a -> s{_clItems = a}) . _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-clSelfLink :: Lens' CommitmentList (Maybe Text)
-clSelfLink
-  = lens _clSelfLink (\ s a -> s{_clSelfLink = a})
-
--- | [Output Only] Informational warning message.
-clWarning :: Lens' CommitmentList (Maybe CommitmentListWarning)
-clWarning
-  = lens _clWarning (\ s a -> s{_clWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-clId :: Lens' CommitmentList (Maybe Text)
-clId = lens _clId (\ s a -> s{_clId = a})
-
-instance FromJSON CommitmentList where
-        parseJSON
-          = withObject "CommitmentList"
-              (\ o ->
-                 CommitmentList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#commitmentList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON CommitmentList where
-        toJSON CommitmentList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _clNextPageToken,
-                  Just ("kind" .= _clKind), ("items" .=) <$> _clItems,
-                  ("selfLink" .=) <$> _clSelfLink,
-                  ("warning" .=) <$> _clWarning, ("id" .=) <$> _clId])
-
---
--- /See:/ 'instancesSetLabelsRequestLabels' smart constructor.
-newtype InstancesSetLabelsRequestLabels =
-  InstancesSetLabelsRequestLabels'
-    { _islrlAddtional :: HashMap Text Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetLabelsRequestLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islrlAddtional'
-instancesSetLabelsRequestLabels
-    :: HashMap Text Text -- ^ 'islrlAddtional'
-    -> InstancesSetLabelsRequestLabels
-instancesSetLabelsRequestLabels pIslrlAddtional_ =
-  InstancesSetLabelsRequestLabels'
-    {_islrlAddtional = _Coerce # pIslrlAddtional_}
-
-
-islrlAddtional :: Lens' InstancesSetLabelsRequestLabels (HashMap Text Text)
-islrlAddtional
-  = lens _islrlAddtional
-      (\ s a -> s{_islrlAddtional = a})
-      . _Coerce
-
-instance FromJSON InstancesSetLabelsRequestLabels
-         where
-        parseJSON
-          = withObject "InstancesSetLabelsRequestLabels"
-              (\ o ->
-                 InstancesSetLabelsRequestLabels' <$>
-                   (parseJSONObject o))
-
-instance ToJSON InstancesSetLabelsRequestLabels where
-        toJSON = toJSON . _islrlAddtional
-
---
--- /See:/ 'instanceGroupsScopedList' smart constructor.
-data InstanceGroupsScopedList =
-  InstanceGroupsScopedList'
-    { _igslWarning        :: !(Maybe InstanceGroupsScopedListWarning)
-    , _igslInstanceGroups :: !(Maybe [InstanceGroup])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsScopedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igslWarning'
---
--- * 'igslInstanceGroups'
-instanceGroupsScopedList
-    :: InstanceGroupsScopedList
-instanceGroupsScopedList =
-  InstanceGroupsScopedList'
-    {_igslWarning = Nothing, _igslInstanceGroups = Nothing}
-
-
--- | [Output Only] An informational warning that replaces the list of
--- instance groups when the list is empty.
-igslWarning :: Lens' InstanceGroupsScopedList (Maybe InstanceGroupsScopedListWarning)
-igslWarning
-  = lens _igslWarning (\ s a -> s{_igslWarning = a})
-
--- | [Output Only] The list of instance groups that are contained in this
--- scope.
-igslInstanceGroups :: Lens' InstanceGroupsScopedList [InstanceGroup]
-igslInstanceGroups
-  = lens _igslInstanceGroups
-      (\ s a -> s{_igslInstanceGroups = a})
-      . _Default
-      . _Coerce
-
-instance FromJSON InstanceGroupsScopedList where
-        parseJSON
-          = withObject "InstanceGroupsScopedList"
-              (\ o ->
-                 InstanceGroupsScopedList' <$>
-                   (o .:? "warning") <*>
-                     (o .:? "instanceGroups" .!= mempty))
-
-instance ToJSON InstanceGroupsScopedList where
-        toJSON InstanceGroupsScopedList'{..}
-          = object
-              (catMaybes
-                 [("warning" .=) <$> _igslWarning,
-                  ("instanceGroups" .=) <$> _igslInstanceGroups])
-
---
--- /See:/ 'instancesStartWithEncryptionKeyRequest' smart constructor.
-newtype InstancesStartWithEncryptionKeyRequest =
-  InstancesStartWithEncryptionKeyRequest'
-    { _iswekrDisks :: Maybe [CustomerEncryptionKeyProtectedDisk]
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesStartWithEncryptionKeyRequest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iswekrDisks'
-instancesStartWithEncryptionKeyRequest
-    :: InstancesStartWithEncryptionKeyRequest
-instancesStartWithEncryptionKeyRequest =
-  InstancesStartWithEncryptionKeyRequest' {_iswekrDisks = Nothing}
-
-
--- | Array of disks associated with this instance that are protected with a
--- customer-supplied encryption key. In order to start the instance, the
--- disk url and its corresponding key must be provided. If the disk is not
--- protected with a customer-supplied encryption key it should not be
--- specified.
-iswekrDisks :: Lens' InstancesStartWithEncryptionKeyRequest [CustomerEncryptionKeyProtectedDisk]
-iswekrDisks
-  = lens _iswekrDisks (\ s a -> s{_iswekrDisks = a}) .
-      _Default
-      . _Coerce
-
-instance FromJSON
-           InstancesStartWithEncryptionKeyRequest
-         where
-        parseJSON
-          = withObject "InstancesStartWithEncryptionKeyRequest"
-              (\ o ->
-                 InstancesStartWithEncryptionKeyRequest' <$>
-                   (o .:? "disks" .!= mempty))
-
-instance ToJSON
-           InstancesStartWithEncryptionKeyRequest
-         where
-        toJSON InstancesStartWithEncryptionKeyRequest'{..}
-          = object (catMaybes [("disks" .=) <$> _iswekrDisks])
-
---
--- /See:/ 'httpsHealthCheck' smart constructor.
-data HTTPSHealthCheck =
-  HTTPSHealthCheck'
-    { _hhcResponse          :: !(Maybe Text)
-    , _hhcPortSpecification :: !(Maybe HTTPSHealthCheckPortSpecification)
-    , _hhcRequestPath       :: !(Maybe Text)
-    , _hhcHost              :: !(Maybe Text)
-    , _hhcProxyHeader       :: !(Maybe HTTPSHealthCheckProxyHeader)
-    , _hhcPortName          :: !(Maybe Text)
-    , _hhcPort              :: !(Maybe (Textual Int32))
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhcResponse'
---
--- * 'hhcPortSpecification'
---
--- * 'hhcRequestPath'
---
--- * 'hhcHost'
---
--- * 'hhcProxyHeader'
---
--- * 'hhcPortName'
---
--- * 'hhcPort'
-httpsHealthCheck
-    :: HTTPSHealthCheck
-httpsHealthCheck =
-  HTTPSHealthCheck'
-    { _hhcResponse = Nothing
-    , _hhcPortSpecification = Nothing
-    , _hhcRequestPath = Nothing
-    , _hhcHost = Nothing
-    , _hhcProxyHeader = Nothing
-    , _hhcPortName = Nothing
-    , _hhcPort = Nothing
-    }
-
-
--- | The string to match anywhere in the first 1024 bytes of the response
--- body. If left empty (the default value), the status code determines
--- health. The response data can only be ASCII.
-hhcResponse :: Lens' HTTPSHealthCheck (Maybe Text)
-hhcResponse
-  = lens _hhcResponse (\ s a -> s{_hhcResponse = a})
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTPS health check follows
--- behavior specified in port and portName fields.
-hhcPortSpecification :: Lens' HTTPSHealthCheck (Maybe HTTPSHealthCheckPortSpecification)
-hhcPortSpecification
-  = lens _hhcPortSpecification
-      (\ s a -> s{_hhcPortSpecification = a})
-
--- | The request path of the HTTPS health check request. The default value is
--- \/.
-hhcRequestPath :: Lens' HTTPSHealthCheck (Maybe Text)
-hhcRequestPath
-  = lens _hhcRequestPath
-      (\ s a -> s{_hhcRequestPath = a})
-
--- | The value of the host header in the HTTPS health check request. If left
--- empty (default value), the IP on behalf of which this health check is
--- performed will be used.
-hhcHost :: Lens' HTTPSHealthCheck (Maybe Text)
-hhcHost = lens _hhcHost (\ s a -> s{_hhcHost = a})
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-hhcProxyHeader :: Lens' HTTPSHealthCheck (Maybe HTTPSHealthCheckProxyHeader)
-hhcProxyHeader
-  = lens _hhcProxyHeader
-      (\ s a -> s{_hhcProxyHeader = a})
-
--- | Port name as defined in InstanceGroup#NamedPort#name. If both port and
--- port_name are defined, port takes precedence.
-hhcPortName :: Lens' HTTPSHealthCheck (Maybe Text)
-hhcPortName
-  = lens _hhcPortName (\ s a -> s{_hhcPortName = a})
-
--- | The TCP port number for the health check request. The default value is
--- 443. Valid values are 1 through 65535.
-hhcPort :: Lens' HTTPSHealthCheck (Maybe Int32)
-hhcPort
-  = lens _hhcPort (\ s a -> s{_hhcPort = a}) .
-      mapping _Coerce
-
-instance FromJSON HTTPSHealthCheck where
-        parseJSON
-          = withObject "HTTPSHealthCheck"
-              (\ o ->
-                 HTTPSHealthCheck' <$>
-                   (o .:? "response") <*> (o .:? "portSpecification")
-                     <*> (o .:? "requestPath")
-                     <*> (o .:? "host")
-                     <*> (o .:? "proxyHeader")
-                     <*> (o .:? "portName")
-                     <*> (o .:? "port"))
-
-instance ToJSON HTTPSHealthCheck where
-        toJSON HTTPSHealthCheck'{..}
-          = object
-              (catMaybes
-                 [("response" .=) <$> _hhcResponse,
-                  ("portSpecification" .=) <$> _hhcPortSpecification,
-                  ("requestPath" .=) <$> _hhcRequestPath,
-                  ("host" .=) <$> _hhcHost,
-                  ("proxyHeader" .=) <$> _hhcProxyHeader,
-                  ("portName" .=) <$> _hhcPortName,
-                  ("port" .=) <$> _hhcPort])
-
--- | A list of VpnTunnelsScopedList resources.
---
--- /See:/ 'vpnTunnelAggregatedListItems' smart constructor.
-newtype VPNTunnelAggregatedListItems =
-  VPNTunnelAggregatedListItems'
-    { _vtaliAddtional :: HashMap Text VPNTunnelsScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtaliAddtional'
-vpnTunnelAggregatedListItems
-    :: HashMap Text VPNTunnelsScopedList -- ^ 'vtaliAddtional'
-    -> VPNTunnelAggregatedListItems
-vpnTunnelAggregatedListItems pVtaliAddtional_ =
-  VPNTunnelAggregatedListItems' {_vtaliAddtional = _Coerce # pVtaliAddtional_}
-
-
--- | Name of the scope containing this set of VPN tunnels.
-vtaliAddtional :: Lens' VPNTunnelAggregatedListItems (HashMap Text VPNTunnelsScopedList)
-vtaliAddtional
-  = lens _vtaliAddtional
-      (\ s a -> s{_vtaliAddtional = a})
-      . _Coerce
-
-instance FromJSON VPNTunnelAggregatedListItems where
-        parseJSON
-          = withObject "VPNTunnelAggregatedListItems"
-              (\ o ->
-                 VPNTunnelAggregatedListItems' <$>
-                   (parseJSONObject o))
-
-instance ToJSON VPNTunnelAggregatedListItems where
-        toJSON = toJSON . _vtaliAddtional
-
---
--- /See:/ 'instanceAggregatedListWarningDataItem' smart constructor.
-data InstanceAggregatedListWarningDataItem =
-  InstanceAggregatedListWarningDataItem'
-    { _insValue :: !(Maybe Text)
-    , _insKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'insValue'
---
--- * 'insKey'
-instanceAggregatedListWarningDataItem
-    :: InstanceAggregatedListWarningDataItem
-instanceAggregatedListWarningDataItem =
-  InstanceAggregatedListWarningDataItem'
-    {_insValue = Nothing, _insKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-insValue :: Lens' InstanceAggregatedListWarningDataItem (Maybe Text)
-insValue = lens _insValue (\ s a -> s{_insValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-insKey :: Lens' InstanceAggregatedListWarningDataItem (Maybe Text)
-insKey = lens _insKey (\ s a -> s{_insKey = a})
-
-instance FromJSON
-           InstanceAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject "InstanceAggregatedListWarningDataItem"
-              (\ o ->
-                 InstanceAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON InstanceAggregatedListWarningDataItem
-         where
-        toJSON InstanceAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _insValue, ("key" .=) <$> _insKey])
-
--- | A set of instance tags.
---
--- /See:/ 'tags' smart constructor.
-data Tags =
-  Tags'
-    { _tFingerprint :: !(Maybe Bytes)
-    , _tItems       :: !(Maybe [Text])
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Tags' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tFingerprint'
---
--- * 'tItems'
-tags
-    :: Tags
-tags = Tags' {_tFingerprint = Nothing, _tItems = Nothing}
-
-
--- | Specifies a fingerprint for this request, which is essentially a hash of
--- the tags\' contents and used for optimistic locking. The fingerprint is
--- initially generated by Compute Engine and changes after every request to
--- modify or update tags. You must always provide an up-to-date fingerprint
--- hash in order to update or change tags. To see the latest fingerprint,
--- make get() request to the instance.
-tFingerprint :: Lens' Tags (Maybe ByteString)
-tFingerprint
-  = lens _tFingerprint (\ s a -> s{_tFingerprint = a})
-      . mapping _Bytes
-
--- | An array of tags. Each tag must be 1-63 characters long, and comply with
--- RFC1035.
-tItems :: Lens' Tags [Text]
-tItems
-  = lens _tItems (\ s a -> s{_tItems = a}) . _Default .
-      _Coerce
-
-instance FromJSON Tags where
-        parseJSON
-          = withObject "Tags"
-              (\ o ->
-                 Tags' <$>
-                   (o .:? "fingerprint") <*> (o .:? "items" .!= mempty))
-
-instance ToJSON Tags where
-        toJSON Tags'{..}
-          = object
-              (catMaybes
-                 [("fingerprint" .=) <$> _tFingerprint,
-                  ("items" .=) <$> _tItems])
-
---
--- /See:/ 'addressAggregatedList' smart constructor.
-data AddressAggregatedList =
-  AddressAggregatedList'
-    { _addNextPageToken :: !(Maybe Text)
-    , _addKind          :: !Text
-    , _addItems         :: !(Maybe AddressAggregatedListItems)
-    , _addSelfLink      :: !(Maybe Text)
-    , _addWarning       :: !(Maybe AddressAggregatedListWarning)
-    , _addId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'addNextPageToken'
---
--- * 'addKind'
---
--- * 'addItems'
---
--- * 'addSelfLink'
---
--- * 'addWarning'
---
--- * 'addId'
-addressAggregatedList
-    :: AddressAggregatedList
-addressAggregatedList =
-  AddressAggregatedList'
-    { _addNextPageToken = Nothing
-    , _addKind = "compute#addressAggregatedList"
-    , _addItems = Nothing
-    , _addSelfLink = Nothing
-    , _addWarning = Nothing
-    , _addId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-addNextPageToken :: Lens' AddressAggregatedList (Maybe Text)
-addNextPageToken
-  = lens _addNextPageToken
-      (\ s a -> s{_addNextPageToken = a})
-
--- | [Output Only] Type of resource. Always compute#addressAggregatedList for
--- aggregated lists of addresses.
-addKind :: Lens' AddressAggregatedList Text
-addKind = lens _addKind (\ s a -> s{_addKind = a})
-
--- | A list of AddressesScopedList resources.
-addItems :: Lens' AddressAggregatedList (Maybe AddressAggregatedListItems)
-addItems = lens _addItems (\ s a -> s{_addItems = a})
-
--- | [Output Only] Server-defined URL for this resource.
-addSelfLink :: Lens' AddressAggregatedList (Maybe Text)
-addSelfLink
-  = lens _addSelfLink (\ s a -> s{_addSelfLink = a})
-
--- | [Output Only] Informational warning message.
-addWarning :: Lens' AddressAggregatedList (Maybe AddressAggregatedListWarning)
-addWarning
-  = lens _addWarning (\ s a -> s{_addWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-addId :: Lens' AddressAggregatedList (Maybe Text)
-addId = lens _addId (\ s a -> s{_addId = a})
-
-instance FromJSON AddressAggregatedList where
-        parseJSON
-          = withObject "AddressAggregatedList"
-              (\ o ->
-                 AddressAggregatedList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!= "compute#addressAggregatedList")
-                     <*> (o .:? "items")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON AddressAggregatedList where
-        toJSON AddressAggregatedList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _addNextPageToken,
-                  Just ("kind" .= _addKind),
-                  ("items" .=) <$> _addItems,
-                  ("selfLink" .=) <$> _addSelfLink,
-                  ("warning" .=) <$> _addWarning,
-                  ("id" .=) <$> _addId])
-
--- | Response to the list request, and contains a list of interconnect
--- attachments.
---
--- /See:/ 'interconnectAttachmentList' smart constructor.
-data InterconnectAttachmentList =
-  InterconnectAttachmentList'
-    { _ialaNextPageToken :: !(Maybe Text)
-    , _ialaKind          :: !Text
-    , _ialaItems         :: !(Maybe [InterconnectAttachment])
-    , _ialaSelfLink      :: !(Maybe Text)
-    , _ialaWarning       :: !(Maybe InterconnectAttachmentListWarning)
-    , _ialaId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialaNextPageToken'
---
--- * 'ialaKind'
---
--- * 'ialaItems'
---
--- * 'ialaSelfLink'
---
--- * 'ialaWarning'
---
--- * 'ialaId'
-interconnectAttachmentList
-    :: InterconnectAttachmentList
-interconnectAttachmentList =
-  InterconnectAttachmentList'
-    { _ialaNextPageToken = Nothing
-    , _ialaKind = "compute#interconnectAttachmentList"
-    , _ialaItems = Nothing
-    , _ialaSelfLink = Nothing
-    , _ialaWarning = Nothing
-    , _ialaId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-ialaNextPageToken :: Lens' InterconnectAttachmentList (Maybe Text)
-ialaNextPageToken
-  = lens _ialaNextPageToken
-      (\ s a -> s{_ialaNextPageToken = a})
-
--- | [Output Only] Type of resource. Always
--- compute#interconnectAttachmentList for lists of interconnect
--- attachments.
-ialaKind :: Lens' InterconnectAttachmentList Text
-ialaKind = lens _ialaKind (\ s a -> s{_ialaKind = a})
-
--- | A list of InterconnectAttachment resources.
-ialaItems :: Lens' InterconnectAttachmentList [InterconnectAttachment]
-ialaItems
-  = lens _ialaItems (\ s a -> s{_ialaItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-ialaSelfLink :: Lens' InterconnectAttachmentList (Maybe Text)
-ialaSelfLink
-  = lens _ialaSelfLink (\ s a -> s{_ialaSelfLink = a})
-
--- | [Output Only] Informational warning message.
-ialaWarning :: Lens' InterconnectAttachmentList (Maybe InterconnectAttachmentListWarning)
-ialaWarning
-  = lens _ialaWarning (\ s a -> s{_ialaWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-ialaId :: Lens' InterconnectAttachmentList (Maybe Text)
-ialaId = lens _ialaId (\ s a -> s{_ialaId = a})
-
-instance FromJSON InterconnectAttachmentList where
-        parseJSON
-          = withObject "InterconnectAttachmentList"
-              (\ o ->
-                 InterconnectAttachmentList' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "kind" .!=
-                        "compute#interconnectAttachmentList")
-                     <*> (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON InterconnectAttachmentList where
-        toJSON InterconnectAttachmentList'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _ialaNextPageToken,
-                  Just ("kind" .= _ialaKind),
-                  ("items" .=) <$> _ialaItems,
-                  ("selfLink" .=) <$> _ialaSelfLink,
-                  ("warning" .=) <$> _ialaWarning,
-                  ("id" .=) <$> _ialaId])
-
---
--- /See:/ 'operationWarningsItem' smart constructor.
-data OperationWarningsItem =
-  OperationWarningsItem'
-    { _owiData    :: !(Maybe [OperationWarningsItemDataItem])
-    , _owiCode    :: !(Maybe OperationWarningsItemCode)
-    , _owiMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'OperationWarningsItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'owiData'
---
--- * 'owiCode'
---
--- * 'owiMessage'
-operationWarningsItem
-    :: OperationWarningsItem
-operationWarningsItem =
-  OperationWarningsItem'
-    {_owiData = Nothing, _owiCode = Nothing, _owiMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-owiData :: Lens' OperationWarningsItem [OperationWarningsItemDataItem]
-owiData
-  = lens _owiData (\ s a -> s{_owiData = a}) . _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-owiCode :: Lens' OperationWarningsItem (Maybe OperationWarningsItemCode)
-owiCode = lens _owiCode (\ s a -> s{_owiCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-owiMessage :: Lens' OperationWarningsItem (Maybe Text)
-owiMessage
-  = lens _owiMessage (\ s a -> s{_owiMessage = a})
-
-instance FromJSON OperationWarningsItem where
-        parseJSON
-          = withObject "OperationWarningsItem"
-              (\ o ->
-                 OperationWarningsItem' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON OperationWarningsItem where
-        toJSON OperationWarningsItem'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _owiData, ("code" .=) <$> _owiCode,
-                  ("message" .=) <$> _owiMessage])
-
--- | Associates \`members\` with a \`role\`.
---
--- /See:/ 'binding' smart constructor.
-data Binding =
-  Binding'
-    { _bMembers   :: !(Maybe [Text])
-    , _bRole      :: !(Maybe Text)
-    , _bCondition :: !(Maybe Expr)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Binding' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bMembers'
---
--- * 'bRole'
---
--- * 'bCondition'
-binding
-    :: Binding
-binding =
-  Binding' {_bMembers = Nothing, _bRole = Nothing, _bCondition = Nothing}
-
-
--- | Specifies the identities requesting access for a Cloud Platform
--- resource. \`members\` can have the following values: * \`allUsers\`: A
--- special identifier that represents anyone who is on the internet; with
--- or without a Google account. * \`allAuthenticatedUsers\`: A special
--- identifier that represents anyone who is authenticated with a Google
--- account or a service account. * \`user:{emailid}\`: An email address
--- that represents a specific Google account. For example,
--- \`alice\'gmail.com\` . * \`serviceAccount:{emailid}\`: An email address
--- that represents a service account. For example,
--- \`my-other-app\'appspot.gserviceaccount.com\`. * \`group:{emailid}\`: An
--- email address that represents a Google group. For example,
--- \`admins\'example.com\`. * \`domain:{domain}\`: The G Suite domain
--- (primary) that represents all the users of that domain. For example,
--- \`google.com\` or \`example.com\`.
-bMembers :: Lens' Binding [Text]
-bMembers
-  = lens _bMembers (\ s a -> s{_bMembers = a}) .
-      _Default
-      . _Coerce
-
--- | Role that is assigned to \`members\`. For example, \`roles\/viewer\`,
--- \`roles\/editor\`, or \`roles\/owner\`.
-bRole :: Lens' Binding (Maybe Text)
-bRole = lens _bRole (\ s a -> s{_bRole = a})
-
--- | The condition that is associated with this binding. NOTE: An unsatisfied
--- condition will not allow user access via current binding. Different
--- bindings, including their conditions, are examined independently.
-bCondition :: Lens' Binding (Maybe Expr)
-bCondition
-  = lens _bCondition (\ s a -> s{_bCondition = a})
-
-instance FromJSON Binding where
-        parseJSON
-          = withObject "Binding"
-              (\ o ->
-                 Binding' <$>
-                   (o .:? "members" .!= mempty) <*> (o .:? "role") <*>
-                     (o .:? "condition"))
-
-instance ToJSON Binding where
-        toJSON Binding'{..}
-          = object
-              (catMaybes
-                 [("members" .=) <$> _bMembers,
-                  ("role" .=) <$> _bRole,
-                  ("condition" .=) <$> _bCondition])
-
--- | Message for the expected URL mappings.
---
--- /See:/ 'urlMapTest' smart constructor.
-data URLMapTest =
-  URLMapTest'
-    { _umtPath        :: !(Maybe Text)
-    , _umtService     :: !(Maybe Text)
-    , _umtHost        :: !(Maybe Text)
-    , _umtDescription :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapTest' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umtPath'
---
--- * 'umtService'
---
--- * 'umtHost'
---
--- * 'umtDescription'
-urlMapTest
-    :: URLMapTest
-urlMapTest =
-  URLMapTest'
-    { _umtPath = Nothing
-    , _umtService = Nothing
-    , _umtHost = Nothing
-    , _umtDescription = Nothing
-    }
-
-
--- | Path portion of the URL.
-umtPath :: Lens' URLMapTest (Maybe Text)
-umtPath = lens _umtPath (\ s a -> s{_umtPath = a})
-
--- | Expected BackendService resource the given URL should be mapped to.
-umtService :: Lens' URLMapTest (Maybe Text)
-umtService
-  = lens _umtService (\ s a -> s{_umtService = a})
-
--- | Host portion of the URL.
-umtHost :: Lens' URLMapTest (Maybe Text)
-umtHost = lens _umtHost (\ s a -> s{_umtHost = a})
-
--- | Description of this test case.
-umtDescription :: Lens' URLMapTest (Maybe Text)
-umtDescription
-  = lens _umtDescription
-      (\ s a -> s{_umtDescription = a})
-
-instance FromJSON URLMapTest where
-        parseJSON
-          = withObject "URLMapTest"
-              (\ o ->
-                 URLMapTest' <$>
-                   (o .:? "path") <*> (o .:? "service") <*>
-                     (o .:? "host")
-                     <*> (o .:? "description"))
-
-instance ToJSON URLMapTest where
-        toJSON URLMapTest'{..}
-          = object
-              (catMaybes
-                 [("path" .=) <$> _umtPath,
-                  ("service" .=) <$> _umtService,
-                  ("host" .=) <$> _umtHost,
-                  ("description" .=) <$> _umtDescription])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'httpsHealthCheckListWarning' smart constructor.
-data HTTPSHealthCheckListWarning =
-  HTTPSHealthCheckListWarning'
-    { _hhclwData    :: !(Maybe [HTTPSHealthCheckListWarningDataItem])
-    , _hhclwCode    :: !(Maybe HTTPSHealthCheckListWarningCode)
-    , _hhclwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthCheckListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhclwData'
---
--- * 'hhclwCode'
---
--- * 'hhclwMessage'
-httpsHealthCheckListWarning
-    :: HTTPSHealthCheckListWarning
-httpsHealthCheckListWarning =
-  HTTPSHealthCheckListWarning'
-    {_hhclwData = Nothing, _hhclwCode = Nothing, _hhclwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-hhclwData :: Lens' HTTPSHealthCheckListWarning [HTTPSHealthCheckListWarningDataItem]
-hhclwData
-  = lens _hhclwData (\ s a -> s{_hhclwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-hhclwCode :: Lens' HTTPSHealthCheckListWarning (Maybe HTTPSHealthCheckListWarningCode)
-hhclwCode
-  = lens _hhclwCode (\ s a -> s{_hhclwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-hhclwMessage :: Lens' HTTPSHealthCheckListWarning (Maybe Text)
-hhclwMessage
-  = lens _hhclwMessage (\ s a -> s{_hhclwMessage = a})
-
-instance FromJSON HTTPSHealthCheckListWarning where
-        parseJSON
-          = withObject "HTTPSHealthCheckListWarning"
-              (\ o ->
-                 HTTPSHealthCheckListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON HTTPSHealthCheckListWarning where
-        toJSON HTTPSHealthCheckListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _hhclwData,
-                  ("code" .=) <$> _hhclwCode,
-                  ("message" .=) <$> _hhclwMessage])
-
--- | A list of NodeTypesScopedList resources.
---
--- /See:/ 'nodeTypeAggregatedListItems' smart constructor.
-newtype NodeTypeAggregatedListItems =
-  NodeTypeAggregatedListItems'
-    { _nAddtional :: HashMap Text NodeTypesScopedList
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypeAggregatedListItems' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nAddtional'
-nodeTypeAggregatedListItems
-    :: HashMap Text NodeTypesScopedList -- ^ 'nAddtional'
-    -> NodeTypeAggregatedListItems
-nodeTypeAggregatedListItems pNAddtional_ =
-  NodeTypeAggregatedListItems' {_nAddtional = _Coerce # pNAddtional_}
-
-
--- | [Output Only] Name of the scope containing this set of node types.
-nAddtional :: Lens' NodeTypeAggregatedListItems (HashMap Text NodeTypesScopedList)
-nAddtional
-  = lens _nAddtional (\ s a -> s{_nAddtional = a}) .
-      _Coerce
-
-instance FromJSON NodeTypeAggregatedListItems where
-        parseJSON
-          = withObject "NodeTypeAggregatedListItems"
-              (\ o ->
-                 NodeTypeAggregatedListItems' <$> (parseJSONObject o))
-
-instance ToJSON NodeTypeAggregatedListItems where
-        toJSON = toJSON . _nAddtional
-
---
--- /See:/ 'routersPreviewResponse' smart constructor.
-newtype RoutersPreviewResponse =
-  RoutersPreviewResponse'
-    { _rprResource :: Maybe Router
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersPreviewResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rprResource'
-routersPreviewResponse
-    :: RoutersPreviewResponse
-routersPreviewResponse = RoutersPreviewResponse' {_rprResource = Nothing}
-
-
--- | Preview of given router.
-rprResource :: Lens' RoutersPreviewResponse (Maybe Router)
-rprResource
-  = lens _rprResource (\ s a -> s{_rprResource = a})
-
-instance FromJSON RoutersPreviewResponse where
-        parseJSON
-          = withObject "RoutersPreviewResponse"
-              (\ o ->
-                 RoutersPreviewResponse' <$> (o .:? "resource"))
-
-instance ToJSON RoutersPreviewResponse where
-        toJSON RoutersPreviewResponse'{..}
-          = object
-              (catMaybes [("resource" .=) <$> _rprResource])
-
---
--- /See:/ 'licensesListResponse' smart constructor.
-data LicensesListResponse =
-  LicensesListResponse'
-    { _llrNextPageToken :: !(Maybe Text)
-    , _llrItems         :: !(Maybe [License])
-    , _llrSelfLink      :: !(Maybe Text)
-    , _llrWarning       :: !(Maybe LicensesListResponseWarning)
-    , _llrId            :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesListResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'llrNextPageToken'
---
--- * 'llrItems'
---
--- * 'llrSelfLink'
---
--- * 'llrWarning'
---
--- * 'llrId'
-licensesListResponse
-    :: LicensesListResponse
-licensesListResponse =
-  LicensesListResponse'
-    { _llrNextPageToken = Nothing
-    , _llrItems = Nothing
-    , _llrSelfLink = Nothing
-    , _llrWarning = Nothing
-    , _llrId = Nothing
-    }
-
-
--- | [Output Only] This token allows you to get the next page of results for
--- list requests. If the number of results is larger than maxResults, use
--- the nextPageToken as a value for the query parameter pageToken in the
--- next list request. Subsequent list requests will have their own
--- nextPageToken to continue paging through the results.
-llrNextPageToken :: Lens' LicensesListResponse (Maybe Text)
-llrNextPageToken
-  = lens _llrNextPageToken
-      (\ s a -> s{_llrNextPageToken = a})
-
--- | A list of License resources.
-llrItems :: Lens' LicensesListResponse [License]
-llrItems
-  = lens _llrItems (\ s a -> s{_llrItems = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] Server-defined URL for this resource.
-llrSelfLink :: Lens' LicensesListResponse (Maybe Text)
-llrSelfLink
-  = lens _llrSelfLink (\ s a -> s{_llrSelfLink = a})
-
--- | [Output Only] Informational warning message.
-llrWarning :: Lens' LicensesListResponse (Maybe LicensesListResponseWarning)
-llrWarning
-  = lens _llrWarning (\ s a -> s{_llrWarning = a})
-
--- | [Output Only] Unique identifier for the resource; defined by the server.
-llrId :: Lens' LicensesListResponse (Maybe Text)
-llrId = lens _llrId (\ s a -> s{_llrId = a})
-
-instance FromJSON LicensesListResponse where
-        parseJSON
-          = withObject "LicensesListResponse"
-              (\ o ->
-                 LicensesListResponse' <$>
-                   (o .:? "nextPageToken") <*>
-                     (o .:? "items" .!= mempty)
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "warning")
-                     <*> (o .:? "id"))
-
-instance ToJSON LicensesListResponse where
-        toJSON LicensesListResponse'{..}
-          = object
-              (catMaybes
-                 [("nextPageToken" .=) <$> _llrNextPageToken,
-                  ("items" .=) <$> _llrItems,
-                  ("selfLink" .=) <$> _llrSelfLink,
-                  ("warning" .=) <$> _llrWarning,
-                  ("id" .=) <$> _llrId])
-
---
--- /See:/ 'backendServiceAggregatedListWarningDataItem' smart constructor.
-data BackendServiceAggregatedListWarningDataItem =
-  BackendServiceAggregatedListWarningDataItem'
-    { _bsalwdiValue :: !(Maybe Text)
-    , _bsalwdiKey   :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceAggregatedListWarningDataItem' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsalwdiValue'
---
--- * 'bsalwdiKey'
-backendServiceAggregatedListWarningDataItem
-    :: BackendServiceAggregatedListWarningDataItem
-backendServiceAggregatedListWarningDataItem =
-  BackendServiceAggregatedListWarningDataItem'
-    {_bsalwdiValue = Nothing, _bsalwdiKey = Nothing}
-
-
--- | [Output Only] A warning data value corresponding to the key.
-bsalwdiValue :: Lens' BackendServiceAggregatedListWarningDataItem (Maybe Text)
-bsalwdiValue
-  = lens _bsalwdiValue (\ s a -> s{_bsalwdiValue = a})
-
--- | [Output Only] A key that provides more detail on the warning being
--- returned. For example, for warnings where there are no results in a list
--- request for a particular zone, this key might be scope and the key value
--- might be the zone name. Other examples might be a key indicating a
--- deprecated resource and a suggested replacement, or a warning about
--- invalid network settings (for example, if an instance attempts to
--- perform IP forwarding but is not enabled for IP forwarding).
-bsalwdiKey :: Lens' BackendServiceAggregatedListWarningDataItem (Maybe Text)
-bsalwdiKey
-  = lens _bsalwdiKey (\ s a -> s{_bsalwdiKey = a})
-
-instance FromJSON
-           BackendServiceAggregatedListWarningDataItem
-         where
-        parseJSON
-          = withObject
-              "BackendServiceAggregatedListWarningDataItem"
-              (\ o ->
-                 BackendServiceAggregatedListWarningDataItem' <$>
-                   (o .:? "value") <*> (o .:? "key"))
-
-instance ToJSON
-           BackendServiceAggregatedListWarningDataItem
-         where
-        toJSON
-          BackendServiceAggregatedListWarningDataItem'{..}
-          = object
-              (catMaybes
-                 [("value" .=) <$> _bsalwdiValue,
-                  ("key" .=) <$> _bsalwdiKey])
-
--- | An Instance resource. (== resource_for beta.instances ==) (==
--- resource_for v1.instances ==)
---
--- /See:/ 'instance'' smart constructor.
-data Instance =
-  Instance'
-    { _i1Status                          :: !(Maybe InstanceStatus)
-    , _i1ServiceAccounts                 :: !(Maybe [ServiceAccount])
-    , _i1DeletionProtection              :: !(Maybe Bool)
-    , _i1Hostname                        :: !(Maybe Text)
-    , _i1NetworkInterfaces               :: !(Maybe [NetworkInterface])
-    , _i1ShieldedInstanceIntegrityPolicy :: !(Maybe ShieldedInstanceIntegrityPolicy)
-    , _i1Kind                            :: !Text
-    , _i1Zone                            :: !(Maybe Text)
-    , _i1CPUPlatform                     :: !(Maybe Text)
-    , _i1SelfLink                        :: !(Maybe Text)
-    , _i1GuestAccelerators               :: !(Maybe [AcceleratorConfig])
-    , _i1Name                            :: !(Maybe Text)
-    , _i1StatusMessage                   :: !(Maybe Text)
-    , _i1CreationTimestamp               :: !(Maybe Text)
-    , _i1MachineType                     :: !(Maybe Text)
-    , _i1Metadata                        :: !(Maybe Metadata)
-    , _i1ShieldedInstanceConfig          :: !(Maybe ShieldedInstanceConfig)
-    , _i1Id                              :: !(Maybe (Textual Word64))
-    , _i1Labels                          :: !(Maybe InstanceLabels)
-    , _i1StartRestricted                 :: !(Maybe Bool)
-    , _i1Scheduling                      :: !(Maybe Scheduling)
-    , _i1MinCPUPlatform                  :: !(Maybe Text)
-    , _i1Disks                           :: !(Maybe [AttachedDisk])
-    , _i1CanIPForward                    :: !(Maybe Bool)
-    , _i1LabelFingerprint                :: !(Maybe Bytes)
-    , _i1Description                     :: !(Maybe Text)
-    , _i1Tags                            :: !(Maybe Tags)
-    }
-  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:
---
--- * 'i1Status'
---
--- * 'i1ServiceAccounts'
---
--- * 'i1DeletionProtection'
---
--- * 'i1Hostname'
---
--- * 'i1NetworkInterfaces'
---
--- * 'i1ShieldedInstanceIntegrityPolicy'
---
--- * 'i1Kind'
---
--- * 'i1Zone'
---
--- * 'i1CPUPlatform'
---
--- * 'i1SelfLink'
---
--- * 'i1GuestAccelerators'
---
--- * 'i1Name'
---
--- * 'i1StatusMessage'
---
--- * 'i1CreationTimestamp'
---
--- * 'i1MachineType'
---
--- * 'i1Metadata'
---
--- * 'i1ShieldedInstanceConfig'
---
--- * 'i1Id'
---
--- * 'i1Labels'
---
--- * 'i1StartRestricted'
---
--- * 'i1Scheduling'
---
--- * 'i1MinCPUPlatform'
---
--- * 'i1Disks'
---
--- * 'i1CanIPForward'
---
--- * 'i1LabelFingerprint'
---
--- * 'i1Description'
---
--- * 'i1Tags'
-instance'
-    :: Instance
-instance' =
-  Instance'
-    { _i1Status = Nothing
-    , _i1ServiceAccounts = Nothing
-    , _i1DeletionProtection = Nothing
-    , _i1Hostname = Nothing
-    , _i1NetworkInterfaces = Nothing
-    , _i1ShieldedInstanceIntegrityPolicy = Nothing
-    , _i1Kind = "compute#instance"
-    , _i1Zone = Nothing
-    , _i1CPUPlatform = Nothing
-    , _i1SelfLink = Nothing
-    , _i1GuestAccelerators = Nothing
-    , _i1Name = Nothing
-    , _i1StatusMessage = Nothing
-    , _i1CreationTimestamp = Nothing
-    , _i1MachineType = Nothing
-    , _i1Metadata = Nothing
-    , _i1ShieldedInstanceConfig = Nothing
-    , _i1Id = Nothing
-    , _i1Labels = Nothing
-    , _i1StartRestricted = Nothing
-    , _i1Scheduling = Nothing
-    , _i1MinCPUPlatform = Nothing
-    , _i1Disks = Nothing
-    , _i1CanIPForward = Nothing
-    , _i1LabelFingerprint = Nothing
-    , _i1Description = Nothing
-    , _i1Tags = Nothing
-    }
-
-
--- | [Output Only] The status of the instance. One of the following values:
--- PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, SUSPENDING,
--- SUSPENDED, and TERMINATED.
-i1Status :: Lens' Instance (Maybe InstanceStatus)
-i1Status = lens _i1Status (\ s a -> s{_i1Status = a})
-
--- | A list of service accounts, with their specified scopes, authorized for
--- this instance. Only one service account per VM instance is supported.
--- Service accounts generate access tokens that can be accessed through the
--- metadata server and used to authenticate applications on the instance.
--- See Service Accounts for more information.
-i1ServiceAccounts :: Lens' Instance [ServiceAccount]
-i1ServiceAccounts
-  = lens _i1ServiceAccounts
-      (\ s a -> s{_i1ServiceAccounts = a})
-      . _Default
-      . _Coerce
-
--- | Whether the resource should be protected against deletion.
-i1DeletionProtection :: Lens' Instance (Maybe Bool)
-i1DeletionProtection
-  = lens _i1DeletionProtection
-      (\ s a -> s{_i1DeletionProtection = a})
-
-i1Hostname :: Lens' Instance (Maybe Text)
-i1Hostname
-  = lens _i1Hostname (\ s a -> s{_i1Hostname = a})
-
--- | An array of network configurations for this instance. These specify how
--- interfaces are configured to interact with other network services, such
--- as connecting to the internet. Multiple interfaces are supported per
--- instance.
-i1NetworkInterfaces :: Lens' Instance [NetworkInterface]
-i1NetworkInterfaces
-  = lens _i1NetworkInterfaces
-      (\ s a -> s{_i1NetworkInterfaces = a})
-      . _Default
-      . _Coerce
-
-i1ShieldedInstanceIntegrityPolicy :: Lens' Instance (Maybe ShieldedInstanceIntegrityPolicy)
-i1ShieldedInstanceIntegrityPolicy
-  = lens _i1ShieldedInstanceIntegrityPolicy
-      (\ s a -> s{_i1ShieldedInstanceIntegrityPolicy = a})
-
--- | [Output Only] Type of the resource. Always compute#instance for
--- instances.
-i1Kind :: Lens' Instance Text
-i1Kind = lens _i1Kind (\ s a -> s{_i1Kind = a})
-
--- | [Output Only] URL of the zone where the instance resides. You must
--- specify this field as part of the HTTP request URL. It is not settable
--- as a field in the request body.
-i1Zone :: Lens' Instance (Maybe Text)
-i1Zone = lens _i1Zone (\ s a -> s{_i1Zone = a})
-
--- | [Output Only] The CPU platform used by this instance.
-i1CPUPlatform :: Lens' Instance (Maybe Text)
-i1CPUPlatform
-  = lens _i1CPUPlatform
-      (\ s a -> s{_i1CPUPlatform = a})
-
--- | [Output Only] Server-defined URL for this resource.
-i1SelfLink :: Lens' Instance (Maybe Text)
-i1SelfLink
-  = lens _i1SelfLink (\ s a -> s{_i1SelfLink = a})
-
--- | A list of the type and count of accelerator cards attached to the
--- instance.
-i1GuestAccelerators :: Lens' Instance [AcceleratorConfig]
-i1GuestAccelerators
-  = lens _i1GuestAccelerators
-      (\ s a -> s{_i1GuestAccelerators = a})
-      . _Default
-      . _Coerce
-
--- | The name of the resource, provided by the client when initially creating
--- the resource. The resource name must be 1-63 characters long, and comply
--- with RFC1035. Specifically, the name must be 1-63 characters long and
--- match the regular expression \`[a-z]([-a-z0-9]*[a-z0-9])?\` which means
--- the first character must be a lowercase letter, and all following
--- characters must be a dash, lowercase letter, or digit, except the last
--- character, which cannot be a dash.
-i1Name :: Lens' Instance (Maybe Text)
-i1Name = lens _i1Name (\ s a -> s{_i1Name = a})
-
--- | [Output Only] An optional, human-readable explanation of the status.
-i1StatusMessage :: Lens' Instance (Maybe Text)
-i1StatusMessage
-  = lens _i1StatusMessage
-      (\ s a -> s{_i1StatusMessage = a})
-
--- | [Output Only] Creation timestamp in RFC3339 text format.
-i1CreationTimestamp :: Lens' Instance (Maybe Text)
-i1CreationTimestamp
-  = lens _i1CreationTimestamp
-      (\ s a -> s{_i1CreationTimestamp = a})
-
--- | Full or partial URL of the machine type resource to use for this
--- instance, in the format: zones\/zone\/machineTypes\/machine-type. This
--- is provided by the client when the instance is created. For example, the
--- following is a valid partial url to a predefined machine type:
--- zones\/us-central1-f\/machineTypes\/n1-standard-1 To create a custom
--- machine type, provide a URL to a machine type in the following format,
--- where CPUS is 1 or an even number up to 32 (2, 4, 6, ... 24, etc), and
--- MEMORY is the total memory for this instance. Memory must be a multiple
--- of 256 MB and must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
--- zones\/zone\/machineTypes\/custom-CPUS-MEMORY For example:
--- zones\/us-central1-f\/machineTypes\/custom-4-5120 For a full list of
--- restrictions, read the Specifications for custom machine types.
-i1MachineType :: Lens' Instance (Maybe Text)
-i1MachineType
-  = lens _i1MachineType
-      (\ s a -> s{_i1MachineType = a})
-
--- | The metadata key\/value pairs assigned to this instance. This includes
--- custom metadata and predefined keys.
-i1Metadata :: Lens' Instance (Maybe Metadata)
-i1Metadata
-  = lens _i1Metadata (\ s a -> s{_i1Metadata = a})
-
-i1ShieldedInstanceConfig :: Lens' Instance (Maybe ShieldedInstanceConfig)
-i1ShieldedInstanceConfig
-  = lens _i1ShieldedInstanceConfig
-      (\ s a -> s{_i1ShieldedInstanceConfig = a})
-
--- | [Output Only] The unique identifier for the resource. This identifier is
--- defined by the server.
-i1Id :: Lens' Instance (Maybe Word64)
-i1Id
-  = lens _i1Id (\ s a -> s{_i1Id = a}) .
-      mapping _Coerce
-
--- | Labels to apply to this instance. These can be later modified by the
--- setLabels method.
-i1Labels :: Lens' Instance (Maybe InstanceLabels)
-i1Labels = lens _i1Labels (\ s a -> s{_i1Labels = a})
-
--- | [Output Only] Whether a VM has been restricted for start because Compute
--- Engine has detected suspicious activity.
-i1StartRestricted :: Lens' Instance (Maybe Bool)
-i1StartRestricted
-  = lens _i1StartRestricted
-      (\ s a -> s{_i1StartRestricted = a})
-
--- | Sets the scheduling options for this instance.
-i1Scheduling :: Lens' Instance (Maybe Scheduling)
-i1Scheduling
-  = lens _i1Scheduling (\ s a -> s{_i1Scheduling = a})
-
--- | Specifies a minimum CPU platform for the VM instance. Applicable values
--- are the friendly names of CPU platforms, such as minCpuPlatform: \"Intel
--- Haswell\" or minCpuPlatform: \"Intel Sandy Bridge\".
-i1MinCPUPlatform :: Lens' Instance (Maybe Text)
-i1MinCPUPlatform
-  = lens _i1MinCPUPlatform
-      (\ s a -> s{_i1MinCPUPlatform = a})
-
--- | Array of disks associated with this instance. Persistent disks must be
--- created before you can assign them.
-i1Disks :: Lens' Instance [AttachedDisk]
-i1Disks
-  = lens _i1Disks (\ s a -> s{_i1Disks = a}) . _Default
-      . _Coerce
-
--- | Allows this instance to send and receive packets with non-matching
--- destination or source IPs. This is required if you plan to use this
--- instance to forward routes. For more information, see Enabling IP
--- Forwarding.
-i1CanIPForward :: Lens' Instance (Maybe Bool)
-i1CanIPForward
-  = lens _i1CanIPForward
-      (\ s a -> s{_i1CanIPForward = a})
-
--- | A fingerprint for this request, which is essentially a hash of the
--- label\'s contents and used for optimistic locking. The fingerprint is
--- initially generated by Compute Engine and changes after every request to
--- modify or update labels. You must always provide an up-to-date
--- fingerprint hash in order to update or change labels. To see the latest
--- fingerprint, make get() request to the instance.
-i1LabelFingerprint :: Lens' Instance (Maybe ByteString)
-i1LabelFingerprint
-  = lens _i1LabelFingerprint
-      (\ s a -> s{_i1LabelFingerprint = a})
-      . mapping _Bytes
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-i1Description :: Lens' Instance (Maybe Text)
-i1Description
-  = lens _i1Description
-      (\ s a -> s{_i1Description = a})
-
--- | Tags to apply to this instance. Tags are used to identify valid sources
--- or targets for network firewalls and are specified by the client during
--- instance creation. The tags can be later modified by the setTags method.
--- Each tag within the list must comply with RFC1035. Multiple tags can be
--- specified via the \'tags.items\' field.
-i1Tags :: Lens' Instance (Maybe Tags)
-i1Tags = lens _i1Tags (\ s a -> s{_i1Tags = a})
-
-instance FromJSON Instance where
-        parseJSON
-          = withObject "Instance"
-              (\ o ->
-                 Instance' <$>
-                   (o .:? "status") <*>
-                     (o .:? "serviceAccounts" .!= mempty)
-                     <*> (o .:? "deletionProtection")
-                     <*> (o .:? "hostname")
-                     <*> (o .:? "networkInterfaces" .!= mempty)
-                     <*> (o .:? "shieldedInstanceIntegrityPolicy")
-                     <*> (o .:? "kind" .!= "compute#instance")
-                     <*> (o .:? "zone")
-                     <*> (o .:? "cpuPlatform")
-                     <*> (o .:? "selfLink")
-                     <*> (o .:? "guestAccelerators" .!= mempty)
-                     <*> (o .:? "name")
-                     <*> (o .:? "statusMessage")
-                     <*> (o .:? "creationTimestamp")
-                     <*> (o .:? "machineType")
-                     <*> (o .:? "metadata")
-                     <*> (o .:? "shieldedInstanceConfig")
-                     <*> (o .:? "id")
-                     <*> (o .:? "labels")
-                     <*> (o .:? "startRestricted")
-                     <*> (o .:? "scheduling")
-                     <*> (o .:? "minCpuPlatform")
-                     <*> (o .:? "disks" .!= mempty)
-                     <*> (o .:? "canIpForward")
-                     <*> (o .:? "labelFingerprint")
-                     <*> (o .:? "description")
-                     <*> (o .:? "tags"))
-
-instance ToJSON Instance where
-        toJSON Instance'{..}
-          = object
-              (catMaybes
-                 [("status" .=) <$> _i1Status,
-                  ("serviceAccounts" .=) <$> _i1ServiceAccounts,
-                  ("deletionProtection" .=) <$> _i1DeletionProtection,
-                  ("hostname" .=) <$> _i1Hostname,
-                  ("networkInterfaces" .=) <$> _i1NetworkInterfaces,
-                  ("shieldedInstanceIntegrityPolicy" .=) <$>
-                    _i1ShieldedInstanceIntegrityPolicy,
-                  Just ("kind" .= _i1Kind), ("zone" .=) <$> _i1Zone,
-                  ("cpuPlatform" .=) <$> _i1CPUPlatform,
-                  ("selfLink" .=) <$> _i1SelfLink,
-                  ("guestAccelerators" .=) <$> _i1GuestAccelerators,
-                  ("name" .=) <$> _i1Name,
-                  ("statusMessage" .=) <$> _i1StatusMessage,
-                  ("creationTimestamp" .=) <$> _i1CreationTimestamp,
-                  ("machineType" .=) <$> _i1MachineType,
-                  ("metadata" .=) <$> _i1Metadata,
-                  ("shieldedInstanceConfig" .=) <$>
-                    _i1ShieldedInstanceConfig,
-                  ("id" .=) <$> _i1Id, ("labels" .=) <$> _i1Labels,
-                  ("startRestricted" .=) <$> _i1StartRestricted,
-                  ("scheduling" .=) <$> _i1Scheduling,
-                  ("minCpuPlatform" .=) <$> _i1MinCPUPlatform,
-                  ("disks" .=) <$> _i1Disks,
-                  ("canIpForward" .=) <$> _i1CanIPForward,
-                  ("labelFingerprint" .=) <$> _i1LabelFingerprint,
-                  ("description" .=) <$> _i1Description,
-                  ("tags" .=) <$> _i1Tags])
-
--- | A matcher for the path portion of the URL. The BackendService from the
--- longest-matched rule will serve the URL. If no rule was matched, the
--- default service will be used.
---
--- /See:/ 'pathMatcher' smart constructor.
-data PathMatcher =
-  PathMatcher'
-    { _pmDefaultService :: !(Maybe Text)
-    , _pmName           :: !(Maybe Text)
-    , _pmPathRules      :: !(Maybe [PathRule])
-    , _pmDescription    :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'PathMatcher' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pmDefaultService'
---
--- * 'pmName'
---
--- * 'pmPathRules'
---
--- * 'pmDescription'
-pathMatcher
-    :: PathMatcher
-pathMatcher =
-  PathMatcher'
-    { _pmDefaultService = Nothing
-    , _pmName = Nothing
-    , _pmPathRules = Nothing
-    , _pmDescription = Nothing
-    }
-
-
--- | The full or partial URL to the BackendService resource. This will be
--- used if none of the pathRules or routeRules defined by this PathMatcher
--- are matched. For example, the following are all valid URLs to a
--- BackendService resource: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/backendServices\/backendService
--- -
--- compute\/v1\/projects\/project\/global\/backendServices\/backendService
--- - global\/backendServices\/backendService If defaultRouteAction is
--- additionally specified, advanced routing actions like URL Rewrites, etc.
--- take effect prior to sending the request to the backend. However, if
--- defaultService is specified, defaultRouteAction cannot contain any
--- weightedBackendServices. Conversely, if defaultRouteAction specifies any
--- weightedBackendServices, defaultService must not be specified. Only one
--- of defaultService, defaultUrlRedirect or
--- defaultRouteAction.weightedBackendService must be set. Authorization
--- requires one or more of the following Google IAM permissions on the
--- specified resource default_service: - compute.backendBuckets.use -
--- compute.backendServices.use
-pmDefaultService :: Lens' PathMatcher (Maybe Text)
-pmDefaultService
-  = lens _pmDefaultService
-      (\ s a -> s{_pmDefaultService = a})
-
--- | The name to which this PathMatcher is referred by the HostRule.
-pmName :: Lens' PathMatcher (Maybe Text)
-pmName = lens _pmName (\ s a -> s{_pmName = a})
-
--- | The list of path rules. Use this list instead of routeRules when routing
--- based on simple path matching is all that\'s required. The order by
--- which path rules are specified does not matter. Matches are always done
--- on the longest-path-first basis. For example: a pathRule with a path
--- \/a\/b\/c\/* will match before \/a\/b\/* irrespective of the order in
--- which those paths appear in this list. Only one of pathRules or
--- routeRules must be set.
-pmPathRules :: Lens' PathMatcher [PathRule]
-pmPathRules
-  = lens _pmPathRules (\ s a -> s{_pmPathRules = a}) .
-      _Default
-      . _Coerce
-
--- | An optional description of this resource. Provide this property when you
--- create the resource.
-pmDescription :: Lens' PathMatcher (Maybe Text)
-pmDescription
-  = lens _pmDescription
-      (\ s a -> s{_pmDescription = a})
-
-instance FromJSON PathMatcher where
-        parseJSON
-          = withObject "PathMatcher"
-              (\ o ->
-                 PathMatcher' <$>
-                   (o .:? "defaultService") <*> (o .:? "name") <*>
-                     (o .:? "pathRules" .!= mempty)
-                     <*> (o .:? "description"))
-
-instance ToJSON PathMatcher where
-        toJSON PathMatcher'{..}
-          = object
-              (catMaybes
-                 [("defaultService" .=) <$> _pmDefaultService,
-                  ("name" .=) <$> _pmName,
-                  ("pathRules" .=) <$> _pmPathRules,
-                  ("description" .=) <$> _pmDescription])
-
--- | [Output Only] Informational warning message.
---
--- /See:/ 'backendServiceListWarning' smart constructor.
-data BackendServiceListWarning =
-  BackendServiceListWarning'
-    { _bslwData    :: !(Maybe [BackendServiceListWarningDataItem])
-    , _bslwCode    :: !(Maybe BackendServiceListWarningCode)
-    , _bslwMessage :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServiceListWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bslwData'
---
--- * 'bslwCode'
---
--- * 'bslwMessage'
-backendServiceListWarning
-    :: BackendServiceListWarning
-backendServiceListWarning =
-  BackendServiceListWarning'
-    {_bslwData = Nothing, _bslwCode = Nothing, _bslwMessage = Nothing}
-
-
--- | [Output Only] Metadata about this warning in key: value format. For
--- example: \"data\": [ { \"key\": \"scope\", \"value\":
--- \"zones\/us-east1-d\" }
-bslwData :: Lens' BackendServiceListWarning [BackendServiceListWarningDataItem]
-bslwData
-  = lens _bslwData (\ s a -> s{_bslwData = a}) .
-      _Default
-      . _Coerce
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-bslwCode :: Lens' BackendServiceListWarning (Maybe BackendServiceListWarningCode)
-bslwCode = lens _bslwCode (\ s a -> s{_bslwCode = a})
-
--- | [Output Only] A human-readable description of the warning code.
-bslwMessage :: Lens' BackendServiceListWarning (Maybe Text)
-bslwMessage
-  = lens _bslwMessage (\ s a -> s{_bslwMessage = a})
-
-instance FromJSON BackendServiceListWarning where
-        parseJSON
-          = withObject "BackendServiceListWarning"
-              (\ o ->
-                 BackendServiceListWarning' <$>
-                   (o .:? "data" .!= mempty) <*> (o .:? "code") <*>
-                     (o .:? "message"))
-
-instance ToJSON BackendServiceListWarning where
-        toJSON BackendServiceListWarning'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _bslwData,
-                  ("code" .=) <$> _bslwCode,
-                  ("message" .=) <$> _bslwMessage])
diff --git a/gen/Network/Google/Compute/Types/Sum.hs b/gen/Network/Google/Compute/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/Google/Compute/Types/Sum.hs
+++ /dev/null
@@ -1,16844 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- |
--- Module      : Network.Google.Compute.Types.Sum
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.Google.Compute.Types.Sum where
-
-import           Network.Google.Prelude hiding (Bytes)
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data HTTPSHealthCheckListWarningCode
-    = CleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | FieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | InjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | MissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | UndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | Unreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPSHealthCheckListWarningCode
-
-instance FromHttpApiData HTTPSHealthCheckListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right CleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right FieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right InjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right MissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right UndeclaredProperties
-        "UNREACHABLE" -> Right Unreachable
-        x -> Left ("Unable to parse HTTPSHealthCheckListWarningCode from: " <> x)
-
-instance ToHttpApiData HTTPSHealthCheckListWarningCode where
-    toQueryParam = \case
-        CleanupFailed -> "CLEANUP_FAILED"
-        DeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        FieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        InjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        MissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NotCriticalError -> "NOT_CRITICAL_ERROR"
-        NoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        UndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        Unreachable -> "UNREACHABLE"
-
-instance FromJSON HTTPSHealthCheckListWarningCode where
-    parseJSON = parseJSONText "HTTPSHealthCheckListWarningCode"
-
-instance ToJSON HTTPSHealthCheckListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The current state of this attachment\'s functionality.
-data InterconnectAttachmentState
-    = Active
-      -- ^ @ACTIVE@
-    | Defunct
-      -- ^ @DEFUNCT@
-    | PartnerRequestReceived
-      -- ^ @PARTNER_REQUEST_RECEIVED@
-    | PendingCustomer
-      -- ^ @PENDING_CUSTOMER@
-    | PendingPartner
-      -- ^ @PENDING_PARTNER@
-    | StateUnspecified
-      -- ^ @STATE_UNSPECIFIED@
-    | Unprovisioned
-      -- ^ @UNPROVISIONED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentState
-
-instance FromHttpApiData InterconnectAttachmentState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right Active
-        "DEFUNCT" -> Right Defunct
-        "PARTNER_REQUEST_RECEIVED" -> Right PartnerRequestReceived
-        "PENDING_CUSTOMER" -> Right PendingCustomer
-        "PENDING_PARTNER" -> Right PendingPartner
-        "STATE_UNSPECIFIED" -> Right StateUnspecified
-        "UNPROVISIONED" -> Right Unprovisioned
-        x -> Left ("Unable to parse InterconnectAttachmentState from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentState where
-    toQueryParam = \case
-        Active -> "ACTIVE"
-        Defunct -> "DEFUNCT"
-        PartnerRequestReceived -> "PARTNER_REQUEST_RECEIVED"
-        PendingCustomer -> "PENDING_CUSTOMER"
-        PendingPartner -> "PENDING_PARTNER"
-        StateUnspecified -> "STATE_UNSPECIFIED"
-        Unprovisioned -> "UNPROVISIONED"
-
-instance FromJSON InterconnectAttachmentState where
-    parseJSON = parseJSONText "InterconnectAttachmentState"
-
-instance ToJSON InterconnectAttachmentState where
-    toJSON = toJSONText
-
--- | Defines the maintenance behavior for this instance. For standard
--- instances, the default behavior is MIGRATE. For preemptible instances,
--- the default and only possible behavior is TERMINATE. For more
--- information, see Setting Instance Scheduling Options.
-data SchedulingOnHostMaintenance
-    = Migrate
-      -- ^ @MIGRATE@
-    | Terminate
-      -- ^ @TERMINATE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SchedulingOnHostMaintenance
-
-instance FromHttpApiData SchedulingOnHostMaintenance where
-    parseQueryParam = \case
-        "MIGRATE" -> Right Migrate
-        "TERMINATE" -> Right Terminate
-        x -> Left ("Unable to parse SchedulingOnHostMaintenance from: " <> x)
-
-instance ToHttpApiData SchedulingOnHostMaintenance where
-    toQueryParam = \case
-        Migrate -> "MIGRATE"
-        Terminate -> "TERMINATE"
-
-instance FromJSON SchedulingOnHostMaintenance where
-    parseJSON = parseJSONText "SchedulingOnHostMaintenance"
-
-instance ToJSON SchedulingOnHostMaintenance where
-    toJSON = toJSONText
-
--- | Defines how target utilization value is expressed for a Stackdriver
--- Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE.
-data AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType
-    = DeltaPerMinute
-      -- ^ @DELTA_PER_MINUTE@
-    | DeltaPerSecond
-      -- ^ @DELTA_PER_SECOND@
-    | Gauge
-      -- ^ @GAUGE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType
-
-instance FromHttpApiData AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where
-    parseQueryParam = \case
-        "DELTA_PER_MINUTE" -> Right DeltaPerMinute
-        "DELTA_PER_SECOND" -> Right DeltaPerSecond
-        "GAUGE" -> Right Gauge
-        x -> Left ("Unable to parse AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType from: " <> x)
-
-instance ToHttpApiData AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where
-    toQueryParam = \case
-        DeltaPerMinute -> "DELTA_PER_MINUTE"
-        DeltaPerSecond -> "DELTA_PER_SECOND"
-        Gauge -> "GAUGE"
-
-instance FromJSON AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where
-    parseJSON = parseJSONText "AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType"
-
-instance ToJSON AutoscalingPolicyCustomMetricUtilizationUtilizationTargetType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data BackendServiceListWarningCode
-    = BSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | BSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | BSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | BSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | BSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | BSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | BSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | BSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | BSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | BSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | BSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | BSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | BSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | BSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | BSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | BSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | BSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | BSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | BSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | BSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | BSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | BSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | BSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServiceListWarningCode
-
-instance FromHttpApiData BackendServiceListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right BSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right BSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right BSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right BSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right BSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right BSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right BSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right BSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right BSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right BSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right BSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right BSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right BSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right BSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right BSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right BSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right BSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right BSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right BSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right BSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right BSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right BSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right BSLWCUnreachable
-        x -> Left ("Unable to parse BackendServiceListWarningCode from: " <> x)
-
-instance ToHttpApiData BackendServiceListWarningCode where
-    toQueryParam = \case
-        BSLWCCleanupFailed -> "CLEANUP_FAILED"
-        BSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        BSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        BSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        BSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        BSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        BSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        BSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        BSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        BSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        BSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        BSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        BSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        BSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        BSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        BSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        BSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        BSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        BSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        BSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        BSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        BSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        BSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON BackendServiceListWarningCode where
-    parseJSON = parseJSONText "BackendServiceListWarningCode"
-
-instance ToJSON BackendServiceListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceListWarningCode
-    = ILWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ILWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ILWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ILWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ILWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ILWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ILWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ILWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ILWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ILWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ILWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ILWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ILWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ILWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ILWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ILWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ILWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ILWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ILWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ILWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ILWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ILWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ILWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceListWarningCode
-
-instance FromHttpApiData InstanceListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ILWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ILWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ILWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ILWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ILWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ILWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ILWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ILWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ILWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ILWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ILWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ILWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ILWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ILWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ILWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ILWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ILWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ILWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ILWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ILWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ILWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ILWCUndeclaredProperties
-        "UNREACHABLE" -> Right ILWCUnreachable
-        x -> Left ("Unable to parse InstanceListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceListWarningCode where
-    toQueryParam = \case
-        ILWCCleanupFailed -> "CLEANUP_FAILED"
-        ILWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ILWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ILWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ILWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ILWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ILWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ILWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ILWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ILWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ILWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ILWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ILWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ILWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ILWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ILWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ILWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ILWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ILWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ILWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ILWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ILWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ILWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceListWarningCode where
-    parseJSON = parseJSONText "InstanceListWarningCode"
-
-instance ToJSON InstanceListWarningCode where
-    toJSON = toJSONText
-
--- | Specifies the QUIC override policy for this TargetHttpsProxy resource.
--- This determines whether the load balancer will attempt to negotiate QUIC
--- with clients or not. Can specify one of NONE, ENABLE, or DISABLE.
--- Specify ENABLE to always enable QUIC, Enables QUIC when set to ENABLE,
--- and disables QUIC when set to DISABLE. If NONE is specified, uses the
--- QUIC policy with no user overrides, which is equivalent to DISABLE. Not
--- specifying this field is equivalent to specifying NONE.
-data TargetHTTPSProxyQuicOverride
-    = Disable
-      -- ^ @DISABLE@
-    | Enable
-      -- ^ @ENABLE@
-    | None
-      -- ^ @NONE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetHTTPSProxyQuicOverride
-
-instance FromHttpApiData TargetHTTPSProxyQuicOverride where
-    parseQueryParam = \case
-        "DISABLE" -> Right Disable
-        "ENABLE" -> Right Enable
-        "NONE" -> Right None
-        x -> Left ("Unable to parse TargetHTTPSProxyQuicOverride from: " <> x)
-
-instance ToHttpApiData TargetHTTPSProxyQuicOverride where
-    toQueryParam = \case
-        Disable -> "DISABLE"
-        Enable -> "ENABLE"
-        None -> "NONE"
-
-instance FromJSON TargetHTTPSProxyQuicOverride where
-    parseJSON = parseJSONText "TargetHTTPSProxyQuicOverride"
-
-instance ToJSON TargetHTTPSProxyQuicOverride where
-    toJSON = toJSONText
-
--- | Specify the NatIpAllocateOption. If it is AUTO_ONLY, then nat_ip should
--- be empty.
-data RouterNATNATIPAllocateOption
-    = AutoOnly
-      -- ^ @AUTO_ONLY@
-    | ManualOnly
-      -- ^ @MANUAL_ONLY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterNATNATIPAllocateOption
-
-instance FromHttpApiData RouterNATNATIPAllocateOption where
-    parseQueryParam = \case
-        "AUTO_ONLY" -> Right AutoOnly
-        "MANUAL_ONLY" -> Right ManualOnly
-        x -> Left ("Unable to parse RouterNATNATIPAllocateOption from: " <> x)
-
-instance ToHttpApiData RouterNATNATIPAllocateOption where
-    toQueryParam = \case
-        AutoOnly -> "AUTO_ONLY"
-        ManualOnly -> "MANUAL_ONLY"
-
-instance FromJSON RouterNATNATIPAllocateOption where
-    parseJSON = parseJSONText "RouterNATNATIPAllocateOption"
-
-instance ToJSON RouterNATNATIPAllocateOption where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data OperationWarningsItemCode
-    = OWICCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | OWICDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | OWICDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | OWICDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | OWICExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | OWICExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | OWICFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | OWICInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | OWICMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | OWICNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | OWICNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | OWICNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | OWICNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | OWICNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | OWICNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | OWICNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | OWICRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | OWICResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | OWICResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | OWICSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | OWICSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | OWICUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | OWICUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationWarningsItemCode
-
-instance FromHttpApiData OperationWarningsItemCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right OWICCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right OWICDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right OWICDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right OWICDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right OWICExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right OWICExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right OWICFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right OWICInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right OWICMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right OWICNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right OWICNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right OWICNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right OWICNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right OWICNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right OWICNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right OWICNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right OWICRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right OWICResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right OWICResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right OWICSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right OWICSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right OWICUndeclaredProperties
-        "UNREACHABLE" -> Right OWICUnreachable
-        x -> Left ("Unable to parse OperationWarningsItemCode from: " <> x)
-
-instance ToHttpApiData OperationWarningsItemCode where
-    toQueryParam = \case
-        OWICCleanupFailed -> "CLEANUP_FAILED"
-        OWICDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        OWICDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        OWICDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        OWICExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        OWICExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        OWICFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        OWICInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        OWICMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        OWICNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        OWICNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        OWICNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        OWICNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        OWICNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        OWICNotCriticalError -> "NOT_CRITICAL_ERROR"
-        OWICNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        OWICRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        OWICResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        OWICResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        OWICSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        OWICSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        OWICUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        OWICUnreachable -> "UNREACHABLE"
-
-instance FromJSON OperationWarningsItemCode where
-    parseJSON = parseJSONText "OperationWarningsItemCode"
-
-instance ToJSON OperationWarningsItemCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeGroupAggregatedListWarningCode
-    = NGALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NGALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NGALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NGALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NGALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NGALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NGALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NGALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NGALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NGALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NGALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NGALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NGALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NGALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NGALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NGALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NGALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NGALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NGALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NGALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NGALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NGALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NGALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupAggregatedListWarningCode
-
-instance FromHttpApiData NodeGroupAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NGALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NGALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NGALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NGALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NGALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NGALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NGALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NGALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NGALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NGALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NGALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NGALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NGALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NGALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NGALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NGALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NGALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NGALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NGALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NGALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NGALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NGALWCUndeclaredProperties
-        "UNREACHABLE" -> Right NGALWCUnreachable
-        x -> Left ("Unable to parse NodeGroupAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeGroupAggregatedListWarningCode where
-    toQueryParam = \case
-        NGALWCCleanupFailed -> "CLEANUP_FAILED"
-        NGALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NGALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NGALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NGALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NGALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NGALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NGALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NGALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NGALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NGALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NGALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NGALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NGALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NGALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NGALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NGALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NGALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NGALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NGALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NGALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NGALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NGALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeGroupAggregatedListWarningCode where
-    parseJSON = parseJSONText "NodeGroupAggregatedListWarningCode"
-
-instance ToJSON NodeGroupAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | The protocol this BackendService uses to communicate with backends.
--- Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP. For
--- internal load balancing, the possible values are TCP and UDP, and the
--- default is TCP.
-data BackendServiceProtocol
-    = HTTP
-      -- ^ @HTTP@
-    | HTTP2
-      -- ^ @HTTP2@
-    | HTTPS
-      -- ^ @HTTPS@
-    | SSL
-      -- ^ @SSL@
-    | TCP
-      -- ^ @TCP@
-    | Udp
-      -- ^ @UDP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServiceProtocol
-
-instance FromHttpApiData BackendServiceProtocol where
-    parseQueryParam = \case
-        "HTTP" -> Right HTTP
-        "HTTP2" -> Right HTTP2
-        "HTTPS" -> Right HTTPS
-        "SSL" -> Right SSL
-        "TCP" -> Right TCP
-        "UDP" -> Right Udp
-        x -> Left ("Unable to parse BackendServiceProtocol from: " <> x)
-
-instance ToHttpApiData BackendServiceProtocol where
-    toQueryParam = \case
-        HTTP -> "HTTP"
-        HTTP2 -> "HTTP2"
-        HTTPS -> "HTTPS"
-        SSL -> "SSL"
-        TCP -> "TCP"
-        Udp -> "UDP"
-
-instance FromJSON BackendServiceProtocol where
-    parseJSON = parseJSONText "BackendServiceProtocol"
-
-instance ToJSON BackendServiceProtocol where
-    toJSON = toJSONText
-
--- | Type of network endpoints in this network endpoint group. Currently the
--- only supported value is GCE_VM_IP_PORT.
-data NetworkEndpointGroupNetworkEndpointType
-    = GceVMIPPort
-      -- ^ @GCE_VM_IP_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupNetworkEndpointType
-
-instance FromHttpApiData NetworkEndpointGroupNetworkEndpointType where
-    parseQueryParam = \case
-        "GCE_VM_IP_PORT" -> Right GceVMIPPort
-        x -> Left ("Unable to parse NetworkEndpointGroupNetworkEndpointType from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupNetworkEndpointType where
-    toQueryParam = \case
-        GceVMIPPort -> "GCE_VM_IP_PORT"
-
-instance FromJSON NetworkEndpointGroupNetworkEndpointType where
-    parseJSON = parseJSONText "NetworkEndpointGroupNetworkEndpointType"
-
-instance ToJSON NetworkEndpointGroupNetworkEndpointType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data BackendBucketListWarningCode
-    = BBLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | BBLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | BBLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | BBLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | BBLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | BBLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | BBLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | BBLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | BBLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | BBLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | BBLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | BBLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | BBLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | BBLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | BBLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | BBLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | BBLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | BBLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | BBLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | BBLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | BBLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | BBLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | BBLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendBucketListWarningCode
-
-instance FromHttpApiData BackendBucketListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right BBLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right BBLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right BBLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right BBLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right BBLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right BBLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right BBLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right BBLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right BBLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right BBLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right BBLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right BBLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right BBLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right BBLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right BBLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right BBLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right BBLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right BBLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right BBLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right BBLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right BBLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right BBLWCUndeclaredProperties
-        "UNREACHABLE" -> Right BBLWCUnreachable
-        x -> Left ("Unable to parse BackendBucketListWarningCode from: " <> x)
-
-instance ToHttpApiData BackendBucketListWarningCode where
-    toQueryParam = \case
-        BBLWCCleanupFailed -> "CLEANUP_FAILED"
-        BBLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        BBLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        BBLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        BBLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        BBLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        BBLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        BBLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        BBLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        BBLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        BBLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        BBLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        BBLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        BBLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        BBLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        BBLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        BBLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        BBLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        BBLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        BBLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        BBLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        BBLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        BBLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON BackendBucketListWarningCode where
-    parseJSON = parseJSONText "BackendBucketListWarningCode"
-
-instance ToJSON BackendBucketListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AcceleratorTypesScopedListWarningCode
-    = ATSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ATSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ATSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ATSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ATSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ATSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ATSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ATSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ATSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ATSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ATSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ATSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ATSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ATSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ATSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ATSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ATSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ATSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ATSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ATSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ATSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ATSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ATSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AcceleratorTypesScopedListWarningCode
-
-instance FromHttpApiData AcceleratorTypesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ATSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ATSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ATSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ATSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ATSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ATSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ATSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ATSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ATSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ATSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ATSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ATSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ATSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ATSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ATSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ATSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ATSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ATSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ATSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ATSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ATSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ATSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ATSLWCUnreachable
-        x -> Left ("Unable to parse AcceleratorTypesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData AcceleratorTypesScopedListWarningCode where
-    toQueryParam = \case
-        ATSLWCCleanupFailed -> "CLEANUP_FAILED"
-        ATSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ATSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ATSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ATSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ATSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ATSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ATSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ATSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ATSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ATSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ATSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ATSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ATSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ATSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ATSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ATSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ATSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ATSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ATSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ATSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ATSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ATSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AcceleratorTypesScopedListWarningCode where
-    parseJSON = parseJSONText "AcceleratorTypesScopedListWarningCode"
-
-instance ToJSON AcceleratorTypesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeGroupsScopedListWarningCode
-    = NGSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NGSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NGSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NGSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NGSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NGSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NGSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NGSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NGSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NGSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NGSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NGSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NGSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NGSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NGSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NGSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NGSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NGSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NGSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NGSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NGSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NGSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NGSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupsScopedListWarningCode
-
-instance FromHttpApiData NodeGroupsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NGSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NGSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NGSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NGSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NGSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NGSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NGSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NGSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NGSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NGSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NGSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NGSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NGSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NGSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NGSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NGSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NGSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NGSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NGSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NGSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NGSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NGSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NGSLWCUnreachable
-        x -> Left ("Unable to parse NodeGroupsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeGroupsScopedListWarningCode where
-    toQueryParam = \case
-        NGSLWCCleanupFailed -> "CLEANUP_FAILED"
-        NGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NGSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NGSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NGSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NGSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NGSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NGSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NGSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NGSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NGSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeGroupsScopedListWarningCode where
-    parseJSON = parseJSONText "NodeGroupsScopedListWarningCode"
-
-instance ToJSON NodeGroupsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | The new type of proxy header to append before sending data to the
--- backend. NONE or PROXY_V1 are allowed.
-data TargetTCPProxiesSetProxyHeaderRequestProxyHeader
-    = TTPSPHRPHNone
-      -- ^ @NONE@
-    | TTPSPHRPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetTCPProxiesSetProxyHeaderRequestProxyHeader
-
-instance FromHttpApiData TargetTCPProxiesSetProxyHeaderRequestProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right TTPSPHRPHNone
-        "PROXY_V1" -> Right TTPSPHRPHProxyV1
-        x -> Left ("Unable to parse TargetTCPProxiesSetProxyHeaderRequestProxyHeader from: " <> x)
-
-instance ToHttpApiData TargetTCPProxiesSetProxyHeaderRequestProxyHeader where
-    toQueryParam = \case
-        TTPSPHRPHNone -> "NONE"
-        TTPSPHRPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON TargetTCPProxiesSetProxyHeaderRequestProxyHeader where
-    parseJSON = parseJSONText "TargetTCPProxiesSetProxyHeaderRequestProxyHeader"
-
-instance ToJSON TargetTCPProxiesSetProxyHeaderRequestProxyHeader where
-    toJSON = toJSONText
-
--- | Specifies the type of the disk, either SCRATCH or PERSISTENT. If not
--- specified, the default is PERSISTENT.
-data AttachedDiskType
-    = Persistent
-      -- ^ @PERSISTENT@
-    | Scratch
-      -- ^ @SCRATCH@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AttachedDiskType
-
-instance FromHttpApiData AttachedDiskType where
-    parseQueryParam = \case
-        "PERSISTENT" -> Right Persistent
-        "SCRATCH" -> Right Scratch
-        x -> Left ("Unable to parse AttachedDiskType from: " <> x)
-
-instance ToHttpApiData AttachedDiskType where
-    toQueryParam = \case
-        Persistent -> "PERSISTENT"
-        Scratch -> "SCRATCH"
-
-instance FromJSON AttachedDiskType where
-    parseJSON = parseJSONText "AttachedDiskType"
-
-instance ToJSON AttachedDiskType where
-    toJSON = toJSONText
-
--- | [Output Only] The resource that configures and manages this BGP peer.
--- MANAGED_BY_USER is the default value and can be managed by you or other
--- users; MANAGED_BY_ATTACHMENT is a BGP peer that is configured and
--- managed by Cloud Interconnect, specifically by an InterconnectAttachment
--- of type PARTNER. Google will automatically create, update, and delete
--- this type of BGP peer when the PARTNER InterconnectAttachment is
--- created, updated, or deleted.
-data RouterBGPPeerManagementType
-    = ManagedByAttachment
-      -- ^ @MANAGED_BY_ATTACHMENT@
-    | ManagedByUser
-      -- ^ @MANAGED_BY_USER@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterBGPPeerManagementType
-
-instance FromHttpApiData RouterBGPPeerManagementType where
-    parseQueryParam = \case
-        "MANAGED_BY_ATTACHMENT" -> Right ManagedByAttachment
-        "MANAGED_BY_USER" -> Right ManagedByUser
-        x -> Left ("Unable to parse RouterBGPPeerManagementType from: " <> x)
-
-instance ToHttpApiData RouterBGPPeerManagementType where
-    toQueryParam = \case
-        ManagedByAttachment -> "MANAGED_BY_ATTACHMENT"
-        ManagedByUser -> "MANAGED_BY_USER"
-
-instance FromJSON RouterBGPPeerManagementType where
-    parseJSON = parseJSONText "RouterBGPPeerManagementType"
-
-instance ToJSON RouterBGPPeerManagementType where
-    toJSON = toJSONText
-
-data RouterNATSubnetworkToNATSourceIPRangesToNATItem
-    = AllIPRanges
-      -- ^ @ALL_IP_RANGES@
-    | ListOfSecondaryIPRanges
-      -- ^ @LIST_OF_SECONDARY_IP_RANGES@
-    | PrimaryIPRange
-      -- ^ @PRIMARY_IP_RANGE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterNATSubnetworkToNATSourceIPRangesToNATItem
-
-instance FromHttpApiData RouterNATSubnetworkToNATSourceIPRangesToNATItem where
-    parseQueryParam = \case
-        "ALL_IP_RANGES" -> Right AllIPRanges
-        "LIST_OF_SECONDARY_IP_RANGES" -> Right ListOfSecondaryIPRanges
-        "PRIMARY_IP_RANGE" -> Right PrimaryIPRange
-        x -> Left ("Unable to parse RouterNATSubnetworkToNATSourceIPRangesToNATItem from: " <> x)
-
-instance ToHttpApiData RouterNATSubnetworkToNATSourceIPRangesToNATItem where
-    toQueryParam = \case
-        AllIPRanges -> "ALL_IP_RANGES"
-        ListOfSecondaryIPRanges -> "LIST_OF_SECONDARY_IP_RANGES"
-        PrimaryIPRange -> "PRIMARY_IP_RANGE"
-
-instance FromJSON RouterNATSubnetworkToNATSourceIPRangesToNATItem where
-    parseJSON = parseJSONText "RouterNATSubnetworkToNATSourceIPRangesToNATItem"
-
-instance ToJSON RouterNATSubnetworkToNATSourceIPRangesToNATItem where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AcceleratorTypeAggregatedListWarningCode
-    = ATALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ATALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ATALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ATALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ATALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ATALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ATALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ATALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ATALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ATALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ATALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ATALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ATALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ATALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ATALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ATALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ATALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ATALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ATALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ATALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ATALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ATALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ATALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AcceleratorTypeAggregatedListWarningCode
-
-instance FromHttpApiData AcceleratorTypeAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ATALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ATALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ATALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ATALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ATALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ATALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ATALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ATALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ATALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ATALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ATALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ATALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ATALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ATALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ATALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ATALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ATALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ATALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ATALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ATALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ATALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ATALWCUndeclaredProperties
-        "UNREACHABLE" -> Right ATALWCUnreachable
-        x -> Left ("Unable to parse AcceleratorTypeAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData AcceleratorTypeAggregatedListWarningCode where
-    toQueryParam = \case
-        ATALWCCleanupFailed -> "CLEANUP_FAILED"
-        ATALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ATALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ATALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ATALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ATALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ATALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ATALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ATALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ATALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ATALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ATALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ATALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ATALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ATALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ATALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ATALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ATALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ATALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ATALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ATALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ATALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ATALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AcceleratorTypeAggregatedListWarningCode where
-    parseJSON = parseJSONText "AcceleratorTypeAggregatedListWarningCode"
-
-instance ToJSON AcceleratorTypeAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data HealthCheckListWarningCode
-    = HCLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | HCLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | HCLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | HCLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | HCLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | HCLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | HCLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | HCLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | HCLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | HCLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | HCLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | HCLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | HCLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | HCLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | HCLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | HCLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | HCLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | HCLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | HCLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | HCLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | HCLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | HCLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | HCLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HealthCheckListWarningCode
-
-instance FromHttpApiData HealthCheckListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right HCLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right HCLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right HCLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right HCLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right HCLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right HCLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right HCLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right HCLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right HCLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right HCLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right HCLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right HCLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right HCLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right HCLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right HCLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right HCLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right HCLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right HCLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right HCLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right HCLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right HCLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right HCLWCUndeclaredProperties
-        "UNREACHABLE" -> Right HCLWCUnreachable
-        x -> Left ("Unable to parse HealthCheckListWarningCode from: " <> x)
-
-instance ToHttpApiData HealthCheckListWarningCode where
-    toQueryParam = \case
-        HCLWCCleanupFailed -> "CLEANUP_FAILED"
-        HCLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        HCLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        HCLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        HCLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        HCLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        HCLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        HCLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        HCLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        HCLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        HCLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        HCLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        HCLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        HCLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        HCLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        HCLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        HCLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        HCLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        HCLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        HCLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        HCLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        HCLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        HCLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON HealthCheckListWarningCode where
-    parseJSON = parseJSONText "HealthCheckListWarningCode"
-
-instance ToJSON HealthCheckListWarningCode where
-    toJSON = toJSONText
-
--- | Profile specifies the set of SSL features that can be used by the load
--- balancer when negotiating SSL with clients. This can be one of
--- COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of
--- SSL features to enable must be specified in the customFeatures field.
-data SSLPolicyProFile
-    = Compatible
-      -- ^ @COMPATIBLE@
-    | Custom
-      -- ^ @CUSTOM@
-    | Modern
-      -- ^ @MODERN@
-    | Restricted
-      -- ^ @RESTRICTED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLPolicyProFile
-
-instance FromHttpApiData SSLPolicyProFile where
-    parseQueryParam = \case
-        "COMPATIBLE" -> Right Compatible
-        "CUSTOM" -> Right Custom
-        "MODERN" -> Right Modern
-        "RESTRICTED" -> Right Restricted
-        x -> Left ("Unable to parse SSLPolicyProFile from: " <> x)
-
-instance ToHttpApiData SSLPolicyProFile where
-    toQueryParam = \case
-        Compatible -> "COMPATIBLE"
-        Custom -> "CUSTOM"
-        Modern -> "MODERN"
-        Restricted -> "RESTRICTED"
-
-instance FromJSON SSLPolicyProFile where
-    parseJSON = parseJSONText "SSLPolicyProFile"
-
-instance ToJSON SSLPolicyProFile where
-    toJSON = toJSONText
-
--- | The party that generated this notification. Note that \"NSRC_GOOGLE\"
--- has been deprecated in favor of \"GOOGLE\"
-data InterconnectOutageNotificationSource
-    = Google
-      -- ^ @GOOGLE@
-    | NsrcGoogle
-      -- ^ @NSRC_GOOGLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectOutageNotificationSource
-
-instance FromHttpApiData InterconnectOutageNotificationSource where
-    parseQueryParam = \case
-        "GOOGLE" -> Right Google
-        "NSRC_GOOGLE" -> Right NsrcGoogle
-        x -> Left ("Unable to parse InterconnectOutageNotificationSource from: " <> x)
-
-instance ToHttpApiData InterconnectOutageNotificationSource where
-    toQueryParam = \case
-        Google -> "GOOGLE"
-        NsrcGoogle -> "NSRC_GOOGLE"
-
-instance FromJSON InterconnectOutageNotificationSource where
-    parseJSON = parseJSONText "InterconnectOutageNotificationSource"
-
-instance ToJSON InterconnectOutageNotificationSource where
-    toJSON = toJSONText
-
--- | Type of link requested. This field indicates speed of each of the links
--- in the bundle, not the entire bundle.
-data InterconnectLinkType
-    = LinkTypeEthernet10GLr
-      -- ^ @LINK_TYPE_ETHERNET_10G_LR@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectLinkType
-
-instance FromHttpApiData InterconnectLinkType where
-    parseQueryParam = \case
-        "LINK_TYPE_ETHERNET_10G_LR" -> Right LinkTypeEthernet10GLr
-        x -> Left ("Unable to parse InterconnectLinkType from: " <> x)
-
-instance ToHttpApiData InterconnectLinkType where
-    toQueryParam = \case
-        LinkTypeEthernet10GLr -> "LINK_TYPE_ETHERNET_10G_LR"
-
-instance FromJSON InterconnectLinkType where
-    parseJSON = parseJSONText "InterconnectLinkType"
-
-instance ToJSON InterconnectLinkType where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data TargetSSLProxyProxyHeader
-    = TSPPHNone
-      -- ^ @NONE@
-    | TSPPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetSSLProxyProxyHeader
-
-instance FromHttpApiData TargetSSLProxyProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right TSPPHNone
-        "PROXY_V1" -> Right TSPPHProxyV1
-        x -> Left ("Unable to parse TargetSSLProxyProxyHeader from: " <> x)
-
-instance ToHttpApiData TargetSSLProxyProxyHeader where
-    toQueryParam = \case
-        TSPPHNone -> "NONE"
-        TSPPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON TargetSSLProxyProxyHeader where
-    parseJSON = parseJSONText "TargetSSLProxyProxyHeader"
-
-instance ToJSON TargetSSLProxyProxyHeader where
-    toJSON = toJSONText
-
--- | User-specified flag to indicate which mode to use for advertisement.
-data RouterBGPAdvertiseMode
-    = RBAMCustom
-      -- ^ @CUSTOM@
-    | RBAMDefault
-      -- ^ @DEFAULT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterBGPAdvertiseMode
-
-instance FromHttpApiData RouterBGPAdvertiseMode where
-    parseQueryParam = \case
-        "CUSTOM" -> Right RBAMCustom
-        "DEFAULT" -> Right RBAMDefault
-        x -> Left ("Unable to parse RouterBGPAdvertiseMode from: " <> x)
-
-instance ToHttpApiData RouterBGPAdvertiseMode where
-    toQueryParam = \case
-        RBAMCustom -> "CUSTOM"
-        RBAMDefault -> "DEFAULT"
-
-instance FromJSON RouterBGPAdvertiseMode where
-    parseJSON = parseJSONText "RouterBGPAdvertiseMode"
-
-instance ToJSON RouterBGPAdvertiseMode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeGroupsListNodesWarningCode
-    = NGLNWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NGLNWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NGLNWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NGLNWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NGLNWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NGLNWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NGLNWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NGLNWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NGLNWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NGLNWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NGLNWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NGLNWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NGLNWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NGLNWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NGLNWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NGLNWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NGLNWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NGLNWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NGLNWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NGLNWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NGLNWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NGLNWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NGLNWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupsListNodesWarningCode
-
-instance FromHttpApiData NodeGroupsListNodesWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NGLNWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NGLNWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NGLNWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NGLNWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NGLNWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NGLNWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NGLNWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NGLNWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NGLNWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NGLNWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NGLNWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NGLNWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NGLNWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NGLNWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NGLNWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NGLNWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NGLNWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NGLNWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NGLNWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NGLNWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NGLNWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NGLNWCUndeclaredProperties
-        "UNREACHABLE" -> Right NGLNWCUnreachable
-        x -> Left ("Unable to parse NodeGroupsListNodesWarningCode from: " <> x)
-
-instance ToHttpApiData NodeGroupsListNodesWarningCode where
-    toQueryParam = \case
-        NGLNWCCleanupFailed -> "CLEANUP_FAILED"
-        NGLNWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NGLNWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NGLNWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NGLNWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NGLNWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NGLNWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NGLNWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NGLNWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NGLNWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NGLNWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NGLNWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NGLNWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NGLNWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NGLNWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NGLNWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NGLNWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NGLNWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NGLNWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NGLNWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NGLNWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NGLNWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NGLNWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeGroupsListNodesWarningCode where
-    parseJSON = parseJSONText "NodeGroupsListNodesWarningCode"
-
-instance ToJSON NodeGroupsListNodesWarningCode where
-    toJSON = toJSONText
-
--- | The status of the current value when compared to the warning and alarm
--- levels for the receiving or transmitting transceiver. Possible states
--- include: - OK: The value has not crossed a warning threshold. -
--- LOW_WARNING: The value has crossed below the low warning threshold. -
--- HIGH_WARNING: The value has crossed above the high warning threshold. -
--- LOW_ALARM: The value has crossed below the low alarm threshold. -
--- HIGH_ALARM: The value has crossed above the high alarm threshold.
-data InterconnectDiagnosticsLinkOpticalPowerState
-    = HighAlarm
-      -- ^ @HIGH_ALARM@
-    | HighWarning
-      -- ^ @HIGH_WARNING@
-    | LowAlarm
-      -- ^ @LOW_ALARM@
-    | LowWarning
-      -- ^ @LOW_WARNING@
-    | OK
-      -- ^ @OK@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectDiagnosticsLinkOpticalPowerState
-
-instance FromHttpApiData InterconnectDiagnosticsLinkOpticalPowerState where
-    parseQueryParam = \case
-        "HIGH_ALARM" -> Right HighAlarm
-        "HIGH_WARNING" -> Right HighWarning
-        "LOW_ALARM" -> Right LowAlarm
-        "LOW_WARNING" -> Right LowWarning
-        "OK" -> Right OK
-        x -> Left ("Unable to parse InterconnectDiagnosticsLinkOpticalPowerState from: " <> x)
-
-instance ToHttpApiData InterconnectDiagnosticsLinkOpticalPowerState where
-    toQueryParam = \case
-        HighAlarm -> "HIGH_ALARM"
-        HighWarning -> "HIGH_WARNING"
-        LowAlarm -> "LOW_ALARM"
-        LowWarning -> "LOW_WARNING"
-        OK -> "OK"
-
-instance FromJSON InterconnectDiagnosticsLinkOpticalPowerState where
-    parseJSON = parseJSONText "InterconnectDiagnosticsLinkOpticalPowerState"
-
-instance ToJSON InterconnectDiagnosticsLinkOpticalPowerState where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InterconnectLocationListWarningCode
-    = ILLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ILLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ILLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ILLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ILLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ILLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ILLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ILLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ILLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ILLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ILLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ILLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ILLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ILLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ILLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ILLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ILLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ILLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ILLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ILLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ILLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ILLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ILLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectLocationListWarningCode
-
-instance FromHttpApiData InterconnectLocationListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ILLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ILLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ILLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ILLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ILLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ILLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ILLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ILLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ILLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ILLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ILLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ILLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ILLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ILLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ILLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ILLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ILLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ILLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ILLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ILLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ILLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ILLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ILLWCUnreachable
-        x -> Left ("Unable to parse InterconnectLocationListWarningCode from: " <> x)
-
-instance ToHttpApiData InterconnectLocationListWarningCode where
-    toQueryParam = \case
-        ILLWCCleanupFailed -> "CLEANUP_FAILED"
-        ILLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ILLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ILLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ILLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ILLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ILLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ILLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ILLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ILLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ILLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ILLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ILLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ILLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ILLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ILLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ILLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ILLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ILLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ILLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ILLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ILLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ILLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InterconnectLocationListWarningCode where
-    parseJSON = parseJSONText "InterconnectLocationListWarningCode"
-
-instance ToJSON InterconnectLocationListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupsListInstancesWarningCode
-    = IGLIWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGLIWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGLIWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGLIWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGLIWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGLIWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGLIWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGLIWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGLIWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGLIWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGLIWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGLIWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGLIWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGLIWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGLIWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGLIWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGLIWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGLIWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGLIWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGLIWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGLIWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGLIWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGLIWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupsListInstancesWarningCode
-
-instance FromHttpApiData InstanceGroupsListInstancesWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGLIWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGLIWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGLIWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGLIWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGLIWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGLIWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGLIWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGLIWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGLIWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGLIWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGLIWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGLIWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGLIWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGLIWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGLIWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGLIWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGLIWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGLIWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGLIWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGLIWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGLIWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGLIWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGLIWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupsListInstancesWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupsListInstancesWarningCode where
-    toQueryParam = \case
-        IGLIWCCleanupFailed -> "CLEANUP_FAILED"
-        IGLIWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGLIWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGLIWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGLIWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGLIWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGLIWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGLIWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGLIWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGLIWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGLIWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGLIWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGLIWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGLIWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGLIWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGLIWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGLIWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGLIWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGLIWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGLIWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGLIWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGLIWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGLIWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupsListInstancesWarningCode where
-    parseJSON = parseJSONText "InstanceGroupsListInstancesWarningCode"
-
-instance ToJSON InstanceGroupsListInstancesWarningCode where
-    toJSON = toJSONText
-
--- | Instances in which state should be returned. Valid options are: \'ALL\',
--- \'RUNNING\'. By default, it lists all instances.
-data RegionInstanceGroupsListInstancesRequestInstanceState
-    = All
-      -- ^ @ALL@
-    | Running
-      -- ^ @RUNNING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionInstanceGroupsListInstancesRequestInstanceState
-
-instance FromHttpApiData RegionInstanceGroupsListInstancesRequestInstanceState where
-    parseQueryParam = \case
-        "ALL" -> Right All
-        "RUNNING" -> Right Running
-        x -> Left ("Unable to parse RegionInstanceGroupsListInstancesRequestInstanceState from: " <> x)
-
-instance ToHttpApiData RegionInstanceGroupsListInstancesRequestInstanceState where
-    toQueryParam = \case
-        All -> "ALL"
-        Running -> "RUNNING"
-
-instance FromJSON RegionInstanceGroupsListInstancesRequestInstanceState where
-    parseJSON = parseJSONText "RegionInstanceGroupsListInstancesRequestInstanceState"
-
-instance ToJSON RegionInstanceGroupsListInstancesRequestInstanceState where
-    toJSON = toJSONText
-
--- | [Output Only] The role this project has in a shared VPC configuration.
--- Currently only HOST projects are differentiated.
-data ProjectXpnProjectStatus
-    = Host
-      -- ^ @HOST@
-    | UnspecifiedXpnProjectStatus
-      -- ^ @UNSPECIFIED_XPN_PROJECT_STATUS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ProjectXpnProjectStatus
-
-instance FromHttpApiData ProjectXpnProjectStatus where
-    parseQueryParam = \case
-        "HOST" -> Right Host
-        "UNSPECIFIED_XPN_PROJECT_STATUS" -> Right UnspecifiedXpnProjectStatus
-        x -> Left ("Unable to parse ProjectXpnProjectStatus from: " <> x)
-
-instance ToHttpApiData ProjectXpnProjectStatus where
-    toQueryParam = \case
-        Host -> "HOST"
-        UnspecifiedXpnProjectStatus -> "UNSPECIFIED_XPN_PROJECT_STATUS"
-
-instance FromJSON ProjectXpnProjectStatus where
-    parseJSON = parseJSONText "ProjectXpnProjectStatus"
-
-instance ToJSON ProjectXpnProjectStatus where
-    toJSON = toJSONText
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, SSL health check follows
--- behavior specified in port and portName fields.
-data SSLHealthCheckPortSpecification
-    = UseFixedPort
-      -- ^ @USE_FIXED_PORT@
-    | UseNamedPort
-      -- ^ @USE_NAMED_PORT@
-    | UseServingPort
-      -- ^ @USE_SERVING_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLHealthCheckPortSpecification
-
-instance FromHttpApiData SSLHealthCheckPortSpecification where
-    parseQueryParam = \case
-        "USE_FIXED_PORT" -> Right UseFixedPort
-        "USE_NAMED_PORT" -> Right UseNamedPort
-        "USE_SERVING_PORT" -> Right UseServingPort
-        x -> Left ("Unable to parse SSLHealthCheckPortSpecification from: " <> x)
-
-instance ToHttpApiData SSLHealthCheckPortSpecification where
-    toQueryParam = \case
-        UseFixedPort -> "USE_FIXED_PORT"
-        UseNamedPort -> "USE_NAMED_PORT"
-        UseServingPort -> "USE_SERVING_PORT"
-
-instance FromJSON SSLHealthCheckPortSpecification where
-    parseJSON = parseJSONText "SSLHealthCheckPortSpecification"
-
-instance ToJSON SSLHealthCheckPortSpecification where
-    toJSON = toJSONText
-
--- | This signifies the networking tier used for configuring this access
--- configuration and can only take the following values: PREMIUM, STANDARD.
--- If an AccessConfig is specified without a valid external IP address, an
--- ephemeral IP will be created with this networkTier. If an AccessConfig
--- with a valid external IP address is specified, it must match that of the
--- networkTier associated with the Address resource owning that IP.
-data AccessConfigNetworkTier
-    = Premium
-      -- ^ @PREMIUM@
-    | Standard
-      -- ^ @STANDARD@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AccessConfigNetworkTier
-
-instance FromHttpApiData AccessConfigNetworkTier where
-    parseQueryParam = \case
-        "PREMIUM" -> Right Premium
-        "STANDARD" -> Right Standard
-        x -> Left ("Unable to parse AccessConfigNetworkTier from: " <> x)
-
-instance ToHttpApiData AccessConfigNetworkTier where
-    toQueryParam = \case
-        Premium -> "PREMIUM"
-        Standard -> "STANDARD"
-
-instance FromJSON AccessConfigNetworkTier where
-    parseJSON = parseJSONText "AccessConfigNetworkTier"
-
-instance ToJSON AccessConfigNetworkTier where
-    toJSON = toJSONText
-
--- | Trusted attributes supplied by any service that owns resources and uses
--- the IAM system for access control.
-data ConditionSys
-    = CSIP
-      -- ^ @IP@
-    | CSName
-      -- ^ @NAME@
-    | CSNoAttr
-      -- ^ @NO_ATTR@
-    | CSRegion
-      -- ^ @REGION@
-    | CSService
-      -- ^ @SERVICE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ConditionSys
-
-instance FromHttpApiData ConditionSys where
-    parseQueryParam = \case
-        "IP" -> Right CSIP
-        "NAME" -> Right CSName
-        "NO_ATTR" -> Right CSNoAttr
-        "REGION" -> Right CSRegion
-        "SERVICE" -> Right CSService
-        x -> Left ("Unable to parse ConditionSys from: " <> x)
-
-instance ToHttpApiData ConditionSys where
-    toQueryParam = \case
-        CSIP -> "IP"
-        CSName -> "NAME"
-        CSNoAttr -> "NO_ATTR"
-        CSRegion -> "REGION"
-        CSService -> "SERVICE"
-
-instance FromJSON ConditionSys where
-    parseJSON = parseJSONText "ConditionSys"
-
-instance ToJSON ConditionSys where
-    toJSON = toJSONText
-
--- | The type of the image used to create this disk. The default and only
--- value is RAW
-data ImageSourceType
-    = Raw
-      -- ^ @RAW@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ImageSourceType
-
-instance FromHttpApiData ImageSourceType where
-    parseQueryParam = \case
-        "RAW" -> Right Raw
-        x -> Left ("Unable to parse ImageSourceType from: " <> x)
-
-instance ToHttpApiData ImageSourceType where
-    toQueryParam = \case
-        Raw -> "RAW"
-
-instance FromJSON ImageSourceType where
-    parseJSON = parseJSONText "ImageSourceType"
-
-instance ToJSON ImageSourceType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SubnetworkAggregatedListWarningCode
-    = SALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SubnetworkAggregatedListWarningCode
-
-instance FromHttpApiData SubnetworkAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SALWCUndeclaredProperties
-        "UNREACHABLE" -> Right SALWCUnreachable
-        x -> Left ("Unable to parse SubnetworkAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData SubnetworkAggregatedListWarningCode where
-    toQueryParam = \case
-        SALWCCleanupFailed -> "CLEANUP_FAILED"
-        SALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON SubnetworkAggregatedListWarningCode where
-    parseJSON = parseJSONText "SubnetworkAggregatedListWarningCode"
-
-instance ToJSON SubnetworkAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NetworkEndpointGroupAggregatedListWarningCode
-    = NEGALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NEGALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NEGALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NEGALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NEGALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NEGALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NEGALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NEGALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NEGALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NEGALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NEGALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NEGALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NEGALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NEGALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NEGALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NEGALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NEGALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NEGALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NEGALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NEGALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NEGALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NEGALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NEGALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupAggregatedListWarningCode
-
-instance FromHttpApiData NetworkEndpointGroupAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NEGALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NEGALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NEGALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NEGALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NEGALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NEGALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NEGALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NEGALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NEGALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NEGALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NEGALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NEGALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NEGALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NEGALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NEGALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NEGALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NEGALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NEGALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NEGALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NEGALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NEGALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NEGALWCUndeclaredProperties
-        "UNREACHABLE" -> Right NEGALWCUnreachable
-        x -> Left ("Unable to parse NetworkEndpointGroupAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupAggregatedListWarningCode where
-    toQueryParam = \case
-        NEGALWCCleanupFailed -> "CLEANUP_FAILED"
-        NEGALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NEGALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NEGALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NEGALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NEGALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NEGALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NEGALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NEGALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NEGALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NEGALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NEGALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NEGALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NEGALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NEGALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NEGALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NEGALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NEGALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NEGALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NEGALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NEGALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NEGALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NEGALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NetworkEndpointGroupAggregatedListWarningCode where
-    parseJSON = parseJSONText "NetworkEndpointGroupAggregatedListWarningCode"
-
-instance ToJSON NetworkEndpointGroupAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Type of session affinity to use. The default is NONE. When the load
--- balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
--- GENERATED_COOKIE. When the load balancing scheme is INTERNAL, can be
--- NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO. When the
--- protocol is UDP, this field is not used.
-data BackendServiceSessionAffinity
-    = BSSAClientIP
-      -- ^ @CLIENT_IP@
-    | BSSAClientIPPortProto
-      -- ^ @CLIENT_IP_PORT_PROTO@
-    | BSSAClientIPProto
-      -- ^ @CLIENT_IP_PROTO@
-    | BSSAGeneratedCookie
-      -- ^ @GENERATED_COOKIE@
-    | BSSANone
-      -- ^ @NONE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServiceSessionAffinity
-
-instance FromHttpApiData BackendServiceSessionAffinity where
-    parseQueryParam = \case
-        "CLIENT_IP" -> Right BSSAClientIP
-        "CLIENT_IP_PORT_PROTO" -> Right BSSAClientIPPortProto
-        "CLIENT_IP_PROTO" -> Right BSSAClientIPProto
-        "GENERATED_COOKIE" -> Right BSSAGeneratedCookie
-        "NONE" -> Right BSSANone
-        x -> Left ("Unable to parse BackendServiceSessionAffinity from: " <> x)
-
-instance ToHttpApiData BackendServiceSessionAffinity where
-    toQueryParam = \case
-        BSSAClientIP -> "CLIENT_IP"
-        BSSAClientIPPortProto -> "CLIENT_IP_PORT_PROTO"
-        BSSAClientIPProto -> "CLIENT_IP_PROTO"
-        BSSAGeneratedCookie -> "GENERATED_COOKIE"
-        BSSANone -> "NONE"
-
-instance FromJSON BackendServiceSessionAffinity where
-    parseJSON = parseJSONText "BackendServiceSessionAffinity"
-
-instance ToJSON BackendServiceSessionAffinity where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data ForwardingRulesScopedListWarningCode
-    = FRSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | FRSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | FRSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | FRSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | FRSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | FRSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | FRSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | FRSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | FRSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | FRSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | FRSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | FRSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | FRSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | FRSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | FRSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | FRSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | FRSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | FRSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | FRSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | FRSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | FRSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | FRSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | FRSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRulesScopedListWarningCode
-
-instance FromHttpApiData ForwardingRulesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right FRSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right FRSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right FRSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right FRSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right FRSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right FRSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right FRSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right FRSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right FRSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right FRSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right FRSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right FRSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right FRSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right FRSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right FRSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right FRSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right FRSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right FRSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right FRSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right FRSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right FRSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right FRSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right FRSLWCUnreachable
-        x -> Left ("Unable to parse ForwardingRulesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData ForwardingRulesScopedListWarningCode where
-    toQueryParam = \case
-        FRSLWCCleanupFailed -> "CLEANUP_FAILED"
-        FRSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        FRSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        FRSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        FRSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        FRSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        FRSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        FRSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        FRSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        FRSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        FRSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        FRSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        FRSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        FRSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        FRSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        FRSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        FRSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        FRSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        FRSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        FRSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        FRSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        FRSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        FRSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON ForwardingRulesScopedListWarningCode where
-    parseJSON = parseJSONText "ForwardingRulesScopedListWarningCode"
-
-instance ToJSON ForwardingRulesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | Health state of the network endpoint determined based on the health
--- checks configured.
-data HealthStatusForNetworkEndpointHealthState
-    = Draining
-      -- ^ @DRAINING@
-    | Healthy
-      -- ^ @HEALTHY@
-    | Unhealthy
-      -- ^ @UNHEALTHY@
-    | Unknown
-      -- ^ @UNKNOWN@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HealthStatusForNetworkEndpointHealthState
-
-instance FromHttpApiData HealthStatusForNetworkEndpointHealthState where
-    parseQueryParam = \case
-        "DRAINING" -> Right Draining
-        "HEALTHY" -> Right Healthy
-        "UNHEALTHY" -> Right Unhealthy
-        "UNKNOWN" -> Right Unknown
-        x -> Left ("Unable to parse HealthStatusForNetworkEndpointHealthState from: " <> x)
-
-instance ToHttpApiData HealthStatusForNetworkEndpointHealthState where
-    toQueryParam = \case
-        Draining -> "DRAINING"
-        Healthy -> "HEALTHY"
-        Unhealthy -> "UNHEALTHY"
-        Unknown -> "UNKNOWN"
-
-instance FromJSON HealthStatusForNetworkEndpointHealthState where
-    parseJSON = parseJSONText "HealthStatusForNetworkEndpointHealthState"
-
-instance ToJSON HealthStatusForNetworkEndpointHealthState where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data OperationsScopedListWarningCode
-    = OSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | OSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | OSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | OSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | OSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | OSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | OSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | OSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | OSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | OSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | OSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | OSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | OSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | OSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | OSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | OSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | OSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | OSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | OSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | OSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | OSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | OSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | OSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationsScopedListWarningCode
-
-instance FromHttpApiData OperationsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right OSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right OSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right OSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right OSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right OSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right OSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right OSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right OSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right OSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right OSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right OSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right OSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right OSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right OSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right OSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right OSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right OSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right OSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right OSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right OSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right OSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right OSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right OSLWCUnreachable
-        x -> Left ("Unable to parse OperationsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData OperationsScopedListWarningCode where
-    toQueryParam = \case
-        OSLWCCleanupFailed -> "CLEANUP_FAILED"
-        OSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        OSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        OSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        OSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        OSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        OSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        OSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        OSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        OSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        OSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        OSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        OSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        OSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        OSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        OSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        OSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        OSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        OSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        OSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        OSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        OSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        OSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON OperationsScopedListWarningCode where
-    parseJSON = parseJSONText "OperationsScopedListWarningCode"
-
-instance ToJSON OperationsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data OperationAggregatedListWarningCode
-    = OALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | OALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | OALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | OALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | OALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | OALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | OALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | OALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | OALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | OALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | OALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | OALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | OALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | OALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | OALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | OALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | OALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | OALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | OALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | OALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | OALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | OALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | OALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationAggregatedListWarningCode
-
-instance FromHttpApiData OperationAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right OALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right OALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right OALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right OALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right OALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right OALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right OALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right OALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right OALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right OALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right OALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right OALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right OALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right OALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right OALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right OALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right OALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right OALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right OALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right OALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right OALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right OALWCUndeclaredProperties
-        "UNREACHABLE" -> Right OALWCUnreachable
-        x -> Left ("Unable to parse OperationAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData OperationAggregatedListWarningCode where
-    toQueryParam = \case
-        OALWCCleanupFailed -> "CLEANUP_FAILED"
-        OALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        OALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        OALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        OALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        OALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        OALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        OALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        OALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        OALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        OALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        OALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        OALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        OALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        OALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        OALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        OALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        OALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        OALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        OALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        OALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        OALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        OALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON OperationAggregatedListWarningCode where
-    parseJSON = parseJSONText "OperationAggregatedListWarningCode"
-
-instance ToJSON OperationAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DiskAggregatedListWarningCode
-    = DALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskAggregatedListWarningCode
-
-instance FromHttpApiData DiskAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DALWCUndeclaredProperties
-        "UNREACHABLE" -> Right DALWCUnreachable
-        x -> Left ("Unable to parse DiskAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData DiskAggregatedListWarningCode where
-    toQueryParam = \case
-        DALWCCleanupFailed -> "CLEANUP_FAILED"
-        DALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DiskAggregatedListWarningCode where
-    parseJSON = parseJSONText "DiskAggregatedListWarningCode"
-
-instance ToJSON DiskAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data UsableSubnetworksAggregatedListWarningCode
-    = USALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | USALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | USALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | USALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | USALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | USALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | USALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | USALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | USALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | USALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | USALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | USALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | USALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | USALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | USALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | USALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | USALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | USALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | USALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | USALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | USALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | USALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | USALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable UsableSubnetworksAggregatedListWarningCode
-
-instance FromHttpApiData UsableSubnetworksAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right USALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right USALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right USALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right USALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right USALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right USALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right USALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right USALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right USALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right USALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right USALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right USALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right USALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right USALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right USALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right USALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right USALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right USALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right USALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right USALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right USALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right USALWCUndeclaredProperties
-        "UNREACHABLE" -> Right USALWCUnreachable
-        x -> Left ("Unable to parse UsableSubnetworksAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData UsableSubnetworksAggregatedListWarningCode where
-    toQueryParam = \case
-        USALWCCleanupFailed -> "CLEANUP_FAILED"
-        USALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        USALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        USALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        USALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        USALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        USALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        USALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        USALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        USALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        USALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        USALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        USALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        USALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        USALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        USALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        USALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        USALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        USALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        USALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        USALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        USALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        USALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON UsableSubnetworksAggregatedListWarningCode where
-    parseJSON = parseJSONText "UsableSubnetworksAggregatedListWarningCode"
-
-instance ToJSON UsableSubnetworksAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DisksScopedListWarningCode
-    = DSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DisksScopedListWarningCode
-
-instance FromHttpApiData DisksScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right DSLWCUnreachable
-        x -> Left ("Unable to parse DisksScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData DisksScopedListWarningCode where
-    toQueryParam = \case
-        DSLWCCleanupFailed -> "CLEANUP_FAILED"
-        DSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DisksScopedListWarningCode where
-    parseJSON = parseJSONText "DisksScopedListWarningCode"
-
-instance ToJSON DisksScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupManagersScopedListWarningCode
-    = IGMSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGMSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGMSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGMSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGMSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGMSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGMSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGMSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGMSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGMSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGMSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGMSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGMSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGMSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGMSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGMSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGMSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGMSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGMSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGMSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGMSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGMSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGMSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupManagersScopedListWarningCode
-
-instance FromHttpApiData InstanceGroupManagersScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGMSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGMSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGMSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGMSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGMSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGMSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGMSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGMSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGMSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGMSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGMSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGMSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGMSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGMSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGMSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGMSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGMSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGMSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGMSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGMSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGMSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGMSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGMSLWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupManagersScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupManagersScopedListWarningCode where
-    toQueryParam = \case
-        IGMSLWCCleanupFailed -> "CLEANUP_FAILED"
-        IGMSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGMSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGMSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGMSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGMSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGMSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGMSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGMSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGMSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGMSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGMSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGMSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGMSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGMSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGMSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGMSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGMSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGMSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGMSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGMSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGMSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGMSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupManagersScopedListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupManagersScopedListWarningCode"
-
-instance ToJSON InstanceGroupManagersScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SSLPolicyWarningsItemCode
-    = SPWICCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SPWICDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SPWICDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SPWICDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SPWICExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SPWICExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SPWICFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SPWICInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SPWICMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SPWICNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SPWICNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SPWICNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SPWICNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SPWICNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SPWICNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SPWICNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SPWICRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SPWICResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SPWICResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SPWICSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SPWICSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SPWICUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SPWICUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLPolicyWarningsItemCode
-
-instance FromHttpApiData SSLPolicyWarningsItemCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SPWICCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SPWICDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SPWICDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SPWICDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SPWICExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SPWICExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SPWICFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SPWICInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SPWICMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SPWICNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SPWICNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SPWICNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SPWICNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SPWICNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SPWICNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SPWICNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SPWICRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SPWICResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SPWICResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SPWICSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SPWICSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SPWICUndeclaredProperties
-        "UNREACHABLE" -> Right SPWICUnreachable
-        x -> Left ("Unable to parse SSLPolicyWarningsItemCode from: " <> x)
-
-instance ToHttpApiData SSLPolicyWarningsItemCode where
-    toQueryParam = \case
-        SPWICCleanupFailed -> "CLEANUP_FAILED"
-        SPWICDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SPWICDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SPWICDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SPWICExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SPWICExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SPWICFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SPWICInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SPWICMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SPWICNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SPWICNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SPWICNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SPWICNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SPWICNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SPWICNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SPWICNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SPWICRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SPWICResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SPWICResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SPWICSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SPWICSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SPWICUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SPWICUnreachable -> "UNREACHABLE"
-
-instance FromJSON SSLPolicyWarningsItemCode where
-    parseJSON = parseJSONText "SSLPolicyWarningsItemCode"
-
-instance ToJSON SSLPolicyWarningsItemCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data ForwardingRuleAggregatedListWarningCode
-    = FRALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | FRALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | FRALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | FRALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | FRALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | FRALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | FRALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | FRALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | FRALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | FRALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | FRALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | FRALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | FRALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | FRALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | FRALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | FRALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | FRALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | FRALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | FRALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | FRALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | FRALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | FRALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | FRALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleAggregatedListWarningCode
-
-instance FromHttpApiData ForwardingRuleAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right FRALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right FRALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right FRALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right FRALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right FRALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right FRALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right FRALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right FRALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right FRALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right FRALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right FRALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right FRALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right FRALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right FRALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right FRALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right FRALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right FRALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right FRALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right FRALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right FRALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right FRALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right FRALWCUndeclaredProperties
-        "UNREACHABLE" -> Right FRALWCUnreachable
-        x -> Left ("Unable to parse ForwardingRuleAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData ForwardingRuleAggregatedListWarningCode where
-    toQueryParam = \case
-        FRALWCCleanupFailed -> "CLEANUP_FAILED"
-        FRALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        FRALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        FRALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        FRALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        FRALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        FRALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        FRALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        FRALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        FRALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        FRALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        FRALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        FRALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        FRALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        FRALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        FRALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        FRALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        FRALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        FRALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        FRALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        FRALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        FRALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        FRALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON ForwardingRuleAggregatedListWarningCode where
-    parseJSON = parseJSONText "ForwardingRuleAggregatedListWarningCode"
-
-instance ToJSON ForwardingRuleAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetPoolAggregatedListWarningCode
-    = TPALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TPALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TPALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TPALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TPALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TPALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TPALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TPALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TPALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TPALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TPALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TPALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TPALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TPALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TPALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TPALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TPALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TPALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TPALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TPALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TPALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TPALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TPALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetPoolAggregatedListWarningCode
-
-instance FromHttpApiData TargetPoolAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TPALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TPALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TPALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TPALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TPALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TPALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TPALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TPALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TPALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TPALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TPALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TPALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TPALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TPALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TPALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TPALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TPALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TPALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TPALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TPALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TPALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TPALWCUndeclaredProperties
-        "UNREACHABLE" -> Right TPALWCUnreachable
-        x -> Left ("Unable to parse TargetPoolAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetPoolAggregatedListWarningCode where
-    toQueryParam = \case
-        TPALWCCleanupFailed -> "CLEANUP_FAILED"
-        TPALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TPALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TPALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TPALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TPALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TPALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TPALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TPALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TPALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TPALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TPALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TPALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TPALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TPALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TPALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TPALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TPALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TPALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TPALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TPALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TPALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TPALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetPoolAggregatedListWarningCode where
-    parseJSON = parseJSONText "TargetPoolAggregatedListWarningCode"
-
-instance ToJSON TargetPoolAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetPoolsScopedListWarningCode
-    = TPSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TPSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TPSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TPSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TPSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TPSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TPSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TPSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TPSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TPSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TPSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TPSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TPSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TPSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TPSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TPSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TPSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TPSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TPSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TPSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TPSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TPSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TPSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetPoolsScopedListWarningCode
-
-instance FromHttpApiData TargetPoolsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TPSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TPSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TPSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TPSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TPSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TPSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TPSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TPSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TPSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TPSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TPSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TPSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TPSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TPSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TPSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TPSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TPSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TPSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TPSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TPSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TPSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TPSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TPSLWCUnreachable
-        x -> Left ("Unable to parse TargetPoolsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetPoolsScopedListWarningCode where
-    toQueryParam = \case
-        TPSLWCCleanupFailed -> "CLEANUP_FAILED"
-        TPSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TPSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TPSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TPSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TPSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TPSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TPSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TPSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TPSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TPSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TPSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TPSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TPSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TPSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TPSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TPSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TPSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TPSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TPSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TPSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TPSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TPSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetPoolsScopedListWarningCode where
-    parseJSON = parseJSONText "TargetPoolsScopedListWarningCode"
-
-instance ToJSON TargetPoolsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetInstanceListWarningCode
-    = TILWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TILWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TILWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TILWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TILWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TILWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TILWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TILWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TILWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TILWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TILWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TILWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TILWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TILWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TILWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TILWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TILWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TILWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TILWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TILWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TILWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TILWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TILWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetInstanceListWarningCode
-
-instance FromHttpApiData TargetInstanceListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TILWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TILWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TILWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TILWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TILWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TILWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TILWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TILWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TILWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TILWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TILWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TILWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TILWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TILWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TILWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TILWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TILWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TILWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TILWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TILWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TILWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TILWCUndeclaredProperties
-        "UNREACHABLE" -> Right TILWCUnreachable
-        x -> Left ("Unable to parse TargetInstanceListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetInstanceListWarningCode where
-    toQueryParam = \case
-        TILWCCleanupFailed -> "CLEANUP_FAILED"
-        TILWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TILWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TILWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TILWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TILWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TILWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TILWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TILWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TILWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TILWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TILWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TILWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TILWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TILWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TILWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TILWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TILWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TILWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TILWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TILWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TILWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TILWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetInstanceListWarningCode where
-    parseJSON = parseJSONText "TargetInstanceListWarningCode"
-
-instance ToJSON TargetInstanceListWarningCode where
-    toJSON = toJSONText
-
--- | Identifies the network presence of this location.
-data InterconnectLocationRegionInfoLocationPresence
-    = Global
-      -- ^ @GLOBAL@
-    | LocalRegion
-      -- ^ @LOCAL_REGION@
-    | LpGlobal
-      -- ^ @LP_GLOBAL@
-    | LpLocalRegion
-      -- ^ @LP_LOCAL_REGION@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectLocationRegionInfoLocationPresence
-
-instance FromHttpApiData InterconnectLocationRegionInfoLocationPresence where
-    parseQueryParam = \case
-        "GLOBAL" -> Right Global
-        "LOCAL_REGION" -> Right LocalRegion
-        "LP_GLOBAL" -> Right LpGlobal
-        "LP_LOCAL_REGION" -> Right LpLocalRegion
-        x -> Left ("Unable to parse InterconnectLocationRegionInfoLocationPresence from: " <> x)
-
-instance ToHttpApiData InterconnectLocationRegionInfoLocationPresence where
-    toQueryParam = \case
-        Global -> "GLOBAL"
-        LocalRegion -> "LOCAL_REGION"
-        LpGlobal -> "LP_GLOBAL"
-        LpLocalRegion -> "LP_LOCAL_REGION"
-
-instance FromJSON InterconnectLocationRegionInfoLocationPresence where
-    parseJSON = parseJSONText "InterconnectLocationRegionInfoLocationPresence"
-
-instance ToJSON InterconnectLocationRegionInfoLocationPresence where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data SSLHealthCheckProxyHeader
-    = SHCPHNone
-      -- ^ @NONE@
-    | SHCPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLHealthCheckProxyHeader
-
-instance FromHttpApiData SSLHealthCheckProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right SHCPHNone
-        "PROXY_V1" -> Right SHCPHProxyV1
-        x -> Left ("Unable to parse SSLHealthCheckProxyHeader from: " <> x)
-
-instance ToHttpApiData SSLHealthCheckProxyHeader where
-    toQueryParam = \case
-        SHCPHNone -> "NONE"
-        SHCPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON SSLHealthCheckProxyHeader where
-    parseJSON = parseJSONText "SSLHealthCheckProxyHeader"
-
-instance ToJSON SSLHealthCheckProxyHeader where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the VPN gateway, which can be one of the
--- following: CREATING, READY, FAILED, or DELETING.
-data TargetVPNGatewayStatus
-    = Creating
-      -- ^ @CREATING@
-    | Deleting
-      -- ^ @DELETING@
-    | Failed
-      -- ^ @FAILED@
-    | Ready
-      -- ^ @READY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetVPNGatewayStatus
-
-instance FromHttpApiData TargetVPNGatewayStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right Creating
-        "DELETING" -> Right Deleting
-        "FAILED" -> Right Failed
-        "READY" -> Right Ready
-        x -> Left ("Unable to parse TargetVPNGatewayStatus from: " <> x)
-
-instance ToHttpApiData TargetVPNGatewayStatus where
-    toQueryParam = \case
-        Creating -> "CREATING"
-        Deleting -> "DELETING"
-        Failed -> "FAILED"
-        Ready -> "READY"
-
-instance FromJSON TargetVPNGatewayStatus where
-    parseJSON = parseJSONText "TargetVPNGatewayStatus"
-
-instance ToJSON TargetVPNGatewayStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupManagerAggregatedListWarningCode
-    = IGMALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGMALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGMALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGMALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGMALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGMALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGMALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGMALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGMALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGMALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGMALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGMALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGMALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGMALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGMALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGMALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGMALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGMALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGMALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGMALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGMALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGMALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGMALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupManagerAggregatedListWarningCode
-
-instance FromHttpApiData InstanceGroupManagerAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGMALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGMALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGMALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGMALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGMALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGMALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGMALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGMALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGMALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGMALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGMALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGMALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGMALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGMALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGMALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGMALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGMALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGMALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGMALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGMALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGMALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGMALWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGMALWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupManagerAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupManagerAggregatedListWarningCode where
-    toQueryParam = \case
-        IGMALWCCleanupFailed -> "CLEANUP_FAILED"
-        IGMALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGMALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGMALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGMALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGMALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGMALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGMALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGMALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGMALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGMALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGMALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGMALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGMALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGMALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGMALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGMALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGMALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGMALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGMALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGMALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGMALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGMALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupManagerAggregatedListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupManagerAggregatedListWarningCode"
-
-instance ToJSON InstanceGroupManagerAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the snapshot. This can be CREATING,
--- DELETING, FAILED, READY, or UPLOADING.
-data SnapshotStatus
-    = SSCreating
-      -- ^ @CREATING@
-    | SSDeleting
-      -- ^ @DELETING@
-    | SSFailed
-      -- ^ @FAILED@
-    | SSReady
-      -- ^ @READY@
-    | SSUploading
-      -- ^ @UPLOADING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SnapshotStatus
-
-instance FromHttpApiData SnapshotStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right SSCreating
-        "DELETING" -> Right SSDeleting
-        "FAILED" -> Right SSFailed
-        "READY" -> Right SSReady
-        "UPLOADING" -> Right SSUploading
-        x -> Left ("Unable to parse SnapshotStatus from: " <> x)
-
-instance ToHttpApiData SnapshotStatus where
-    toQueryParam = \case
-        SSCreating -> "CREATING"
-        SSDeleting -> "DELETING"
-        SSFailed -> "FAILED"
-        SSReady -> "READY"
-        SSUploading -> "UPLOADING"
-
-instance FromJSON SnapshotStatus where
-    parseJSON = parseJSONText "SnapshotStatus"
-
-instance ToJSON SnapshotStatus where
-    toJSON = toJSONText
-
--- | Preconfigured versioned expression. If this field is specified, config
--- must also be specified. Available preconfigured expressions along with
--- their requirements are: SRC_IPS_V1 - must specify the corresponding
--- src_ip_range field in config.
-data SecurityPolicyRuleMatcherVersionedExpr
-    = SrcIPsV1
-      -- ^ @SRC_IPS_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SecurityPolicyRuleMatcherVersionedExpr
-
-instance FromHttpApiData SecurityPolicyRuleMatcherVersionedExpr where
-    parseQueryParam = \case
-        "SRC_IPS_V1" -> Right SrcIPsV1
-        x -> Left ("Unable to parse SecurityPolicyRuleMatcherVersionedExpr from: " <> x)
-
-instance ToHttpApiData SecurityPolicyRuleMatcherVersionedExpr where
-    toQueryParam = \case
-        SrcIPsV1 -> "SRC_IPS_V1"
-
-instance FromJSON SecurityPolicyRuleMatcherVersionedExpr where
-    parseJSON = parseJSONText "SecurityPolicyRuleMatcherVersionedExpr"
-
-instance ToJSON SecurityPolicyRuleMatcherVersionedExpr where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AutoscalerListWarningCode
-    = ALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalerListWarningCode
-
-instance FromHttpApiData AutoscalerListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ALWCUndeclaredProperties
-        "UNREACHABLE" -> Right ALWCUnreachable
-        x -> Left ("Unable to parse AutoscalerListWarningCode from: " <> x)
-
-instance ToHttpApiData AutoscalerListWarningCode where
-    toQueryParam = \case
-        ALWCCleanupFailed -> "CLEANUP_FAILED"
-        ALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AutoscalerListWarningCode where
-    parseJSON = parseJSONText "AutoscalerListWarningCode"
-
-instance ToJSON AutoscalerListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DiskTypeListWarningCode
-    = DTLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DTLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DTLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DTLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DTLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DTLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DTLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DTLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DTLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DTLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DTLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DTLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DTLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DTLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DTLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DTLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DTLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DTLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DTLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DTLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DTLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DTLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DTLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskTypeListWarningCode
-
-instance FromHttpApiData DiskTypeListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DTLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DTLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DTLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DTLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DTLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DTLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DTLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DTLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DTLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DTLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DTLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DTLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DTLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DTLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DTLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DTLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DTLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DTLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DTLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DTLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DTLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DTLWCUndeclaredProperties
-        "UNREACHABLE" -> Right DTLWCUnreachable
-        x -> Left ("Unable to parse DiskTypeListWarningCode from: " <> x)
-
-instance ToHttpApiData DiskTypeListWarningCode where
-    toQueryParam = \case
-        DTLWCCleanupFailed -> "CLEANUP_FAILED"
-        DTLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DTLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DTLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DTLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DTLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DTLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DTLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DTLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DTLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DTLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DTLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DTLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DTLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DTLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DTLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DTLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DTLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DTLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DTLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DTLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DTLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DTLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DiskTypeListWarningCode where
-    parseJSON = parseJSONText "DiskTypeListWarningCode"
-
-instance ToJSON DiskTypeListWarningCode where
-    toJSON = toJSONText
-
--- | The purpose of resource, only used with INTERNAL type.
-data AddressPurpose
-    = DNSResolver
-      -- ^ @DNS_RESOLVER@
-    | GceEndpoint
-      -- ^ @GCE_ENDPOINT@
-    | NATAuto
-      -- ^ @NAT_AUTO@
-    | VPCPeering
-      -- ^ @VPC_PEERING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressPurpose
-
-instance FromHttpApiData AddressPurpose where
-    parseQueryParam = \case
-        "DNS_RESOLVER" -> Right DNSResolver
-        "GCE_ENDPOINT" -> Right GceEndpoint
-        "NAT_AUTO" -> Right NATAuto
-        "VPC_PEERING" -> Right VPCPeering
-        x -> Left ("Unable to parse AddressPurpose from: " <> x)
-
-instance ToHttpApiData AddressPurpose where
-    toQueryParam = \case
-        DNSResolver -> "DNS_RESOLVER"
-        GceEndpoint -> "GCE_ENDPOINT"
-        NATAuto -> "NAT_AUTO"
-        VPCPeering -> "VPC_PEERING"
-
-instance FromJSON AddressPurpose where
-    parseJSON = parseJSONText "AddressPurpose"
-
-instance ToJSON AddressPurpose where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTypeAggregatedListWarningCode
-    = NTALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NTALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NTALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NTALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NTALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NTALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NTALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NTALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NTALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NTALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NTALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NTALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NTALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NTALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NTALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NTALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NTALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NTALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NTALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NTALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NTALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NTALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NTALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTypeAggregatedListWarningCode
-
-instance FromHttpApiData NodeTypeAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NTALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NTALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NTALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NTALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NTALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NTALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NTALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NTALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NTALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NTALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NTALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NTALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NTALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NTALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NTALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NTALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NTALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NTALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NTALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NTALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NTALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NTALWCUndeclaredProperties
-        "UNREACHABLE" -> Right NTALWCUnreachable
-        x -> Left ("Unable to parse NodeTypeAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTypeAggregatedListWarningCode where
-    toQueryParam = \case
-        NTALWCCleanupFailed -> "CLEANUP_FAILED"
-        NTALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NTALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NTALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NTALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NTALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NTALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NTALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NTALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NTALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NTALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NTALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NTALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NTALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NTALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NTALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NTALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NTALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NTALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NTALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NTALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NTALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NTALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTypeAggregatedListWarningCode where
-    parseJSON = parseJSONText "NodeTypeAggregatedListWarningCode"
-
-instance ToJSON NodeTypeAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetInstancesScopedListWarningCode
-    = TISLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TISLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TISLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TISLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TISLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TISLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TISLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TISLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TISLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TISLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TISLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TISLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TISLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TISLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TISLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TISLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TISLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TISLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TISLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TISLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TISLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TISLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TISLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetInstancesScopedListWarningCode
-
-instance FromHttpApiData TargetInstancesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TISLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TISLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TISLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TISLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TISLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TISLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TISLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TISLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TISLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TISLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TISLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TISLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TISLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TISLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TISLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TISLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TISLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TISLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TISLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TISLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TISLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TISLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TISLWCUnreachable
-        x -> Left ("Unable to parse TargetInstancesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetInstancesScopedListWarningCode where
-    toQueryParam = \case
-        TISLWCCleanupFailed -> "CLEANUP_FAILED"
-        TISLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TISLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TISLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TISLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TISLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TISLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TISLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TISLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TISLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TISLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TISLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TISLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TISLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TISLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TISLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TISLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TISLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TISLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TISLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TISLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TISLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TISLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetInstancesScopedListWarningCode where
-    parseJSON = parseJSONText "TargetInstancesScopedListWarningCode"
-
-instance ToJSON TargetInstancesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data VPNTunnelAggregatedListWarningCode
-    = VTALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | VTALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | VTALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | VTALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | VTALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | VTALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | VTALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | VTALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | VTALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | VTALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | VTALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | VTALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | VTALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | VTALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | VTALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | VTALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | VTALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | VTALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | VTALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | VTALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | VTALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | VTALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | VTALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable VPNTunnelAggregatedListWarningCode
-
-instance FromHttpApiData VPNTunnelAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right VTALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right VTALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right VTALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right VTALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right VTALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right VTALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right VTALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right VTALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right VTALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right VTALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right VTALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right VTALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right VTALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right VTALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right VTALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right VTALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right VTALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right VTALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right VTALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right VTALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right VTALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right VTALWCUndeclaredProperties
-        "UNREACHABLE" -> Right VTALWCUnreachable
-        x -> Left ("Unable to parse VPNTunnelAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData VPNTunnelAggregatedListWarningCode where
-    toQueryParam = \case
-        VTALWCCleanupFailed -> "CLEANUP_FAILED"
-        VTALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        VTALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        VTALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        VTALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        VTALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        VTALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        VTALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        VTALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        VTALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        VTALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        VTALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        VTALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        VTALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        VTALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        VTALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        VTALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        VTALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        VTALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        VTALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        VTALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        VTALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        VTALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON VPNTunnelAggregatedListWarningCode where
-    parseJSON = parseJSONText "VPNTunnelAggregatedListWarningCode"
-
-instance ToJSON VPNTunnelAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetHTTPProxyListWarningCode
-    = THTTPPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | THTTPPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | THTTPPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | THTTPPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | THTTPPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | THTTPPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | THTTPPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | THTTPPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | THTTPPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | THTTPPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | THTTPPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | THTTPPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | THTTPPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | THTTPPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | THTTPPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | THTTPPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | THTTPPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | THTTPPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | THTTPPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | THTTPPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | THTTPPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | THTTPPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | THTTPPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetHTTPProxyListWarningCode
-
-instance FromHttpApiData TargetHTTPProxyListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right THTTPPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right THTTPPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right THTTPPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right THTTPPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right THTTPPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right THTTPPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right THTTPPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right THTTPPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right THTTPPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right THTTPPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right THTTPPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right THTTPPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right THTTPPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right THTTPPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right THTTPPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right THTTPPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right THTTPPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right THTTPPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right THTTPPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right THTTPPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right THTTPPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right THTTPPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right THTTPPLWCUnreachable
-        x -> Left ("Unable to parse TargetHTTPProxyListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetHTTPProxyListWarningCode where
-    toQueryParam = \case
-        THTTPPLWCCleanupFailed -> "CLEANUP_FAILED"
-        THTTPPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        THTTPPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        THTTPPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        THTTPPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        THTTPPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        THTTPPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        THTTPPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        THTTPPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        THTTPPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        THTTPPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        THTTPPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        THTTPPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        THTTPPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        THTTPPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        THTTPPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        THTTPPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        THTTPPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        THTTPPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        THTTPPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        THTTPPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        THTTPPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        THTTPPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetHTTPProxyListWarningCode where
-    parseJSON = parseJSONText "TargetHTTPProxyListWarningCode"
-
-instance ToJSON TargetHTTPProxyListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data MachineTypeListWarningCode
-    = MTLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | MTLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | MTLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | MTLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | MTLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | MTLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | MTLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | MTLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | MTLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | MTLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | MTLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | MTLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | MTLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | MTLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | MTLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | MTLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | MTLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | MTLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | MTLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | MTLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | MTLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | MTLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | MTLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable MachineTypeListWarningCode
-
-instance FromHttpApiData MachineTypeListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right MTLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right MTLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right MTLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right MTLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right MTLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right MTLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right MTLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right MTLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right MTLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right MTLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right MTLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right MTLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right MTLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right MTLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right MTLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right MTLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right MTLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right MTLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right MTLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right MTLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right MTLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right MTLWCUndeclaredProperties
-        "UNREACHABLE" -> Right MTLWCUnreachable
-        x -> Left ("Unable to parse MachineTypeListWarningCode from: " <> x)
-
-instance ToHttpApiData MachineTypeListWarningCode where
-    toQueryParam = \case
-        MTLWCCleanupFailed -> "CLEANUP_FAILED"
-        MTLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        MTLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        MTLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        MTLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        MTLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        MTLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        MTLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        MTLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        MTLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        MTLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        MTLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        MTLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        MTLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        MTLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        MTLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        MTLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        MTLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        MTLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        MTLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        MTLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        MTLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        MTLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON MachineTypeListWarningCode where
-    parseJSON = parseJSONText "MachineTypeListWarningCode"
-
-instance ToJSON MachineTypeListWarningCode where
-    toJSON = toJSONText
-
--- | The ID of a supported feature. Read Enabling guest operating system
--- features to see a list of available options.
-data GuestOSFeatureType
-    = FeatureTypeUnspecified
-      -- ^ @FEATURE_TYPE_UNSPECIFIED@
-    | MultiIPSubnet
-      -- ^ @MULTI_IP_SUBNET@
-    | SecureBoot
-      -- ^ @SECURE_BOOT@
-    | UefiCompatible
-      -- ^ @UEFI_COMPATIBLE@
-    | VirtioScsiMultiQueue
-      -- ^ @VIRTIO_SCSI_MULTIQUEUE@
-    | Windows
-      -- ^ @WINDOWS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable GuestOSFeatureType
-
-instance FromHttpApiData GuestOSFeatureType where
-    parseQueryParam = \case
-        "FEATURE_TYPE_UNSPECIFIED" -> Right FeatureTypeUnspecified
-        "MULTI_IP_SUBNET" -> Right MultiIPSubnet
-        "SECURE_BOOT" -> Right SecureBoot
-        "UEFI_COMPATIBLE" -> Right UefiCompatible
-        "VIRTIO_SCSI_MULTIQUEUE" -> Right VirtioScsiMultiQueue
-        "WINDOWS" -> Right Windows
-        x -> Left ("Unable to parse GuestOSFeatureType from: " <> x)
-
-instance ToHttpApiData GuestOSFeatureType where
-    toQueryParam = \case
-        FeatureTypeUnspecified -> "FEATURE_TYPE_UNSPECIFIED"
-        MultiIPSubnet -> "MULTI_IP_SUBNET"
-        SecureBoot -> "SECURE_BOOT"
-        UefiCompatible -> "UEFI_COMPATIBLE"
-        VirtioScsiMultiQueue -> "VIRTIO_SCSI_MULTIQUEUE"
-        Windows -> "WINDOWS"
-
-instance FromJSON GuestOSFeatureType where
-    parseJSON = parseJSONText "GuestOSFeatureType"
-
-instance ToJSON GuestOSFeatureType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RouteWarningsItemCode
-    = RWICCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RWICDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RWICDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RWICDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RWICExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RWICExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RWICFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RWICInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RWICMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RWICNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RWICNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RWICNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RWICNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RWICNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RWICNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RWICNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RWICRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RWICResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RWICResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RWICSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RWICSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RWICUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RWICUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouteWarningsItemCode
-
-instance FromHttpApiData RouteWarningsItemCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RWICCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RWICDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RWICDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RWICDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RWICExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RWICExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RWICFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RWICInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RWICMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RWICNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RWICNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RWICNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RWICNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RWICNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RWICNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RWICNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RWICRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RWICResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RWICResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RWICSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RWICSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RWICUndeclaredProperties
-        "UNREACHABLE" -> Right RWICUnreachable
-        x -> Left ("Unable to parse RouteWarningsItemCode from: " <> x)
-
-instance ToHttpApiData RouteWarningsItemCode where
-    toQueryParam = \case
-        RWICCleanupFailed -> "CLEANUP_FAILED"
-        RWICDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RWICDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RWICDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RWICExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RWICExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RWICFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RWICInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RWICMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RWICNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RWICNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RWICNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RWICNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RWICNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RWICNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RWICNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RWICRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RWICResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RWICResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RWICSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RWICSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RWICUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RWICUnreachable -> "UNREACHABLE"
-
-instance FromJSON RouteWarningsItemCode where
-    parseJSON = parseJSONText "RouteWarningsItemCode"
-
-instance ToJSON RouteWarningsItemCode where
-    toJSON = toJSONText
-
--- | User-specified flag to indicate which mode to use for advertisement.
-data RouterBGPPeerAdvertiseMode
-    = RBPAMCustom
-      -- ^ @CUSTOM@
-    | RBPAMDefault
-      -- ^ @DEFAULT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterBGPPeerAdvertiseMode
-
-instance FromHttpApiData RouterBGPPeerAdvertiseMode where
-    parseQueryParam = \case
-        "CUSTOM" -> Right RBPAMCustom
-        "DEFAULT" -> Right RBPAMDefault
-        x -> Left ("Unable to parse RouterBGPPeerAdvertiseMode from: " <> x)
-
-instance ToHttpApiData RouterBGPPeerAdvertiseMode where
-    toQueryParam = \case
-        RBPAMCustom -> "CUSTOM"
-        RBPAMDefault -> "DEFAULT"
-
-instance FromJSON RouterBGPPeerAdvertiseMode where
-    parseJSON = parseJSONText "RouterBGPPeerAdvertiseMode"
-
-instance ToJSON RouterBGPPeerAdvertiseMode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionInstanceGroupManagerListWarningCode
-    = RIGMLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RIGMLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RIGMLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RIGMLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RIGMLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RIGMLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RIGMLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RIGMLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RIGMLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RIGMLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RIGMLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RIGMLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RIGMLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RIGMLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RIGMLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RIGMLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RIGMLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RIGMLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RIGMLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RIGMLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RIGMLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RIGMLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RIGMLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionInstanceGroupManagerListWarningCode
-
-instance FromHttpApiData RegionInstanceGroupManagerListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RIGMLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RIGMLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RIGMLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RIGMLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RIGMLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RIGMLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RIGMLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RIGMLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RIGMLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RIGMLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RIGMLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RIGMLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RIGMLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RIGMLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RIGMLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RIGMLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RIGMLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RIGMLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RIGMLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RIGMLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RIGMLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RIGMLWCUndeclaredProperties
-        "UNREACHABLE" -> Right RIGMLWCUnreachable
-        x -> Left ("Unable to parse RegionInstanceGroupManagerListWarningCode from: " <> x)
-
-instance ToHttpApiData RegionInstanceGroupManagerListWarningCode where
-    toQueryParam = \case
-        RIGMLWCCleanupFailed -> "CLEANUP_FAILED"
-        RIGMLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RIGMLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RIGMLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RIGMLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RIGMLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RIGMLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RIGMLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RIGMLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RIGMLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RIGMLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RIGMLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RIGMLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RIGMLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RIGMLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RIGMLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RIGMLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RIGMLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RIGMLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RIGMLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RIGMLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RIGMLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RIGMLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionInstanceGroupManagerListWarningCode where
-    parseJSON = parseJSONText "RegionInstanceGroupManagerListWarningCode"
-
-instance ToJSON RegionInstanceGroupManagerListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] An indicator whether storageBytes is in a stable state or
--- it is being adjusted as a result of shared storage reallocation. This
--- status can either be UPDATING, meaning the size of the snapshot is being
--- updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.
-data SnapshotStorageBytesStatus
-    = Updating
-      -- ^ @UPDATING@
-    | UpToDate
-      -- ^ @UP_TO_DATE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SnapshotStorageBytesStatus
-
-instance FromHttpApiData SnapshotStorageBytesStatus where
-    parseQueryParam = \case
-        "UPDATING" -> Right Updating
-        "UP_TO_DATE" -> Right UpToDate
-        x -> Left ("Unable to parse SnapshotStorageBytesStatus from: " <> x)
-
-instance ToHttpApiData SnapshotStorageBytesStatus where
-    toQueryParam = \case
-        Updating -> "UPDATING"
-        UpToDate -> "UP_TO_DATE"
-
-instance FromJSON SnapshotStorageBytesStatus where
-    parseJSON = parseJSONText "SnapshotStorageBytesStatus"
-
-instance ToJSON SnapshotStorageBytesStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTemplateAggregatedListWarningCode
-    = NCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTemplateAggregatedListWarningCode
-
-instance FromHttpApiData NodeTemplateAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NUndeclaredProperties
-        "UNREACHABLE" -> Right NUnreachable
-        x -> Left ("Unable to parse NodeTemplateAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTemplateAggregatedListWarningCode where
-    toQueryParam = \case
-        NCleanupFailed -> "CLEANUP_FAILED"
-        NDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTemplateAggregatedListWarningCode where
-    parseJSON = parseJSONText "NodeTemplateAggregatedListWarningCode"
-
-instance ToJSON NodeTemplateAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Required
-data RuleAction
-    = Allow
-      -- ^ @ALLOW@
-    | AllowWithLog
-      -- ^ @ALLOW_WITH_LOG@
-    | Deny
-      -- ^ @DENY@
-    | DenyWithLog
-      -- ^ @DENY_WITH_LOG@
-    | Log
-      -- ^ @LOG@
-    | NoAction
-      -- ^ @NO_ACTION@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RuleAction
-
-instance FromHttpApiData RuleAction where
-    parseQueryParam = \case
-        "ALLOW" -> Right Allow
-        "ALLOW_WITH_LOG" -> Right AllowWithLog
-        "DENY" -> Right Deny
-        "DENY_WITH_LOG" -> Right DenyWithLog
-        "LOG" -> Right Log
-        "NO_ACTION" -> Right NoAction
-        x -> Left ("Unable to parse RuleAction from: " <> x)
-
-instance ToHttpApiData RuleAction where
-    toQueryParam = \case
-        Allow -> "ALLOW"
-        AllowWithLog -> "ALLOW_WITH_LOG"
-        Deny -> "DENY"
-        DenyWithLog -> "DENY_WITH_LOG"
-        Log -> "LOG"
-        NoAction -> "NO_ACTION"
-
-instance FromJSON RuleAction where
-    parseJSON = parseJSONText "RuleAction"
-
-instance ToJSON RuleAction where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AddressesScopedListWarningCode
-    = ASLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ASLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ASLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ASLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ASLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ASLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ASLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ASLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ASLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ASLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ASLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ASLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ASLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ASLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ASLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ASLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ASLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ASLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ASLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ASLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ASLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ASLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ASLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressesScopedListWarningCode
-
-instance FromHttpApiData AddressesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ASLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ASLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ASLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ASLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ASLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ASLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ASLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ASLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ASLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ASLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ASLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ASLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ASLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ASLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ASLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ASLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ASLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ASLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ASLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ASLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ASLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ASLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ASLWCUnreachable
-        x -> Left ("Unable to parse AddressesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData AddressesScopedListWarningCode where
-    toQueryParam = \case
-        ASLWCCleanupFailed -> "CLEANUP_FAILED"
-        ASLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ASLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ASLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ASLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ASLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ASLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ASLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ASLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ASLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ASLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ASLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ASLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ASLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ASLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ASLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ASLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ASLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ASLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ASLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ASLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ASLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ASLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AddressesScopedListWarningCode where
-    parseJSON = parseJSONText "AddressesScopedListWarningCode"
-
-instance ToJSON AddressesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the image. An image can be used to create
--- other resources, such as instances, only after the image has been
--- successfully created and the status is set to READY. Possible values are
--- FAILED, PENDING, or READY.
-data ImageStatus
-    = ISDeleting
-      -- ^ @DELETING@
-    | ISFailed
-      -- ^ @FAILED@
-    | ISPending
-      -- ^ @PENDING@
-    | ISReady
-      -- ^ @READY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ImageStatus
-
-instance FromHttpApiData ImageStatus where
-    parseQueryParam = \case
-        "DELETING" -> Right ISDeleting
-        "FAILED" -> Right ISFailed
-        "PENDING" -> Right ISPending
-        "READY" -> Right ISReady
-        x -> Left ("Unable to parse ImageStatus from: " <> x)
-
-instance ToHttpApiData ImageStatus where
-    toQueryParam = \case
-        ISDeleting -> "DELETING"
-        ISFailed -> "FAILED"
-        ISPending -> "PENDING"
-        ISReady -> "READY"
-
-instance FromJSON ImageStatus where
-    parseJSON = parseJSONText "ImageStatus"
-
-instance ToJSON ImageStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupListWarningCode
-    = IGLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupListWarningCode
-
-instance FromHttpApiData InstanceGroupListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGLWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGLWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupListWarningCode where
-    toQueryParam = \case
-        IGLWCCleanupFailed -> "CLEANUP_FAILED"
-        IGLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupListWarningCode"
-
-instance ToJSON InstanceGroupListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data FirewallListWarningCode
-    = FLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | FLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | FLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | FLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | FLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | FLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | FLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | FLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | FLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | FLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | FLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | FLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | FLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | FLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | FLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | FLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | FLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | FLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | FLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | FLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | FLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | FLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | FLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable FirewallListWarningCode
-
-instance FromHttpApiData FirewallListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right FLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right FLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right FLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right FLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right FLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right FLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right FLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right FLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right FLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right FLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right FLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right FLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right FLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right FLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right FLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right FLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right FLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right FLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right FLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right FLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right FLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right FLWCUndeclaredProperties
-        "UNREACHABLE" -> Right FLWCUnreachable
-        x -> Left ("Unable to parse FirewallListWarningCode from: " <> x)
-
-instance ToHttpApiData FirewallListWarningCode where
-    toQueryParam = \case
-        FLWCCleanupFailed -> "CLEANUP_FAILED"
-        FLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        FLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        FLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        FLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        FLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        FLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        FLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        FLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        FLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        FLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        FLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        FLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        FLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        FLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        FLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        FLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        FLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        FLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        FLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        FLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        FLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        FLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON FirewallListWarningCode where
-    parseJSON = parseJSONText "FirewallListWarningCode"
-
-instance ToJSON FirewallListWarningCode where
-    toJSON = toJSONText
-
-data InterconnectAttachmentType
-    = Dedicated
-      -- ^ @DEDICATED@
-    | Partner
-      -- ^ @PARTNER@
-    | PartnerProvider
-      -- ^ @PARTNER_PROVIDER@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentType
-
-instance FromHttpApiData InterconnectAttachmentType where
-    parseQueryParam = \case
-        "DEDICATED" -> Right Dedicated
-        "PARTNER" -> Right Partner
-        "PARTNER_PROVIDER" -> Right PartnerProvider
-        x -> Left ("Unable to parse InterconnectAttachmentType from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentType where
-    toQueryParam = \case
-        Dedicated -> "DEDICATED"
-        Partner -> "PARTNER"
-        PartnerProvider -> "PARTNER_PROVIDER"
-
-instance FromJSON InterconnectAttachmentType where
-    parseJSON = parseJSONText "InterconnectAttachmentType"
-
-instance ToJSON InterconnectAttachmentType where
-    toJSON = toJSONText
-
--- | The type of error returned.
-data AutoscalerStatusDetailsType
-    = ASDTAllInstancesUnhealthy
-      -- ^ @ALL_INSTANCES_UNHEALTHY@
-    | ASDTBackendServiceDoesNotExist
-      -- ^ @BACKEND_SERVICE_DOES_NOT_EXIST@
-    | ASDTCAppedAtMaxNumReplicas
-      -- ^ @CAPPED_AT_MAX_NUM_REPLICAS@
-    | ASDTCustomMetricDataPointsTooSparse
-      -- ^ @CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE@
-    | ASDTCustomMetricInvalid
-      -- ^ @CUSTOM_METRIC_INVALID@
-    | ASDTMinEqualsMax
-      -- ^ @MIN_EQUALS_MAX@
-    | ASDTMissingCustomMetricDataPoints
-      -- ^ @MISSING_CUSTOM_METRIC_DATA_POINTS@
-    | ASDTMissingLoadBalancingDataPoints
-      -- ^ @MISSING_LOAD_BALANCING_DATA_POINTS@
-    | ASDTMoreThanOneBackendService
-      -- ^ @MORE_THAN_ONE_BACKEND_SERVICE@
-    | ASDTNotEnoughQuotaAvailable
-      -- ^ @NOT_ENOUGH_QUOTA_AVAILABLE@
-    | ASDTRegionResourceStockout
-      -- ^ @REGION_RESOURCE_STOCKOUT@
-    | ASDTScalingTargetDoesNotExist
-      -- ^ @SCALING_TARGET_DOES_NOT_EXIST@
-    | ASDTUnknown
-      -- ^ @UNKNOWN@
-    | ASDTUnsupportedMaxRateLoadBalancingConfiguration
-      -- ^ @UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION@
-    | ASDTZoneResourceStockout
-      -- ^ @ZONE_RESOURCE_STOCKOUT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalerStatusDetailsType
-
-instance FromHttpApiData AutoscalerStatusDetailsType where
-    parseQueryParam = \case
-        "ALL_INSTANCES_UNHEALTHY" -> Right ASDTAllInstancesUnhealthy
-        "BACKEND_SERVICE_DOES_NOT_EXIST" -> Right ASDTBackendServiceDoesNotExist
-        "CAPPED_AT_MAX_NUM_REPLICAS" -> Right ASDTCAppedAtMaxNumReplicas
-        "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE" -> Right ASDTCustomMetricDataPointsTooSparse
-        "CUSTOM_METRIC_INVALID" -> Right ASDTCustomMetricInvalid
-        "MIN_EQUALS_MAX" -> Right ASDTMinEqualsMax
-        "MISSING_CUSTOM_METRIC_DATA_POINTS" -> Right ASDTMissingCustomMetricDataPoints
-        "MISSING_LOAD_BALANCING_DATA_POINTS" -> Right ASDTMissingLoadBalancingDataPoints
-        "MORE_THAN_ONE_BACKEND_SERVICE" -> Right ASDTMoreThanOneBackendService
-        "NOT_ENOUGH_QUOTA_AVAILABLE" -> Right ASDTNotEnoughQuotaAvailable
-        "REGION_RESOURCE_STOCKOUT" -> Right ASDTRegionResourceStockout
-        "SCALING_TARGET_DOES_NOT_EXIST" -> Right ASDTScalingTargetDoesNotExist
-        "UNKNOWN" -> Right ASDTUnknown
-        "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION" -> Right ASDTUnsupportedMaxRateLoadBalancingConfiguration
-        "ZONE_RESOURCE_STOCKOUT" -> Right ASDTZoneResourceStockout
-        x -> Left ("Unable to parse AutoscalerStatusDetailsType from: " <> x)
-
-instance ToHttpApiData AutoscalerStatusDetailsType where
-    toQueryParam = \case
-        ASDTAllInstancesUnhealthy -> "ALL_INSTANCES_UNHEALTHY"
-        ASDTBackendServiceDoesNotExist -> "BACKEND_SERVICE_DOES_NOT_EXIST"
-        ASDTCAppedAtMaxNumReplicas -> "CAPPED_AT_MAX_NUM_REPLICAS"
-        ASDTCustomMetricDataPointsTooSparse -> "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
-        ASDTCustomMetricInvalid -> "CUSTOM_METRIC_INVALID"
-        ASDTMinEqualsMax -> "MIN_EQUALS_MAX"
-        ASDTMissingCustomMetricDataPoints -> "MISSING_CUSTOM_METRIC_DATA_POINTS"
-        ASDTMissingLoadBalancingDataPoints -> "MISSING_LOAD_BALANCING_DATA_POINTS"
-        ASDTMoreThanOneBackendService -> "MORE_THAN_ONE_BACKEND_SERVICE"
-        ASDTNotEnoughQuotaAvailable -> "NOT_ENOUGH_QUOTA_AVAILABLE"
-        ASDTRegionResourceStockout -> "REGION_RESOURCE_STOCKOUT"
-        ASDTScalingTargetDoesNotExist -> "SCALING_TARGET_DOES_NOT_EXIST"
-        ASDTUnknown -> "UNKNOWN"
-        ASDTUnsupportedMaxRateLoadBalancingConfiguration -> "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
-        ASDTZoneResourceStockout -> "ZONE_RESOURCE_STOCKOUT"
-
-instance FromJSON AutoscalerStatusDetailsType where
-    parseJSON = parseJSONText "AutoscalerStatusDetailsType"
-
-instance ToJSON AutoscalerStatusDetailsType where
-    toJSON = toJSONText
-
--- | Direction of traffic to which this firewall applies; default is INGRESS.
--- Note: For INGRESS traffic, it is NOT supported to specify
--- destinationRanges; For EGRESS traffic, it is NOT supported to specify
--- sourceRanges OR sourceTags.
-data FirewallDirection
-    = Egress
-      -- ^ @EGRESS@
-    | Ingress
-      -- ^ @INGRESS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable FirewallDirection
-
-instance FromHttpApiData FirewallDirection where
-    parseQueryParam = \case
-        "EGRESS" -> Right Egress
-        "INGRESS" -> Right Ingress
-        x -> Left ("Unable to parse FirewallDirection from: " <> x)
-
-instance ToHttpApiData FirewallDirection where
-    toQueryParam = \case
-        Egress -> "EGRESS"
-        Ingress -> "INGRESS"
-
-instance FromJSON FirewallDirection where
-    parseJSON = parseJSONText "FirewallDirection"
-
-instance ToJSON FirewallDirection where
-    toJSON = toJSONText
-
-data NodeGroupNodeStatus
-    = NGNSCreating
-      -- ^ @CREATING@
-    | NGNSDeleting
-      -- ^ @DELETING@
-    | NGNSInvalid
-      -- ^ @INVALID@
-    | NGNSReady
-      -- ^ @READY@
-    | NGNSRepairing
-      -- ^ @REPAIRING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupNodeStatus
-
-instance FromHttpApiData NodeGroupNodeStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right NGNSCreating
-        "DELETING" -> Right NGNSDeleting
-        "INVALID" -> Right NGNSInvalid
-        "READY" -> Right NGNSReady
-        "REPAIRING" -> Right NGNSRepairing
-        x -> Left ("Unable to parse NodeGroupNodeStatus from: " <> x)
-
-instance ToHttpApiData NodeGroupNodeStatus where
-    toQueryParam = \case
-        NGNSCreating -> "CREATING"
-        NGNSDeleting -> "DELETING"
-        NGNSInvalid -> "INVALID"
-        NGNSReady -> "READY"
-        NGNSRepairing -> "REPAIRING"
-
-instance FromJSON NodeGroupNodeStatus where
-    parseJSON = parseJSONText "NodeGroupNodeStatus"
-
-instance ToJSON NodeGroupNodeStatus where
-    toJSON = toJSONText
-
--- | QUIC policy for the TargetHttpsProxy resource.
-data TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride
-    = THPSQORQODisable
-      -- ^ @DISABLE@
-    | THPSQORQOEnable
-      -- ^ @ENABLE@
-    | THPSQORQONone
-      -- ^ @NONE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride
-
-instance FromHttpApiData TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride where
-    parseQueryParam = \case
-        "DISABLE" -> Right THPSQORQODisable
-        "ENABLE" -> Right THPSQORQOEnable
-        "NONE" -> Right THPSQORQONone
-        x -> Left ("Unable to parse TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride from: " <> x)
-
-instance ToHttpApiData TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride where
-    toQueryParam = \case
-        THPSQORQODisable -> "DISABLE"
-        THPSQORQOEnable -> "ENABLE"
-        THPSQORQONone -> "NONE"
-
-instance FromJSON TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride where
-    parseJSON = parseJSONText "TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride"
-
-instance ToJSON TargetHTTPSProxiesSetQuicOverrideRequestQuicOverride where
-    toJSON = toJSONText
-
--- | Health state of the instance.
-data HealthStatusHealthState
-    = HSHSHealthy
-      -- ^ @HEALTHY@
-    | HSHSUnhealthy
-      -- ^ @UNHEALTHY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HealthStatusHealthState
-
-instance FromHttpApiData HealthStatusHealthState where
-    parseQueryParam = \case
-        "HEALTHY" -> Right HSHSHealthy
-        "UNHEALTHY" -> Right HSHSUnhealthy
-        x -> Left ("Unable to parse HealthStatusHealthState from: " <> x)
-
-instance ToHttpApiData HealthStatusHealthState where
-    toQueryParam = \case
-        HSHSHealthy -> "HEALTHY"
-        HSHSUnhealthy -> "UNHEALTHY"
-
-instance FromJSON HealthStatusHealthState where
-    parseJSON = parseJSONText "HealthStatusHealthState"
-
-instance ToJSON HealthStatusHealthState where
-    toJSON = toJSONText
-
--- | The deprecation state of this resource. This can be ACTIVE, DEPRECATED,
--- OBSOLETE, or DELETED. Operations which communicate the end of life date
--- for an image, can use ACTIVE. Operations which create a new resource
--- using a DEPRECATED resource will return successfully, but with a warning
--- indicating the deprecated resource and recommending its replacement.
--- Operations which use OBSOLETE or DELETED resources will be rejected and
--- result in an error.
-data DeprecationStatusState
-    = DSSActive
-      -- ^ @ACTIVE@
-    | DSSDeleted
-      -- ^ @DELETED@
-    | DSSDeprecated
-      -- ^ @DEPRECATED@
-    | DSSObsolete
-      -- ^ @OBSOLETE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DeprecationStatusState
-
-instance FromHttpApiData DeprecationStatusState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right DSSActive
-        "DELETED" -> Right DSSDeleted
-        "DEPRECATED" -> Right DSSDeprecated
-        "OBSOLETE" -> Right DSSObsolete
-        x -> Left ("Unable to parse DeprecationStatusState from: " <> x)
-
-instance ToHttpApiData DeprecationStatusState where
-    toQueryParam = \case
-        DSSActive -> "ACTIVE"
-        DSSDeleted -> "DELETED"
-        DSSDeprecated -> "DEPRECATED"
-        DSSObsolete -> "OBSOLETE"
-
-instance FromJSON DeprecationStatusState where
-    parseJSON = parseJSONText "DeprecationStatusState"
-
-instance ToJSON DeprecationStatusState where
-    toJSON = toJSONText
-
-data NodeGroupStatus
-    = NGSCreating
-      -- ^ @CREATING@
-    | NGSDeleting
-      -- ^ @DELETING@
-    | NGSInvalid
-      -- ^ @INVALID@
-    | NGSReady
-      -- ^ @READY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupStatus
-
-instance FromHttpApiData NodeGroupStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right NGSCreating
-        "DELETING" -> Right NGSDeleting
-        "INVALID" -> Right NGSInvalid
-        "READY" -> Right NGSReady
-        x -> Left ("Unable to parse NodeGroupStatus from: " <> x)
-
-instance ToHttpApiData NodeGroupStatus where
-    toQueryParam = \case
-        NGSCreating -> "CREATING"
-        NGSDeleting -> "DELETING"
-        NGSInvalid -> "INVALID"
-        NGSReady -> "READY"
-
-instance FromJSON NodeGroupStatus where
-    parseJSON = parseJSONText "NodeGroupStatus"
-
-instance ToJSON NodeGroupStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RouterAggregatedListWarningCode
-    = RALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterAggregatedListWarningCode
-
-instance FromHttpApiData RouterAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RALWCUndeclaredProperties
-        "UNREACHABLE" -> Right RALWCUnreachable
-        x -> Left ("Unable to parse RouterAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData RouterAggregatedListWarningCode where
-    toQueryParam = \case
-        RALWCCleanupFailed -> "CLEANUP_FAILED"
-        RALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RouterAggregatedListWarningCode where
-    parseJSON = parseJSONText "RouterAggregatedListWarningCode"
-
-instance ToJSON RouterAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RoutersScopedListWarningCode
-    = RSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RoutersScopedListWarningCode
-
-instance FromHttpApiData RoutersScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right RSLWCUnreachable
-        x -> Left ("Unable to parse RoutersScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData RoutersScopedListWarningCode where
-    toQueryParam = \case
-        RSLWCCleanupFailed -> "CLEANUP_FAILED"
-        RSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RoutersScopedListWarningCode where
-    parseJSON = parseJSONText "RoutersScopedListWarningCode"
-
-instance ToJSON RoutersScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetHTTPSProxyListWarningCode
-    = THPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | THPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | THPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | THPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | THPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | THPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | THPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | THPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | THPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | THPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | THPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | THPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | THPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | THPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | THPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | THPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | THPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | THPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | THPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | THPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | THPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | THPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | THPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetHTTPSProxyListWarningCode
-
-instance FromHttpApiData TargetHTTPSProxyListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right THPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right THPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right THPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right THPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right THPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right THPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right THPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right THPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right THPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right THPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right THPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right THPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right THPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right THPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right THPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right THPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right THPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right THPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right THPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right THPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right THPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right THPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right THPLWCUnreachable
-        x -> Left ("Unable to parse TargetHTTPSProxyListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetHTTPSProxyListWarningCode where
-    toQueryParam = \case
-        THPLWCCleanupFailed -> "CLEANUP_FAILED"
-        THPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        THPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        THPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        THPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        THPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        THPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        THPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        THPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        THPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        THPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        THPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        THPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        THPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        THPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        THPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        THPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        THPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        THPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        THPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        THPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        THPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        THPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetHTTPSProxyListWarningCode where
-    parseJSON = parseJSONText "TargetHTTPSProxyListWarningCode"
-
-instance ToJSON TargetHTTPSProxyListWarningCode where
-    toJSON = toJSONText
-
-data InterconnectDiagnosticsLinkLACPStatusState
-    = IDLLACPSSActive
-      -- ^ @ACTIVE@
-    | IDLLACPSSDetached
-      -- ^ @DETACHED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectDiagnosticsLinkLACPStatusState
-
-instance FromHttpApiData InterconnectDiagnosticsLinkLACPStatusState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right IDLLACPSSActive
-        "DETACHED" -> Right IDLLACPSSDetached
-        x -> Left ("Unable to parse InterconnectDiagnosticsLinkLACPStatusState from: " <> x)
-
-instance ToHttpApiData InterconnectDiagnosticsLinkLACPStatusState where
-    toQueryParam = \case
-        IDLLACPSSActive -> "ACTIVE"
-        IDLLACPSSDetached -> "DETACHED"
-
-instance FromJSON InterconnectDiagnosticsLinkLACPStatusState where
-    parseJSON = parseJSONText "InterconnectDiagnosticsLinkLACPStatusState"
-
-instance ToJSON InterconnectDiagnosticsLinkLACPStatusState where
-    toJSON = toJSONText
-
--- | [Output Only] The current action that the managed instance group has
--- scheduled for the instance. Possible values: - NONE The instance is
--- running, and the managed instance group does not have any scheduled
--- actions for this instance. - CREATING The managed instance group is
--- creating this instance. If the group fails to create this instance, it
--- will try again until it is successful. - CREATING_WITHOUT_RETRIES The
--- managed instance group is attempting to create this instance only once.
--- If the group fails to create this instance, it does not try again and
--- the group\'s targetSize value is decreased instead. - RECREATING The
--- managed instance group is recreating this instance. - DELETING The
--- managed instance group is permanently deleting this instance. -
--- ABANDONING The managed instance group is abandoning this instance. The
--- instance will be removed from the instance group and from any target
--- pools that are associated with this group. - RESTARTING The managed
--- instance group is restarting the instance. - REFRESHING The managed
--- instance group is applying configuration changes to the instance without
--- stopping it. For example, the group can update the target pool list for
--- an instance without stopping that instance. - VERIFYING The managed
--- instance group has created the instance and it is in the process of
--- being verified.
-data ManagedInstanceCurrentAction
-    = MICAAbandoning
-      -- ^ @ABANDONING@
-    | MICACreating
-      -- ^ @CREATING@
-    | MICACreatingWithoutRetries
-      -- ^ @CREATING_WITHOUT_RETRIES@
-    | MICADeleting
-      -- ^ @DELETING@
-    | MICANone
-      -- ^ @NONE@
-    | MICARecreating
-      -- ^ @RECREATING@
-    | MICARefreshing
-      -- ^ @REFRESHING@
-    | MICARestarting
-      -- ^ @RESTARTING@
-    | MICAVerifying
-      -- ^ @VERIFYING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedInstanceCurrentAction
-
-instance FromHttpApiData ManagedInstanceCurrentAction where
-    parseQueryParam = \case
-        "ABANDONING" -> Right MICAAbandoning
-        "CREATING" -> Right MICACreating
-        "CREATING_WITHOUT_RETRIES" -> Right MICACreatingWithoutRetries
-        "DELETING" -> Right MICADeleting
-        "NONE" -> Right MICANone
-        "RECREATING" -> Right MICARecreating
-        "REFRESHING" -> Right MICARefreshing
-        "RESTARTING" -> Right MICARestarting
-        "VERIFYING" -> Right MICAVerifying
-        x -> Left ("Unable to parse ManagedInstanceCurrentAction from: " <> x)
-
-instance ToHttpApiData ManagedInstanceCurrentAction where
-    toQueryParam = \case
-        MICAAbandoning -> "ABANDONING"
-        MICACreating -> "CREATING"
-        MICACreatingWithoutRetries -> "CREATING_WITHOUT_RETRIES"
-        MICADeleting -> "DELETING"
-        MICANone -> "NONE"
-        MICARecreating -> "RECREATING"
-        MICARefreshing -> "REFRESHING"
-        MICARestarting -> "RESTARTING"
-        MICAVerifying -> "VERIFYING"
-
-instance FromJSON ManagedInstanceCurrentAction where
-    parseJSON = parseJSONText "ManagedInstanceCurrentAction"
-
-instance ToJSON ManagedInstanceCurrentAction where
-    toJSON = toJSONText
-
--- | NAT option controlling how IPs are NAT\'ed to the instance. Currently
--- only NO_NAT (default value) is supported.
-data TargetInstanceNATPolicy
-    = NoNAT
-      -- ^ @NO_NAT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetInstanceNATPolicy
-
-instance FromHttpApiData TargetInstanceNATPolicy where
-    parseQueryParam = \case
-        "NO_NAT" -> Right NoNAT
-        x -> Left ("Unable to parse TargetInstanceNATPolicy from: " <> x)
-
-instance ToHttpApiData TargetInstanceNATPolicy where
-    toQueryParam = \case
-        NoNAT -> "NO_NAT"
-
-instance FromJSON TargetInstanceNATPolicy where
-    parseJSON = parseJSONText "TargetInstanceNATPolicy"
-
-instance ToJSON TargetInstanceNATPolicy where
-    toJSON = toJSONText
-
-data RouterBGPPeerAdvertisedGroupsItem
-    = AllSubnets
-      -- ^ @ALL_SUBNETS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterBGPPeerAdvertisedGroupsItem
-
-instance FromHttpApiData RouterBGPPeerAdvertisedGroupsItem where
-    parseQueryParam = \case
-        "ALL_SUBNETS" -> Right AllSubnets
-        x -> Left ("Unable to parse RouterBGPPeerAdvertisedGroupsItem from: " <> x)
-
-instance ToHttpApiData RouterBGPPeerAdvertisedGroupsItem where
-    toQueryParam = \case
-        AllSubnets -> "ALL_SUBNETS"
-
-instance FromJSON RouterBGPPeerAdvertisedGroupsItem where
-    parseJSON = parseJSONText "RouterBGPPeerAdvertisedGroupsItem"
-
-instance ToJSON RouterBGPPeerAdvertisedGroupsItem where
-    toJSON = toJSONText
-
--- | The type of configuration. The default and only option is
--- ONE_TO_ONE_NAT.
-data AccessConfigType
-    = OneToOneNAT
-      -- ^ @ONE_TO_ONE_NAT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AccessConfigType
-
-instance FromHttpApiData AccessConfigType where
-    parseQueryParam = \case
-        "ONE_TO_ONE_NAT" -> Right OneToOneNAT
-        x -> Left ("Unable to parse AccessConfigType from: " <> x)
-
-instance ToHttpApiData AccessConfigType where
-    toQueryParam = \case
-        OneToOneNAT -> "ONE_TO_ONE_NAT"
-
-instance FromJSON AccessConfigType where
-    parseJSON = parseJSONText "AccessConfigType"
-
-instance ToJSON AccessConfigType where
-    toJSON = toJSONText
-
--- | The IP Version that will be used by this forwarding rule. Valid options
--- are IPV4 or IPV6. This can only be specified for an external global
--- forwarding rule.
-data ForwardingRuleIPVersion
-    = IPV4
-      -- ^ @IPV4@
-    | IPV6
-      -- ^ @IPV6@
-    | UnspecifiedVersion
-      -- ^ @UNSPECIFIED_VERSION@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleIPVersion
-
-instance FromHttpApiData ForwardingRuleIPVersion where
-    parseQueryParam = \case
-        "IPV4" -> Right IPV4
-        "IPV6" -> Right IPV6
-        "UNSPECIFIED_VERSION" -> Right UnspecifiedVersion
-        x -> Left ("Unable to parse ForwardingRuleIPVersion from: " <> x)
-
-instance ToHttpApiData ForwardingRuleIPVersion where
-    toQueryParam = \case
-        IPV4 -> "IPV4"
-        IPV6 -> "IPV6"
-        UnspecifiedVersion -> "UNSPECIFIED_VERSION"
-
-instance FromJSON ForwardingRuleIPVersion where
-    parseJSON = parseJSONText "ForwardingRuleIPVersion"
-
-instance ToJSON ForwardingRuleIPVersion where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RouterListWarningCode
-    = RLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterListWarningCode
-
-instance FromHttpApiData RouterListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RLWCUndeclaredProperties
-        "UNREACHABLE" -> Right RLWCUnreachable
-        x -> Left ("Unable to parse RouterListWarningCode from: " <> x)
-
-instance ToHttpApiData RouterListWarningCode where
-    toQueryParam = \case
-        RLWCCleanupFailed -> "CLEANUP_FAILED"
-        RLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RouterListWarningCode where
-    parseJSON = parseJSONText "RouterListWarningCode"
-
-instance ToJSON RouterListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupAggregatedListWarningCode
-    = IGALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupAggregatedListWarningCode
-
-instance FromHttpApiData InstanceGroupAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGALWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGALWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupAggregatedListWarningCode where
-    toQueryParam = \case
-        IGALWCCleanupFailed -> "CLEANUP_FAILED"
-        IGALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupAggregatedListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupAggregatedListWarningCode"
-
-instance ToJSON InstanceGroupAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Default network tier to be set.
-data ProjectsSetDefaultNetworkTierRequestNetworkTier
-    = PSDNTRNTPremium
-      -- ^ @PREMIUM@
-    | PSDNTRNTStandard
-      -- ^ @STANDARD@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ProjectsSetDefaultNetworkTierRequestNetworkTier
-
-instance FromHttpApiData ProjectsSetDefaultNetworkTierRequestNetworkTier where
-    parseQueryParam = \case
-        "PREMIUM" -> Right PSDNTRNTPremium
-        "STANDARD" -> Right PSDNTRNTStandard
-        x -> Left ("Unable to parse ProjectsSetDefaultNetworkTierRequestNetworkTier from: " <> x)
-
-instance ToHttpApiData ProjectsSetDefaultNetworkTierRequestNetworkTier where
-    toQueryParam = \case
-        PSDNTRNTPremium -> "PREMIUM"
-        PSDNTRNTStandard -> "STANDARD"
-
-instance FromJSON ProjectsSetDefaultNetworkTierRequestNetworkTier where
-    parseJSON = parseJSONText "ProjectsSetDefaultNetworkTierRequestNetworkTier"
-
-instance ToJSON ProjectsSetDefaultNetworkTierRequestNetworkTier where
-    toJSON = toJSONText
-
--- | Indicates whether the backend service will be used with internal or
--- external load balancing. A backend service created for one type of load
--- balancing cannot be used with the other. Possible values are INTERNAL
--- and EXTERNAL.
-data BackendServiceLoadBalancingScheme
-    = External
-      -- ^ @EXTERNAL@
-    | Internal
-      -- ^ @INTERNAL@
-    | InvalidLoadBalancingScheme
-      -- ^ @INVALID_LOAD_BALANCING_SCHEME@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServiceLoadBalancingScheme
-
-instance FromHttpApiData BackendServiceLoadBalancingScheme where
-    parseQueryParam = \case
-        "EXTERNAL" -> Right External
-        "INTERNAL" -> Right Internal
-        "INVALID_LOAD_BALANCING_SCHEME" -> Right InvalidLoadBalancingScheme
-        x -> Left ("Unable to parse BackendServiceLoadBalancingScheme from: " <> x)
-
-instance ToHttpApiData BackendServiceLoadBalancingScheme where
-    toQueryParam = \case
-        External -> "EXTERNAL"
-        Internal -> "INTERNAL"
-        InvalidLoadBalancingScheme -> "INVALID_LOAD_BALANCING_SCHEME"
-
-instance FromJSON BackendServiceLoadBalancingScheme where
-    parseJSON = parseJSONText "BackendServiceLoadBalancingScheme"
-
-instance ToJSON BackendServiceLoadBalancingScheme where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data TargetTCPProxyProxyHeader
-    = TTPPHNone
-      -- ^ @NONE@
-    | TTPPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetTCPProxyProxyHeader
-
-instance FromHttpApiData TargetTCPProxyProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right TTPPHNone
-        "PROXY_V1" -> Right TTPPHProxyV1
-        x -> Left ("Unable to parse TargetTCPProxyProxyHeader from: " <> x)
-
-instance ToHttpApiData TargetTCPProxyProxyHeader where
-    toQueryParam = \case
-        TTPPHNone -> "NONE"
-        TTPPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON TargetTCPProxyProxyHeader where
-    parseJSON = parseJSONText "TargetTCPProxyProxyHeader"
-
-instance ToJSON TargetTCPProxyProxyHeader where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetVPNGatewayAggregatedListWarningCode
-    = TVGALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TVGALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TVGALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TVGALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TVGALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TVGALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TVGALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TVGALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TVGALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TVGALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TVGALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TVGALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TVGALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TVGALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TVGALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TVGALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TVGALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TVGALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TVGALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TVGALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TVGALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TVGALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TVGALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetVPNGatewayAggregatedListWarningCode
-
-instance FromHttpApiData TargetVPNGatewayAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TVGALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TVGALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TVGALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TVGALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TVGALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TVGALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TVGALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TVGALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TVGALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TVGALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TVGALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TVGALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TVGALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TVGALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TVGALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TVGALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TVGALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TVGALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TVGALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TVGALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TVGALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TVGALWCUndeclaredProperties
-        "UNREACHABLE" -> Right TVGALWCUnreachable
-        x -> Left ("Unable to parse TargetVPNGatewayAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetVPNGatewayAggregatedListWarningCode where
-    toQueryParam = \case
-        TVGALWCCleanupFailed -> "CLEANUP_FAILED"
-        TVGALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TVGALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TVGALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TVGALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TVGALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TVGALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TVGALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TVGALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TVGALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TVGALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TVGALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TVGALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TVGALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TVGALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TVGALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TVGALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TVGALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TVGALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TVGALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TVGALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TVGALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TVGALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetVPNGatewayAggregatedListWarningCode where
-    parseJSON = parseJSONText "TargetVPNGatewayAggregatedListWarningCode"
-
-instance ToJSON TargetVPNGatewayAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the operation, which can be one of the
--- following: PENDING, RUNNING, or DONE.
-data OperationStatus
-    = OSDone
-      -- ^ @DONE@
-    | OSPending
-      -- ^ @PENDING@
-    | OSRunning
-      -- ^ @RUNNING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationStatus
-
-instance FromHttpApiData OperationStatus where
-    parseQueryParam = \case
-        "DONE" -> Right OSDone
-        "PENDING" -> Right OSPending
-        "RUNNING" -> Right OSRunning
-        x -> Left ("Unable to parse OperationStatus from: " <> x)
-
-instance ToHttpApiData OperationStatus where
-    toQueryParam = \case
-        OSDone -> "DONE"
-        OSPending -> "PENDING"
-        OSRunning -> "RUNNING"
-
-instance FromJSON OperationStatus where
-    parseJSON = parseJSONText "OperationStatus"
-
-instance ToJSON OperationStatus where
-    toJSON = toJSONText
-
--- | The log_name to populate in the Cloud Audit Record.
-data LogConfigCloudAuditOptionsLogName
-    = AdminActivity
-      -- ^ @ADMIN_ACTIVITY@
-    | DataAccess
-      -- ^ @DATA_ACCESS@
-    | UnspecifiedLogName
-      -- ^ @UNSPECIFIED_LOG_NAME@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable LogConfigCloudAuditOptionsLogName
-
-instance FromHttpApiData LogConfigCloudAuditOptionsLogName where
-    parseQueryParam = \case
-        "ADMIN_ACTIVITY" -> Right AdminActivity
-        "DATA_ACCESS" -> Right DataAccess
-        "UNSPECIFIED_LOG_NAME" -> Right UnspecifiedLogName
-        x -> Left ("Unable to parse LogConfigCloudAuditOptionsLogName from: " <> x)
-
-instance ToHttpApiData LogConfigCloudAuditOptionsLogName where
-    toQueryParam = \case
-        AdminActivity -> "ADMIN_ACTIVITY"
-        DataAccess -> "DATA_ACCESS"
-        UnspecifiedLogName -> "UNSPECIFIED_LOG_NAME"
-
-instance FromJSON LogConfigCloudAuditOptionsLogName where
-    parseJSON = parseJSONText "LogConfigCloudAuditOptionsLogName"
-
-instance ToJSON LogConfigCloudAuditOptionsLogName where
-    toJSON = toJSONText
-
--- | [Output Only] Current state of this License Code.
-data LicenseCodeState
-    = LCSDisabled
-      -- ^ @DISABLED@
-    | LCSEnabled
-      -- ^ @ENABLED@
-    | LCSRestricted
-      -- ^ @RESTRICTED@
-    | LCSStateUnspecified
-      -- ^ @STATE_UNSPECIFIED@
-    | LCSTerminated
-      -- ^ @TERMINATED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable LicenseCodeState
-
-instance FromHttpApiData LicenseCodeState where
-    parseQueryParam = \case
-        "DISABLED" -> Right LCSDisabled
-        "ENABLED" -> Right LCSEnabled
-        "RESTRICTED" -> Right LCSRestricted
-        "STATE_UNSPECIFIED" -> Right LCSStateUnspecified
-        "TERMINATED" -> Right LCSTerminated
-        x -> Left ("Unable to parse LicenseCodeState from: " <> x)
-
-instance ToHttpApiData LicenseCodeState where
-    toQueryParam = \case
-        LCSDisabled -> "DISABLED"
-        LCSEnabled -> "ENABLED"
-        LCSRestricted -> "RESTRICTED"
-        LCSStateUnspecified -> "STATE_UNSPECIFIED"
-        LCSTerminated -> "TERMINATED"
-
-instance FromJSON LicenseCodeState where
-    parseJSON = parseJSONText "LicenseCodeState"
-
-instance ToJSON LicenseCodeState where
-    toJSON = toJSONText
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, TCP health check follows
--- behavior specified in port and portName fields.
-data TCPHealthCheckPortSpecification
-    = THCPSUseFixedPort
-      -- ^ @USE_FIXED_PORT@
-    | THCPSUseNamedPort
-      -- ^ @USE_NAMED_PORT@
-    | THCPSUseServingPort
-      -- ^ @USE_SERVING_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TCPHealthCheckPortSpecification
-
-instance FromHttpApiData TCPHealthCheckPortSpecification where
-    parseQueryParam = \case
-        "USE_FIXED_PORT" -> Right THCPSUseFixedPort
-        "USE_NAMED_PORT" -> Right THCPSUseNamedPort
-        "USE_SERVING_PORT" -> Right THCPSUseServingPort
-        x -> Left ("Unable to parse TCPHealthCheckPortSpecification from: " <> x)
-
-instance ToHttpApiData TCPHealthCheckPortSpecification where
-    toQueryParam = \case
-        THCPSUseFixedPort -> "USE_FIXED_PORT"
-        THCPSUseNamedPort -> "USE_NAMED_PORT"
-        THCPSUseServingPort -> "USE_SERVING_PORT"
-
-instance FromJSON TCPHealthCheckPortSpecification where
-    parseJSON = parseJSONText "TCPHealthCheckPortSpecification"
-
-instance ToJSON TCPHealthCheckPortSpecification where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetVPNGatewaysScopedListWarningCode
-    = TVGSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TVGSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TVGSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TVGSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TVGSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TVGSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TVGSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TVGSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TVGSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TVGSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TVGSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TVGSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TVGSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TVGSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TVGSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TVGSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TVGSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TVGSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TVGSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TVGSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TVGSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TVGSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TVGSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetVPNGatewaysScopedListWarningCode
-
-instance FromHttpApiData TargetVPNGatewaysScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TVGSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TVGSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TVGSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TVGSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TVGSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TVGSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TVGSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TVGSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TVGSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TVGSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TVGSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TVGSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TVGSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TVGSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TVGSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TVGSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TVGSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TVGSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TVGSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TVGSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TVGSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TVGSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TVGSLWCUnreachable
-        x -> Left ("Unable to parse TargetVPNGatewaysScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetVPNGatewaysScopedListWarningCode where
-    toQueryParam = \case
-        TVGSLWCCleanupFailed -> "CLEANUP_FAILED"
-        TVGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TVGSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TVGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TVGSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TVGSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TVGSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TVGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TVGSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TVGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TVGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TVGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TVGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TVGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TVGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TVGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TVGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TVGSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TVGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TVGSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TVGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TVGSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TVGSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetVPNGatewaysScopedListWarningCode where
-    parseJSON = parseJSONText "TargetVPNGatewaysScopedListWarningCode"
-
-instance ToJSON TargetVPNGatewaysScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of disk creation.
-data DiskStatus
-    = DSCreating
-      -- ^ @CREATING@
-    | DSDeleting
-      -- ^ @DELETING@
-    | DSFailed
-      -- ^ @FAILED@
-    | DSReady
-      -- ^ @READY@
-    | DSRestoring
-      -- ^ @RESTORING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskStatus
-
-instance FromHttpApiData DiskStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right DSCreating
-        "DELETING" -> Right DSDeleting
-        "FAILED" -> Right DSFailed
-        "READY" -> Right DSReady
-        "RESTORING" -> Right DSRestoring
-        x -> Left ("Unable to parse DiskStatus from: " <> x)
-
-instance ToHttpApiData DiskStatus where
-    toQueryParam = \case
-        DSCreating -> "CREATING"
-        DSDeleting -> "DELETING"
-        DSFailed -> "FAILED"
-        DSReady -> "READY"
-        DSRestoring -> "RESTORING"
-
-instance FromJSON DiskStatus where
-    parseJSON = parseJSONText "DiskStatus"
-
-instance ToJSON DiskStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SnapshotListWarningCode
-    = SLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SnapshotListWarningCode
-
-instance FromHttpApiData SnapshotListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SLWCUndeclaredProperties
-        "UNREACHABLE" -> Right SLWCUnreachable
-        x -> Left ("Unable to parse SnapshotListWarningCode from: " <> x)
-
-instance ToHttpApiData SnapshotListWarningCode where
-    toQueryParam = \case
-        SLWCCleanupFailed -> "CLEANUP_FAILED"
-        SLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON SnapshotListWarningCode where
-    parseJSON = parseJSONText "SnapshotListWarningCode"
-
-instance ToJSON SnapshotListWarningCode where
-    toJSON = toJSONText
-
--- | Desired availability domain for the attachment. Only available for type
--- PARTNER, at creation time. For improved reliability, customers should
--- configure a pair of attachments with one per availability domain. The
--- selected availability domain will be provided to the Partner via the
--- pairing key so that the provisioned circuit will lie in the specified
--- domain. If not specified, the value will default to
--- AVAILABILITY_DOMAIN_ANY.
-data InterconnectAttachmentEdgeAvailabilityDomain
-    = AvailabilityDomain1
-      -- ^ @AVAILABILITY_DOMAIN_1@
-    | AvailabilityDomain2
-      -- ^ @AVAILABILITY_DOMAIN_2@
-    | AvailabilityDomainAny
-      -- ^ @AVAILABILITY_DOMAIN_ANY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentEdgeAvailabilityDomain
-
-instance FromHttpApiData InterconnectAttachmentEdgeAvailabilityDomain where
-    parseQueryParam = \case
-        "AVAILABILITY_DOMAIN_1" -> Right AvailabilityDomain1
-        "AVAILABILITY_DOMAIN_2" -> Right AvailabilityDomain2
-        "AVAILABILITY_DOMAIN_ANY" -> Right AvailabilityDomainAny
-        x -> Left ("Unable to parse InterconnectAttachmentEdgeAvailabilityDomain from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentEdgeAvailabilityDomain where
-    toQueryParam = \case
-        AvailabilityDomain1 -> "AVAILABILITY_DOMAIN_1"
-        AvailabilityDomain2 -> "AVAILABILITY_DOMAIN_2"
-        AvailabilityDomainAny -> "AVAILABILITY_DOMAIN_ANY"
-
-instance FromJSON InterconnectAttachmentEdgeAvailabilityDomain where
-    parseJSON = parseJSONText "InterconnectAttachmentEdgeAvailabilityDomain"
-
-instance ToJSON InterconnectAttachmentEdgeAvailabilityDomain where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the instance. This field is empty when the
--- instance does not exist.
-data ManagedInstanceInstanceStatus
-    = MIISProvisioning
-      -- ^ @PROVISIONING@
-    | MIISRepairing
-      -- ^ @REPAIRING@
-    | MIISRunning
-      -- ^ @RUNNING@
-    | MIISStaging
-      -- ^ @STAGING@
-    | MIISStopped
-      -- ^ @STOPPED@
-    | MIISStopping
-      -- ^ @STOPPING@
-    | MIISSuspended
-      -- ^ @SUSPENDED@
-    | MIISSuspending
-      -- ^ @SUSPENDING@
-    | MIISTerminated
-      -- ^ @TERMINATED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ManagedInstanceInstanceStatus
-
-instance FromHttpApiData ManagedInstanceInstanceStatus where
-    parseQueryParam = \case
-        "PROVISIONING" -> Right MIISProvisioning
-        "REPAIRING" -> Right MIISRepairing
-        "RUNNING" -> Right MIISRunning
-        "STAGING" -> Right MIISStaging
-        "STOPPED" -> Right MIISStopped
-        "STOPPING" -> Right MIISStopping
-        "SUSPENDED" -> Right MIISSuspended
-        "SUSPENDING" -> Right MIISSuspending
-        "TERMINATED" -> Right MIISTerminated
-        x -> Left ("Unable to parse ManagedInstanceInstanceStatus from: " <> x)
-
-instance ToHttpApiData ManagedInstanceInstanceStatus where
-    toQueryParam = \case
-        MIISProvisioning -> "PROVISIONING"
-        MIISRepairing -> "REPAIRING"
-        MIISRunning -> "RUNNING"
-        MIISStaging -> "STAGING"
-        MIISStopped -> "STOPPED"
-        MIISStopping -> "STOPPING"
-        MIISSuspended -> "SUSPENDED"
-        MIISSuspending -> "SUSPENDING"
-        MIISTerminated -> "TERMINATED"
-
-instance FromJSON ManagedInstanceInstanceStatus where
-    parseJSON = parseJSONText "ManagedInstanceInstanceStatus"
-
-instance ToJSON ManagedInstanceInstanceStatus where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data HTTPHealthCheckProxyHeader
-    = HTTPHCPHNone
-      -- ^ @NONE@
-    | HTTPHCPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPHealthCheckProxyHeader
-
-instance FromHttpApiData HTTPHealthCheckProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right HTTPHCPHNone
-        "PROXY_V1" -> Right HTTPHCPHProxyV1
-        x -> Left ("Unable to parse HTTPHealthCheckProxyHeader from: " <> x)
-
-instance ToHttpApiData HTTPHealthCheckProxyHeader where
-    toQueryParam = \case
-        HTTPHCPHNone -> "NONE"
-        HTTPHCPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON HTTPHealthCheckProxyHeader where
-    parseJSON = parseJSONText "HTTPHealthCheckProxyHeader"
-
-instance ToJSON HTTPHealthCheckProxyHeader where
-    toJSON = toJSONText
-
--- | [Output Only] Continent for this location.
-data InterconnectLocationContinent
-    = Africa
-      -- ^ @AFRICA@
-    | AsiaPac
-      -- ^ @ASIA_PAC@
-    | CAfrica
-      -- ^ @C_AFRICA@
-    | CAsiaPac
-      -- ^ @C_ASIA_PAC@
-    | CEurope
-      -- ^ @C_EUROPE@
-    | CNorthAmerica
-      -- ^ @C_NORTH_AMERICA@
-    | CSouthAmerica
-      -- ^ @C_SOUTH_AMERICA@
-    | Europe
-      -- ^ @EUROPE@
-    | NorthAmerica
-      -- ^ @NORTH_AMERICA@
-    | SouthAmerica
-      -- ^ @SOUTH_AMERICA@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectLocationContinent
-
-instance FromHttpApiData InterconnectLocationContinent where
-    parseQueryParam = \case
-        "AFRICA" -> Right Africa
-        "ASIA_PAC" -> Right AsiaPac
-        "C_AFRICA" -> Right CAfrica
-        "C_ASIA_PAC" -> Right CAsiaPac
-        "C_EUROPE" -> Right CEurope
-        "C_NORTH_AMERICA" -> Right CNorthAmerica
-        "C_SOUTH_AMERICA" -> Right CSouthAmerica
-        "EUROPE" -> Right Europe
-        "NORTH_AMERICA" -> Right NorthAmerica
-        "SOUTH_AMERICA" -> Right SouthAmerica
-        x -> Left ("Unable to parse InterconnectLocationContinent from: " <> x)
-
-instance ToHttpApiData InterconnectLocationContinent where
-    toQueryParam = \case
-        Africa -> "AFRICA"
-        AsiaPac -> "ASIA_PAC"
-        CAfrica -> "C_AFRICA"
-        CAsiaPac -> "C_ASIA_PAC"
-        CEurope -> "C_EUROPE"
-        CNorthAmerica -> "C_NORTH_AMERICA"
-        CSouthAmerica -> "C_SOUTH_AMERICA"
-        Europe -> "EUROPE"
-        NorthAmerica -> "NORTH_AMERICA"
-        SouthAmerica -> "SOUTH_AMERICA"
-
-instance FromJSON InterconnectLocationContinent where
-    parseJSON = parseJSONText "InterconnectLocationContinent"
-
-instance ToJSON InterconnectLocationContinent where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data VMEndpointNATMAppingsListWarningCode
-    = VMENATMALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | VMENATMALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | VMENATMALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | VMENATMALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | VMENATMALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | VMENATMALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | VMENATMALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | VMENATMALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | VMENATMALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | VMENATMALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | VMENATMALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | VMENATMALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | VMENATMALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | VMENATMALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | VMENATMALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | VMENATMALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | VMENATMALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | VMENATMALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | VMENATMALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | VMENATMALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | VMENATMALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | VMENATMALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | VMENATMALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable VMEndpointNATMAppingsListWarningCode
-
-instance FromHttpApiData VMEndpointNATMAppingsListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right VMENATMALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right VMENATMALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right VMENATMALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right VMENATMALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right VMENATMALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right VMENATMALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right VMENATMALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right VMENATMALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right VMENATMALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right VMENATMALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right VMENATMALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right VMENATMALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right VMENATMALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right VMENATMALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right VMENATMALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right VMENATMALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right VMENATMALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right VMENATMALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right VMENATMALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right VMENATMALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right VMENATMALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right VMENATMALWCUndeclaredProperties
-        "UNREACHABLE" -> Right VMENATMALWCUnreachable
-        x -> Left ("Unable to parse VMEndpointNATMAppingsListWarningCode from: " <> x)
-
-instance ToHttpApiData VMEndpointNATMAppingsListWarningCode where
-    toQueryParam = \case
-        VMENATMALWCCleanupFailed -> "CLEANUP_FAILED"
-        VMENATMALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        VMENATMALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        VMENATMALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        VMENATMALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        VMENATMALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        VMENATMALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        VMENATMALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        VMENATMALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        VMENATMALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        VMENATMALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        VMENATMALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        VMENATMALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        VMENATMALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        VMENATMALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        VMENATMALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        VMENATMALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        VMENATMALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        VMENATMALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        VMENATMALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        VMENATMALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        VMENATMALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        VMENATMALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON VMEndpointNATMAppingsListWarningCode where
-    parseJSON = parseJSONText "VMEndpointNATMAppingsListWarningCode"
-
-instance ToJSON VMEndpointNATMAppingsListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the node template. One of the following
--- values: CREATING, READY, and DELETING.
-data NodeTemplateStatus
-    = NTSCreating
-      -- ^ @CREATING@
-    | NTSDeleting
-      -- ^ @DELETING@
-    | NTSInvalid
-      -- ^ @INVALID@
-    | NTSReady
-      -- ^ @READY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTemplateStatus
-
-instance FromHttpApiData NodeTemplateStatus where
-    parseQueryParam = \case
-        "CREATING" -> Right NTSCreating
-        "DELETING" -> Right NTSDeleting
-        "INVALID" -> Right NTSInvalid
-        "READY" -> Right NTSReady
-        x -> Left ("Unable to parse NodeTemplateStatus from: " <> x)
-
-instance ToHttpApiData NodeTemplateStatus where
-    toQueryParam = \case
-        NTSCreating -> "CREATING"
-        NTSDeleting -> "DELETING"
-        NTSInvalid -> "INVALID"
-        NTSReady -> "READY"
-
-instance FromJSON NodeTemplateStatus where
-    parseJSON = parseJSONText "NodeTemplateStatus"
-
-instance ToJSON NodeTemplateStatus where
-    toJSON = toJSONText
-
--- | The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
--- If not specified, the default is to attach the disk in READ_WRITE mode.
-data AttachedDiskMode
-    = ReadOnly
-      -- ^ @READ_ONLY@
-    | ReadWrite
-      -- ^ @READ_WRITE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AttachedDiskMode
-
-instance FromHttpApiData AttachedDiskMode where
-    parseQueryParam = \case
-        "READ_ONLY" -> Right ReadOnly
-        "READ_WRITE" -> Right ReadWrite
-        x -> Left ("Unable to parse AttachedDiskMode from: " <> x)
-
-instance ToHttpApiData AttachedDiskMode where
-    toQueryParam = \case
-        ReadOnly -> "READ_ONLY"
-        ReadWrite -> "READ_WRITE"
-
-instance FromJSON AttachedDiskMode where
-    parseJSON = parseJSONText "AttachedDiskMode"
-
-instance ToJSON AttachedDiskMode where
-    toJSON = toJSONText
-
-data InstanceGroupManagerUpdatePolicyType
-    = Opportunistic
-      -- ^ @OPPORTUNISTIC@
-    | Proactive
-      -- ^ @PROACTIVE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupManagerUpdatePolicyType
-
-instance FromHttpApiData InstanceGroupManagerUpdatePolicyType where
-    parseQueryParam = \case
-        "OPPORTUNISTIC" -> Right Opportunistic
-        "PROACTIVE" -> Right Proactive
-        x -> Left ("Unable to parse InstanceGroupManagerUpdatePolicyType from: " <> x)
-
-instance ToHttpApiData InstanceGroupManagerUpdatePolicyType where
-    toQueryParam = \case
-        Opportunistic -> "OPPORTUNISTIC"
-        Proactive -> "PROACTIVE"
-
-instance FromJSON InstanceGroupManagerUpdatePolicyType where
-    parseJSON = parseJSONText "InstanceGroupManagerUpdatePolicyType"
-
-instance ToJSON InstanceGroupManagerUpdatePolicyType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetVPNGatewayListWarningCode
-    = TVGLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TVGLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TVGLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TVGLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TVGLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TVGLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TVGLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TVGLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TVGLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TVGLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TVGLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TVGLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TVGLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TVGLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TVGLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TVGLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TVGLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TVGLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TVGLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TVGLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TVGLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TVGLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TVGLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetVPNGatewayListWarningCode
-
-instance FromHttpApiData TargetVPNGatewayListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TVGLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TVGLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TVGLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TVGLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TVGLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TVGLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TVGLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TVGLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TVGLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TVGLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TVGLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TVGLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TVGLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TVGLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TVGLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TVGLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TVGLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TVGLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TVGLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TVGLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TVGLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TVGLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TVGLWCUnreachable
-        x -> Left ("Unable to parse TargetVPNGatewayListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetVPNGatewayListWarningCode where
-    toQueryParam = \case
-        TVGLWCCleanupFailed -> "CLEANUP_FAILED"
-        TVGLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TVGLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TVGLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TVGLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TVGLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TVGLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TVGLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TVGLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TVGLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TVGLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TVGLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TVGLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TVGLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TVGLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TVGLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TVGLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TVGLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TVGLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TVGLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TVGLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TVGLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TVGLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetVPNGatewayListWarningCode where
-    parseJSON = parseJSONText "TargetVPNGatewayListWarningCode"
-
-instance ToJSON TargetVPNGatewayListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceTemplateListWarningCode
-    = ITLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ITLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ITLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ITLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ITLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ITLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ITLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ITLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ITLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ITLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ITLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ITLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ITLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ITLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ITLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ITLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ITLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ITLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ITLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ITLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ITLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ITLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ITLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceTemplateListWarningCode
-
-instance FromHttpApiData InstanceTemplateListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ITLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ITLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ITLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ITLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ITLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ITLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ITLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ITLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ITLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ITLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ITLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ITLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ITLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ITLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ITLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ITLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ITLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ITLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ITLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ITLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ITLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ITLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ITLWCUnreachable
-        x -> Left ("Unable to parse InstanceTemplateListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceTemplateListWarningCode where
-    toQueryParam = \case
-        ITLWCCleanupFailed -> "CLEANUP_FAILED"
-        ITLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ITLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ITLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ITLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ITLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ITLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ITLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ITLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ITLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ITLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ITLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ITLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ITLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ITLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ITLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ITLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ITLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ITLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ITLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ITLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ITLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ITLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceTemplateListWarningCode where
-    parseJSON = parseJSONText "InstanceTemplateListWarningCode"
-
-instance ToJSON InstanceTemplateListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetSSLProxyListWarningCode
-    = TSPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TSPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TSPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TSPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TSPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TSPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TSPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TSPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TSPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TSPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TSPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TSPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TSPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TSPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TSPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TSPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TSPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TSPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TSPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TSPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TSPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TSPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TSPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetSSLProxyListWarningCode
-
-instance FromHttpApiData TargetSSLProxyListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TSPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TSPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TSPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TSPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TSPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TSPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TSPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TSPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TSPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TSPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TSPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TSPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TSPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TSPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TSPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TSPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TSPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TSPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TSPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TSPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TSPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TSPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TSPLWCUnreachable
-        x -> Left ("Unable to parse TargetSSLProxyListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetSSLProxyListWarningCode where
-    toQueryParam = \case
-        TSPLWCCleanupFailed -> "CLEANUP_FAILED"
-        TSPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TSPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TSPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TSPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TSPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TSPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TSPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TSPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TSPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TSPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TSPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TSPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TSPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TSPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TSPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TSPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TSPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TSPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TSPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TSPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TSPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TSPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetSSLProxyListWarningCode where
-    parseJSON = parseJSONText "TargetSSLProxyListWarningCode"
-
-instance ToJSON TargetSSLProxyListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] Status of the region, either UP or DOWN.
-data RegionStatus
-    = Down
-      -- ^ @DOWN@
-    | UP
-      -- ^ @UP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionStatus
-
-instance FromHttpApiData RegionStatus where
-    parseQueryParam = \case
-        "DOWN" -> Right Down
-        "UP" -> Right UP
-        x -> Left ("Unable to parse RegionStatus from: " <> x)
-
-instance ToHttpApiData RegionStatus where
-    toQueryParam = \case
-        Down -> "DOWN"
-        UP -> "UP"
-
-instance FromJSON RegionStatus where
-    parseJSON = parseJSONText "RegionStatus"
-
-instance ToJSON RegionStatus where
-    toJSON = toJSONText
-
--- | Provisioned bandwidth capacity for the interconnectAttachment. Can be
--- set by the partner to update the customer\'s provisioned bandwidth.
--- Output only for PARTNER type, mutable for PARTNER_PROVIDER and
--- DEDICATED.
-data InterconnectAttachmentBandwidth
-    = Bps100M
-      -- ^ @BPS_100M@
-    | Bps10G
-      -- ^ @BPS_10G@
-    | Bps1G
-      -- ^ @BPS_1G@
-    | Bps200M
-      -- ^ @BPS_200M@
-    | Bps2G
-      -- ^ @BPS_2G@
-    | Bps300M
-      -- ^ @BPS_300M@
-    | Bps400M
-      -- ^ @BPS_400M@
-    | Bps500M
-      -- ^ @BPS_500M@
-    | Bps50M
-      -- ^ @BPS_50M@
-    | Bps5G
-      -- ^ @BPS_5G@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentBandwidth
-
-instance FromHttpApiData InterconnectAttachmentBandwidth where
-    parseQueryParam = \case
-        "BPS_100M" -> Right Bps100M
-        "BPS_10G" -> Right Bps10G
-        "BPS_1G" -> Right Bps1G
-        "BPS_200M" -> Right Bps200M
-        "BPS_2G" -> Right Bps2G
-        "BPS_300M" -> Right Bps300M
-        "BPS_400M" -> Right Bps400M
-        "BPS_500M" -> Right Bps500M
-        "BPS_50M" -> Right Bps50M
-        "BPS_5G" -> Right Bps5G
-        x -> Left ("Unable to parse InterconnectAttachmentBandwidth from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentBandwidth where
-    toQueryParam = \case
-        Bps100M -> "BPS_100M"
-        Bps10G -> "BPS_10G"
-        Bps1G -> "BPS_1G"
-        Bps200M -> "BPS_200M"
-        Bps2G -> "BPS_2G"
-        Bps300M -> "BPS_300M"
-        Bps400M -> "BPS_400M"
-        Bps500M -> "BPS_500M"
-        Bps50M -> "BPS_50M"
-        Bps5G -> "BPS_5G"
-
-instance FromJSON InterconnectAttachmentBandwidth where
-    parseJSON = parseJSONText "InterconnectAttachmentBandwidth"
-
-instance ToJSON InterconnectAttachmentBandwidth where
-    toJSON = toJSONText
-
--- | The new type of proxy header to append before sending data to the
--- backend. NONE or PROXY_V1 are allowed.
-data TargetSSLProxiesSetProxyHeaderRequestProxyHeader
-    = TSPSPHRPHNone
-      -- ^ @NONE@
-    | TSPSPHRPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetSSLProxiesSetProxyHeaderRequestProxyHeader
-
-instance FromHttpApiData TargetSSLProxiesSetProxyHeaderRequestProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right TSPSPHRPHNone
-        "PROXY_V1" -> Right TSPSPHRPHProxyV1
-        x -> Left ("Unable to parse TargetSSLProxiesSetProxyHeaderRequestProxyHeader from: " <> x)
-
-instance ToHttpApiData TargetSSLProxiesSetProxyHeaderRequestProxyHeader where
-    toQueryParam = \case
-        TSPSPHRPHNone -> "NONE"
-        TSPSPHRPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON TargetSSLProxiesSetProxyHeaderRequestProxyHeader where
-    parseJSON = parseJSONText "TargetSSLProxiesSetProxyHeaderRequestProxyHeader"
-
-instance ToJSON TargetSSLProxiesSetProxyHeaderRequestProxyHeader where
-    toJSON = toJSONText
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTP2 health check follows
--- behavior specified in port and portName fields.
-data HTTP2HealthCheckPortSpecification
-    = HTTPHCPSUseFixedPort
-      -- ^ @USE_FIXED_PORT@
-    | HTTPHCPSUseNamedPort
-      -- ^ @USE_NAMED_PORT@
-    | HTTPHCPSUseServingPort
-      -- ^ @USE_SERVING_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTP2HealthCheckPortSpecification
-
-instance FromHttpApiData HTTP2HealthCheckPortSpecification where
-    parseQueryParam = \case
-        "USE_FIXED_PORT" -> Right HTTPHCPSUseFixedPort
-        "USE_NAMED_PORT" -> Right HTTPHCPSUseNamedPort
-        "USE_SERVING_PORT" -> Right HTTPHCPSUseServingPort
-        x -> Left ("Unable to parse HTTP2HealthCheckPortSpecification from: " <> x)
-
-instance ToHttpApiData HTTP2HealthCheckPortSpecification where
-    toQueryParam = \case
-        HTTPHCPSUseFixedPort -> "USE_FIXED_PORT"
-        HTTPHCPSUseNamedPort -> "USE_NAMED_PORT"
-        HTTPHCPSUseServingPort -> "USE_SERVING_PORT"
-
-instance FromJSON HTTP2HealthCheckPortSpecification where
-    parseJSON = parseJSONText "HTTP2HealthCheckPortSpecification"
-
-instance ToJSON HTTP2HealthCheckPortSpecification where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceListReferrersWarningCode
-    = ILRWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ILRWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ILRWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ILRWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ILRWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ILRWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ILRWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ILRWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ILRWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ILRWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ILRWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ILRWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ILRWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ILRWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ILRWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ILRWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ILRWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ILRWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ILRWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ILRWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ILRWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ILRWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ILRWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceListReferrersWarningCode
-
-instance FromHttpApiData InstanceListReferrersWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ILRWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ILRWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ILRWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ILRWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ILRWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ILRWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ILRWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ILRWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ILRWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ILRWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ILRWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ILRWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ILRWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ILRWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ILRWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ILRWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ILRWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ILRWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ILRWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ILRWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ILRWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ILRWCUndeclaredProperties
-        "UNREACHABLE" -> Right ILRWCUnreachable
-        x -> Left ("Unable to parse InstanceListReferrersWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceListReferrersWarningCode where
-    toQueryParam = \case
-        ILRWCCleanupFailed -> "CLEANUP_FAILED"
-        ILRWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ILRWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ILRWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ILRWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ILRWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ILRWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ILRWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ILRWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ILRWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ILRWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ILRWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ILRWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ILRWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ILRWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ILRWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ILRWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ILRWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ILRWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ILRWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ILRWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ILRWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ILRWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceListReferrersWarningCode where
-    parseJSON = parseJSONText "InstanceListReferrersWarningCode"
-
-instance ToJSON InstanceListReferrersWarningCode where
-    toJSON = toJSONText
-
--- | An operator to apply the subject with.
-data ConditionOp
-    = Discharged
-      -- ^ @DISCHARGED@
-    | Equals
-      -- ^ @EQUALS@
-    | IN
-      -- ^ @IN@
-    | NotEquals
-      -- ^ @NOT_EQUALS@
-    | NotIn
-      -- ^ @NOT_IN@
-    | NoOp
-      -- ^ @NO_OP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ConditionOp
-
-instance FromHttpApiData ConditionOp where
-    parseQueryParam = \case
-        "DISCHARGED" -> Right Discharged
-        "EQUALS" -> Right Equals
-        "IN" -> Right IN
-        "NOT_EQUALS" -> Right NotEquals
-        "NOT_IN" -> Right NotIn
-        "NO_OP" -> Right NoOp
-        x -> Left ("Unable to parse ConditionOp from: " <> x)
-
-instance ToHttpApiData ConditionOp where
-    toQueryParam = \case
-        Discharged -> "DISCHARGED"
-        Equals -> "EQUALS"
-        IN -> "IN"
-        NotEquals -> "NOT_EQUALS"
-        NotIn -> "NOT_IN"
-        NoOp -> "NO_OP"
-
-instance FromJSON ConditionOp where
-    parseJSON = parseJSONText "ConditionOp"
-
-instance ToJSON ConditionOp where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RouteListWarningCode
-    = RCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouteListWarningCode
-
-instance FromHttpApiData RouteListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RUndeclaredProperties
-        "UNREACHABLE" -> Right RUnreachable
-        x -> Left ("Unable to parse RouteListWarningCode from: " <> x)
-
-instance ToHttpApiData RouteListWarningCode where
-    toQueryParam = \case
-        RCleanupFailed -> "CLEANUP_FAILED"
-        RDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RUnreachable -> "UNREACHABLE"
-
-instance FromJSON RouteListWarningCode where
-    parseJSON = parseJSONText "RouteListWarningCode"
-
-instance ToJSON RouteListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the VPN tunnel, which can be one of the
--- following: - PROVISIONING: Resource is being allocated for the VPN
--- tunnel. - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related
--- configs from the user. Network, TargetVpnGateway, VpnTunnel,
--- ForwardingRule, and Route resources are needed to setup the VPN tunnel.
--- - FIRST_HANDSHAKE: Successful first handshake with the peer VPN. -
--- ESTABLISHED: Secure session is successfully established with the peer
--- VPN. - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS -
--- AUTHORIZATION_ERROR: Auth error (for example, bad shared secret). -
--- NEGOTIATION_FAILURE: Handshake failed. - DEPROVISIONING: Resources are
--- being deallocated for the VPN tunnel. - FAILED: Tunnel creation has
--- failed and the tunnel is not ready to be used.
-data VPNTunnelStatus
-    = VTSAllocatingResources
-      -- ^ @ALLOCATING_RESOURCES@
-    | VTSAuthorizationError
-      -- ^ @AUTHORIZATION_ERROR@
-    | VTSDeprovisioning
-      -- ^ @DEPROVISIONING@
-    | VTSEstablished
-      -- ^ @ESTABLISHED@
-    | VTSFailed
-      -- ^ @FAILED@
-    | VTSFirstHandshake
-      -- ^ @FIRST_HANDSHAKE@
-    | VTSNegotiationFailure
-      -- ^ @NEGOTIATION_FAILURE@
-    | VTSNetworkError
-      -- ^ @NETWORK_ERROR@
-    | VTSNoIncomingPackets
-      -- ^ @NO_INCOMING_PACKETS@
-    | VTSProvisioning
-      -- ^ @PROVISIONING@
-    | VTSRejected
-      -- ^ @REJECTED@
-    | VTSWaitingForFullConfig
-      -- ^ @WAITING_FOR_FULL_CONFIG@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable VPNTunnelStatus
-
-instance FromHttpApiData VPNTunnelStatus where
-    parseQueryParam = \case
-        "ALLOCATING_RESOURCES" -> Right VTSAllocatingResources
-        "AUTHORIZATION_ERROR" -> Right VTSAuthorizationError
-        "DEPROVISIONING" -> Right VTSDeprovisioning
-        "ESTABLISHED" -> Right VTSEstablished
-        "FAILED" -> Right VTSFailed
-        "FIRST_HANDSHAKE" -> Right VTSFirstHandshake
-        "NEGOTIATION_FAILURE" -> Right VTSNegotiationFailure
-        "NETWORK_ERROR" -> Right VTSNetworkError
-        "NO_INCOMING_PACKETS" -> Right VTSNoIncomingPackets
-        "PROVISIONING" -> Right VTSProvisioning
-        "REJECTED" -> Right VTSRejected
-        "WAITING_FOR_FULL_CONFIG" -> Right VTSWaitingForFullConfig
-        x -> Left ("Unable to parse VPNTunnelStatus from: " <> x)
-
-instance ToHttpApiData VPNTunnelStatus where
-    toQueryParam = \case
-        VTSAllocatingResources -> "ALLOCATING_RESOURCES"
-        VTSAuthorizationError -> "AUTHORIZATION_ERROR"
-        VTSDeprovisioning -> "DEPROVISIONING"
-        VTSEstablished -> "ESTABLISHED"
-        VTSFailed -> "FAILED"
-        VTSFirstHandshake -> "FIRST_HANDSHAKE"
-        VTSNegotiationFailure -> "NEGOTIATION_FAILURE"
-        VTSNetworkError -> "NETWORK_ERROR"
-        VTSNoIncomingPackets -> "NO_INCOMING_PACKETS"
-        VTSProvisioning -> "PROVISIONING"
-        VTSRejected -> "REJECTED"
-        VTSWaitingForFullConfig -> "WAITING_FOR_FULL_CONFIG"
-
-instance FromJSON VPNTunnelStatus where
-    parseJSON = parseJSONText "VPNTunnelStatus"
-
-instance ToJSON VPNTunnelStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SSLCertificateListWarningCode
-    = SCLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SCLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SCLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SCLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SCLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SCLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SCLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SCLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SCLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SCLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SCLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SCLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SCLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SCLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SCLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SCLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SCLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SCLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SCLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SCLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SCLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SCLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SCLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLCertificateListWarningCode
-
-instance FromHttpApiData SSLCertificateListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SCLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SCLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SCLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SCLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SCLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SCLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SCLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SCLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SCLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SCLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SCLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SCLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SCLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SCLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SCLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SCLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SCLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SCLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SCLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SCLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SCLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SCLWCUndeclaredProperties
-        "UNREACHABLE" -> Right SCLWCUnreachable
-        x -> Left ("Unable to parse SSLCertificateListWarningCode from: " <> x)
-
-instance ToHttpApiData SSLCertificateListWarningCode where
-    toQueryParam = \case
-        SCLWCCleanupFailed -> "CLEANUP_FAILED"
-        SCLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SCLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SCLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SCLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SCLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SCLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SCLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SCLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SCLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SCLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SCLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SCLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SCLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SCLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SCLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SCLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SCLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SCLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SCLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SCLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SCLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SCLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON SSLCertificateListWarningCode where
-    parseJSON = parseJSONText "SSLCertificateListWarningCode"
-
-instance ToJSON SSLCertificateListWarningCode where
-    toJSON = toJSONText
-
--- | Specifies whether to include the disk and what image to use. Possible
--- values are: - source-image: to use the same image that was used to
--- create the source instance\'s corresponding disk. Applicable to the boot
--- disk and additional read-write disks. - source-image-family: to use the
--- same image family that was used to create the source instance\'s
--- corresponding disk. Applicable to the boot disk and additional
--- read-write disks. - custom-image: to use a user-provided image url for
--- disk creation. Applicable to the boot disk and additional read-write
--- disks. - attach-read-only: to attach a read-only disk. Applicable to
--- read-only disks. - do-not-include: to exclude a disk from the template.
--- Applicable to additional read-write disks, local SSDs, and read-only
--- disks.
-data DiskInstantiationConfigInstantiateFrom
-    = AttachReadOnly
-      -- ^ @ATTACH_READ_ONLY@
-    | Blank
-      -- ^ @BLANK@
-    | CustomImage
-      -- ^ @CUSTOM_IMAGE@
-    | Default
-      -- ^ @DEFAULT@
-    | DoNotInclude
-      -- ^ @DO_NOT_INCLUDE@
-    | SourceImage
-      -- ^ @SOURCE_IMAGE@
-    | SourceImageFamily
-      -- ^ @SOURCE_IMAGE_FAMILY@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskInstantiationConfigInstantiateFrom
-
-instance FromHttpApiData DiskInstantiationConfigInstantiateFrom where
-    parseQueryParam = \case
-        "ATTACH_READ_ONLY" -> Right AttachReadOnly
-        "BLANK" -> Right Blank
-        "CUSTOM_IMAGE" -> Right CustomImage
-        "DEFAULT" -> Right Default
-        "DO_NOT_INCLUDE" -> Right DoNotInclude
-        "SOURCE_IMAGE" -> Right SourceImage
-        "SOURCE_IMAGE_FAMILY" -> Right SourceImageFamily
-        x -> Left ("Unable to parse DiskInstantiationConfigInstantiateFrom from: " <> x)
-
-instance ToHttpApiData DiskInstantiationConfigInstantiateFrom where
-    toQueryParam = \case
-        AttachReadOnly -> "ATTACH_READ_ONLY"
-        Blank -> "BLANK"
-        CustomImage -> "CUSTOM_IMAGE"
-        Default -> "DEFAULT"
-        DoNotInclude -> "DO_NOT_INCLUDE"
-        SourceImage -> "SOURCE_IMAGE"
-        SourceImageFamily -> "SOURCE_IMAGE_FAMILY"
-
-instance FromJSON DiskInstantiationConfigInstantiateFrom where
-    parseJSON = parseJSONText "DiskInstantiationConfigInstantiateFrom"
-
-instance ToJSON DiskInstantiationConfigInstantiateFrom where
-    toJSON = toJSONText
-
--- | Specifies the balancing mode for this backend. For global HTTP(S) or
--- TCP\/SSL load balancing, the default is UTILIZATION. Valid values are
--- UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP\/SSL). For
--- Internal Load Balancing, the default and only supported mode is
--- CONNECTION.
-data BackendBalancingMode
-    = Connection
-      -- ^ @CONNECTION@
-    | Rate
-      -- ^ @RATE@
-    | Utilization
-      -- ^ @UTILIZATION@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendBalancingMode
-
-instance FromHttpApiData BackendBalancingMode where
-    parseQueryParam = \case
-        "CONNECTION" -> Right Connection
-        "RATE" -> Right Rate
-        "UTILIZATION" -> Right Utilization
-        x -> Left ("Unable to parse BackendBalancingMode from: " <> x)
-
-instance ToHttpApiData BackendBalancingMode where
-    toQueryParam = \case
-        Connection -> "CONNECTION"
-        Rate -> "RATE"
-        Utilization -> "UTILIZATION"
-
-instance FromJSON BackendBalancingMode where
-    parseJSON = parseJSONText "BackendBalancingMode"
-
-instance ToJSON BackendBalancingMode where
-    toJSON = toJSONText
-
-data RouterBGPAdvertisedGroupsItem
-    = RBAGIAllSubnets
-      -- ^ @ALL_SUBNETS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterBGPAdvertisedGroupsItem
-
-instance FromHttpApiData RouterBGPAdvertisedGroupsItem where
-    parseQueryParam = \case
-        "ALL_SUBNETS" -> Right RBAGIAllSubnets
-        x -> Left ("Unable to parse RouterBGPAdvertisedGroupsItem from: " <> x)
-
-instance ToHttpApiData RouterBGPAdvertisedGroupsItem where
-    toQueryParam = \case
-        RBAGIAllSubnets -> "ALL_SUBNETS"
-
-instance FromJSON RouterBGPAdvertisedGroupsItem where
-    parseJSON = parseJSONText "RouterBGPAdvertisedGroupsItem"
-
-instance ToJSON RouterBGPAdvertisedGroupsItem where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NetworkEndpointGroupListWarningCode
-    = NEGLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NEGLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NEGLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NEGLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NEGLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NEGLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NEGLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NEGLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NEGLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NEGLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NEGLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NEGLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NEGLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NEGLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NEGLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NEGLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NEGLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NEGLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NEGLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NEGLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NEGLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NEGLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NEGLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupListWarningCode
-
-instance FromHttpApiData NetworkEndpointGroupListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NEGLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NEGLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NEGLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NEGLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NEGLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NEGLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NEGLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NEGLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NEGLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NEGLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NEGLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NEGLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NEGLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NEGLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NEGLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NEGLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NEGLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NEGLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NEGLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NEGLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NEGLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NEGLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NEGLWCUnreachable
-        x -> Left ("Unable to parse NetworkEndpointGroupListWarningCode from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupListWarningCode where
-    toQueryParam = \case
-        NEGLWCCleanupFailed -> "CLEANUP_FAILED"
-        NEGLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NEGLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NEGLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NEGLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NEGLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NEGLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NEGLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NEGLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NEGLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NEGLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NEGLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NEGLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NEGLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NEGLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NEGLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NEGLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NEGLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NEGLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NEGLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NEGLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NEGLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NEGLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NetworkEndpointGroupListWarningCode where
-    parseJSON = parseJSONText "NetworkEndpointGroupListWarningCode"
-
-instance ToJSON NetworkEndpointGroupListWarningCode where
-    toJSON = toJSONText
-
--- | The network-wide routing mode to use. If set to REGIONAL, this
--- network\'s cloud routers will only advertise routes with subnets of this
--- network in the same region as the router. If set to GLOBAL, this
--- network\'s cloud routers will advertise routes with all subnets of this
--- network, across regions.
-data NetworkRoutingConfigRoutingMode
-    = NRCRMGlobal
-      -- ^ @GLOBAL@
-    | NRCRMRegional
-      -- ^ @REGIONAL@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkRoutingConfigRoutingMode
-
-instance FromHttpApiData NetworkRoutingConfigRoutingMode where
-    parseQueryParam = \case
-        "GLOBAL" -> Right NRCRMGlobal
-        "REGIONAL" -> Right NRCRMRegional
-        x -> Left ("Unable to parse NetworkRoutingConfigRoutingMode from: " <> x)
-
-instance ToHttpApiData NetworkRoutingConfigRoutingMode where
-    toQueryParam = \case
-        NRCRMGlobal -> "GLOBAL"
-        NRCRMRegional -> "REGIONAL"
-
-instance FromJSON NetworkRoutingConfigRoutingMode where
-    parseJSON = parseJSONText "NetworkRoutingConfigRoutingMode"
-
-instance ToJSON NetworkRoutingConfigRoutingMode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SubnetworkListWarningCode
-    = SCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SubnetworkListWarningCode
-
-instance FromHttpApiData SubnetworkListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SUndeclaredProperties
-        "UNREACHABLE" -> Right SUnreachable
-        x -> Left ("Unable to parse SubnetworkListWarningCode from: " <> x)
-
-instance ToHttpApiData SubnetworkListWarningCode where
-    toQueryParam = \case
-        SCleanupFailed -> "CLEANUP_FAILED"
-        SDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SUnreachable -> "UNREACHABLE"
-
-instance FromJSON SubnetworkListWarningCode where
-    parseJSON = parseJSONText "SubnetworkListWarningCode"
-
-instance ToJSON SubnetworkListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] Status of the commitment with regards to eventual
--- expiration (each commitment has an end date defined). One of the
--- following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
-data CommitmentStatus
-    = CSActive
-      -- ^ @ACTIVE@
-    | CSCreating
-      -- ^ @CREATING@
-    | CSExpired
-      -- ^ @EXPIRED@
-    | CSNotYetActive
-      -- ^ @NOT_YET_ACTIVE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommitmentStatus
-
-instance FromHttpApiData CommitmentStatus where
-    parseQueryParam = \case
-        "ACTIVE" -> Right CSActive
-        "CREATING" -> Right CSCreating
-        "EXPIRED" -> Right CSExpired
-        "NOT_YET_ACTIVE" -> Right CSNotYetActive
-        x -> Left ("Unable to parse CommitmentStatus from: " <> x)
-
-instance ToHttpApiData CommitmentStatus where
-    toQueryParam = \case
-        CSActive -> "ACTIVE"
-        CSCreating -> "CREATING"
-        CSExpired -> "EXPIRED"
-        CSNotYetActive -> "NOT_YET_ACTIVE"
-
-instance FromJSON CommitmentStatus where
-    parseJSON = parseJSONText "CommitmentStatus"
-
-instance ToJSON CommitmentStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InterconnectListWarningCode
-    = ICleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | INextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | INextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | INextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | INextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | INextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | INotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | INoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ISchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ISingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectListWarningCode
-
-instance FromHttpApiData InterconnectListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ICleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right INextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right INextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right INextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right INextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right INextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right INotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right INoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ISchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ISingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IUndeclaredProperties
-        "UNREACHABLE" -> Right IUnreachable
-        x -> Left ("Unable to parse InterconnectListWarningCode from: " <> x)
-
-instance ToHttpApiData InterconnectListWarningCode where
-    toQueryParam = \case
-        ICleanupFailed -> "CLEANUP_FAILED"
-        IDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        INextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        INextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        INextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        INextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        INextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        INotCriticalError -> "NOT_CRITICAL_ERROR"
-        INoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ISchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ISingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IUnreachable -> "UNREACHABLE"
-
-instance FromJSON InterconnectListWarningCode where
-    parseJSON = parseJSONText "InterconnectListWarningCode"
-
-instance ToJSON InterconnectListWarningCode where
-    toJSON = toJSONText
-
--- | The minimum version of SSL protocol that can be used by the clients to
--- establish a connection with the load balancer. This can be one of
--- TLS_1_0, TLS_1_1, TLS_1_2.
-data SSLPolicyMinTLSVersion
-    = TLS10
-      -- ^ @TLS_1_0@
-    | TLS11
-      -- ^ @TLS_1_1@
-    | TLS12
-      -- ^ @TLS_1_2@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLPolicyMinTLSVersion
-
-instance FromHttpApiData SSLPolicyMinTLSVersion where
-    parseQueryParam = \case
-        "TLS_1_0" -> Right TLS10
-        "TLS_1_1" -> Right TLS11
-        "TLS_1_2" -> Right TLS12
-        x -> Left ("Unable to parse SSLPolicyMinTLSVersion from: " <> x)
-
-instance ToHttpApiData SSLPolicyMinTLSVersion where
-    toQueryParam = \case
-        TLS10 -> "TLS_1_0"
-        TLS11 -> "TLS_1_1"
-        TLS12 -> "TLS_1_2"
-
-instance FromJSON SSLPolicyMinTLSVersion where
-    parseJSON = parseJSONText "SSLPolicyMinTLSVersion"
-
-instance ToJSON SSLPolicyMinTLSVersion where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data HTTPHealthCheckListWarningCode
-    = HTTPHCLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | HTTPHCLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | HTTPHCLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | HTTPHCLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | HTTPHCLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | HTTPHCLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | HTTPHCLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | HTTPHCLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | HTTPHCLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | HTTPHCLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | HTTPHCLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | HTTPHCLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | HTTPHCLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | HTTPHCLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | HTTPHCLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | HTTPHCLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | HTTPHCLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | HTTPHCLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | HTTPHCLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | HTTPHCLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | HTTPHCLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | HTTPHCLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | HTTPHCLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPHealthCheckListWarningCode
-
-instance FromHttpApiData HTTPHealthCheckListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right HTTPHCLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right HTTPHCLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right HTTPHCLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right HTTPHCLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right HTTPHCLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right HTTPHCLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right HTTPHCLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right HTTPHCLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right HTTPHCLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right HTTPHCLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right HTTPHCLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right HTTPHCLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right HTTPHCLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right HTTPHCLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right HTTPHCLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right HTTPHCLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right HTTPHCLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right HTTPHCLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right HTTPHCLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right HTTPHCLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right HTTPHCLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right HTTPHCLWCUndeclaredProperties
-        "UNREACHABLE" -> Right HTTPHCLWCUnreachable
-        x -> Left ("Unable to parse HTTPHealthCheckListWarningCode from: " <> x)
-
-instance ToHttpApiData HTTPHealthCheckListWarningCode where
-    toQueryParam = \case
-        HTTPHCLWCCleanupFailed -> "CLEANUP_FAILED"
-        HTTPHCLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        HTTPHCLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        HTTPHCLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        HTTPHCLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        HTTPHCLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        HTTPHCLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        HTTPHCLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        HTTPHCLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        HTTPHCLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        HTTPHCLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        HTTPHCLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        HTTPHCLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        HTTPHCLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        HTTPHCLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        HTTPHCLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        HTTPHCLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        HTTPHCLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        HTTPHCLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        HTTPHCLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        HTTPHCLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        HTTPHCLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        HTTPHCLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON HTTPHealthCheckListWarningCode where
-    parseJSON = parseJSONText "HTTPHealthCheckListWarningCode"
-
-instance ToJSON HTTPHealthCheckListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SSLPoliciesListWarningCode
-    = SPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SSLPoliciesListWarningCode
-
-instance FromHttpApiData SSLPoliciesListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right SPLWCUnreachable
-        x -> Left ("Unable to parse SSLPoliciesListWarningCode from: " <> x)
-
-instance ToHttpApiData SSLPoliciesListWarningCode where
-    toQueryParam = \case
-        SPLWCCleanupFailed -> "CLEANUP_FAILED"
-        SPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON SSLPoliciesListWarningCode where
-    parseJSON = parseJSONText "SSLPoliciesListWarningCode"
-
-instance ToJSON SSLPoliciesListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The current status of whether or not this interconnect
--- attachment is functional.
-data InterconnectAttachmentOperationalStatus
-    = OSActive
-      -- ^ @OS_ACTIVE@
-    | OSUnprovisioned
-      -- ^ @OS_UNPROVISIONED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentOperationalStatus
-
-instance FromHttpApiData InterconnectAttachmentOperationalStatus where
-    parseQueryParam = \case
-        "OS_ACTIVE" -> Right OSActive
-        "OS_UNPROVISIONED" -> Right OSUnprovisioned
-        x -> Left ("Unable to parse InterconnectAttachmentOperationalStatus from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentOperationalStatus where
-    toQueryParam = \case
-        OSActive -> "OS_ACTIVE"
-        OSUnprovisioned -> "OS_UNPROVISIONED"
-
-instance FromJSON InterconnectAttachmentOperationalStatus where
-    parseJSON = parseJSONText "InterconnectAttachmentOperationalStatus"
-
-instance ToJSON InterconnectAttachmentOperationalStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetTCPProxyListWarningCode
-    = TTPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TTPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TTPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TTPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TTPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TTPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TTPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TTPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TTPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TTPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TTPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TTPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TTPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TTPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TTPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TTPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TTPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TTPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TTPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TTPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TTPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TTPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TTPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetTCPProxyListWarningCode
-
-instance FromHttpApiData TargetTCPProxyListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TTPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TTPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TTPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TTPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TTPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TTPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TTPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TTPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TTPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TTPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TTPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TTPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TTPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TTPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TTPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TTPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TTPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TTPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TTPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TTPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TTPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TTPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TTPLWCUnreachable
-        x -> Left ("Unable to parse TargetTCPProxyListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetTCPProxyListWarningCode where
-    toQueryParam = \case
-        TTPLWCCleanupFailed -> "CLEANUP_FAILED"
-        TTPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TTPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TTPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TTPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TTPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TTPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TTPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TTPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TTPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TTPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TTPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TTPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TTPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TTPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TTPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TTPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TTPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TTPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TTPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TTPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TTPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TTPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetTCPProxyListWarningCode where
-    parseJSON = parseJSONText "TargetTCPProxyListWarningCode"
-
-instance ToJSON TargetTCPProxyListWarningCode where
-    toJSON = toJSONText
-
--- | The log type that this config enables.
-data AuditLogConfigLogType
-    = AdminRead
-      -- ^ @ADMIN_READ@
-    | DataRead
-      -- ^ @DATA_READ@
-    | DataWrite
-      -- ^ @DATA_WRITE@
-    | LogTypeUnspecified
-      -- ^ @LOG_TYPE_UNSPECIFIED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AuditLogConfigLogType
-
-instance FromHttpApiData AuditLogConfigLogType where
-    parseQueryParam = \case
-        "ADMIN_READ" -> Right AdminRead
-        "DATA_READ" -> Right DataRead
-        "DATA_WRITE" -> Right DataWrite
-        "LOG_TYPE_UNSPECIFIED" -> Right LogTypeUnspecified
-        x -> Left ("Unable to parse AuditLogConfigLogType from: " <> x)
-
-instance ToHttpApiData AuditLogConfigLogType where
-    toQueryParam = \case
-        AdminRead -> "ADMIN_READ"
-        DataRead -> "DATA_READ"
-        DataWrite -> "DATA_WRITE"
-        LogTypeUnspecified -> "LOG_TYPE_UNSPECIFIED"
-
-instance FromJSON AuditLogConfigLogType where
-    parseJSON = parseJSONText "AuditLogConfigLogType"
-
-instance ToJSON AuditLogConfigLogType where
-    toJSON = toJSONText
-
--- | The IP protocol to which this rule applies. Valid options are TCP, UDP,
--- ESP, AH, SCTP or ICMP. When the load balancing scheme is INTERNAL, only
--- TCP and UDP are valid. When the load balancing scheme is
--- INTERNAL_SELF_MANAGED, only TCPis valid.
-data ForwardingRuleIPProtocol
-    = FRIPAH
-      -- ^ @AH@
-    | FRIPEsp
-      -- ^ @ESP@
-    | FRIPICMP
-      -- ^ @ICMP@
-    | FRIPSctp
-      -- ^ @SCTP@
-    | FRIPTCP
-      -- ^ @TCP@
-    | FRIPUdp
-      -- ^ @UDP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleIPProtocol
-
-instance FromHttpApiData ForwardingRuleIPProtocol where
-    parseQueryParam = \case
-        "AH" -> Right FRIPAH
-        "ESP" -> Right FRIPEsp
-        "ICMP" -> Right FRIPICMP
-        "SCTP" -> Right FRIPSctp
-        "TCP" -> Right FRIPTCP
-        "UDP" -> Right FRIPUdp
-        x -> Left ("Unable to parse ForwardingRuleIPProtocol from: " <> x)
-
-instance ToHttpApiData ForwardingRuleIPProtocol where
-    toQueryParam = \case
-        FRIPAH -> "AH"
-        FRIPEsp -> "ESP"
-        FRIPICMP -> "ICMP"
-        FRIPSctp -> "SCTP"
-        FRIPTCP -> "TCP"
-        FRIPUdp -> "UDP"
-
-instance FromJSON ForwardingRuleIPProtocol where
-    parseJSON = parseJSONText "ForwardingRuleIPProtocol"
-
-instance ToJSON ForwardingRuleIPProtocol where
-    toJSON = toJSONText
-
--- | Optional query parameter for showing the health status of each network
--- endpoint. Valid options are SKIP or SHOW. If you don\'t specifiy this
--- parameter, the health status of network endpoints will not be provided.
-data NetworkEndpointGroupsListEndpointsRequestHealthStatus
-    = Show
-      -- ^ @SHOW@
-    | Skip
-      -- ^ @SKIP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupsListEndpointsRequestHealthStatus
-
-instance FromHttpApiData NetworkEndpointGroupsListEndpointsRequestHealthStatus where
-    parseQueryParam = \case
-        "SHOW" -> Right Show
-        "SKIP" -> Right Skip
-        x -> Left ("Unable to parse NetworkEndpointGroupsListEndpointsRequestHealthStatus from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupsListEndpointsRequestHealthStatus where
-    toQueryParam = \case
-        Show -> "SHOW"
-        Skip -> "SKIP"
-
-instance FromJSON NetworkEndpointGroupsListEndpointsRequestHealthStatus where
-    parseJSON = parseJSONText "NetworkEndpointGroupsListEndpointsRequestHealthStatus"
-
-instance ToJSON NetworkEndpointGroupsListEndpointsRequestHealthStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data ImageListWarningCode
-    = IMACleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IMADeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IMADeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IMADiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IMAExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IMAExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IMAFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IMAInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IMAMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IMANextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IMANextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IMANextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IMANextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IMANextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IMANotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IMANoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IMARequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IMAResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IMAResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IMASchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IMASingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IMAUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IMAUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ImageListWarningCode
-
-instance FromHttpApiData ImageListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IMACleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IMADeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IMADeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IMADiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IMAExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IMAExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IMAFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IMAInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IMAMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IMANextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IMANextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IMANextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IMANextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IMANextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IMANotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IMANoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IMARequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IMAResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IMAResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IMASchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IMASingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IMAUndeclaredProperties
-        "UNREACHABLE" -> Right IMAUnreachable
-        x -> Left ("Unable to parse ImageListWarningCode from: " <> x)
-
-instance ToHttpApiData ImageListWarningCode where
-    toQueryParam = \case
-        IMACleanupFailed -> "CLEANUP_FAILED"
-        IMADeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IMADeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IMADiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IMAExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IMAExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IMAFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IMAInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IMAMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IMANextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IMANextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IMANextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IMANextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IMANextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IMANotCriticalError -> "NOT_CRITICAL_ERROR"
-        IMANoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IMARequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IMAResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IMAResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IMASchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IMASingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IMAUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IMAUnreachable -> "UNREACHABLE"
-
-instance FromJSON ImageListWarningCode where
-    parseJSON = parseJSONText "ImageListWarningCode"
-
-instance ToJSON ImageListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the address, which can be one of RESERVING,
--- RESERVED, or IN_USE. An address that is RESERVING is currently in the
--- process of being reserved. A RESERVED address is currently reserved and
--- available to use. An IN_USE address is currently being used by another
--- resource and is not available.
-data AddressStatus
-    = InUse
-      -- ^ @IN_USE@
-    | Reserved
-      -- ^ @RESERVED@
-    | Reserving
-      -- ^ @RESERVING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressStatus
-
-instance FromHttpApiData AddressStatus where
-    parseQueryParam = \case
-        "IN_USE" -> Right InUse
-        "RESERVED" -> Right Reserved
-        "RESERVING" -> Right Reserving
-        x -> Left ("Unable to parse AddressStatus from: " <> x)
-
-instance ToHttpApiData AddressStatus where
-    toQueryParam = \case
-        InUse -> "IN_USE"
-        Reserved -> "RESERVED"
-        Reserving -> "RESERVING"
-
-instance FromJSON AddressStatus where
-    parseJSON = parseJSONText "AddressStatus"
-
-instance ToJSON AddressStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AcceleratorTypeListWarningCode
-    = ATLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ATLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ATLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ATLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ATLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ATLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ATLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ATLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ATLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ATLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ATLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ATLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ATLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ATLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ATLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ATLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ATLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ATLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ATLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ATLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ATLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ATLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ATLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AcceleratorTypeListWarningCode
-
-instance FromHttpApiData AcceleratorTypeListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ATLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ATLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ATLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ATLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ATLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ATLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ATLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ATLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ATLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ATLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ATLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ATLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ATLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ATLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ATLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ATLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ATLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ATLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ATLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ATLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ATLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ATLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ATLWCUnreachable
-        x -> Left ("Unable to parse AcceleratorTypeListWarningCode from: " <> x)
-
-instance ToHttpApiData AcceleratorTypeListWarningCode where
-    toQueryParam = \case
-        ATLWCCleanupFailed -> "CLEANUP_FAILED"
-        ATLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ATLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ATLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ATLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ATLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ATLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ATLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ATLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ATLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ATLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ATLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ATLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ATLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ATLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ATLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ATLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ATLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ATLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ATLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ATLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ATLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ATLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AcceleratorTypeListWarningCode where
-    parseJSON = parseJSONText "AcceleratorTypeListWarningCode"
-
-instance ToJSON AcceleratorTypeListWarningCode where
-    toJSON = toJSONText
-
--- | This signifies the networking tier used for configuring this Address and
--- can only take the following values: PREMIUM, STANDARD. Global forwarding
--- rules can only be Premium Tier. Regional forwarding rules can be either
--- Premium or Standard Tier. Standard Tier addresses applied to regional
--- forwarding rules can be used with any external load balancer. Regional
--- forwarding rules in Premium Tier can only be used with a Network load
--- balancer. If this field is not specified, it is assumed to be PREMIUM.
-data AddressNetworkTier
-    = ANTPremium
-      -- ^ @PREMIUM@
-    | ANTStandard
-      -- ^ @STANDARD@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressNetworkTier
-
-instance FromHttpApiData AddressNetworkTier where
-    parseQueryParam = \case
-        "PREMIUM" -> Right ANTPremium
-        "STANDARD" -> Right ANTStandard
-        x -> Left ("Unable to parse AddressNetworkTier from: " <> x)
-
-instance ToHttpApiData AddressNetworkTier where
-    toQueryParam = \case
-        ANTPremium -> "PREMIUM"
-        ANTStandard -> "STANDARD"
-
-instance FromJSON AddressNetworkTier where
-    parseJSON = parseJSONText "AddressNetworkTier"
-
-instance ToJSON AddressNetworkTier where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data URLMapListWarningCode
-    = UMLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | UMLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | UMLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | UMLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | UMLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | UMLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | UMLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | UMLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | UMLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | UMLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | UMLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | UMLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | UMLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | UMLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | UMLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | UMLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | UMLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | UMLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | UMLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | UMLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | UMLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | UMLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | UMLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable URLMapListWarningCode
-
-instance FromHttpApiData URLMapListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right UMLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right UMLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right UMLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right UMLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right UMLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right UMLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right UMLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right UMLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right UMLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right UMLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right UMLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right UMLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right UMLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right UMLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right UMLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right UMLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right UMLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right UMLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right UMLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right UMLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right UMLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right UMLWCUndeclaredProperties
-        "UNREACHABLE" -> Right UMLWCUnreachable
-        x -> Left ("Unable to parse URLMapListWarningCode from: " <> x)
-
-instance ToHttpApiData URLMapListWarningCode where
-    toQueryParam = \case
-        UMLWCCleanupFailed -> "CLEANUP_FAILED"
-        UMLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        UMLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        UMLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        UMLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        UMLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        UMLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        UMLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        UMLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        UMLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        UMLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        UMLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        UMLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        UMLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        UMLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        UMLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        UMLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        UMLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        UMLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        UMLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        UMLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        UMLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        UMLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON URLMapListWarningCode where
-    parseJSON = parseJSONText "URLMapListWarningCode"
-
-instance ToJSON URLMapListWarningCode where
-    toJSON = toJSONText
-
--- | A filter for the state of the instances in the instance group. Valid
--- options are ALL or RUNNING. If you do not specify this parameter the
--- list includes all instances regardless of their state.
-data InstanceGroupsListInstancesRequestInstanceState
-    = IGLIRISAll
-      -- ^ @ALL@
-    | IGLIRISRunning
-      -- ^ @RUNNING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupsListInstancesRequestInstanceState
-
-instance FromHttpApiData InstanceGroupsListInstancesRequestInstanceState where
-    parseQueryParam = \case
-        "ALL" -> Right IGLIRISAll
-        "RUNNING" -> Right IGLIRISRunning
-        x -> Left ("Unable to parse InstanceGroupsListInstancesRequestInstanceState from: " <> x)
-
-instance ToHttpApiData InstanceGroupsListInstancesRequestInstanceState where
-    toQueryParam = \case
-        IGLIRISAll -> "ALL"
-        IGLIRISRunning -> "RUNNING"
-
-instance FromJSON InstanceGroupsListInstancesRequestInstanceState where
-    parseJSON = parseJSONText "InstanceGroupsListInstancesRequestInstanceState"
-
-instance ToJSON InstanceGroupsListInstancesRequestInstanceState where
-    toJSON = toJSONText
-
--- | Defines the operation of node selection.
-data SchedulingNodeAffinityOperator
-    = SNAOIN
-      -- ^ @IN@
-    | SNAONotIn
-      -- ^ @NOT_IN@
-    | SNAOOperatorUnspecified
-      -- ^ @OPERATOR_UNSPECIFIED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SchedulingNodeAffinityOperator
-
-instance FromHttpApiData SchedulingNodeAffinityOperator where
-    parseQueryParam = \case
-        "IN" -> Right SNAOIN
-        "NOT_IN" -> Right SNAONotIn
-        "OPERATOR_UNSPECIFIED" -> Right SNAOOperatorUnspecified
-        x -> Left ("Unable to parse SchedulingNodeAffinityOperator from: " <> x)
-
-instance ToHttpApiData SchedulingNodeAffinityOperator where
-    toQueryParam = \case
-        SNAOIN -> "IN"
-        SNAONotIn -> "NOT_IN"
-        SNAOOperatorUnspecified -> "OPERATOR_UNSPECIFIED"
-
-instance FromJSON SchedulingNodeAffinityOperator where
-    parseJSON = parseJSONText "SchedulingNodeAffinityOperator"
-
-instance ToJSON SchedulingNodeAffinityOperator where
-    toJSON = toJSONText
-
--- | This signifies the default network tier used for configuring resources
--- of the project and can only take the following values: PREMIUM,
--- STANDARD. Initially the default network tier is PREMIUM.
-data ProjectDefaultNetworkTier
-    = PDNTPremium
-      -- ^ @PREMIUM@
-    | PDNTStandard
-      -- ^ @STANDARD@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ProjectDefaultNetworkTier
-
-instance FromHttpApiData ProjectDefaultNetworkTier where
-    parseQueryParam = \case
-        "PREMIUM" -> Right PDNTPremium
-        "STANDARD" -> Right PDNTStandard
-        x -> Left ("Unable to parse ProjectDefaultNetworkTier from: " <> x)
-
-instance ToHttpApiData ProjectDefaultNetworkTier where
-    toQueryParam = \case
-        PDNTPremium -> "PREMIUM"
-        PDNTStandard -> "STANDARD"
-
-instance FromJSON ProjectDefaultNetworkTier where
-    parseJSON = parseJSONText "ProjectDefaultNetworkTier"
-
-instance ToJSON ProjectDefaultNetworkTier where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeGroupListWarningCode
-    = NGLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NGLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NGLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NGLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NGLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NGLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NGLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NGLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NGLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NGLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NGLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NGLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NGLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NGLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NGLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NGLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NGLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NGLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NGLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NGLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NGLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NGLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NGLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeGroupListWarningCode
-
-instance FromHttpApiData NodeGroupListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NGLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NGLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NGLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NGLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NGLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NGLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NGLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NGLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NGLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NGLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NGLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NGLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NGLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NGLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NGLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NGLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NGLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NGLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NGLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NGLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NGLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NGLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NGLWCUnreachable
-        x -> Left ("Unable to parse NodeGroupListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeGroupListWarningCode where
-    toQueryParam = \case
-        NGLWCCleanupFailed -> "CLEANUP_FAILED"
-        NGLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NGLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NGLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NGLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NGLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NGLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NGLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NGLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NGLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NGLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NGLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NGLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NGLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NGLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NGLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NGLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NGLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NGLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NGLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NGLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NGLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NGLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeGroupListWarningCode where
-    parseJSON = parseJSONText "NodeGroupListWarningCode"
-
-instance ToJSON NodeGroupListWarningCode where
-    toJSON = toJSONText
-
--- | Specify the Nat option. If this field contains
--- ALL_SUBNETWORKS_ALL_IP_RANGES or ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES,
--- then there should not be any other Router.Nat section in any Router for
--- this network in this region.
-data RouterNATSourceSubnetworkIPRangesToNAT
-    = AllSubnetworksAllIPRanges
-      -- ^ @ALL_SUBNETWORKS_ALL_IP_RANGES@
-    | AllSubnetworksAllPrimaryIPRanges
-      -- ^ @ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES@
-    | ListOfSubnetworks
-      -- ^ @LIST_OF_SUBNETWORKS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterNATSourceSubnetworkIPRangesToNAT
-
-instance FromHttpApiData RouterNATSourceSubnetworkIPRangesToNAT where
-    parseQueryParam = \case
-        "ALL_SUBNETWORKS_ALL_IP_RANGES" -> Right AllSubnetworksAllIPRanges
-        "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES" -> Right AllSubnetworksAllPrimaryIPRanges
-        "LIST_OF_SUBNETWORKS" -> Right ListOfSubnetworks
-        x -> Left ("Unable to parse RouterNATSourceSubnetworkIPRangesToNAT from: " <> x)
-
-instance ToHttpApiData RouterNATSourceSubnetworkIPRangesToNAT where
-    toQueryParam = \case
-        AllSubnetworksAllIPRanges -> "ALL_SUBNETWORKS_ALL_IP_RANGES"
-        AllSubnetworksAllPrimaryIPRanges -> "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
-        ListOfSubnetworks -> "LIST_OF_SUBNETWORKS"
-
-instance FromJSON RouterNATSourceSubnetworkIPRangesToNAT where
-    parseJSON = parseJSONText "RouterNATSourceSubnetworkIPRangesToNAT"
-
-instance ToJSON RouterNATSourceSubnetworkIPRangesToNAT where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data HTTPSHealthCheckProxyHeader
-    = HHCPHNone
-      -- ^ @NONE@
-    | HHCPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPSHealthCheckProxyHeader
-
-instance FromHttpApiData HTTPSHealthCheckProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right HHCPHNone
-        "PROXY_V1" -> Right HHCPHProxyV1
-        x -> Left ("Unable to parse HTTPSHealthCheckProxyHeader from: " <> x)
-
-instance ToHttpApiData HTTPSHealthCheckProxyHeader where
-    toQueryParam = \case
-        HHCPHNone -> "NONE"
-        HHCPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON HTTPSHealthCheckProxyHeader where
-    parseJSON = parseJSONText "HTTPSHealthCheckProxyHeader"
-
-instance ToJSON HTTPSHealthCheckProxyHeader where
-    toJSON = toJSONText
-
--- | Specifies the disk interface to use for attaching this disk, which is
--- either SCSI or NVME. The default is SCSI. Persistent disks must always
--- use SCSI and the request will fail if you attempt to attach a persistent
--- disk in any other format than SCSI. Local SSDs can use either NVME or
--- SCSI. For performance characteristics of SCSI over NVMe, see Local SSD
--- performance.
-data AttachedDiskInterface
-    = Nvme
-      -- ^ @NVME@
-    | Scsi
-      -- ^ @SCSI@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AttachedDiskInterface
-
-instance FromHttpApiData AttachedDiskInterface where
-    parseQueryParam = \case
-        "NVME" -> Right Nvme
-        "SCSI" -> Right Scsi
-        x -> Left ("Unable to parse AttachedDiskInterface from: " <> x)
-
-instance ToHttpApiData AttachedDiskInterface where
-    toQueryParam = \case
-        Nvme -> "NVME"
-        Scsi -> "SCSI"
-
-instance FromJSON AttachedDiskInterface where
-    parseJSON = parseJSONText "AttachedDiskInterface"
-
-instance ToJSON AttachedDiskInterface where
-    toJSON = toJSONText
-
--- | Specifies the type of the healthCheck, either TCP, SSL, HTTP, HTTPS or
--- HTTP2. If not specified, the default is TCP. Exactly one of the
--- protocol-specific health check field must be specified, which must match
--- type field.
-data HealthCheckType
-    = HCTHTTP
-      -- ^ @HTTP@
-    | HCTHTTP2
-      -- ^ @HTTP2@
-    | HCTHTTPS
-      -- ^ @HTTPS@
-    | HCTInvalid
-      -- ^ @INVALID@
-    | HCTSSL
-      -- ^ @SSL@
-    | HCTTCP
-      -- ^ @TCP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HealthCheckType
-
-instance FromHttpApiData HealthCheckType where
-    parseQueryParam = \case
-        "HTTP" -> Right HCTHTTP
-        "HTTP2" -> Right HCTHTTP2
-        "HTTPS" -> Right HCTHTTPS
-        "INVALID" -> Right HCTInvalid
-        "SSL" -> Right HCTSSL
-        "TCP" -> Right HCTTCP
-        x -> Left ("Unable to parse HealthCheckType from: " <> x)
-
-instance ToHttpApiData HealthCheckType where
-    toQueryParam = \case
-        HCTHTTP -> "HTTP"
-        HCTHTTP2 -> "HTTP2"
-        HCTHTTPS -> "HTTPS"
-        HCTInvalid -> "INVALID"
-        HCTSSL -> "SSL"
-        HCTTCP -> "TCP"
-
-instance FromJSON HealthCheckType where
-    parseJSON = parseJSONText "HealthCheckType"
-
-instance ToJSON HealthCheckType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionInstanceGroupsListInstancesWarningCode
-    = RIGLIWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RIGLIWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RIGLIWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RIGLIWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RIGLIWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RIGLIWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RIGLIWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RIGLIWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RIGLIWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RIGLIWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RIGLIWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RIGLIWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RIGLIWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RIGLIWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RIGLIWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RIGLIWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RIGLIWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RIGLIWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RIGLIWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RIGLIWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RIGLIWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RIGLIWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RIGLIWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionInstanceGroupsListInstancesWarningCode
-
-instance FromHttpApiData RegionInstanceGroupsListInstancesWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RIGLIWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RIGLIWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RIGLIWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RIGLIWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RIGLIWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RIGLIWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RIGLIWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RIGLIWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RIGLIWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RIGLIWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RIGLIWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RIGLIWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RIGLIWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RIGLIWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RIGLIWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RIGLIWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RIGLIWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RIGLIWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RIGLIWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RIGLIWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RIGLIWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RIGLIWCUndeclaredProperties
-        "UNREACHABLE" -> Right RIGLIWCUnreachable
-        x -> Left ("Unable to parse RegionInstanceGroupsListInstancesWarningCode from: " <> x)
-
-instance ToHttpApiData RegionInstanceGroupsListInstancesWarningCode where
-    toQueryParam = \case
-        RIGLIWCCleanupFailed -> "CLEANUP_FAILED"
-        RIGLIWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RIGLIWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RIGLIWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RIGLIWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RIGLIWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RIGLIWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RIGLIWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RIGLIWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RIGLIWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RIGLIWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RIGLIWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RIGLIWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RIGLIWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RIGLIWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RIGLIWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RIGLIWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RIGLIWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RIGLIWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RIGLIWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RIGLIWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RIGLIWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RIGLIWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionInstanceGroupsListInstancesWarningCode where
-    parseJSON = parseJSONText "RegionInstanceGroupsListInstancesWarningCode"
-
-instance ToJSON RegionInstanceGroupsListInstancesWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] Status of the zone, either UP or DOWN.
-data ZoneStatus
-    = ZSDown
-      -- ^ @DOWN@
-    | ZSUP
-      -- ^ @UP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ZoneStatus
-
-instance FromHttpApiData ZoneStatus where
-    parseQueryParam = \case
-        "DOWN" -> Right ZSDown
-        "UP" -> Right ZSUP
-        x -> Left ("Unable to parse ZoneStatus from: " <> x)
-
-instance ToHttpApiData ZoneStatus where
-    toQueryParam = \case
-        ZSDown -> "DOWN"
-        ZSUP -> "UP"
-
-instance FromJSON ZoneStatus where
-    parseJSON = parseJSONText "ZoneStatus"
-
-instance ToJSON ZoneStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NetworkEndpointGroupsScopedListWarningCode
-    = NEGSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NEGSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NEGSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NEGSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NEGSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NEGSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NEGSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NEGSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NEGSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NEGSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NEGSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NEGSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NEGSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NEGSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NEGSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NEGSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NEGSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NEGSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NEGSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NEGSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NEGSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NEGSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NEGSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupsScopedListWarningCode
-
-instance FromHttpApiData NetworkEndpointGroupsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NEGSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NEGSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NEGSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NEGSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NEGSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NEGSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NEGSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NEGSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NEGSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NEGSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NEGSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NEGSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NEGSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NEGSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NEGSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NEGSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NEGSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NEGSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NEGSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NEGSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NEGSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NEGSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NEGSLWCUnreachable
-        x -> Left ("Unable to parse NetworkEndpointGroupsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupsScopedListWarningCode where
-    toQueryParam = \case
-        NEGSLWCCleanupFailed -> "CLEANUP_FAILED"
-        NEGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NEGSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NEGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NEGSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NEGSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NEGSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NEGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NEGSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NEGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NEGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NEGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NEGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NEGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NEGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NEGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NEGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NEGSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NEGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NEGSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NEGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NEGSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NEGSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NetworkEndpointGroupsScopedListWarningCode where
-    parseJSON = parseJSONText "NetworkEndpointGroupsScopedListWarningCode"
-
-instance ToJSON NetworkEndpointGroupsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SubnetworksScopedListWarningCode
-    = SSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SubnetworksScopedListWarningCode
-
-instance FromHttpApiData SubnetworksScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right SSLWCUnreachable
-        x -> Left ("Unable to parse SubnetworksScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData SubnetworksScopedListWarningCode where
-    toQueryParam = \case
-        SSLWCCleanupFailed -> "CLEANUP_FAILED"
-        SSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON SubnetworksScopedListWarningCode where
-    parseJSON = parseJSONText "SubnetworksScopedListWarningCode"
-
-instance ToJSON SubnetworksScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NetworkEndpointGroupsListNetworkEndpointsWarningCode
-    = NEGLNEWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NEGLNEWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NEGLNEWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NEGLNEWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NEGLNEWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NEGLNEWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NEGLNEWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NEGLNEWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NEGLNEWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NEGLNEWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NEGLNEWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NEGLNEWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NEGLNEWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NEGLNEWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NEGLNEWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NEGLNEWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NEGLNEWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NEGLNEWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NEGLNEWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NEGLNEWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NEGLNEWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NEGLNEWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NEGLNEWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkEndpointGroupsListNetworkEndpointsWarningCode
-
-instance FromHttpApiData NetworkEndpointGroupsListNetworkEndpointsWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NEGLNEWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NEGLNEWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NEGLNEWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NEGLNEWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NEGLNEWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NEGLNEWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NEGLNEWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NEGLNEWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NEGLNEWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NEGLNEWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NEGLNEWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NEGLNEWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NEGLNEWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NEGLNEWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NEGLNEWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NEGLNEWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NEGLNEWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NEGLNEWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NEGLNEWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NEGLNEWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NEGLNEWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NEGLNEWCUndeclaredProperties
-        "UNREACHABLE" -> Right NEGLNEWCUnreachable
-        x -> Left ("Unable to parse NetworkEndpointGroupsListNetworkEndpointsWarningCode from: " <> x)
-
-instance ToHttpApiData NetworkEndpointGroupsListNetworkEndpointsWarningCode where
-    toQueryParam = \case
-        NEGLNEWCCleanupFailed -> "CLEANUP_FAILED"
-        NEGLNEWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NEGLNEWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NEGLNEWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NEGLNEWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NEGLNEWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NEGLNEWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NEGLNEWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NEGLNEWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NEGLNEWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NEGLNEWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NEGLNEWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NEGLNEWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NEGLNEWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NEGLNEWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NEGLNEWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NEGLNEWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NEGLNEWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NEGLNEWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NEGLNEWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NEGLNEWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NEGLNEWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NEGLNEWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NetworkEndpointGroupsListNetworkEndpointsWarningCode where
-    parseJSON = parseJSONText "NetworkEndpointGroupsListNetworkEndpointsWarningCode"
-
-instance ToJSON NetworkEndpointGroupsListNetworkEndpointsWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] Name of the quota metric.
-data QuotaMetric
-    = Autoscalers
-      -- ^ @AUTOSCALERS@
-    | BackendBuckets
-      -- ^ @BACKEND_BUCKETS@
-    | BackendServices
-      -- ^ @BACKEND_SERVICES@
-    | Commitments
-      -- ^ @COMMITMENTS@
-    | CPUs
-      -- ^ @CPUS@
-    | CPUsAllRegions
-      -- ^ @CPUS_ALL_REGIONS@
-    | DisksTotalGb
-      -- ^ @DISKS_TOTAL_GB@
-    | ExternalVPNGateways
-      -- ^ @EXTERNAL_VPN_GATEWAYS@
-    | Firewalls
-      -- ^ @FIREWALLS@
-    | ForwardingRules
-      -- ^ @FORWARDING_RULES@
-    | GlobalInternalAddresses
-      -- ^ @GLOBAL_INTERNAL_ADDRESSES@
-    | GpusAllRegions
-      -- ^ @GPUS_ALL_REGIONS@
-    | HealthChecks
-      -- ^ @HEALTH_CHECKS@
-    | Images
-      -- ^ @IMAGES@
-    | Instances
-      -- ^ @INSTANCES@
-    | InstanceGroups
-      -- ^ @INSTANCE_GROUPS@
-    | InstanceGroupManagers
-      -- ^ @INSTANCE_GROUP_MANAGERS@
-    | InstanceTemplates
-      -- ^ @INSTANCE_TEMPLATES@
-    | Interconnects
-      -- ^ @INTERCONNECTS@
-    | InterconnectAttachmentsPerRegion
-      -- ^ @INTERCONNECT_ATTACHMENTS_PER_REGION@
-    | InterconnectAttachmentsTotalMbps
-      -- ^ @INTERCONNECT_ATTACHMENTS_TOTAL_MBPS@
-    | InternalAddresses
-      -- ^ @INTERNAL_ADDRESSES@
-    | InUseAddresses
-      -- ^ @IN_USE_ADDRESSES@
-    | InUseBackupSchedules
-      -- ^ @IN_USE_BACKUP_SCHEDULES@
-    | InUseSnapshotSchedules
-      -- ^ @IN_USE_SNAPSHOT_SCHEDULES@
-    | LocalSsdTotalGb
-      -- ^ @LOCAL_SSD_TOTAL_GB@
-    | Networks
-      -- ^ @NETWORKS@
-    | NetworkEndpointGroups
-      -- ^ @NETWORK_ENDPOINT_GROUPS@
-    | NvidiaK80Gpus
-      -- ^ @NVIDIA_K80_GPUS@
-    | NvidiaP100Gpus
-      -- ^ @NVIDIA_P100_GPUS@
-    | NvidiaP100VwsGpus
-      -- ^ @NVIDIA_P100_VWS_GPUS@
-    | NvidiaP4Gpus
-      -- ^ @NVIDIA_P4_GPUS@
-    | NvidiaP4VwsGpus
-      -- ^ @NVIDIA_P4_VWS_GPUS@
-    | NvidiaT4Gpus
-      -- ^ @NVIDIA_T4_GPUS@
-    | NvidiaT4VwsGpus
-      -- ^ @NVIDIA_T4_VWS_GPUS@
-    | NvidiaV100Gpus
-      -- ^ @NVIDIA_V100_GPUS@
-    | PreemptibleCPUs
-      -- ^ @PREEMPTIBLE_CPUS@
-    | PreemptibleLocalSsdGb
-      -- ^ @PREEMPTIBLE_LOCAL_SSD_GB@
-    | PreemptibleNvidiaK80Gpus
-      -- ^ @PREEMPTIBLE_NVIDIA_K80_GPUS@
-    | PreemptibleNvidiaP100Gpus
-      -- ^ @PREEMPTIBLE_NVIDIA_P100_GPUS@
-    | PreemptibleNvidiaP100VwsGpus
-      -- ^ @PREEMPTIBLE_NVIDIA_P100_VWS_GPUS@
-    | PreemptibleNvidiaP4Gpus
-      -- ^ @PREEMPTIBLE_NVIDIA_P4_GPUS@
-    | PreemptibleNvidiaP4VwsGpus
-      -- ^ @PREEMPTIBLE_NVIDIA_P4_VWS_GPUS@
-    | PreemptibleNvidiaT4Gpus
-      -- ^ @PREEMPTIBLE_NVIDIA_T4_GPUS@
-    | PreemptibleNvidiaT4VwsGpus
-      -- ^ @PREEMPTIBLE_NVIDIA_T4_VWS_GPUS@
-    | PreemptibleNvidiaV100Gpus
-      -- ^ @PREEMPTIBLE_NVIDIA_V100_GPUS@
-    | RegionalAutoscalers
-      -- ^ @REGIONAL_AUTOSCALERS@
-    | RegionalInstanceGroupManagers
-      -- ^ @REGIONAL_INSTANCE_GROUP_MANAGERS@
-    | ResourcePolicies
-      -- ^ @RESOURCE_POLICIES@
-    | Routers
-      -- ^ @ROUTERS@
-    | Routes
-      -- ^ @ROUTES@
-    | SecurityPolicies
-      -- ^ @SECURITY_POLICIES@
-    | SecurityPolicyRules
-      -- ^ @SECURITY_POLICY_RULES@
-    | Snapshots
-      -- ^ @SNAPSHOTS@
-    | SsdTotalGb
-      -- ^ @SSD_TOTAL_GB@
-    | SSLCertificates
-      -- ^ @SSL_CERTIFICATES@
-    | StaticAddresses
-      -- ^ @STATIC_ADDRESSES@
-    | Subnetworks
-      -- ^ @SUBNETWORKS@
-    | TargetHTTPSProxies
-      -- ^ @TARGET_HTTPS_PROXIES@
-    | TargetHTTPProxies
-      -- ^ @TARGET_HTTP_PROXIES@
-    | TargetInstances
-      -- ^ @TARGET_INSTANCES@
-    | TargetPools
-      -- ^ @TARGET_POOLS@
-    | TargetSSLProxies
-      -- ^ @TARGET_SSL_PROXIES@
-    | TargetTCPProxies
-      -- ^ @TARGET_TCP_PROXIES@
-    | TargetVPNGateways
-      -- ^ @TARGET_VPN_GATEWAYS@
-    | URLMaps
-      -- ^ @URL_MAPS@
-    | VPNGateways
-      -- ^ @VPN_GATEWAYS@
-    | VPNTunnels
-      -- ^ @VPN_TUNNELS@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable QuotaMetric
-
-instance FromHttpApiData QuotaMetric where
-    parseQueryParam = \case
-        "AUTOSCALERS" -> Right Autoscalers
-        "BACKEND_BUCKETS" -> Right BackendBuckets
-        "BACKEND_SERVICES" -> Right BackendServices
-        "COMMITMENTS" -> Right Commitments
-        "CPUS" -> Right CPUs
-        "CPUS_ALL_REGIONS" -> Right CPUsAllRegions
-        "DISKS_TOTAL_GB" -> Right DisksTotalGb
-        "EXTERNAL_VPN_GATEWAYS" -> Right ExternalVPNGateways
-        "FIREWALLS" -> Right Firewalls
-        "FORWARDING_RULES" -> Right ForwardingRules
-        "GLOBAL_INTERNAL_ADDRESSES" -> Right GlobalInternalAddresses
-        "GPUS_ALL_REGIONS" -> Right GpusAllRegions
-        "HEALTH_CHECKS" -> Right HealthChecks
-        "IMAGES" -> Right Images
-        "INSTANCES" -> Right Instances
-        "INSTANCE_GROUPS" -> Right InstanceGroups
-        "INSTANCE_GROUP_MANAGERS" -> Right InstanceGroupManagers
-        "INSTANCE_TEMPLATES" -> Right InstanceTemplates
-        "INTERCONNECTS" -> Right Interconnects
-        "INTERCONNECT_ATTACHMENTS_PER_REGION" -> Right InterconnectAttachmentsPerRegion
-        "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS" -> Right InterconnectAttachmentsTotalMbps
-        "INTERNAL_ADDRESSES" -> Right InternalAddresses
-        "IN_USE_ADDRESSES" -> Right InUseAddresses
-        "IN_USE_BACKUP_SCHEDULES" -> Right InUseBackupSchedules
-        "IN_USE_SNAPSHOT_SCHEDULES" -> Right InUseSnapshotSchedules
-        "LOCAL_SSD_TOTAL_GB" -> Right LocalSsdTotalGb
-        "NETWORKS" -> Right Networks
-        "NETWORK_ENDPOINT_GROUPS" -> Right NetworkEndpointGroups
-        "NVIDIA_K80_GPUS" -> Right NvidiaK80Gpus
-        "NVIDIA_P100_GPUS" -> Right NvidiaP100Gpus
-        "NVIDIA_P100_VWS_GPUS" -> Right NvidiaP100VwsGpus
-        "NVIDIA_P4_GPUS" -> Right NvidiaP4Gpus
-        "NVIDIA_P4_VWS_GPUS" -> Right NvidiaP4VwsGpus
-        "NVIDIA_T4_GPUS" -> Right NvidiaT4Gpus
-        "NVIDIA_T4_VWS_GPUS" -> Right NvidiaT4VwsGpus
-        "NVIDIA_V100_GPUS" -> Right NvidiaV100Gpus
-        "PREEMPTIBLE_CPUS" -> Right PreemptibleCPUs
-        "PREEMPTIBLE_LOCAL_SSD_GB" -> Right PreemptibleLocalSsdGb
-        "PREEMPTIBLE_NVIDIA_K80_GPUS" -> Right PreemptibleNvidiaK80Gpus
-        "PREEMPTIBLE_NVIDIA_P100_GPUS" -> Right PreemptibleNvidiaP100Gpus
-        "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS" -> Right PreemptibleNvidiaP100VwsGpus
-        "PREEMPTIBLE_NVIDIA_P4_GPUS" -> Right PreemptibleNvidiaP4Gpus
-        "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS" -> Right PreemptibleNvidiaP4VwsGpus
-        "PREEMPTIBLE_NVIDIA_T4_GPUS" -> Right PreemptibleNvidiaT4Gpus
-        "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS" -> Right PreemptibleNvidiaT4VwsGpus
-        "PREEMPTIBLE_NVIDIA_V100_GPUS" -> Right PreemptibleNvidiaV100Gpus
-        "REGIONAL_AUTOSCALERS" -> Right RegionalAutoscalers
-        "REGIONAL_INSTANCE_GROUP_MANAGERS" -> Right RegionalInstanceGroupManagers
-        "RESOURCE_POLICIES" -> Right ResourcePolicies
-        "ROUTERS" -> Right Routers
-        "ROUTES" -> Right Routes
-        "SECURITY_POLICIES" -> Right SecurityPolicies
-        "SECURITY_POLICY_RULES" -> Right SecurityPolicyRules
-        "SNAPSHOTS" -> Right Snapshots
-        "SSD_TOTAL_GB" -> Right SsdTotalGb
-        "SSL_CERTIFICATES" -> Right SSLCertificates
-        "STATIC_ADDRESSES" -> Right StaticAddresses
-        "SUBNETWORKS" -> Right Subnetworks
-        "TARGET_HTTPS_PROXIES" -> Right TargetHTTPSProxies
-        "TARGET_HTTP_PROXIES" -> Right TargetHTTPProxies
-        "TARGET_INSTANCES" -> Right TargetInstances
-        "TARGET_POOLS" -> Right TargetPools
-        "TARGET_SSL_PROXIES" -> Right TargetSSLProxies
-        "TARGET_TCP_PROXIES" -> Right TargetTCPProxies
-        "TARGET_VPN_GATEWAYS" -> Right TargetVPNGateways
-        "URL_MAPS" -> Right URLMaps
-        "VPN_GATEWAYS" -> Right VPNGateways
-        "VPN_TUNNELS" -> Right VPNTunnels
-        x -> Left ("Unable to parse QuotaMetric from: " <> x)
-
-instance ToHttpApiData QuotaMetric where
-    toQueryParam = \case
-        Autoscalers -> "AUTOSCALERS"
-        BackendBuckets -> "BACKEND_BUCKETS"
-        BackendServices -> "BACKEND_SERVICES"
-        Commitments -> "COMMITMENTS"
-        CPUs -> "CPUS"
-        CPUsAllRegions -> "CPUS_ALL_REGIONS"
-        DisksTotalGb -> "DISKS_TOTAL_GB"
-        ExternalVPNGateways -> "EXTERNAL_VPN_GATEWAYS"
-        Firewalls -> "FIREWALLS"
-        ForwardingRules -> "FORWARDING_RULES"
-        GlobalInternalAddresses -> "GLOBAL_INTERNAL_ADDRESSES"
-        GpusAllRegions -> "GPUS_ALL_REGIONS"
-        HealthChecks -> "HEALTH_CHECKS"
-        Images -> "IMAGES"
-        Instances -> "INSTANCES"
-        InstanceGroups -> "INSTANCE_GROUPS"
-        InstanceGroupManagers -> "INSTANCE_GROUP_MANAGERS"
-        InstanceTemplates -> "INSTANCE_TEMPLATES"
-        Interconnects -> "INTERCONNECTS"
-        InterconnectAttachmentsPerRegion -> "INTERCONNECT_ATTACHMENTS_PER_REGION"
-        InterconnectAttachmentsTotalMbps -> "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
-        InternalAddresses -> "INTERNAL_ADDRESSES"
-        InUseAddresses -> "IN_USE_ADDRESSES"
-        InUseBackupSchedules -> "IN_USE_BACKUP_SCHEDULES"
-        InUseSnapshotSchedules -> "IN_USE_SNAPSHOT_SCHEDULES"
-        LocalSsdTotalGb -> "LOCAL_SSD_TOTAL_GB"
-        Networks -> "NETWORKS"
-        NetworkEndpointGroups -> "NETWORK_ENDPOINT_GROUPS"
-        NvidiaK80Gpus -> "NVIDIA_K80_GPUS"
-        NvidiaP100Gpus -> "NVIDIA_P100_GPUS"
-        NvidiaP100VwsGpus -> "NVIDIA_P100_VWS_GPUS"
-        NvidiaP4Gpus -> "NVIDIA_P4_GPUS"
-        NvidiaP4VwsGpus -> "NVIDIA_P4_VWS_GPUS"
-        NvidiaT4Gpus -> "NVIDIA_T4_GPUS"
-        NvidiaT4VwsGpus -> "NVIDIA_T4_VWS_GPUS"
-        NvidiaV100Gpus -> "NVIDIA_V100_GPUS"
-        PreemptibleCPUs -> "PREEMPTIBLE_CPUS"
-        PreemptibleLocalSsdGb -> "PREEMPTIBLE_LOCAL_SSD_GB"
-        PreemptibleNvidiaK80Gpus -> "PREEMPTIBLE_NVIDIA_K80_GPUS"
-        PreemptibleNvidiaP100Gpus -> "PREEMPTIBLE_NVIDIA_P100_GPUS"
-        PreemptibleNvidiaP100VwsGpus -> "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
-        PreemptibleNvidiaP4Gpus -> "PREEMPTIBLE_NVIDIA_P4_GPUS"
-        PreemptibleNvidiaP4VwsGpus -> "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
-        PreemptibleNvidiaT4Gpus -> "PREEMPTIBLE_NVIDIA_T4_GPUS"
-        PreemptibleNvidiaT4VwsGpus -> "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
-        PreemptibleNvidiaV100Gpus -> "PREEMPTIBLE_NVIDIA_V100_GPUS"
-        RegionalAutoscalers -> "REGIONAL_AUTOSCALERS"
-        RegionalInstanceGroupManagers -> "REGIONAL_INSTANCE_GROUP_MANAGERS"
-        ResourcePolicies -> "RESOURCE_POLICIES"
-        Routers -> "ROUTERS"
-        Routes -> "ROUTES"
-        SecurityPolicies -> "SECURITY_POLICIES"
-        SecurityPolicyRules -> "SECURITY_POLICY_RULES"
-        Snapshots -> "SNAPSHOTS"
-        SsdTotalGb -> "SSD_TOTAL_GB"
-        SSLCertificates -> "SSL_CERTIFICATES"
-        StaticAddresses -> "STATIC_ADDRESSES"
-        Subnetworks -> "SUBNETWORKS"
-        TargetHTTPSProxies -> "TARGET_HTTPS_PROXIES"
-        TargetHTTPProxies -> "TARGET_HTTP_PROXIES"
-        TargetInstances -> "TARGET_INSTANCES"
-        TargetPools -> "TARGET_POOLS"
-        TargetSSLProxies -> "TARGET_SSL_PROXIES"
-        TargetTCPProxies -> "TARGET_TCP_PROXIES"
-        TargetVPNGateways -> "TARGET_VPN_GATEWAYS"
-        URLMaps -> "URL_MAPS"
-        VPNGateways -> "VPN_GATEWAYS"
-        VPNTunnels -> "VPN_TUNNELS"
-
-instance FromJSON QuotaMetric where
-    parseJSON = parseJSONText "QuotaMetric"
-
-instance ToJSON QuotaMetric where
-    toJSON = toJSONText
-
--- | [Output Only] The current state of whether or not this Interconnect is
--- functional.
-data InterconnectState
-    = ISActive
-      -- ^ @ACTIVE@
-    | ISUnprovisioned
-      -- ^ @UNPROVISIONED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectState
-
-instance FromHttpApiData InterconnectState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right ISActive
-        "UNPROVISIONED" -> Right ISUnprovisioned
-        x -> Left ("Unable to parse InterconnectState from: " <> x)
-
-instance ToHttpApiData InterconnectState where
-    toQueryParam = \case
-        ISActive -> "ACTIVE"
-        ISUnprovisioned -> "UNPROVISIONED"
-
-instance FromJSON InterconnectState where
-    parseJSON = parseJSONText "InterconnectState"
-
-instance ToJSON InterconnectState where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AutoscalerAggregatedListWarningCode
-    = AALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | AALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | AALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | AALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | AALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | AALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | AALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | AALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | AALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | AALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | AALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | AALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | AALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | AALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | AALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | AALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | AALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | AALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | AALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | AALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | AALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | AALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | AALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalerAggregatedListWarningCode
-
-instance FromHttpApiData AutoscalerAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right AALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right AALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right AALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right AALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right AALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right AALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right AALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right AALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right AALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right AALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right AALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right AALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right AALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right AALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right AALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right AALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right AALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right AALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right AALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right AALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right AALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right AALWCUndeclaredProperties
-        "UNREACHABLE" -> Right AALWCUnreachable
-        x -> Left ("Unable to parse AutoscalerAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData AutoscalerAggregatedListWarningCode where
-    toQueryParam = \case
-        AALWCCleanupFailed -> "CLEANUP_FAILED"
-        AALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        AALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        AALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        AALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        AALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        AALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        AALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        AALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        AALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        AALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        AALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        AALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        AALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        AALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        AALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        AALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        AALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        AALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        AALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        AALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        AALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        AALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON AutoscalerAggregatedListWarningCode where
-    parseJSON = parseJSONText "AutoscalerAggregatedListWarningCode"
-
-instance ToJSON AutoscalerAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | The IP Version that will be used by this address. Valid options are IPV4
--- or IPV6. This can only be specified for a global address.
-data AddressIPVersion
-    = AIVIPV4
-      -- ^ @IPV4@
-    | AIVIPV6
-      -- ^ @IPV6@
-    | AIVUnspecifiedVersion
-      -- ^ @UNSPECIFIED_VERSION@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressIPVersion
-
-instance FromHttpApiData AddressIPVersion where
-    parseQueryParam = \case
-        "IPV4" -> Right AIVIPV4
-        "IPV6" -> Right AIVIPV6
-        "UNSPECIFIED_VERSION" -> Right AIVUnspecifiedVersion
-        x -> Left ("Unable to parse AddressIPVersion from: " <> x)
-
-instance ToHttpApiData AddressIPVersion where
-    toQueryParam = \case
-        AIVIPV4 -> "IPV4"
-        AIVIPV6 -> "IPV6"
-        AIVUnspecifiedVersion -> "UNSPECIFIED_VERSION"
-
-instance FromJSON AddressIPVersion where
-    parseJSON = parseJSONText "AddressIPVersion"
-
-instance ToJSON AddressIPVersion where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the instance. One of the following values:
--- PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, SUSPENDING,
--- SUSPENDED, and TERMINATED.
-data InstanceStatus
-    = ISProvisioning
-      -- ^ @PROVISIONING@
-    | ISRepairing
-      -- ^ @REPAIRING@
-    | ISRunning
-      -- ^ @RUNNING@
-    | ISStaging
-      -- ^ @STAGING@
-    | ISStopped
-      -- ^ @STOPPED@
-    | ISStopping
-      -- ^ @STOPPING@
-    | ISSuspended
-      -- ^ @SUSPENDED@
-    | ISSuspending
-      -- ^ @SUSPENDING@
-    | ISTerminated
-      -- ^ @TERMINATED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceStatus
-
-instance FromHttpApiData InstanceStatus where
-    parseQueryParam = \case
-        "PROVISIONING" -> Right ISProvisioning
-        "REPAIRING" -> Right ISRepairing
-        "RUNNING" -> Right ISRunning
-        "STAGING" -> Right ISStaging
-        "STOPPED" -> Right ISStopped
-        "STOPPING" -> Right ISStopping
-        "SUSPENDED" -> Right ISSuspended
-        "SUSPENDING" -> Right ISSuspending
-        "TERMINATED" -> Right ISTerminated
-        x -> Left ("Unable to parse InstanceStatus from: " <> x)
-
-instance ToHttpApiData InstanceStatus where
-    toQueryParam = \case
-        ISProvisioning -> "PROVISIONING"
-        ISRepairing -> "REPAIRING"
-        ISRunning -> "RUNNING"
-        ISStaging -> "STAGING"
-        ISStopped -> "STOPPED"
-        ISStopping -> "STOPPING"
-        ISSuspended -> "SUSPENDED"
-        ISSuspending -> "SUSPENDING"
-        ISTerminated -> "TERMINATED"
-
-instance FromJSON InstanceStatus where
-    parseJSON = parseJSONText "InstanceStatus"
-
-instance ToJSON InstanceStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTypeListWarningCode
-    = NTLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NTLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NTLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NTLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NTLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NTLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NTLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NTLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NTLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NTLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NTLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NTLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NTLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NTLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NTLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NTLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NTLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NTLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NTLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NTLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NTLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NTLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NTLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTypeListWarningCode
-
-instance FromHttpApiData NodeTypeListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NTLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NTLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NTLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NTLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NTLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NTLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NTLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NTLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NTLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NTLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NTLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NTLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NTLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NTLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NTLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NTLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NTLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NTLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NTLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NTLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NTLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NTLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NTLWCUnreachable
-        x -> Left ("Unable to parse NodeTypeListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTypeListWarningCode where
-    toQueryParam = \case
-        NTLWCCleanupFailed -> "CLEANUP_FAILED"
-        NTLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NTLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NTLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NTLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NTLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NTLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NTLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NTLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NTLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NTLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NTLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NTLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NTLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NTLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NTLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NTLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NTLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NTLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NTLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NTLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NTLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NTLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTypeListWarningCode where
-    parseJSON = parseJSONText "NodeTypeListWarningCode"
-
-instance ToJSON NodeTypeListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data MachineTypesScopedListWarningCode
-    = MTSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | MTSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | MTSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | MTSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | MTSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | MTSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | MTSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | MTSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | MTSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | MTSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | MTSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | MTSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | MTSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | MTSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | MTSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | MTSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | MTSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | MTSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | MTSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | MTSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | MTSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | MTSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | MTSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable MachineTypesScopedListWarningCode
-
-instance FromHttpApiData MachineTypesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right MTSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right MTSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right MTSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right MTSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right MTSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right MTSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right MTSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right MTSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right MTSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right MTSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right MTSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right MTSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right MTSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right MTSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right MTSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right MTSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right MTSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right MTSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right MTSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right MTSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right MTSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right MTSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right MTSLWCUnreachable
-        x -> Left ("Unable to parse MachineTypesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData MachineTypesScopedListWarningCode where
-    toQueryParam = \case
-        MTSLWCCleanupFailed -> "CLEANUP_FAILED"
-        MTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        MTSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        MTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        MTSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        MTSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        MTSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        MTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        MTSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        MTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        MTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        MTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        MTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        MTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        MTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        MTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        MTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        MTSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        MTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        MTSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        MTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        MTSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        MTSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON MachineTypesScopedListWarningCode where
-    parseJSON = parseJSONText "MachineTypesScopedListWarningCode"
-
-instance ToJSON MachineTypesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTemplateListWarningCode
-    = NODCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NODDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NODDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NODDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NODExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NODExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NODFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NODInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NODMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NODNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NODNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NODNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NODNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NODNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NODNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NODNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NODRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NODResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NODResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NODSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NODSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NODUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NODUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTemplateListWarningCode
-
-instance FromHttpApiData NodeTemplateListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NODCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NODDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NODDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NODDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NODExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NODExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NODFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NODInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NODMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NODNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NODNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NODNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NODNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NODNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NODNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NODNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NODRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NODResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NODResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NODSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NODSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NODUndeclaredProperties
-        "UNREACHABLE" -> Right NODUnreachable
-        x -> Left ("Unable to parse NodeTemplateListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTemplateListWarningCode where
-    toQueryParam = \case
-        NODCleanupFailed -> "CLEANUP_FAILED"
-        NODDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NODDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NODDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NODExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NODExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NODFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NODInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NODMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NODNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NODNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NODNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NODNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NODNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NODNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NODNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NODRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NODResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NODResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NODSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NODSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NODUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NODUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTemplateListWarningCode where
-    parseJSON = parseJSONText "NodeTemplateListWarningCode"
-
-instance ToJSON NodeTemplateListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionListWarningCode
-    = REGCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | REGDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | REGDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | REGDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | REGExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | REGExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | REGFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | REGInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | REGMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | REGNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | REGNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | REGNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | REGNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | REGNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | REGNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | REGNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | REGRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | REGResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | REGResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | REGSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | REGSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | REGUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | REGUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionListWarningCode
-
-instance FromHttpApiData RegionListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right REGCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right REGDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right REGDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right REGDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right REGExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right REGExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right REGFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right REGInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right REGMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right REGNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right REGNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right REGNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right REGNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right REGNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right REGNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right REGNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right REGRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right REGResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right REGResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right REGSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right REGSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right REGUndeclaredProperties
-        "UNREACHABLE" -> Right REGUnreachable
-        x -> Left ("Unable to parse RegionListWarningCode from: " <> x)
-
-instance ToHttpApiData RegionListWarningCode where
-    toQueryParam = \case
-        REGCleanupFailed -> "CLEANUP_FAILED"
-        REGDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        REGDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        REGDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        REGExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        REGExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        REGFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        REGInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        REGMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        REGNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        REGNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        REGNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        REGNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        REGNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        REGNotCriticalError -> "NOT_CRITICAL_ERROR"
-        REGNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        REGRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        REGResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        REGResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        REGSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        REGSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        REGUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        REGUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionListWarningCode where
-    parseJSON = parseJSONText "RegionListWarningCode"
-
-instance ToJSON RegionListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The resource that configures and manages this interface.
--- MANAGED_BY_USER is the default value and can be managed by you or other
--- users; MANAGED_BY_ATTACHMENT is an interface that is configured and
--- managed by Cloud Interconnect, specifically by an InterconnectAttachment
--- of type PARTNER. Google will automatically create, update, and delete
--- this type of interface when the PARTNER InterconnectAttachment is
--- created, updated, or deleted.
-data RouterInterfaceManagementType
-    = RIMTManagedByAttachment
-      -- ^ @MANAGED_BY_ATTACHMENT@
-    | RIMTManagedByUser
-      -- ^ @MANAGED_BY_USER@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterInterfaceManagementType
-
-instance FromHttpApiData RouterInterfaceManagementType where
-    parseQueryParam = \case
-        "MANAGED_BY_ATTACHMENT" -> Right RIMTManagedByAttachment
-        "MANAGED_BY_USER" -> Right RIMTManagedByUser
-        x -> Left ("Unable to parse RouterInterfaceManagementType from: " <> x)
-
-instance ToHttpApiData RouterInterfaceManagementType where
-    toQueryParam = \case
-        RIMTManagedByAttachment -> "MANAGED_BY_ATTACHMENT"
-        RIMTManagedByUser -> "MANAGED_BY_USER"
-
-instance FromJSON RouterInterfaceManagementType where
-    parseJSON = parseJSONText "RouterInterfaceManagementType"
-
-instance ToJSON RouterInterfaceManagementType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DiskTypesScopedListWarningCode
-    = DTSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DTSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DTSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DTSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DTSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DTSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DTSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DTSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DTSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DTSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DTSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DTSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DTSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DTSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DTSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DTSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DTSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DTSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DTSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DTSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DTSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DTSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DTSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskTypesScopedListWarningCode
-
-instance FromHttpApiData DiskTypesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DTSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DTSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DTSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DTSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DTSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DTSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DTSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DTSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DTSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DTSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DTSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DTSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DTSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DTSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DTSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DTSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DTSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DTSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DTSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DTSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DTSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DTSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right DTSLWCUnreachable
-        x -> Left ("Unable to parse DiskTypesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData DiskTypesScopedListWarningCode where
-    toQueryParam = \case
-        DTSLWCCleanupFailed -> "CLEANUP_FAILED"
-        DTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DTSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DTSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DTSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DTSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DTSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DTSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DTSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DTSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DTSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DiskTypesScopedListWarningCode where
-    parseJSON = parseJSONText "DiskTypesScopedListWarningCode"
-
-instance ToJSON DiskTypesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data MachineTypeAggregatedListWarningCode
-    = MTALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | MTALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | MTALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | MTALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | MTALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | MTALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | MTALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | MTALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | MTALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | MTALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | MTALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | MTALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | MTALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | MTALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | MTALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | MTALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | MTALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | MTALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | MTALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | MTALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | MTALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | MTALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | MTALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable MachineTypeAggregatedListWarningCode
-
-instance FromHttpApiData MachineTypeAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right MTALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right MTALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right MTALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right MTALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right MTALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right MTALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right MTALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right MTALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right MTALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right MTALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right MTALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right MTALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right MTALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right MTALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right MTALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right MTALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right MTALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right MTALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right MTALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right MTALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right MTALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right MTALWCUndeclaredProperties
-        "UNREACHABLE" -> Right MTALWCUnreachable
-        x -> Left ("Unable to parse MachineTypeAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData MachineTypeAggregatedListWarningCode where
-    toQueryParam = \case
-        MTALWCCleanupFailed -> "CLEANUP_FAILED"
-        MTALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        MTALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        MTALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        MTALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        MTALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        MTALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        MTALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        MTALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        MTALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        MTALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        MTALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        MTALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        MTALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        MTALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        MTALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        MTALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        MTALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        MTALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        MTALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        MTALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        MTALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        MTALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON MachineTypeAggregatedListWarningCode where
-    parseJSON = parseJSONText "MachineTypeAggregatedListWarningCode"
-
-instance ToJSON MachineTypeAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Whether Gin logging should happen in a fail-closed manner at the caller.
--- This is relevant only in the LocalIAM implementation, for now. NOTE:
--- Logging to Gin in a fail-closed manner is currently unsupported while
--- work is being done to satisfy the requirements of go\/345. Currently,
--- setting LOG_FAIL_CLOSED mode will have no effect, but still exists
--- because there is active work being done to support it (b\/115874152).
-data LogConfigDataAccessOptionsLogMode
-    = LogFailClosed
-      -- ^ @LOG_FAIL_CLOSED@
-    | LogModeUnspecified
-      -- ^ @LOG_MODE_UNSPECIFIED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable LogConfigDataAccessOptionsLogMode
-
-instance FromHttpApiData LogConfigDataAccessOptionsLogMode where
-    parseQueryParam = \case
-        "LOG_FAIL_CLOSED" -> Right LogFailClosed
-        "LOG_MODE_UNSPECIFIED" -> Right LogModeUnspecified
-        x -> Left ("Unable to parse LogConfigDataAccessOptionsLogMode from: " <> x)
-
-instance ToHttpApiData LogConfigDataAccessOptionsLogMode where
-    toQueryParam = \case
-        LogFailClosed -> "LOG_FAIL_CLOSED"
-        LogModeUnspecified -> "LOG_MODE_UNSPECIFIED"
-
-instance FromJSON LogConfigDataAccessOptionsLogMode where
-    parseJSON = parseJSONText "LogConfigDataAccessOptionsLogMode"
-
-instance ToJSON LogConfigDataAccessOptionsLogMode where
-    toJSON = toJSONText
-
--- | State of this notification. Note that the \"NS_\" versions of this enum
--- have been deprecated in favor of the unprefixed values.
-data InterconnectOutageNotificationState
-    = IONSActive
-      -- ^ @ACTIVE@
-    | IONSCancelled
-      -- ^ @CANCELLED@
-    | IONSNsActive
-      -- ^ @NS_ACTIVE@
-    | IONSNsCanceled
-      -- ^ @NS_CANCELED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectOutageNotificationState
-
-instance FromHttpApiData InterconnectOutageNotificationState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right IONSActive
-        "CANCELLED" -> Right IONSCancelled
-        "NS_ACTIVE" -> Right IONSNsActive
-        "NS_CANCELED" -> Right IONSNsCanceled
-        x -> Left ("Unable to parse InterconnectOutageNotificationState from: " <> x)
-
-instance ToHttpApiData InterconnectOutageNotificationState where
-    toQueryParam = \case
-        IONSActive -> "ACTIVE"
-        IONSCancelled -> "CANCELLED"
-        IONSNsActive -> "NS_ACTIVE"
-        IONSNsCanceled -> "NS_CANCELED"
-
-instance FromJSON InterconnectOutageNotificationState where
-    parseJSON = parseJSONText "InterconnectOutageNotificationState"
-
-instance ToJSON InterconnectOutageNotificationState where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data VPNTunnelListWarningCode
-    = VTLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | VTLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | VTLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | VTLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | VTLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | VTLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | VTLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | VTLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | VTLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | VTLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | VTLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | VTLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | VTLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | VTLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | VTLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | VTLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | VTLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | VTLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | VTLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | VTLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | VTLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | VTLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | VTLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable VPNTunnelListWarningCode
-
-instance FromHttpApiData VPNTunnelListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right VTLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right VTLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right VTLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right VTLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right VTLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right VTLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right VTLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right VTLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right VTLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right VTLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right VTLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right VTLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right VTLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right VTLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right VTLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right VTLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right VTLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right VTLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right VTLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right VTLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right VTLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right VTLWCUndeclaredProperties
-        "UNREACHABLE" -> Right VTLWCUnreachable
-        x -> Left ("Unable to parse VPNTunnelListWarningCode from: " <> x)
-
-instance ToHttpApiData VPNTunnelListWarningCode where
-    toQueryParam = \case
-        VTLWCCleanupFailed -> "CLEANUP_FAILED"
-        VTLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        VTLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        VTLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        VTLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        VTLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        VTLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        VTLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        VTLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        VTLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        VTLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        VTLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        VTLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        VTLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        VTLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        VTLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        VTLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        VTLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        VTLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        VTLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        VTLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        VTLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        VTLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON VPNTunnelListWarningCode where
-    parseJSON = parseJSONText "VPNTunnelListWarningCode"
-
-instance ToJSON VPNTunnelListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AutoscalersScopedListWarningCode
-    = ACleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ADeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ADeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ADiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | AExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | AExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | AFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | AInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | AMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ANextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ANextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ANextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ANextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ANextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ANotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ANoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ARequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | AResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | AResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ASchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ASingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | AUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | AUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalersScopedListWarningCode
-
-instance FromHttpApiData AutoscalersScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ACleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ADeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ADeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ADiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right AExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right AExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right AFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right AInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right AMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ANextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ANextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ANextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ANextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ANextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ANotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ANoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ARequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right AResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right AResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ASchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ASingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right AUndeclaredProperties
-        "UNREACHABLE" -> Right AUnreachable
-        x -> Left ("Unable to parse AutoscalersScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData AutoscalersScopedListWarningCode where
-    toQueryParam = \case
-        ACleanupFailed -> "CLEANUP_FAILED"
-        ADeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ADeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ADiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        AExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        AExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        AFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        AInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        AMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ANextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ANextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ANextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ANextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ANextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ANotCriticalError -> "NOT_CRITICAL_ERROR"
-        ANoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ARequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        AResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        AResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ASchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ASingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        AUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        AUnreachable -> "UNREACHABLE"
-
-instance FromJSON AutoscalersScopedListWarningCode where
-    parseJSON = parseJSONText "AutoscalersScopedListWarningCode"
-
-instance ToJSON AutoscalersScopedListWarningCode where
-    toJSON = toJSONText
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTPS health check follows
--- behavior specified in port and portName fields.
-data HTTPSHealthCheckPortSpecification
-    = HHCPSUseFixedPort
-      -- ^ @USE_FIXED_PORT@
-    | HHCPSUseNamedPort
-      -- ^ @USE_NAMED_PORT@
-    | HHCPSUseServingPort
-      -- ^ @USE_SERVING_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPSHealthCheckPortSpecification
-
-instance FromHttpApiData HTTPSHealthCheckPortSpecification where
-    parseQueryParam = \case
-        "USE_FIXED_PORT" -> Right HHCPSUseFixedPort
-        "USE_NAMED_PORT" -> Right HHCPSUseNamedPort
-        "USE_SERVING_PORT" -> Right HHCPSUseServingPort
-        x -> Left ("Unable to parse HTTPSHealthCheckPortSpecification from: " <> x)
-
-instance ToHttpApiData HTTPSHealthCheckPortSpecification where
-    toQueryParam = \case
-        HHCPSUseFixedPort -> "USE_FIXED_PORT"
-        HHCPSUseNamedPort -> "USE_NAMED_PORT"
-        HHCPSUseServingPort -> "USE_SERVING_PORT"
-
-instance FromJSON HTTPSHealthCheckPortSpecification where
-    parseJSON = parseJSONText "HTTPSHealthCheckPortSpecification"
-
-instance ToJSON HTTPSHealthCheckPortSpecification where
-    toJSON = toJSONText
-
--- | This signifies what the ForwardingRule will be used for and can only
--- take the following values: INTERNAL, INTERNAL_SELF_MANAGED, EXTERNAL.
--- The value of INTERNAL means that this will be used for Internal Network
--- Load Balancing (TCP, UDP). The value of INTERNAL_SELF_MANAGED means that
--- this will be used for Internal Global HTTP(S) LB. The value of EXTERNAL
--- means that this will be used for External Load Balancing (HTTP(S) LB,
--- External TCP\/UDP LB, SSL Proxy)
-data ForwardingRuleLoadBalancingScheme
-    = FRLBSExternal
-      -- ^ @EXTERNAL@
-    | FRLBSInternal
-      -- ^ @INTERNAL@
-    | FRLBSInvalid
-      -- ^ @INVALID@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleLoadBalancingScheme
-
-instance FromHttpApiData ForwardingRuleLoadBalancingScheme where
-    parseQueryParam = \case
-        "EXTERNAL" -> Right FRLBSExternal
-        "INTERNAL" -> Right FRLBSInternal
-        "INVALID" -> Right FRLBSInvalid
-        x -> Left ("Unable to parse ForwardingRuleLoadBalancingScheme from: " <> x)
-
-instance ToHttpApiData ForwardingRuleLoadBalancingScheme where
-    toQueryParam = \case
-        FRLBSExternal -> "EXTERNAL"
-        FRLBSInternal -> "INTERNAL"
-        FRLBSInvalid -> "INVALID"
-
-instance FromJSON ForwardingRuleLoadBalancingScheme where
-    parseJSON = parseJSONText "ForwardingRuleLoadBalancingScheme"
-
-instance ToJSON ForwardingRuleLoadBalancingScheme where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DiskTypeAggregatedListWarningCode
-    = DTALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DTALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DTALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DTALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DTALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DTALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DTALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DTALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DTALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DTALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DTALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DTALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DTALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DTALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DTALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DTALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DTALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DTALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DTALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DTALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DTALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DTALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DTALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskTypeAggregatedListWarningCode
-
-instance FromHttpApiData DiskTypeAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DTALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DTALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DTALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DTALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DTALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DTALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DTALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DTALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DTALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DTALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DTALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DTALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DTALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DTALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DTALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DTALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DTALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DTALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DTALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DTALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DTALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DTALWCUndeclaredProperties
-        "UNREACHABLE" -> Right DTALWCUnreachable
-        x -> Left ("Unable to parse DiskTypeAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData DiskTypeAggregatedListWarningCode where
-    toQueryParam = \case
-        DTALWCCleanupFailed -> "CLEANUP_FAILED"
-        DTALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DTALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DTALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DTALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DTALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DTALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DTALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DTALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DTALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DTALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DTALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DTALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DTALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DTALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DTALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DTALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DTALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DTALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DTALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DTALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DTALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DTALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DiskTypeAggregatedListWarningCode where
-    parseJSON = parseJSONText "DiskTypeAggregatedListWarningCode"
-
-instance ToJSON DiskTypeAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Type of interconnect. Note that \"IT_PRIVATE\" has been deprecated in
--- favor of \"DEDICATED\"
-data InterconnectInterconnectType
-    = IITDedicated
-      -- ^ @DEDICATED@
-    | IITItPrivate
-      -- ^ @IT_PRIVATE@
-    | IITPartner
-      -- ^ @PARTNER@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectInterconnectType
-
-instance FromHttpApiData InterconnectInterconnectType where
-    parseQueryParam = \case
-        "DEDICATED" -> Right IITDedicated
-        "IT_PRIVATE" -> Right IITItPrivate
-        "PARTNER" -> Right IITPartner
-        x -> Left ("Unable to parse InterconnectInterconnectType from: " <> x)
-
-instance ToHttpApiData InterconnectInterconnectType where
-    toQueryParam = \case
-        IITDedicated -> "DEDICATED"
-        IITItPrivate -> "IT_PRIVATE"
-        IITPartner -> "PARTNER"
-
-instance FromJSON InterconnectInterconnectType where
-    parseJSON = parseJSONText "InterconnectInterconnectType"
-
-instance ToJSON InterconnectInterconnectType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupManagerListWarningCode
-    = IGMLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGMLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGMLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGMLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGMLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGMLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGMLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGMLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGMLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGMLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGMLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGMLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGMLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGMLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGMLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGMLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGMLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGMLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGMLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGMLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGMLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGMLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGMLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupManagerListWarningCode
-
-instance FromHttpApiData InstanceGroupManagerListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGMLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGMLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGMLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGMLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGMLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGMLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGMLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGMLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGMLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGMLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGMLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGMLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGMLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGMLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGMLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGMLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGMLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGMLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGMLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGMLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGMLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGMLWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGMLWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupManagerListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupManagerListWarningCode where
-    toQueryParam = \case
-        IGMLWCCleanupFailed -> "CLEANUP_FAILED"
-        IGMLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGMLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGMLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGMLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGMLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGMLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGMLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGMLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGMLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGMLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGMLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGMLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGMLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGMLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGMLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGMLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGMLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGMLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGMLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGMLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGMLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGMLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupManagerListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupManagerListWarningCode"
-
-instance ToJSON InstanceGroupManagerListWarningCode where
-    toJSON = toJSONText
-
--- | Status of the BGP peer: {UP, DOWN}
-data RouterStatusBGPPeerStatusStatus
-    = RSBPSSDown
-      -- ^ @DOWN@
-    | RSBPSSUnknown
-      -- ^ @UNKNOWN@
-    | RSBPSSUP
-      -- ^ @UP@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RouterStatusBGPPeerStatusStatus
-
-instance FromHttpApiData RouterStatusBGPPeerStatusStatus where
-    parseQueryParam = \case
-        "DOWN" -> Right RSBPSSDown
-        "UNKNOWN" -> Right RSBPSSUnknown
-        "UP" -> Right RSBPSSUP
-        x -> Left ("Unable to parse RouterStatusBGPPeerStatusStatus from: " <> x)
-
-instance ToHttpApiData RouterStatusBGPPeerStatusStatus where
-    toQueryParam = \case
-        RSBPSSDown -> "DOWN"
-        RSBPSSUnknown -> "UNKNOWN"
-        RSBPSSUP -> "UP"
-
-instance FromJSON RouterStatusBGPPeerStatusStatus where
-    parseJSON = parseJSONText "RouterStatusBGPPeerStatusStatus"
-
-instance ToJSON RouterStatusBGPPeerStatusStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data DiskListWarningCode
-    = DLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | DLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | DLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | DLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | DLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | DLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | DLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | DLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | DLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | DLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | DLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | DLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | DLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | DLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | DLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | DLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | DLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | DLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | DLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | DLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | DLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | DLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | DLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable DiskListWarningCode
-
-instance FromHttpApiData DiskListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right DLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right DLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right DLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right DLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right DLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right DLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right DLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right DLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right DLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right DLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right DLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right DLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right DLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right DLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right DLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right DLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right DLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right DLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right DLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right DLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right DLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right DLWCUndeclaredProperties
-        "UNREACHABLE" -> Right DLWCUnreachable
-        x -> Left ("Unable to parse DiskListWarningCode from: " <> x)
-
-instance ToHttpApiData DiskListWarningCode where
-    toQueryParam = \case
-        DLWCCleanupFailed -> "CLEANUP_FAILED"
-        DLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        DLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        DLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        DLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        DLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        DLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        DLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        DLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        DLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        DLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        DLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        DLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        DLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        DLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        DLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        DLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        DLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        DLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        DLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        DLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        DLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        DLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON DiskListWarningCode where
-    parseJSON = parseJSONText "DiskListWarningCode"
-
-instance ToJSON DiskListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionAutoscalerListWarningCode
-    = RALWCACleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RALWCADeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RALWCADeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RALWCADiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RALWCAExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RALWCAExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RALWCAFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RALWCAInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RALWCAMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RALWCANextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RALWCANextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RALWCANextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RALWCANextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RALWCANextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RALWCANotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RALWCANoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RALWCARequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RALWCAResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RALWCAResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RALWCASchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RALWCASingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RALWCAUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RALWCAUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionAutoscalerListWarningCode
-
-instance FromHttpApiData RegionAutoscalerListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RALWCACleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RALWCADeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RALWCADeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RALWCADiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RALWCAExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RALWCAExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RALWCAFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RALWCAInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RALWCAMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RALWCANextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RALWCANextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RALWCANextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RALWCANextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RALWCANextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RALWCANotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RALWCANoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RALWCARequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RALWCAResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RALWCAResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RALWCASchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RALWCASingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RALWCAUndeclaredProperties
-        "UNREACHABLE" -> Right RALWCAUnreachable
-        x -> Left ("Unable to parse RegionAutoscalerListWarningCode from: " <> x)
-
-instance ToHttpApiData RegionAutoscalerListWarningCode where
-    toQueryParam = \case
-        RALWCACleanupFailed -> "CLEANUP_FAILED"
-        RALWCADeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RALWCADeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RALWCADiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RALWCAExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RALWCAExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RALWCAFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RALWCAInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RALWCAMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RALWCANextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RALWCANextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RALWCANextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RALWCANextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RALWCANextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RALWCANotCriticalError -> "NOT_CRITICAL_ERROR"
-        RALWCANoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RALWCARequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RALWCAResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RALWCAResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RALWCASchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RALWCASingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RALWCAUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RALWCAUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionAutoscalerListWarningCode where
-    parseJSON = parseJSONText "RegionAutoscalerListWarningCode"
-
-instance ToJSON RegionAutoscalerListWarningCode where
-    toJSON = toJSONText
-
--- | The plan for this commitment, which determines duration and discount
--- rate. The currently supported plans are TWELVE_MONTH (1 year), and
--- THIRTY_SIX_MONTH (3 years).
-data CommitmentPlan
-    = Invalid
-      -- ^ @INVALID@
-    | ThirtySixMonth
-      -- ^ @THIRTY_SIX_MONTH@
-    | TwelveMonth
-      -- ^ @TWELVE_MONTH@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommitmentPlan
-
-instance FromHttpApiData CommitmentPlan where
-    parseQueryParam = \case
-        "INVALID" -> Right Invalid
-        "THIRTY_SIX_MONTH" -> Right ThirtySixMonth
-        "TWELVE_MONTH" -> Right TwelveMonth
-        x -> Left ("Unable to parse CommitmentPlan from: " <> x)
-
-instance ToHttpApiData CommitmentPlan where
-    toQueryParam = \case
-        Invalid -> "INVALID"
-        ThirtySixMonth -> "THIRTY_SIX_MONTH"
-        TwelveMonth -> "TWELVE_MONTH"
-
-instance FromJSON CommitmentPlan where
-    parseJSON = parseJSONText "CommitmentPlan"
-
-instance ToJSON CommitmentPlan where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data OperationListWarningCode
-    = OLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | OLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | OLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | OLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | OLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | OLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | OLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | OLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | OLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | OLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | OLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | OLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | OLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | OLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | OLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | OLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | OLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | OLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | OLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | OLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | OLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | OLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | OLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable OperationListWarningCode
-
-instance FromHttpApiData OperationListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right OLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right OLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right OLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right OLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right OLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right OLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right OLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right OLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right OLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right OLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right OLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right OLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right OLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right OLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right OLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right OLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right OLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right OLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right OLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right OLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right OLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right OLWCUndeclaredProperties
-        "UNREACHABLE" -> Right OLWCUnreachable
-        x -> Left ("Unable to parse OperationListWarningCode from: " <> x)
-
-instance ToHttpApiData OperationListWarningCode where
-    toQueryParam = \case
-        OLWCCleanupFailed -> "CLEANUP_FAILED"
-        OLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        OLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        OLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        OLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        OLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        OLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        OLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        OLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        OLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        OLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        OLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        OLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        OLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        OLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        OLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        OLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        OLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        OLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        OLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        OLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        OLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        OLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON OperationListWarningCode where
-    parseJSON = parseJSONText "OperationListWarningCode"
-
-instance ToJSON OperationListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data ForwardingRuleListWarningCode
-    = FRLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | FRLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | FRLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | FRLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | FRLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | FRLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | FRLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | FRLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | FRLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | FRLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | FRLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | FRLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | FRLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | FRLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | FRLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | FRLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | FRLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | FRLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | FRLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | FRLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | FRLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | FRLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | FRLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleListWarningCode
-
-instance FromHttpApiData ForwardingRuleListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right FRLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right FRLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right FRLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right FRLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right FRLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right FRLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right FRLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right FRLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right FRLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right FRLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right FRLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right FRLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right FRLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right FRLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right FRLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right FRLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right FRLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right FRLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right FRLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right FRLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right FRLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right FRLWCUndeclaredProperties
-        "UNREACHABLE" -> Right FRLWCUnreachable
-        x -> Left ("Unable to parse ForwardingRuleListWarningCode from: " <> x)
-
-instance ToHttpApiData ForwardingRuleListWarningCode where
-    toQueryParam = \case
-        FRLWCCleanupFailed -> "CLEANUP_FAILED"
-        FRLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        FRLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        FRLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        FRLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        FRLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        FRLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        FRLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        FRLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        FRLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        FRLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        FRLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        FRLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        FRLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        FRLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        FRLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        FRLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        FRLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        FRLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        FRLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        FRLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        FRLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        FRLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON ForwardingRuleListWarningCode where
-    parseJSON = parseJSONText "ForwardingRuleListWarningCode"
-
-instance ToJSON ForwardingRuleListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data VPNTunnelsScopedListWarningCode
-    = VTSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | VTSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | VTSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | VTSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | VTSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | VTSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | VTSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | VTSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | VTSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | VTSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | VTSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | VTSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | VTSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | VTSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | VTSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | VTSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | VTSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | VTSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | VTSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | VTSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | VTSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | VTSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | VTSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable VPNTunnelsScopedListWarningCode
-
-instance FromHttpApiData VPNTunnelsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right VTSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right VTSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right VTSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right VTSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right VTSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right VTSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right VTSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right VTSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right VTSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right VTSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right VTSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right VTSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right VTSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right VTSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right VTSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right VTSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right VTSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right VTSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right VTSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right VTSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right VTSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right VTSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right VTSLWCUnreachable
-        x -> Left ("Unable to parse VPNTunnelsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData VPNTunnelsScopedListWarningCode where
-    toQueryParam = \case
-        VTSLWCCleanupFailed -> "CLEANUP_FAILED"
-        VTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        VTSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        VTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        VTSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        VTSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        VTSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        VTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        VTSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        VTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        VTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        VTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        VTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        VTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        VTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        VTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        VTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        VTSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        VTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        VTSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        VTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        VTSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        VTSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON VPNTunnelsScopedListWarningCode where
-    parseJSON = parseJSONText "VPNTunnelsScopedListWarningCode"
-
-instance ToJSON VPNTunnelsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTypesScopedListWarningCode
-    = NTSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NTSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NTSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NTSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NTSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NTSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NTSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NTSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NTSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NTSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NTSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NTSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NTSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NTSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NTSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NTSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NTSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NTSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NTSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NTSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NTSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NTSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NTSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTypesScopedListWarningCode
-
-instance FromHttpApiData NodeTypesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NTSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NTSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NTSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NTSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NTSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NTSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NTSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NTSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NTSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NTSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NTSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NTSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NTSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NTSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NTSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NTSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NTSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NTSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NTSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NTSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NTSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NTSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NTSLWCUnreachable
-        x -> Left ("Unable to parse NodeTypesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTypesScopedListWarningCode where
-    toQueryParam = \case
-        NTSLWCCleanupFailed -> "CLEANUP_FAILED"
-        NTSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NTSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NTSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NTSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NTSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NTSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NTSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NTSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NTSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NTSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NTSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NTSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NTSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NTSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NTSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NTSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NTSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NTSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NTSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NTSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NTSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NTSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTypesScopedListWarningCode where
-    parseJSON = parseJSONText "NodeTypesScopedListWarningCode"
-
-instance ToJSON NodeTypesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetInstanceAggregatedListWarningCode
-    = TIALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TIALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TIALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TIALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TIALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TIALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TIALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TIALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TIALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TIALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TIALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TIALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TIALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TIALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TIALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TIALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TIALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TIALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TIALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TIALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TIALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TIALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TIALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetInstanceAggregatedListWarningCode
-
-instance FromHttpApiData TargetInstanceAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TIALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TIALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TIALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TIALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TIALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TIALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TIALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TIALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TIALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TIALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TIALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TIALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TIALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TIALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TIALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TIALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TIALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TIALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TIALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TIALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TIALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TIALWCUndeclaredProperties
-        "UNREACHABLE" -> Right TIALWCUnreachable
-        x -> Left ("Unable to parse TargetInstanceAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetInstanceAggregatedListWarningCode where
-    toQueryParam = \case
-        TIALWCCleanupFailed -> "CLEANUP_FAILED"
-        TIALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TIALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TIALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TIALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TIALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TIALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TIALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TIALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TIALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TIALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TIALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TIALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TIALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TIALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TIALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TIALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TIALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TIALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TIALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TIALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TIALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TIALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetInstanceAggregatedListWarningCode where
-    parseJSON = parseJSONText "TargetInstanceAggregatedListWarningCode"
-
-instance ToJSON TargetInstanceAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionDiskTypeListWarningCode
-    = RDTLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RDTLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RDTLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RDTLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RDTLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RDTLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RDTLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RDTLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RDTLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RDTLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RDTLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RDTLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RDTLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RDTLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RDTLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RDTLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RDTLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RDTLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RDTLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RDTLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RDTLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RDTLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RDTLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionDiskTypeListWarningCode
-
-instance FromHttpApiData RegionDiskTypeListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RDTLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RDTLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RDTLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RDTLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RDTLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RDTLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RDTLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RDTLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RDTLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RDTLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RDTLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RDTLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RDTLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RDTLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RDTLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RDTLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RDTLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RDTLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RDTLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RDTLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RDTLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RDTLWCUndeclaredProperties
-        "UNREACHABLE" -> Right RDTLWCUnreachable
-        x -> Left ("Unable to parse RegionDiskTypeListWarningCode from: " <> x)
-
-instance ToHttpApiData RegionDiskTypeListWarningCode where
-    toQueryParam = \case
-        RDTLWCCleanupFailed -> "CLEANUP_FAILED"
-        RDTLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RDTLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RDTLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RDTLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RDTLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RDTLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RDTLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RDTLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RDTLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RDTLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RDTLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RDTLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RDTLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RDTLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RDTLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RDTLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RDTLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RDTLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RDTLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RDTLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RDTLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RDTLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionDiskTypeListWarningCode where
-    parseJSON = parseJSONText "RegionDiskTypeListWarningCode"
-
-instance ToJSON RegionDiskTypeListWarningCode where
-    toJSON = toJSONText
-
--- | The type of address to reserve, either INTERNAL or EXTERNAL. If
--- unspecified, defaults to EXTERNAL.
-data AddressAddressType
-    = AATExternal
-      -- ^ @EXTERNAL@
-    | AATInternal
-      -- ^ @INTERNAL@
-    | AATUnspecifiedType
-      -- ^ @UNSPECIFIED_TYPE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressAddressType
-
-instance FromHttpApiData AddressAddressType where
-    parseQueryParam = \case
-        "EXTERNAL" -> Right AATExternal
-        "INTERNAL" -> Right AATInternal
-        "UNSPECIFIED_TYPE" -> Right AATUnspecifiedType
-        x -> Left ("Unable to parse AddressAddressType from: " <> x)
-
-instance ToHttpApiData AddressAddressType where
-    toQueryParam = \case
-        AATExternal -> "EXTERNAL"
-        AATInternal -> "INTERNAL"
-        AATUnspecifiedType -> "UNSPECIFIED_TYPE"
-
-instance FromJSON AddressAddressType where
-    parseJSON = parseJSONText "AddressAddressType"
-
-instance ToJSON AddressAddressType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data TargetPoolListWarningCode
-    = TPLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | TPLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | TPLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | TPLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | TPLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | TPLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | TPLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | TPLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | TPLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | TPLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | TPLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | TPLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | TPLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | TPLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | TPLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | TPLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | TPLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | TPLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | TPLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | TPLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | TPLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | TPLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | TPLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetPoolListWarningCode
-
-instance FromHttpApiData TargetPoolListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right TPLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right TPLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right TPLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right TPLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right TPLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right TPLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right TPLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right TPLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right TPLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right TPLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right TPLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right TPLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right TPLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right TPLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right TPLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right TPLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right TPLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right TPLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right TPLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right TPLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right TPLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right TPLWCUndeclaredProperties
-        "UNREACHABLE" -> Right TPLWCUnreachable
-        x -> Left ("Unable to parse TargetPoolListWarningCode from: " <> x)
-
-instance ToHttpApiData TargetPoolListWarningCode where
-    toQueryParam = \case
-        TPLWCCleanupFailed -> "CLEANUP_FAILED"
-        TPLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        TPLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        TPLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        TPLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        TPLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        TPLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        TPLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        TPLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        TPLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        TPLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        TPLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        TPLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        TPLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        TPLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        TPLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        TPLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        TPLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        TPLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        TPLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        TPLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        TPLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        TPLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON TargetPoolListWarningCode where
-    parseJSON = parseJSONText "TargetPoolListWarningCode"
-
-instance ToJSON TargetPoolListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NodeTemplatesScopedListWarningCode
-    = NTSLWCTCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NTSLWCTDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NTSLWCTDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NTSLWCTDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NTSLWCTExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NTSLWCTExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NTSLWCTFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NTSLWCTInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NTSLWCTMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NTSLWCTNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NTSLWCTNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NTSLWCTNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NTSLWCTNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NTSLWCTNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NTSLWCTNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NTSLWCTNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NTSLWCTRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NTSLWCTResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NTSLWCTResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NTSLWCTSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NTSLWCTSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NTSLWCTUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NTSLWCTUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NodeTemplatesScopedListWarningCode
-
-instance FromHttpApiData NodeTemplatesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NTSLWCTCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NTSLWCTDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NTSLWCTDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NTSLWCTDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NTSLWCTExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NTSLWCTExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NTSLWCTFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NTSLWCTInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NTSLWCTMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NTSLWCTNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NTSLWCTNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NTSLWCTNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NTSLWCTNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NTSLWCTNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NTSLWCTNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NTSLWCTNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NTSLWCTRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NTSLWCTResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NTSLWCTResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NTSLWCTSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NTSLWCTSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NTSLWCTUndeclaredProperties
-        "UNREACHABLE" -> Right NTSLWCTUnreachable
-        x -> Left ("Unable to parse NodeTemplatesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData NodeTemplatesScopedListWarningCode where
-    toQueryParam = \case
-        NTSLWCTCleanupFailed -> "CLEANUP_FAILED"
-        NTSLWCTDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NTSLWCTDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NTSLWCTDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NTSLWCTExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NTSLWCTExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NTSLWCTFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NTSLWCTInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NTSLWCTMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NTSLWCTNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NTSLWCTNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NTSLWCTNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NTSLWCTNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NTSLWCTNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NTSLWCTNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NTSLWCTNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NTSLWCTRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NTSLWCTResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NTSLWCTResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NTSLWCTSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NTSLWCTSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NTSLWCTUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NTSLWCTUnreachable -> "UNREACHABLE"
-
-instance FromJSON NodeTemplatesScopedListWarningCode where
-    parseJSON = parseJSONText "NodeTemplatesScopedListWarningCode"
-
-instance ToJSON NodeTemplatesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data NetworkListWarningCode
-    = NLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | NLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | NLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | NLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | NLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | NLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | NLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | NLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | NLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | NLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | NLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | NLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | NLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | NLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | NLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | NLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | NLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | NLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | NLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | NLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | NLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | NLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | NLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkListWarningCode
-
-instance FromHttpApiData NetworkListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right NLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right NLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right NLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right NLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right NLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right NLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right NLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right NLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right NLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right NLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right NLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right NLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right NLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right NLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right NLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right NLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right NLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right NLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right NLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right NLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right NLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right NLWCUndeclaredProperties
-        "UNREACHABLE" -> Right NLWCUnreachable
-        x -> Left ("Unable to parse NetworkListWarningCode from: " <> x)
-
-instance ToHttpApiData NetworkListWarningCode where
-    toQueryParam = \case
-        NLWCCleanupFailed -> "CLEANUP_FAILED"
-        NLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        NLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        NLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        NLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        NLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        NLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        NLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        NLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        NLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        NLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        NLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        NLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        NLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        NLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        NLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        NLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        NLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        NLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        NLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        NLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        NLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        NLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON NetworkListWarningCode where
-    parseJSON = parseJSONText "NetworkListWarningCode"
-
-instance ToJSON NetworkListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data XpnHostListWarningCode
-    = XHLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | XHLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | XHLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | XHLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | XHLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | XHLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | XHLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | XHLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | XHLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | XHLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | XHLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | XHLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | XHLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | XHLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | XHLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | XHLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | XHLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | XHLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | XHLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | XHLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | XHLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | XHLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | XHLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable XpnHostListWarningCode
-
-instance FromHttpApiData XpnHostListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right XHLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right XHLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right XHLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right XHLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right XHLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right XHLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right XHLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right XHLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right XHLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right XHLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right XHLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right XHLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right XHLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right XHLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right XHLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right XHLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right XHLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right XHLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right XHLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right XHLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right XHLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right XHLWCUndeclaredProperties
-        "UNREACHABLE" -> Right XHLWCUnreachable
-        x -> Left ("Unable to parse XpnHostListWarningCode from: " <> x)
-
-instance ToHttpApiData XpnHostListWarningCode where
-    toQueryParam = \case
-        XHLWCCleanupFailed -> "CLEANUP_FAILED"
-        XHLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        XHLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        XHLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        XHLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        XHLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        XHLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        XHLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        XHLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        XHLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        XHLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        XHLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        XHLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        XHLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        XHLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        XHLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        XHLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        XHLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        XHLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        XHLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        XHLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        XHLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        XHLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON XpnHostListWarningCode where
-    parseJSON = parseJSONText "XpnHostListWarningCode"
-
-instance ToJSON XpnHostListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InterconnectAttachmentAggregatedListWarningCode
-    = IAALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IAALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IAALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IAALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IAALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IAALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IAALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IAALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IAALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IAALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IAALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IAALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IAALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IAALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IAALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IAALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IAALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IAALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IAALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IAALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IAALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IAALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IAALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentAggregatedListWarningCode
-
-instance FromHttpApiData InterconnectAttachmentAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IAALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IAALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IAALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IAALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IAALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IAALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IAALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IAALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IAALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IAALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IAALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IAALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IAALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IAALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IAALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IAALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IAALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IAALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IAALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IAALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IAALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IAALWCUndeclaredProperties
-        "UNREACHABLE" -> Right IAALWCUnreachable
-        x -> Left ("Unable to parse InterconnectAttachmentAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentAggregatedListWarningCode where
-    toQueryParam = \case
-        IAALWCCleanupFailed -> "CLEANUP_FAILED"
-        IAALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IAALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IAALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IAALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IAALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IAALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IAALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IAALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IAALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IAALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IAALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IAALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IAALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IAALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IAALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IAALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IAALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IAALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IAALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IAALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IAALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IAALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InterconnectAttachmentAggregatedListWarningCode where
-    parseJSON = parseJSONText "InterconnectAttachmentAggregatedListWarningCode"
-
-instance ToJSON InterconnectAttachmentAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AddressListWarningCode
-    = ADDCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ADDDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ADDDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ADDDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ADDExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ADDExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ADDFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ADDInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ADDMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ADDNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ADDNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ADDNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ADDNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ADDNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ADDNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ADDNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ADDRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ADDResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ADDResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ADDSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ADDSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ADDUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ADDUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressListWarningCode
-
-instance FromHttpApiData AddressListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ADDCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ADDDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ADDDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ADDDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ADDExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ADDExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ADDFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ADDInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ADDMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ADDNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ADDNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ADDNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ADDNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ADDNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ADDNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ADDNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ADDRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ADDResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ADDResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ADDSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ADDSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ADDUndeclaredProperties
-        "UNREACHABLE" -> Right ADDUnreachable
-        x -> Left ("Unable to parse AddressListWarningCode from: " <> x)
-
-instance ToHttpApiData AddressListWarningCode where
-    toQueryParam = \case
-        ADDCleanupFailed -> "CLEANUP_FAILED"
-        ADDDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ADDDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ADDDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ADDExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ADDExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ADDFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ADDInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ADDMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ADDNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ADDNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ADDNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ADDNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ADDNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ADDNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ADDNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ADDRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ADDResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ADDResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ADDSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ADDSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ADDUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ADDUnreachable -> "UNREACHABLE"
-
-instance FromJSON AddressListWarningCode where
-    parseJSON = parseJSONText "AddressListWarningCode"
-
-instance ToJSON AddressListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] State for the peering.
-data NetworkPeeringState
-    = NPSActive
-      -- ^ @ACTIVE@
-    | NPSInactive
-      -- ^ @INACTIVE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable NetworkPeeringState
-
-instance FromHttpApiData NetworkPeeringState where
-    parseQueryParam = \case
-        "ACTIVE" -> Right NPSActive
-        "INACTIVE" -> Right NPSInactive
-        x -> Left ("Unable to parse NetworkPeeringState from: " <> x)
-
-instance ToHttpApiData NetworkPeeringState where
-    toQueryParam = \case
-        NPSActive -> "ACTIVE"
-        NPSInactive -> "INACTIVE"
-
-instance FromJSON NetworkPeeringState where
-    parseJSON = parseJSONText "NetworkPeeringState"
-
-instance ToJSON NetworkPeeringState where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data ZoneListWarningCode
-    = ZLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ZLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ZLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ZLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ZLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ZLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ZLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ZLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ZLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ZLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ZLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ZLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ZLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ZLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ZLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ZLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ZLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ZLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ZLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ZLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ZLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ZLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ZLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ZoneListWarningCode
-
-instance FromHttpApiData ZoneListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ZLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ZLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ZLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ZLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ZLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ZLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ZLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ZLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ZLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ZLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ZLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ZLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ZLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ZLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ZLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ZLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ZLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ZLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ZLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ZLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ZLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ZLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ZLWCUnreachable
-        x -> Left ("Unable to parse ZoneListWarningCode from: " <> x)
-
-instance ToHttpApiData ZoneListWarningCode where
-    toQueryParam = \case
-        ZLWCCleanupFailed -> "CLEANUP_FAILED"
-        ZLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ZLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ZLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ZLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ZLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ZLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ZLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ZLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ZLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ZLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ZLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ZLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ZLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ZLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ZLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ZLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ZLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ZLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ZLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ZLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ZLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ZLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON ZoneListWarningCode where
-    parseJSON = parseJSONText "ZoneListWarningCode"
-
-instance ToJSON ZoneListWarningCode where
-    toJSON = toJSONText
-
--- | The type of the permission that was checked.
-data AuthorizationLoggingOptionsPermissionType
-    = ALOPTAdminRead
-      -- ^ @ADMIN_READ@
-    | ALOPTAdminWrite
-      -- ^ @ADMIN_WRITE@
-    | ALOPTDataRead
-      -- ^ @DATA_READ@
-    | ALOPTDataWrite
-      -- ^ @DATA_WRITE@
-    | ALOPTPermissionTypeUnspecified
-      -- ^ @PERMISSION_TYPE_UNSPECIFIED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AuthorizationLoggingOptionsPermissionType
-
-instance FromHttpApiData AuthorizationLoggingOptionsPermissionType where
-    parseQueryParam = \case
-        "ADMIN_READ" -> Right ALOPTAdminRead
-        "ADMIN_WRITE" -> Right ALOPTAdminWrite
-        "DATA_READ" -> Right ALOPTDataRead
-        "DATA_WRITE" -> Right ALOPTDataWrite
-        "PERMISSION_TYPE_UNSPECIFIED" -> Right ALOPTPermissionTypeUnspecified
-        x -> Left ("Unable to parse AuthorizationLoggingOptionsPermissionType from: " <> x)
-
-instance ToHttpApiData AuthorizationLoggingOptionsPermissionType where
-    toQueryParam = \case
-        ALOPTAdminRead -> "ADMIN_READ"
-        ALOPTAdminWrite -> "ADMIN_WRITE"
-        ALOPTDataRead -> "DATA_READ"
-        ALOPTDataWrite -> "DATA_WRITE"
-        ALOPTPermissionTypeUnspecified -> "PERMISSION_TYPE_UNSPECIFIED"
-
-instance FromJSON AuthorizationLoggingOptionsPermissionType where
-    parseJSON = parseJSONText "AuthorizationLoggingOptionsPermissionType"
-
-instance ToJSON AuthorizationLoggingOptionsPermissionType where
-    toJSON = toJSONText
-
--- | Form this outage is expected to take. Note that the \"IT_\" versions of
--- this enum have been deprecated in favor of the unprefixed values.
-data InterconnectOutageNotificationIssueType
-    = ItOutage
-      -- ^ @IT_OUTAGE@
-    | ItPartialOutage
-      -- ^ @IT_PARTIAL_OUTAGE@
-    | Outage
-      -- ^ @OUTAGE@
-    | PartialOutage
-      -- ^ @PARTIAL_OUTAGE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectOutageNotificationIssueType
-
-instance FromHttpApiData InterconnectOutageNotificationIssueType where
-    parseQueryParam = \case
-        "IT_OUTAGE" -> Right ItOutage
-        "IT_PARTIAL_OUTAGE" -> Right ItPartialOutage
-        "OUTAGE" -> Right Outage
-        "PARTIAL_OUTAGE" -> Right PartialOutage
-        x -> Left ("Unable to parse InterconnectOutageNotificationIssueType from: " <> x)
-
-instance ToHttpApiData InterconnectOutageNotificationIssueType where
-    toQueryParam = \case
-        ItOutage -> "IT_OUTAGE"
-        ItPartialOutage -> "IT_PARTIAL_OUTAGE"
-        Outage -> "OUTAGE"
-        PartialOutage -> "PARTIAL_OUTAGE"
-
-instance FromJSON InterconnectOutageNotificationIssueType where
-    parseJSON = parseJSONText "InterconnectOutageNotificationIssueType"
-
-instance ToJSON InterconnectOutageNotificationIssueType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data CommitmentsScopedListWarningCode
-    = CSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | CSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | CSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | CSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | CSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | CSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | CSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | CSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | CSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | CSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | CSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | CSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | CSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | CSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | CSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | CSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | CSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | CSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | CSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | CSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | CSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | CSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | CSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommitmentsScopedListWarningCode
-
-instance FromHttpApiData CommitmentsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right CSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right CSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right CSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right CSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right CSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right CSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right CSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right CSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right CSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right CSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right CSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right CSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right CSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right CSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right CSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right CSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right CSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right CSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right CSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right CSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right CSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right CSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right CSLWCUnreachable
-        x -> Left ("Unable to parse CommitmentsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData CommitmentsScopedListWarningCode where
-    toQueryParam = \case
-        CSLWCCleanupFailed -> "CLEANUP_FAILED"
-        CSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        CSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        CSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        CSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        CSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        CSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        CSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        CSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        CSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        CSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        CSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        CSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        CSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        CSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        CSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        CSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        CSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        CSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        CSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        CSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        CSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        CSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON CommitmentsScopedListWarningCode where
-    parseJSON = parseJSONText "CommitmentsScopedListWarningCode"
-
-instance ToJSON CommitmentsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data HTTP2HealthCheckProxyHeader
-    = HNone
-      -- ^ @NONE@
-    | HProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTP2HealthCheckProxyHeader
-
-instance FromHttpApiData HTTP2HealthCheckProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right HNone
-        "PROXY_V1" -> Right HProxyV1
-        x -> Left ("Unable to parse HTTP2HealthCheckProxyHeader from: " <> x)
-
-instance ToHttpApiData HTTP2HealthCheckProxyHeader where
-    toQueryParam = \case
-        HNone -> "NONE"
-        HProxyV1 -> "PROXY_V1"
-
-instance FromJSON HTTP2HealthCheckProxyHeader where
-    parseJSON = parseJSONText "HTTP2HealthCheckProxyHeader"
-
-instance ToJSON HTTP2HealthCheckProxyHeader where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InterconnectAttachmentsScopedListWarningCode
-    = IASLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IASLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IASLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IASLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IASLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IASLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IASLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IASLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IASLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IASLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IASLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IASLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IASLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IASLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IASLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IASLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IASLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IASLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IASLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IASLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IASLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IASLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IASLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentsScopedListWarningCode
-
-instance FromHttpApiData InterconnectAttachmentsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IASLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IASLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IASLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IASLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IASLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IASLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IASLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IASLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IASLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IASLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IASLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IASLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IASLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IASLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IASLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IASLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IASLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IASLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IASLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IASLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IASLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IASLWCUndeclaredProperties
-        "UNREACHABLE" -> Right IASLWCUnreachable
-        x -> Left ("Unable to parse InterconnectAttachmentsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentsScopedListWarningCode where
-    toQueryParam = \case
-        IASLWCCleanupFailed -> "CLEANUP_FAILED"
-        IASLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IASLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IASLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IASLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IASLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IASLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IASLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IASLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IASLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IASLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IASLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IASLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IASLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IASLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IASLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IASLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IASLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IASLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IASLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IASLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IASLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IASLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InterconnectAttachmentsScopedListWarningCode where
-    parseJSON = parseJSONText "InterconnectAttachmentsScopedListWarningCode"
-
-instance ToJSON InterconnectAttachmentsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data SecurityPolicyListWarningCode
-    = SECCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | SECDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | SECDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | SECDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | SECExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | SECExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | SECFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | SECInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | SECMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | SECNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | SECNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | SECNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | SECNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | SECNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | SECNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | SECNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | SECRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | SECResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | SECResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | SECSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | SECSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | SECUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | SECUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable SecurityPolicyListWarningCode
-
-instance FromHttpApiData SecurityPolicyListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right SECCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right SECDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right SECDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right SECDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right SECExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right SECExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right SECFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right SECInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right SECMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right SECNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right SECNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right SECNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right SECNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right SECNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right SECNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right SECNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right SECRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right SECResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right SECResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right SECSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right SECSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right SECUndeclaredProperties
-        "UNREACHABLE" -> Right SECUnreachable
-        x -> Left ("Unable to parse SecurityPolicyListWarningCode from: " <> x)
-
-instance ToHttpApiData SecurityPolicyListWarningCode where
-    toQueryParam = \case
-        SECCleanupFailed -> "CLEANUP_FAILED"
-        SECDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        SECDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        SECDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        SECExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        SECExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        SECFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        SECInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        SECMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        SECNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        SECNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        SECNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        SECNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        SECNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        SECNotCriticalError -> "NOT_CRITICAL_ERROR"
-        SECNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        SECRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        SECResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        SECResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        SECSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        SECSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        SECUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        SECUnreachable -> "UNREACHABLE"
-
-instance FromJSON SecurityPolicyListWarningCode where
-    parseJSON = parseJSONText "SecurityPolicyListWarningCode"
-
-instance ToJSON SecurityPolicyListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data CommitmentAggregatedListWarningCode
-    = CALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | CALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | CALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | CALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | CALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | CALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | CALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | CALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | CALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | CALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | CALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | CALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | CALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | CALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | CALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | CALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | CALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | CALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | CALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | CALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | CALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | CALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | CALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommitmentAggregatedListWarningCode
-
-instance FromHttpApiData CommitmentAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right CALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right CALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right CALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right CALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right CALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right CALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right CALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right CALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right CALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right CALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right CALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right CALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right CALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right CALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right CALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right CALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right CALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right CALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right CALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right CALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right CALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right CALWCUndeclaredProperties
-        "UNREACHABLE" -> Right CALWCUnreachable
-        x -> Left ("Unable to parse CommitmentAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData CommitmentAggregatedListWarningCode where
-    toQueryParam = \case
-        CALWCCleanupFailed -> "CLEANUP_FAILED"
-        CALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        CALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        CALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        CALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        CALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        CALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        CALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        CALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        CALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        CALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        CALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        CALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        CALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        CALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        CALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        CALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        CALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        CALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        CALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        CALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        CALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        CALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON CommitmentAggregatedListWarningCode where
-    parseJSON = parseJSONText "CommitmentAggregatedListWarningCode"
-
-instance ToJSON CommitmentAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data RegionInstanceGroupListWarningCode
-    = RIGLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | RIGLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | RIGLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | RIGLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | RIGLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | RIGLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | RIGLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | RIGLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | RIGLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | RIGLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | RIGLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | RIGLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | RIGLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | RIGLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | RIGLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | RIGLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | RIGLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | RIGLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | RIGLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | RIGLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | RIGLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | RIGLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | RIGLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable RegionInstanceGroupListWarningCode
-
-instance FromHttpApiData RegionInstanceGroupListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right RIGLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right RIGLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right RIGLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right RIGLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right RIGLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right RIGLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right RIGLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right RIGLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right RIGLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right RIGLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right RIGLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right RIGLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right RIGLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right RIGLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right RIGLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right RIGLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right RIGLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right RIGLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right RIGLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right RIGLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right RIGLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right RIGLWCUndeclaredProperties
-        "UNREACHABLE" -> Right RIGLWCUnreachable
-        x -> Left ("Unable to parse RegionInstanceGroupListWarningCode from: " <> x)
-
-instance ToHttpApiData RegionInstanceGroupListWarningCode where
-    toQueryParam = \case
-        RIGLWCCleanupFailed -> "CLEANUP_FAILED"
-        RIGLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        RIGLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        RIGLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        RIGLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        RIGLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        RIGLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        RIGLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        RIGLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        RIGLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        RIGLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        RIGLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        RIGLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        RIGLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        RIGLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        RIGLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        RIGLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        RIGLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        RIGLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        RIGLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        RIGLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        RIGLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        RIGLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON RegionInstanceGroupListWarningCode where
-    parseJSON = parseJSONText "RegionInstanceGroupListWarningCode"
-
-instance ToJSON RegionInstanceGroupListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of this InterconnectLocation. If the status is
--- AVAILABLE, new Interconnects may be provisioned in this
--- InterconnectLocation. Otherwise, no new Interconnects may be
--- provisioned.
-data InterconnectLocationStatus
-    = Available
-      -- ^ @AVAILABLE@
-    | Closed
-      -- ^ @CLOSED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectLocationStatus
-
-instance FromHttpApiData InterconnectLocationStatus where
-    parseQueryParam = \case
-        "AVAILABLE" -> Right Available
-        "CLOSED" -> Right Closed
-        x -> Left ("Unable to parse InterconnectLocationStatus from: " <> x)
-
-instance ToHttpApiData InterconnectLocationStatus where
-    toQueryParam = \case
-        Available -> "AVAILABLE"
-        Closed -> "CLOSED"
-
-instance FromJSON InterconnectLocationStatus where
-    parseJSON = parseJSONText "InterconnectLocationStatus"
-
-instance ToJSON InterconnectLocationStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceGroupsScopedListWarningCode
-    = IGSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IGSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IGSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IGSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IGSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IGSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IGSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IGSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IGSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IGSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IGSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IGSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IGSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IGSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IGSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IGSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IGSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IGSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IGSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IGSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IGSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IGSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IGSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupsScopedListWarningCode
-
-instance FromHttpApiData InstanceGroupsScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IGSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IGSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IGSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IGSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IGSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IGSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IGSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IGSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IGSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IGSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IGSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IGSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IGSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IGSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IGSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IGSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IGSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IGSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IGSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IGSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IGSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IGSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right IGSLWCUnreachable
-        x -> Left ("Unable to parse InstanceGroupsScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceGroupsScopedListWarningCode where
-    toQueryParam = \case
-        IGSLWCCleanupFailed -> "CLEANUP_FAILED"
-        IGSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IGSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IGSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IGSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IGSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IGSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IGSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IGSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IGSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IGSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IGSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IGSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IGSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IGSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IGSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IGSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IGSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IGSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IGSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IGSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IGSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IGSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceGroupsScopedListWarningCode where
-    parseJSON = parseJSONText "InstanceGroupsScopedListWarningCode"
-
-instance ToJSON InstanceGroupsScopedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The current status of whether or not this Interconnect is
--- functional.
-data InterconnectOperationalStatus
-    = IOSOSActive
-      -- ^ @OS_ACTIVE@
-    | IOSOSUnprovisioned
-      -- ^ @OS_UNPROVISIONED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectOperationalStatus
-
-instance FromHttpApiData InterconnectOperationalStatus where
-    parseQueryParam = \case
-        "OS_ACTIVE" -> Right IOSOSActive
-        "OS_UNPROVISIONED" -> Right IOSOSUnprovisioned
-        x -> Left ("Unable to parse InterconnectOperationalStatus from: " <> x)
-
-instance ToHttpApiData InterconnectOperationalStatus where
-    toQueryParam = \case
-        IOSOSActive -> "OS_ACTIVE"
-        IOSOSUnprovisioned -> "OS_UNPROVISIONED"
-
-instance FromJSON InterconnectOperationalStatus where
-    parseJSON = parseJSONText "InterconnectOperationalStatus"
-
-instance ToJSON InterconnectOperationalStatus where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data LicensesListResponseWarningCode
-    = LLRWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | LLRWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | LLRWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | LLRWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | LLRWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | LLRWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | LLRWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | LLRWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | LLRWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | LLRWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | LLRWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | LLRWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | LLRWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | LLRWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | LLRWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | LLRWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | LLRWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | LLRWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | LLRWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | LLRWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | LLRWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | LLRWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | LLRWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable LicensesListResponseWarningCode
-
-instance FromHttpApiData LicensesListResponseWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right LLRWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right LLRWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right LLRWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right LLRWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right LLRWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right LLRWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right LLRWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right LLRWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right LLRWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right LLRWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right LLRWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right LLRWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right LLRWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right LLRWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right LLRWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right LLRWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right LLRWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right LLRWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right LLRWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right LLRWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right LLRWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right LLRWCUndeclaredProperties
-        "UNREACHABLE" -> Right LLRWCUnreachable
-        x -> Left ("Unable to parse LicensesListResponseWarningCode from: " <> x)
-
-instance ToHttpApiData LicensesListResponseWarningCode where
-    toQueryParam = \case
-        LLRWCCleanupFailed -> "CLEANUP_FAILED"
-        LLRWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        LLRWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        LLRWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        LLRWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        LLRWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        LLRWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        LLRWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        LLRWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        LLRWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        LLRWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        LLRWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        LLRWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        LLRWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        LLRWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        LLRWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        LLRWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        LLRWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        LLRWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        LLRWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        LLRWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        LLRWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        LLRWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON LicensesListResponseWarningCode where
-    parseJSON = parseJSONText "LicensesListResponseWarningCode"
-
-instance ToJSON LicensesListResponseWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the instance.
-data InstanceWithNamedPortsStatus
-    = IWNPSProvisioning
-      -- ^ @PROVISIONING@
-    | IWNPSRepairing
-      -- ^ @REPAIRING@
-    | IWNPSRunning
-      -- ^ @RUNNING@
-    | IWNPSStaging
-      -- ^ @STAGING@
-    | IWNPSStopped
-      -- ^ @STOPPED@
-    | IWNPSStopping
-      -- ^ @STOPPING@
-    | IWNPSSuspended
-      -- ^ @SUSPENDED@
-    | IWNPSSuspending
-      -- ^ @SUSPENDING@
-    | IWNPSTerminated
-      -- ^ @TERMINATED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceWithNamedPortsStatus
-
-instance FromHttpApiData InstanceWithNamedPortsStatus where
-    parseQueryParam = \case
-        "PROVISIONING" -> Right IWNPSProvisioning
-        "REPAIRING" -> Right IWNPSRepairing
-        "RUNNING" -> Right IWNPSRunning
-        "STAGING" -> Right IWNPSStaging
-        "STOPPED" -> Right IWNPSStopped
-        "STOPPING" -> Right IWNPSStopping
-        "SUSPENDED" -> Right IWNPSSuspended
-        "SUSPENDING" -> Right IWNPSSuspending
-        "TERMINATED" -> Right IWNPSTerminated
-        x -> Left ("Unable to parse InstanceWithNamedPortsStatus from: " <> x)
-
-instance ToHttpApiData InstanceWithNamedPortsStatus where
-    toQueryParam = \case
-        IWNPSProvisioning -> "PROVISIONING"
-        IWNPSRepairing -> "REPAIRING"
-        IWNPSRunning -> "RUNNING"
-        IWNPSStaging -> "STAGING"
-        IWNPSStopped -> "STOPPED"
-        IWNPSStopping -> "STOPPING"
-        IWNPSSuspended -> "SUSPENDED"
-        IWNPSSuspending -> "SUSPENDING"
-        IWNPSTerminated -> "TERMINATED"
-
-instance FromJSON InstanceWithNamedPortsStatus where
-    parseJSON = parseJSONText "InstanceWithNamedPortsStatus"
-
-instance ToJSON InstanceWithNamedPortsStatus where
-    toJSON = toJSONText
-
--- | Specifies the type of proxy header to append before sending data to the
--- backend, either NONE or PROXY_V1. The default is NONE.
-data TCPHealthCheckProxyHeader
-    = THCPHNone
-      -- ^ @NONE@
-    | THCPHProxyV1
-      -- ^ @PROXY_V1@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TCPHealthCheckProxyHeader
-
-instance FromHttpApiData TCPHealthCheckProxyHeader where
-    parseQueryParam = \case
-        "NONE" -> Right THCPHNone
-        "PROXY_V1" -> Right THCPHProxyV1
-        x -> Left ("Unable to parse TCPHealthCheckProxyHeader from: " <> x)
-
-instance ToHttpApiData TCPHealthCheckProxyHeader where
-    toQueryParam = \case
-        THCPHNone -> "NONE"
-        THCPHProxyV1 -> "PROXY_V1"
-
-instance FromJSON TCPHealthCheckProxyHeader where
-    parseJSON = parseJSONText "TCPHealthCheckProxyHeader"
-
-instance ToJSON TCPHealthCheckProxyHeader where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data CommitmentListWarningCode
-    = CLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | CLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | CLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | CLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | CLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | CLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | CLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | CLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | CLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | CLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | CLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | CLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | CLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | CLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | CLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | CLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | CLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | CLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | CLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | CLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | CLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | CLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | CLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable CommitmentListWarningCode
-
-instance FromHttpApiData CommitmentListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right CLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right CLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right CLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right CLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right CLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right CLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right CLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right CLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right CLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right CLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right CLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right CLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right CLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right CLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right CLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right CLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right CLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right CLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right CLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right CLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right CLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right CLWCUndeclaredProperties
-        "UNREACHABLE" -> Right CLWCUnreachable
-        x -> Left ("Unable to parse CommitmentListWarningCode from: " <> x)
-
-instance ToHttpApiData CommitmentListWarningCode where
-    toQueryParam = \case
-        CLWCCleanupFailed -> "CLEANUP_FAILED"
-        CLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        CLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        CLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        CLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        CLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        CLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        CLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        CLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        CLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        CLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        CLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        CLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        CLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        CLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        CLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        CLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        CLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        CLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        CLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        CLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        CLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        CLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON CommitmentListWarningCode where
-    parseJSON = parseJSONText "CommitmentListWarningCode"
-
-instance ToJSON CommitmentListWarningCode where
-    toJSON = toJSONText
-
--- | Specifies how port is selected for health checking, can be one of
--- following values: USE_FIXED_PORT: The port number in port is used for
--- health checking. USE_NAMED_PORT: The portName is used for health
--- checking. USE_SERVING_PORT: For NetworkEndpointGroup, the port specified
--- for each network endpoint is used for health checking. For other
--- backends, the port or named port specified in the Backend Service is
--- used for health checking. If not specified, HTTP health check follows
--- behavior specified in port and portName fields.
-data HTTPHealthCheckPortSpecification
-    = HUseFixedPort
-      -- ^ @USE_FIXED_PORT@
-    | HUseNamedPort
-      -- ^ @USE_NAMED_PORT@
-    | HUseServingPort
-      -- ^ @USE_SERVING_PORT@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable HTTPHealthCheckPortSpecification
-
-instance FromHttpApiData HTTPHealthCheckPortSpecification where
-    parseQueryParam = \case
-        "USE_FIXED_PORT" -> Right HUseFixedPort
-        "USE_NAMED_PORT" -> Right HUseNamedPort
-        "USE_SERVING_PORT" -> Right HUseServingPort
-        x -> Left ("Unable to parse HTTPHealthCheckPortSpecification from: " <> x)
-
-instance ToHttpApiData HTTPHealthCheckPortSpecification where
-    toQueryParam = \case
-        HUseFixedPort -> "USE_FIXED_PORT"
-        HUseNamedPort -> "USE_NAMED_PORT"
-        HUseServingPort -> "USE_SERVING_PORT"
-
-instance FromJSON HTTPHealthCheckPortSpecification where
-    parseJSON = parseJSONText "HTTPHealthCheckPortSpecification"
-
-instance ToJSON HTTPHealthCheckPortSpecification where
-    toJSON = toJSONText
-
--- | Trusted attributes supplied by the IAM system.
-data ConditionIAM
-    = Approver
-      -- ^ @APPROVER@
-    | Attribution
-      -- ^ @ATTRIBUTION@
-    | Authority
-      -- ^ @AUTHORITY@
-    | CredentialsType
-      -- ^ @CREDENTIALS_TYPE@
-    | JustificationType
-      -- ^ @JUSTIFICATION_TYPE@
-    | NoAttr
-      -- ^ @NO_ATTR@
-    | SecurityRealm
-      -- ^ @SECURITY_REALM@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ConditionIAM
-
-instance FromHttpApiData ConditionIAM where
-    parseQueryParam = \case
-        "APPROVER" -> Right Approver
-        "ATTRIBUTION" -> Right Attribution
-        "AUTHORITY" -> Right Authority
-        "CREDENTIALS_TYPE" -> Right CredentialsType
-        "JUSTIFICATION_TYPE" -> Right JustificationType
-        "NO_ATTR" -> Right NoAttr
-        "SECURITY_REALM" -> Right SecurityRealm
-        x -> Left ("Unable to parse ConditionIAM from: " <> x)
-
-instance ToHttpApiData ConditionIAM where
-    toQueryParam = \case
-        Approver -> "APPROVER"
-        Attribution -> "ATTRIBUTION"
-        Authority -> "AUTHORITY"
-        CredentialsType -> "CREDENTIALS_TYPE"
-        JustificationType -> "JUSTIFICATION_TYPE"
-        NoAttr -> "NO_ATTR"
-        SecurityRealm -> "SECURITY_REALM"
-
-instance FromJSON ConditionIAM where
-    parseJSON = parseJSONText "ConditionIAM"
-
-instance ToJSON ConditionIAM where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data AddressAggregatedListWarningCode
-    = AALWCACleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | AALWCADeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | AALWCADeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | AALWCADiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | AALWCAExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | AALWCAExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | AALWCAFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | AALWCAInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | AALWCAMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | AALWCANextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | AALWCANextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | AALWCANextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | AALWCANextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | AALWCANextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | AALWCANotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | AALWCANoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | AALWCARequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | AALWCAResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | AALWCAResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | AALWCASchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | AALWCASingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | AALWCAUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | AALWCAUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AddressAggregatedListWarningCode
-
-instance FromHttpApiData AddressAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right AALWCACleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right AALWCADeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right AALWCADeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right AALWCADiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right AALWCAExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right AALWCAExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right AALWCAFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right AALWCAInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right AALWCAMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right AALWCANextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right AALWCANextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right AALWCANextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right AALWCANextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right AALWCANextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right AALWCANotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right AALWCANoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right AALWCARequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right AALWCAResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right AALWCAResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right AALWCASchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right AALWCASingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right AALWCAUndeclaredProperties
-        "UNREACHABLE" -> Right AALWCAUnreachable
-        x -> Left ("Unable to parse AddressAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData AddressAggregatedListWarningCode where
-    toQueryParam = \case
-        AALWCACleanupFailed -> "CLEANUP_FAILED"
-        AALWCADeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        AALWCADeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        AALWCADiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        AALWCAExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        AALWCAExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        AALWCAFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        AALWCAInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        AALWCAMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        AALWCANextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        AALWCANextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        AALWCANextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        AALWCANextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        AALWCANextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        AALWCANotCriticalError -> "NOT_CRITICAL_ERROR"
-        AALWCANoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        AALWCARequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        AALWCAResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        AALWCAResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        AALWCASchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        AALWCASingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        AALWCAUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        AALWCAUnreachable -> "UNREACHABLE"
-
-instance FromJSON AddressAggregatedListWarningCode where
-    parseJSON = parseJSONText "AddressAggregatedListWarningCode"
-
-instance ToJSON AddressAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InterconnectAttachmentListWarningCode
-    = IALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | IALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | IALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | IALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | IALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | IALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | IALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | IALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | IALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | IALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | IALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | IALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | IALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | IALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | IALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | IALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | IALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | IALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | IALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | IALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | IALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | IALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | IALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InterconnectAttachmentListWarningCode
-
-instance FromHttpApiData InterconnectAttachmentListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right IALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right IALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right IALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right IALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right IALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right IALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right IALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right IALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right IALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right IALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right IALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right IALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right IALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right IALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right IALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right IALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right IALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right IALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right IALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right IALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right IALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right IALWCUndeclaredProperties
-        "UNREACHABLE" -> Right IALWCUnreachable
-        x -> Left ("Unable to parse InterconnectAttachmentListWarningCode from: " <> x)
-
-instance ToHttpApiData InterconnectAttachmentListWarningCode where
-    toQueryParam = \case
-        IALWCCleanupFailed -> "CLEANUP_FAILED"
-        IALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        IALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        IALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        IALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        IALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        IALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        IALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        IALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        IALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        IALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        IALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        IALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        IALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        IALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        IALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        IALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        IALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        IALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        IALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        IALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        IALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        IALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InterconnectAttachmentListWarningCode where
-    parseJSON = parseJSONText "InterconnectAttachmentListWarningCode"
-
-instance ToJSON InterconnectAttachmentListWarningCode where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstancesScopedListWarningCode
-    = ISLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | ISLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | ISLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | ISLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | ISLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | ISLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | ISLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | ISLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | ISLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | ISLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | ISLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | ISLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | ISLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | ISLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | ISLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | ISLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | ISLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | ISLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | ISLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | ISLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | ISLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | ISLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | ISLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstancesScopedListWarningCode
-
-instance FromHttpApiData InstancesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right ISLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right ISLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right ISLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right ISLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right ISLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right ISLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right ISLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right ISLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right ISLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right ISLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right ISLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right ISLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right ISLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right ISLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right ISLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right ISLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right ISLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right ISLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right ISLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right ISLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right ISLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right ISLWCUndeclaredProperties
-        "UNREACHABLE" -> Right ISLWCUnreachable
-        x -> Left ("Unable to parse InstancesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstancesScopedListWarningCode where
-    toQueryParam = \case
-        ISLWCCleanupFailed -> "CLEANUP_FAILED"
-        ISLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        ISLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        ISLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        ISLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        ISLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        ISLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        ISLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        ISLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        ISLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        ISLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        ISLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        ISLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        ISLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        ISLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        ISLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        ISLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        ISLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        ISLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        ISLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        ISLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        ISLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        ISLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstancesScopedListWarningCode where
-    parseJSON = parseJSONText "InstancesScopedListWarningCode"
-
-instance ToJSON InstancesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | The type of the service resource.
-data XpnResourceIdType
-    = XRITProject
-      -- ^ @PROJECT@
-    | XRITXpnResourceTypeUnspecified
-      -- ^ @XPN_RESOURCE_TYPE_UNSPECIFIED@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable XpnResourceIdType
-
-instance FromHttpApiData XpnResourceIdType where
-    parseQueryParam = \case
-        "PROJECT" -> Right XRITProject
-        "XPN_RESOURCE_TYPE_UNSPECIFIED" -> Right XRITXpnResourceTypeUnspecified
-        x -> Left ("Unable to parse XpnResourceIdType from: " <> x)
-
-instance ToHttpApiData XpnResourceIdType where
-    toQueryParam = \case
-        XRITProject -> "PROJECT"
-        XRITXpnResourceTypeUnspecified -> "XPN_RESOURCE_TYPE_UNSPECIFIED"
-
-instance FromJSON XpnResourceIdType where
-    parseJSON = parseJSONText "XpnResourceIdType"
-
-instance ToJSON XpnResourceIdType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data BackendServicesScopedListWarningCode
-    = BSSLWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | BSSLWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | BSSLWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | BSSLWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | BSSLWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | BSSLWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | BSSLWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | BSSLWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | BSSLWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | BSSLWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | BSSLWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | BSSLWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | BSSLWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | BSSLWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | BSSLWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | BSSLWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | BSSLWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | BSSLWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | BSSLWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | BSSLWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | BSSLWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | BSSLWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | BSSLWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServicesScopedListWarningCode
-
-instance FromHttpApiData BackendServicesScopedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right BSSLWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right BSSLWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right BSSLWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right BSSLWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right BSSLWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right BSSLWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right BSSLWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right BSSLWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right BSSLWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right BSSLWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right BSSLWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right BSSLWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right BSSLWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right BSSLWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right BSSLWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right BSSLWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right BSSLWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right BSSLWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right BSSLWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right BSSLWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right BSSLWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right BSSLWCUndeclaredProperties
-        "UNREACHABLE" -> Right BSSLWCUnreachable
-        x -> Left ("Unable to parse BackendServicesScopedListWarningCode from: " <> x)
-
-instance ToHttpApiData BackendServicesScopedListWarningCode where
-    toQueryParam = \case
-        BSSLWCCleanupFailed -> "CLEANUP_FAILED"
-        BSSLWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        BSSLWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        BSSLWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        BSSLWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        BSSLWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        BSSLWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        BSSLWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        BSSLWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        BSSLWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        BSSLWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        BSSLWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        BSSLWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        BSSLWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        BSSLWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        BSSLWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        BSSLWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        BSSLWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        BSSLWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        BSSLWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        BSSLWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        BSSLWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        BSSLWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON BackendServicesScopedListWarningCode where
-    parseJSON = parseJSONText "BackendServicesScopedListWarningCode"
-
-instance ToJSON BackendServicesScopedListWarningCode where
-    toJSON = toJSONText
-
--- | Session affinity option, must be one of the following values: NONE:
--- Connections from the same client IP may go to any instance in the pool.
--- CLIENT_IP: Connections from the same client IP will go to the same
--- instance in the pool while that instance remains healthy.
--- CLIENT_IP_PROTO: Connections from the same client IP with the same IP
--- protocol will go to the same instance in the pool while that instance
--- remains healthy.
-data TargetPoolSessionAffinity
-    = TPSAClientIP
-      -- ^ @CLIENT_IP@
-    | TPSAClientIPPortProto
-      -- ^ @CLIENT_IP_PORT_PROTO@
-    | TPSAClientIPProto
-      -- ^ @CLIENT_IP_PROTO@
-    | TPSAGeneratedCookie
-      -- ^ @GENERATED_COOKIE@
-    | TPSANone
-      -- ^ @NONE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable TargetPoolSessionAffinity
-
-instance FromHttpApiData TargetPoolSessionAffinity where
-    parseQueryParam = \case
-        "CLIENT_IP" -> Right TPSAClientIP
-        "CLIENT_IP_PORT_PROTO" -> Right TPSAClientIPPortProto
-        "CLIENT_IP_PROTO" -> Right TPSAClientIPProto
-        "GENERATED_COOKIE" -> Right TPSAGeneratedCookie
-        "NONE" -> Right TPSANone
-        x -> Left ("Unable to parse TargetPoolSessionAffinity from: " <> x)
-
-instance ToHttpApiData TargetPoolSessionAffinity where
-    toQueryParam = \case
-        TPSAClientIP -> "CLIENT_IP"
-        TPSAClientIPPortProto -> "CLIENT_IP_PORT_PROTO"
-        TPSAClientIPProto -> "CLIENT_IP_PROTO"
-        TPSAGeneratedCookie -> "GENERATED_COOKIE"
-        TPSANone -> "NONE"
-
-instance FromJSON TargetPoolSessionAffinity where
-    parseJSON = parseJSONText "TargetPoolSessionAffinity"
-
-instance ToJSON TargetPoolSessionAffinity where
-    toJSON = toJSONText
-
--- | [Output Only] The status of the autoscaler configuration.
-data AutoscalerStatus
-    = ASActive
-      -- ^ @ACTIVE@
-    | ASDeleting
-      -- ^ @DELETING@
-    | ASError'
-      -- ^ @ERROR@
-    | ASPending
-      -- ^ @PENDING@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable AutoscalerStatus
-
-instance FromHttpApiData AutoscalerStatus where
-    parseQueryParam = \case
-        "ACTIVE" -> Right ASActive
-        "DELETING" -> Right ASDeleting
-        "ERROR" -> Right ASError'
-        "PENDING" -> Right ASPending
-        x -> Left ("Unable to parse AutoscalerStatus from: " <> x)
-
-instance ToHttpApiData AutoscalerStatus where
-    toQueryParam = \case
-        ASActive -> "ACTIVE"
-        ASDeleting -> "DELETING"
-        ASError' -> "ERROR"
-        ASPending -> "PENDING"
-
-instance FromJSON AutoscalerStatus where
-    parseJSON = parseJSONText "AutoscalerStatus"
-
-instance ToJSON AutoscalerStatus where
-    toJSON = toJSONText
-
--- | The format used to encode and transmit the block device, which should be
--- TAR. This is just a container and transmission format and not a runtime
--- format. Provided by the client when the disk image is created.
-data ImageRawDiskContainerType
-    = TAR
-      -- ^ @TAR@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ImageRawDiskContainerType
-
-instance FromHttpApiData ImageRawDiskContainerType where
-    parseQueryParam = \case
-        "TAR" -> Right TAR
-        x -> Left ("Unable to parse ImageRawDiskContainerType from: " <> x)
-
-instance ToHttpApiData ImageRawDiskContainerType where
-    toQueryParam = \case
-        TAR -> "TAR"
-
-instance FromJSON ImageRawDiskContainerType where
-    parseJSON = parseJSONText "ImageRawDiskContainerType"
-
-instance ToJSON ImageRawDiskContainerType where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data InstanceAggregatedListWarningCode
-    = INSCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | INSDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | INSDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | INSDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | INSExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | INSExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | INSFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | INSInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | INSMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | INSNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | INSNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | INSNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | INSNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | INSNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | INSNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | INSNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | INSRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | INSResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | INSResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | INSSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | INSSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | INSUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | INSUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceAggregatedListWarningCode
-
-instance FromHttpApiData InstanceAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right INSCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right INSDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right INSDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right INSDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right INSExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right INSExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right INSFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right INSInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right INSMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right INSNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right INSNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right INSNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right INSNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right INSNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right INSNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right INSNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right INSRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right INSResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right INSResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right INSSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right INSSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right INSUndeclaredProperties
-        "UNREACHABLE" -> Right INSUnreachable
-        x -> Left ("Unable to parse InstanceAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData InstanceAggregatedListWarningCode where
-    toQueryParam = \case
-        INSCleanupFailed -> "CLEANUP_FAILED"
-        INSDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        INSDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        INSDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        INSExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        INSExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        INSFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        INSInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        INSMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        INSNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        INSNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        INSNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        INSNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        INSNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        INSNotCriticalError -> "NOT_CRITICAL_ERROR"
-        INSNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        INSRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        INSResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        INSResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        INSSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        INSSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        INSUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        INSUnreachable -> "UNREACHABLE"
-
-instance FromJSON InstanceAggregatedListWarningCode where
-    parseJSON = parseJSONText "InstanceAggregatedListWarningCode"
-
-instance ToJSON InstanceAggregatedListWarningCode where
-    toJSON = toJSONText
-
--- | Type of resource for which this commitment applies. Possible values are
--- VCPU and MEMORY
-data ResourceCommitmentType
-    = Memory
-      -- ^ @MEMORY@
-    | Unspecified
-      -- ^ @UNSPECIFIED@
-    | Vcpu
-      -- ^ @VCPU@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ResourceCommitmentType
-
-instance FromHttpApiData ResourceCommitmentType where
-    parseQueryParam = \case
-        "MEMORY" -> Right Memory
-        "UNSPECIFIED" -> Right Unspecified
-        "VCPU" -> Right Vcpu
-        x -> Left ("Unable to parse ResourceCommitmentType from: " <> x)
-
-instance ToHttpApiData ResourceCommitmentType where
-    toQueryParam = \case
-        Memory -> "MEMORY"
-        Unspecified -> "UNSPECIFIED"
-        Vcpu -> "VCPU"
-
-instance FromJSON ResourceCommitmentType where
-    parseJSON = parseJSONText "ResourceCommitmentType"
-
-instance ToJSON ResourceCommitmentType where
-    toJSON = toJSONText
-
--- | This signifies the networking tier used for configuring this load
--- balancer and can only take the following values: PREMIUM , STANDARD. For
--- regional ForwardingRule, the valid values are PREMIUM and STANDARD. For
--- GlobalForwardingRule, the valid value is PREMIUM. If this field is not
--- specified, it is assumed to be PREMIUM. If IPAddress is specified, this
--- value must be equal to the networkTier of the Address.
-data ForwardingRuleNetworkTier
-    = FRNTPremium
-      -- ^ @PREMIUM@
-    | FRNTStandard
-      -- ^ @STANDARD@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable ForwardingRuleNetworkTier
-
-instance FromHttpApiData ForwardingRuleNetworkTier where
-    parseQueryParam = \case
-        "PREMIUM" -> Right FRNTPremium
-        "STANDARD" -> Right FRNTStandard
-        x -> Left ("Unable to parse ForwardingRuleNetworkTier from: " <> x)
-
-instance ToHttpApiData ForwardingRuleNetworkTier where
-    toQueryParam = \case
-        FRNTPremium -> "PREMIUM"
-        FRNTStandard -> "STANDARD"
-
-instance FromJSON ForwardingRuleNetworkTier where
-    parseJSON = parseJSONText "ForwardingRuleNetworkTier"
-
-instance ToJSON ForwardingRuleNetworkTier where
-    toJSON = toJSONText
-
--- | Minimal action to be taken on an instance. You can specify either
--- RESTART to restart existing instances or REPLACE to delete and create
--- new instances from the target template. If you specify a RESTART, the
--- Updater will attempt to perform that action only. However, if the
--- Updater determines that the minimal action you specify is not enough to
--- perform the update, it might perform a more disruptive action.
-data InstanceGroupManagerUpdatePolicyMinimalAction
-    = Replace
-      -- ^ @REPLACE@
-    | Restart
-      -- ^ @RESTART@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable InstanceGroupManagerUpdatePolicyMinimalAction
-
-instance FromHttpApiData InstanceGroupManagerUpdatePolicyMinimalAction where
-    parseQueryParam = \case
-        "REPLACE" -> Right Replace
-        "RESTART" -> Right Restart
-        x -> Left ("Unable to parse InstanceGroupManagerUpdatePolicyMinimalAction from: " <> x)
-
-instance ToHttpApiData InstanceGroupManagerUpdatePolicyMinimalAction where
-    toQueryParam = \case
-        Replace -> "REPLACE"
-        Restart -> "RESTART"
-
-instance FromJSON InstanceGroupManagerUpdatePolicyMinimalAction where
-    parseJSON = parseJSONText "InstanceGroupManagerUpdatePolicyMinimalAction"
-
-instance ToJSON InstanceGroupManagerUpdatePolicyMinimalAction where
-    toJSON = toJSONText
-
--- | [Output Only] A warning code, if applicable. For example, Compute Engine
--- returns NO_RESULTS_ON_PAGE if there are no results in the response.
-data BackendServiceAggregatedListWarningCode
-    = BSALWCCleanupFailed
-      -- ^ @CLEANUP_FAILED@
-    | BSALWCDeprecatedResourceUsed
-      -- ^ @DEPRECATED_RESOURCE_USED@
-    | BSALWCDeprecatedTypeUsed
-      -- ^ @DEPRECATED_TYPE_USED@
-    | BSALWCDiskSizeLargerThanImageSize
-      -- ^ @DISK_SIZE_LARGER_THAN_IMAGE_SIZE@
-    | BSALWCExperimentalTypeUsed
-      -- ^ @EXPERIMENTAL_TYPE_USED@
-    | BSALWCExternalAPIWarning
-      -- ^ @EXTERNAL_API_WARNING@
-    | BSALWCFieldValueOverriden
-      -- ^ @FIELD_VALUE_OVERRIDEN@
-    | BSALWCInjectedKernelsDeprecated
-      -- ^ @INJECTED_KERNELS_DEPRECATED@
-    | BSALWCMissingTypeDependency
-      -- ^ @MISSING_TYPE_DEPENDENCY@
-    | BSALWCNextHopAddressNotAssigned
-      -- ^ @NEXT_HOP_ADDRESS_NOT_ASSIGNED@
-    | BSALWCNextHopCannotIPForward
-      -- ^ @NEXT_HOP_CANNOT_IP_FORWARD@
-    | BSALWCNextHopInstanceNotFound
-      -- ^ @NEXT_HOP_INSTANCE_NOT_FOUND@
-    | BSALWCNextHopInstanceNotOnNetwork
-      -- ^ @NEXT_HOP_INSTANCE_NOT_ON_NETWORK@
-    | BSALWCNextHopNotRunning
-      -- ^ @NEXT_HOP_NOT_RUNNING@
-    | BSALWCNotCriticalError
-      -- ^ @NOT_CRITICAL_ERROR@
-    | BSALWCNoResultsOnPage
-      -- ^ @NO_RESULTS_ON_PAGE@
-    | BSALWCRequiredTosAgreement
-      -- ^ @REQUIRED_TOS_AGREEMENT@
-    | BSALWCResourceInUseByOtherResourceWarning
-      -- ^ @RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING@
-    | BSALWCResourceNotDeleted
-      -- ^ @RESOURCE_NOT_DELETED@
-    | BSALWCSchemaValidationIgnored
-      -- ^ @SCHEMA_VALIDATION_IGNORED@
-    | BSALWCSingleInstancePropertyTemplate
-      -- ^ @SINGLE_INSTANCE_PROPERTY_TEMPLATE@
-    | BSALWCUndeclaredProperties
-      -- ^ @UNDECLARED_PROPERTIES@
-    | BSALWCUnreachable
-      -- ^ @UNREACHABLE@
-      deriving (Eq, Ord, Enum, Read, Show, Data, Typeable, Generic)
-
-instance Hashable BackendServiceAggregatedListWarningCode
-
-instance FromHttpApiData BackendServiceAggregatedListWarningCode where
-    parseQueryParam = \case
-        "CLEANUP_FAILED" -> Right BSALWCCleanupFailed
-        "DEPRECATED_RESOURCE_USED" -> Right BSALWCDeprecatedResourceUsed
-        "DEPRECATED_TYPE_USED" -> Right BSALWCDeprecatedTypeUsed
-        "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" -> Right BSALWCDiskSizeLargerThanImageSize
-        "EXPERIMENTAL_TYPE_USED" -> Right BSALWCExperimentalTypeUsed
-        "EXTERNAL_API_WARNING" -> Right BSALWCExternalAPIWarning
-        "FIELD_VALUE_OVERRIDEN" -> Right BSALWCFieldValueOverriden
-        "INJECTED_KERNELS_DEPRECATED" -> Right BSALWCInjectedKernelsDeprecated
-        "MISSING_TYPE_DEPENDENCY" -> Right BSALWCMissingTypeDependency
-        "NEXT_HOP_ADDRESS_NOT_ASSIGNED" -> Right BSALWCNextHopAddressNotAssigned
-        "NEXT_HOP_CANNOT_IP_FORWARD" -> Right BSALWCNextHopCannotIPForward
-        "NEXT_HOP_INSTANCE_NOT_FOUND" -> Right BSALWCNextHopInstanceNotFound
-        "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" -> Right BSALWCNextHopInstanceNotOnNetwork
-        "NEXT_HOP_NOT_RUNNING" -> Right BSALWCNextHopNotRunning
-        "NOT_CRITICAL_ERROR" -> Right BSALWCNotCriticalError
-        "NO_RESULTS_ON_PAGE" -> Right BSALWCNoResultsOnPage
-        "REQUIRED_TOS_AGREEMENT" -> Right BSALWCRequiredTosAgreement
-        "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" -> Right BSALWCResourceInUseByOtherResourceWarning
-        "RESOURCE_NOT_DELETED" -> Right BSALWCResourceNotDeleted
-        "SCHEMA_VALIDATION_IGNORED" -> Right BSALWCSchemaValidationIgnored
-        "SINGLE_INSTANCE_PROPERTY_TEMPLATE" -> Right BSALWCSingleInstancePropertyTemplate
-        "UNDECLARED_PROPERTIES" -> Right BSALWCUndeclaredProperties
-        "UNREACHABLE" -> Right BSALWCUnreachable
-        x -> Left ("Unable to parse BackendServiceAggregatedListWarningCode from: " <> x)
-
-instance ToHttpApiData BackendServiceAggregatedListWarningCode where
-    toQueryParam = \case
-        BSALWCCleanupFailed -> "CLEANUP_FAILED"
-        BSALWCDeprecatedResourceUsed -> "DEPRECATED_RESOURCE_USED"
-        BSALWCDeprecatedTypeUsed -> "DEPRECATED_TYPE_USED"
-        BSALWCDiskSizeLargerThanImageSize -> "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
-        BSALWCExperimentalTypeUsed -> "EXPERIMENTAL_TYPE_USED"
-        BSALWCExternalAPIWarning -> "EXTERNAL_API_WARNING"
-        BSALWCFieldValueOverriden -> "FIELD_VALUE_OVERRIDEN"
-        BSALWCInjectedKernelsDeprecated -> "INJECTED_KERNELS_DEPRECATED"
-        BSALWCMissingTypeDependency -> "MISSING_TYPE_DEPENDENCY"
-        BSALWCNextHopAddressNotAssigned -> "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
-        BSALWCNextHopCannotIPForward -> "NEXT_HOP_CANNOT_IP_FORWARD"
-        BSALWCNextHopInstanceNotFound -> "NEXT_HOP_INSTANCE_NOT_FOUND"
-        BSALWCNextHopInstanceNotOnNetwork -> "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
-        BSALWCNextHopNotRunning -> "NEXT_HOP_NOT_RUNNING"
-        BSALWCNotCriticalError -> "NOT_CRITICAL_ERROR"
-        BSALWCNoResultsOnPage -> "NO_RESULTS_ON_PAGE"
-        BSALWCRequiredTosAgreement -> "REQUIRED_TOS_AGREEMENT"
-        BSALWCResourceInUseByOtherResourceWarning -> "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
-        BSALWCResourceNotDeleted -> "RESOURCE_NOT_DELETED"
-        BSALWCSchemaValidationIgnored -> "SCHEMA_VALIDATION_IGNORED"
-        BSALWCSingleInstancePropertyTemplate -> "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
-        BSALWCUndeclaredProperties -> "UNDECLARED_PROPERTIES"
-        BSALWCUnreachable -> "UNREACHABLE"
-
-instance FromJSON BackendServiceAggregatedListWarningCode where
-    parseJSON = parseJSONText "BackendServiceAggregatedListWarningCode"
-
-instance ToJSON BackendServiceAggregatedListWarningCode where
-    toJSON = toJSONText
diff --git a/gen/Network/Google/Resource/Compute/AcceleratorTypes/AggregatedList.hs b/gen/Network/Google/Resource/Compute/AcceleratorTypes/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/AcceleratorTypes/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.AcceleratorTypes.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of accelerator types.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.acceleratorTypes.aggregatedList@.
-module Network.Google.Resource.Compute.AcceleratorTypes.AggregatedList
-    (
-    -- * REST Resource
-      AcceleratorTypesAggregatedListResource
-
-    -- * Creating a Request
-    , acceleratorTypesAggregatedList
-    , AcceleratorTypesAggregatedList
-
-    -- * Request Lenses
-    , atalOrderBy
-    , atalProject
-    , atalFilter
-    , atalPageToken
-    , atalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.acceleratorTypes.aggregatedList@ method which the
--- 'AcceleratorTypesAggregatedList' request conforms to.
-type AcceleratorTypesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "acceleratorTypes" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] AcceleratorTypeAggregatedList
-
--- | Retrieves an aggregated list of accelerator types.
---
--- /See:/ 'acceleratorTypesAggregatedList' smart constructor.
-data AcceleratorTypesAggregatedList =
-  AcceleratorTypesAggregatedList'
-    { _atalOrderBy    :: !(Maybe Text)
-    , _atalProject    :: !Text
-    , _atalFilter     :: !(Maybe Text)
-    , _atalPageToken  :: !(Maybe Text)
-    , _atalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atalOrderBy'
---
--- * 'atalProject'
---
--- * 'atalFilter'
---
--- * 'atalPageToken'
---
--- * 'atalMaxResults'
-acceleratorTypesAggregatedList
-    :: Text -- ^ 'atalProject'
-    -> AcceleratorTypesAggregatedList
-acceleratorTypesAggregatedList pAtalProject_ =
-  AcceleratorTypesAggregatedList'
-    { _atalOrderBy = Nothing
-    , _atalProject = pAtalProject_
-    , _atalFilter = Nothing
-    , _atalPageToken = Nothing
-    , _atalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-atalOrderBy :: Lens' AcceleratorTypesAggregatedList (Maybe Text)
-atalOrderBy
-  = lens _atalOrderBy (\ s a -> s{_atalOrderBy = a})
-
--- | Project ID for this request.
-atalProject :: Lens' AcceleratorTypesAggregatedList Text
-atalProject
-  = lens _atalProject (\ s a -> s{_atalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-atalFilter :: Lens' AcceleratorTypesAggregatedList (Maybe Text)
-atalFilter
-  = lens _atalFilter (\ s a -> s{_atalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-atalPageToken :: Lens' AcceleratorTypesAggregatedList (Maybe Text)
-atalPageToken
-  = lens _atalPageToken
-      (\ s a -> s{_atalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-atalMaxResults :: Lens' AcceleratorTypesAggregatedList Word32
-atalMaxResults
-  = lens _atalMaxResults
-      (\ s a -> s{_atalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest AcceleratorTypesAggregatedList
-         where
-        type Rs AcceleratorTypesAggregatedList =
-             AcceleratorTypeAggregatedList
-        type Scopes AcceleratorTypesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AcceleratorTypesAggregatedList'{..}
-          = go _atalProject _atalOrderBy _atalFilter
-              _atalPageToken
-              (Just _atalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy AcceleratorTypesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/AcceleratorTypes/Get.hs b/gen/Network/Google/Resource/Compute/AcceleratorTypes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/AcceleratorTypes/Get.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.AcceleratorTypes.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)
---
--- Returns the specified accelerator type.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.acceleratorTypes.get@.
-module Network.Google.Resource.Compute.AcceleratorTypes.Get
-    (
-    -- * REST Resource
-      AcceleratorTypesGetResource
-
-    -- * Creating a Request
-    , acceleratorTypesGet
-    , AcceleratorTypesGet
-
-    -- * Request Lenses
-    , atgAcceleratorType
-    , atgProject
-    , atgZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.acceleratorTypes.get@ method which the
--- 'AcceleratorTypesGet' request conforms to.
-type AcceleratorTypesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "acceleratorTypes" :>
-                   Capture "acceleratorType" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] AcceleratorType
-
--- | Returns the specified accelerator type.
---
--- /See:/ 'acceleratorTypesGet' smart constructor.
-data AcceleratorTypesGet =
-  AcceleratorTypesGet'
-    { _atgAcceleratorType :: !Text
-    , _atgProject         :: !Text
-    , _atgZone            :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atgAcceleratorType'
---
--- * 'atgProject'
---
--- * 'atgZone'
-acceleratorTypesGet
-    :: Text -- ^ 'atgAcceleratorType'
-    -> Text -- ^ 'atgProject'
-    -> Text -- ^ 'atgZone'
-    -> AcceleratorTypesGet
-acceleratorTypesGet pAtgAcceleratorType_ pAtgProject_ pAtgZone_ =
-  AcceleratorTypesGet'
-    { _atgAcceleratorType = pAtgAcceleratorType_
-    , _atgProject = pAtgProject_
-    , _atgZone = pAtgZone_
-    }
-
-
--- | Name of the accelerator type to return.
-atgAcceleratorType :: Lens' AcceleratorTypesGet Text
-atgAcceleratorType
-  = lens _atgAcceleratorType
-      (\ s a -> s{_atgAcceleratorType = a})
-
--- | Project ID for this request.
-atgProject :: Lens' AcceleratorTypesGet Text
-atgProject
-  = lens _atgProject (\ s a -> s{_atgProject = a})
-
--- | The name of the zone for this request.
-atgZone :: Lens' AcceleratorTypesGet Text
-atgZone = lens _atgZone (\ s a -> s{_atgZone = a})
-
-instance GoogleRequest AcceleratorTypesGet where
-        type Rs AcceleratorTypesGet = AcceleratorType
-        type Scopes AcceleratorTypesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AcceleratorTypesGet'{..}
-          = go _atgProject _atgZone _atgAcceleratorType
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AcceleratorTypesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/AcceleratorTypes/List.hs b/gen/Network/Google/Resource/Compute/AcceleratorTypes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/AcceleratorTypes/List.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.AcceleratorTypes.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)
---
--- Retrieves a list of accelerator types available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.acceleratorTypes.list@.
-module Network.Google.Resource.Compute.AcceleratorTypes.List
-    (
-    -- * REST Resource
-      AcceleratorTypesListResource
-
-    -- * Creating a Request
-    , acceleratorTypesList
-    , AcceleratorTypesList
-
-    -- * Request Lenses
-    , atlOrderBy
-    , atlProject
-    , atlZone
-    , atlFilter
-    , atlPageToken
-    , atlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.acceleratorTypes.list@ method which the
--- 'AcceleratorTypesList' request conforms to.
-type AcceleratorTypesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "acceleratorTypes" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] AcceleratorTypeList
-
--- | Retrieves a list of accelerator types available to the specified
--- project.
---
--- /See:/ 'acceleratorTypesList' smart constructor.
-data AcceleratorTypesList =
-  AcceleratorTypesList'
-    { _atlOrderBy    :: !(Maybe Text)
-    , _atlProject    :: !Text
-    , _atlZone       :: !Text
-    , _atlFilter     :: !(Maybe Text)
-    , _atlPageToken  :: !(Maybe Text)
-    , _atlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AcceleratorTypesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'atlOrderBy'
---
--- * 'atlProject'
---
--- * 'atlZone'
---
--- * 'atlFilter'
---
--- * 'atlPageToken'
---
--- * 'atlMaxResults'
-acceleratorTypesList
-    :: Text -- ^ 'atlProject'
-    -> Text -- ^ 'atlZone'
-    -> AcceleratorTypesList
-acceleratorTypesList pAtlProject_ pAtlZone_ =
-  AcceleratorTypesList'
-    { _atlOrderBy = Nothing
-    , _atlProject = pAtlProject_
-    , _atlZone = pAtlZone_
-    , _atlFilter = Nothing
-    , _atlPageToken = Nothing
-    , _atlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-atlOrderBy :: Lens' AcceleratorTypesList (Maybe Text)
-atlOrderBy
-  = lens _atlOrderBy (\ s a -> s{_atlOrderBy = a})
-
--- | Project ID for this request.
-atlProject :: Lens' AcceleratorTypesList Text
-atlProject
-  = lens _atlProject (\ s a -> s{_atlProject = a})
-
--- | The name of the zone for this request.
-atlZone :: Lens' AcceleratorTypesList Text
-atlZone = lens _atlZone (\ s a -> s{_atlZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-atlFilter :: Lens' AcceleratorTypesList (Maybe Text)
-atlFilter
-  = lens _atlFilter (\ s a -> s{_atlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-atlPageToken :: Lens' AcceleratorTypesList (Maybe Text)
-atlPageToken
-  = lens _atlPageToken (\ s a -> s{_atlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-atlMaxResults :: Lens' AcceleratorTypesList Word32
-atlMaxResults
-  = lens _atlMaxResults
-      (\ s a -> s{_atlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest AcceleratorTypesList where
-        type Rs AcceleratorTypesList = AcceleratorTypeList
-        type Scopes AcceleratorTypesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AcceleratorTypesList'{..}
-          = go _atlProject _atlZone _atlOrderBy _atlFilter
-              _atlPageToken
-              (Just _atlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AcceleratorTypesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Addresses/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Addresses/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Addresses/AggregatedList.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Addresses.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of addresses.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.aggregatedList@.
-module Network.Google.Resource.Compute.Addresses.AggregatedList
-    (
-    -- * REST Resource
-      AddressesAggregatedListResource
-
-    -- * Creating a Request
-    , addressesAggregatedList
-    , AddressesAggregatedList
-
-    -- * Request Lenses
-    , aalOrderBy
-    , aalProject
-    , aalFilter
-    , aalPageToken
-    , aalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.addresses.aggregatedList@ method which the
--- 'AddressesAggregatedList' request conforms to.
-type AddressesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "addresses" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] AddressAggregatedList
-
--- | Retrieves an aggregated list of addresses.
---
--- /See:/ 'addressesAggregatedList' smart constructor.
-data AddressesAggregatedList =
-  AddressesAggregatedList'
-    { _aalOrderBy    :: !(Maybe Text)
-    , _aalProject    :: !Text
-    , _aalFilter     :: !(Maybe Text)
-    , _aalPageToken  :: !(Maybe Text)
-    , _aalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aalOrderBy'
---
--- * 'aalProject'
---
--- * 'aalFilter'
---
--- * 'aalPageToken'
---
--- * 'aalMaxResults'
-addressesAggregatedList
-    :: Text -- ^ 'aalProject'
-    -> AddressesAggregatedList
-addressesAggregatedList pAalProject_ =
-  AddressesAggregatedList'
-    { _aalOrderBy = Nothing
-    , _aalProject = pAalProject_
-    , _aalFilter = Nothing
-    , _aalPageToken = Nothing
-    , _aalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-aalOrderBy :: Lens' AddressesAggregatedList (Maybe Text)
-aalOrderBy
-  = lens _aalOrderBy (\ s a -> s{_aalOrderBy = a})
-
--- | Project ID for this request.
-aalProject :: Lens' AddressesAggregatedList Text
-aalProject
-  = lens _aalProject (\ s a -> s{_aalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-aalFilter :: Lens' AddressesAggregatedList (Maybe Text)
-aalFilter
-  = lens _aalFilter (\ s a -> s{_aalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-aalPageToken :: Lens' AddressesAggregatedList (Maybe Text)
-aalPageToken
-  = lens _aalPageToken (\ s a -> s{_aalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-aalMaxResults :: Lens' AddressesAggregatedList Word32
-aalMaxResults
-  = lens _aalMaxResults
-      (\ s a -> s{_aalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest AddressesAggregatedList where
-        type Rs AddressesAggregatedList =
-             AddressAggregatedList
-        type Scopes AddressesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AddressesAggregatedList'{..}
-          = go _aalProject _aalOrderBy _aalFilter _aalPageToken
-              (Just _aalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AddressesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Addresses/Delete.hs b/gen/Network/Google/Resource/Compute/Addresses/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Addresses/Delete.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Addresses.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 address resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.delete@.
-module Network.Google.Resource.Compute.Addresses.Delete
-    (
-    -- * REST Resource
-      AddressesDeleteResource
-
-    -- * Creating a Request
-    , addressesDelete
-    , AddressesDelete
-
-    -- * Request Lenses
-    , adddRequestId
-    , adddProject
-    , adddAddress
-    , adddRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.addresses.delete@ method which the
--- 'AddressesDelete' request conforms to.
-type AddressesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "addresses" :>
-                   Capture "address" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified address resource.
---
--- /See:/ 'addressesDelete' smart constructor.
-data AddressesDelete =
-  AddressesDelete'
-    { _adddRequestId :: !(Maybe Text)
-    , _adddProject   :: !Text
-    , _adddAddress   :: !Text
-    , _adddRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adddRequestId'
---
--- * 'adddProject'
---
--- * 'adddAddress'
---
--- * 'adddRegion'
-addressesDelete
-    :: Text -- ^ 'adddProject'
-    -> Text -- ^ 'adddAddress'
-    -> Text -- ^ 'adddRegion'
-    -> AddressesDelete
-addressesDelete pAdddProject_ pAdddAddress_ pAdddRegion_ =
-  AddressesDelete'
-    { _adddRequestId = Nothing
-    , _adddProject = pAdddProject_
-    , _adddAddress = pAdddAddress_
-    , _adddRegion = pAdddRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-adddRequestId :: Lens' AddressesDelete (Maybe Text)
-adddRequestId
-  = lens _adddRequestId
-      (\ s a -> s{_adddRequestId = a})
-
--- | Project ID for this request.
-adddProject :: Lens' AddressesDelete Text
-adddProject
-  = lens _adddProject (\ s a -> s{_adddProject = a})
-
--- | Name of the address resource to delete.
-adddAddress :: Lens' AddressesDelete Text
-adddAddress
-  = lens _adddAddress (\ s a -> s{_adddAddress = a})
-
--- | Name of the region for this request.
-adddRegion :: Lens' AddressesDelete Text
-adddRegion
-  = lens _adddRegion (\ s a -> s{_adddRegion = a})
-
-instance GoogleRequest AddressesDelete where
-        type Rs AddressesDelete = Operation
-        type Scopes AddressesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AddressesDelete'{..}
-          = go _adddProject _adddRegion _adddAddress
-              _adddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AddressesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Addresses/Get.hs b/gen/Network/Google/Resource/Compute/Addresses/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Addresses/Get.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Addresses.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)
---
--- Returns the specified address resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.get@.
-module Network.Google.Resource.Compute.Addresses.Get
-    (
-    -- * REST Resource
-      AddressesGetResource
-
-    -- * Creating a Request
-    , addressesGet
-    , AddressesGet
-
-    -- * Request Lenses
-    , addProject
-    , addAddress
-    , addRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.addresses.get@ method which the
--- 'AddressesGet' request conforms to.
-type AddressesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "addresses" :>
-                   Capture "address" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Address
-
--- | Returns the specified address resource.
---
--- /See:/ 'addressesGet' smart constructor.
-data AddressesGet =
-  AddressesGet'
-    { _addProject :: !Text
-    , _addAddress :: !Text
-    , _addRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'addProject'
---
--- * 'addAddress'
---
--- * 'addRegion'
-addressesGet
-    :: Text -- ^ 'addProject'
-    -> Text -- ^ 'addAddress'
-    -> Text -- ^ 'addRegion'
-    -> AddressesGet
-addressesGet pAddProject_ pAddAddress_ pAddRegion_ =
-  AddressesGet'
-    { _addProject = pAddProject_
-    , _addAddress = pAddAddress_
-    , _addRegion = pAddRegion_
-    }
-
-
--- | Project ID for this request.
-addProject :: Lens' AddressesGet Text
-addProject
-  = lens _addProject (\ s a -> s{_addProject = a})
-
--- | Name of the address resource to return.
-addAddress :: Lens' AddressesGet Text
-addAddress
-  = lens _addAddress (\ s a -> s{_addAddress = a})
-
--- | Name of the region for this request.
-addRegion :: Lens' AddressesGet Text
-addRegion
-  = lens _addRegion (\ s a -> s{_addRegion = a})
-
-instance GoogleRequest AddressesGet where
-        type Rs AddressesGet = Address
-        type Scopes AddressesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AddressesGet'{..}
-          = go _addProject _addRegion _addAddress
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy AddressesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Addresses/Insert.hs b/gen/Network/Google/Resource/Compute/Addresses/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Addresses/Insert.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Addresses.Insert
--- 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 an address resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.insert@.
-module Network.Google.Resource.Compute.Addresses.Insert
-    (
-    -- * REST Resource
-      AddressesInsertResource
-
-    -- * Creating a Request
-    , addressesInsert
-    , AddressesInsert
-
-    -- * Request Lenses
-    , aiRequestId
-    , aiProject
-    , aiPayload
-    , aiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.addresses.insert@ method which the
--- 'AddressesInsert' request conforms to.
-type AddressesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "addresses" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Address :> Post '[JSON] Operation
-
--- | Creates an address resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'addressesInsert' smart constructor.
-data AddressesInsert =
-  AddressesInsert'
-    { _aiRequestId :: !(Maybe Text)
-    , _aiProject   :: !Text
-    , _aiPayload   :: !Address
-    , _aiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aiRequestId'
---
--- * 'aiProject'
---
--- * 'aiPayload'
---
--- * 'aiRegion'
-addressesInsert
-    :: Text -- ^ 'aiProject'
-    -> Address -- ^ 'aiPayload'
-    -> Text -- ^ 'aiRegion'
-    -> AddressesInsert
-addressesInsert pAiProject_ pAiPayload_ pAiRegion_ =
-  AddressesInsert'
-    { _aiRequestId = Nothing
-    , _aiProject = pAiProject_
-    , _aiPayload = pAiPayload_
-    , _aiRegion = pAiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-aiRequestId :: Lens' AddressesInsert (Maybe Text)
-aiRequestId
-  = lens _aiRequestId (\ s a -> s{_aiRequestId = a})
-
--- | Project ID for this request.
-aiProject :: Lens' AddressesInsert Text
-aiProject
-  = lens _aiProject (\ s a -> s{_aiProject = a})
-
--- | Multipart request metadata.
-aiPayload :: Lens' AddressesInsert Address
-aiPayload
-  = lens _aiPayload (\ s a -> s{_aiPayload = a})
-
--- | Name of the region for this request.
-aiRegion :: Lens' AddressesInsert Text
-aiRegion = lens _aiRegion (\ s a -> s{_aiRegion = a})
-
-instance GoogleRequest AddressesInsert where
-        type Rs AddressesInsert = Operation
-        type Scopes AddressesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AddressesInsert'{..}
-          = go _aiProject _aiRegion _aiRequestId (Just AltJSON)
-              _aiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AddressesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Addresses/List.hs b/gen/Network/Google/Resource/Compute/Addresses/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Addresses/List.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Addresses.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)
---
--- Retrieves a list of addresses contained within the specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.addresses.list@.
-module Network.Google.Resource.Compute.Addresses.List
-    (
-    -- * REST Resource
-      AddressesListResource
-
-    -- * Creating a Request
-    , addressesList
-    , AddressesList
-
-    -- * Request Lenses
-    , alOrderBy
-    , alProject
-    , alFilter
-    , alRegion
-    , alPageToken
-    , alMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.addresses.list@ method which the
--- 'AddressesList' request conforms to.
-type AddressesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "addresses" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] AddressList
-
--- | Retrieves a list of addresses contained within the specified region.
---
--- /See:/ 'addressesList' smart constructor.
-data AddressesList =
-  AddressesList'
-    { _alOrderBy    :: !(Maybe Text)
-    , _alProject    :: !Text
-    , _alFilter     :: !(Maybe Text)
-    , _alRegion     :: !Text
-    , _alPageToken  :: !(Maybe Text)
-    , _alMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AddressesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'alOrderBy'
---
--- * 'alProject'
---
--- * 'alFilter'
---
--- * 'alRegion'
---
--- * 'alPageToken'
---
--- * 'alMaxResults'
-addressesList
-    :: Text -- ^ 'alProject'
-    -> Text -- ^ 'alRegion'
-    -> AddressesList
-addressesList pAlProject_ pAlRegion_ =
-  AddressesList'
-    { _alOrderBy = Nothing
-    , _alProject = pAlProject_
-    , _alFilter = Nothing
-    , _alRegion = pAlRegion_
-    , _alPageToken = Nothing
-    , _alMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-alOrderBy :: Lens' AddressesList (Maybe Text)
-alOrderBy
-  = lens _alOrderBy (\ s a -> s{_alOrderBy = a})
-
--- | Project ID for this request.
-alProject :: Lens' AddressesList Text
-alProject
-  = lens _alProject (\ s a -> s{_alProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-alFilter :: Lens' AddressesList (Maybe Text)
-alFilter = lens _alFilter (\ s a -> s{_alFilter = a})
-
--- | Name of the region for this request.
-alRegion :: Lens' AddressesList Text
-alRegion = lens _alRegion (\ s a -> s{_alRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-alPageToken :: Lens' AddressesList (Maybe Text)
-alPageToken
-  = lens _alPageToken (\ s a -> s{_alPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-alMaxResults :: Lens' AddressesList Word32
-alMaxResults
-  = lens _alMaxResults (\ s a -> s{_alMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest AddressesList where
-        type Rs AddressesList = AddressList
-        type Scopes AddressesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AddressesList'{..}
-          = go _alProject _alRegion _alOrderBy _alFilter
-              _alPageToken
-              (Just _alMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy AddressesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Autoscalers/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/AggregatedList.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of autoscalers.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.aggregatedList@.
-module Network.Google.Resource.Compute.Autoscalers.AggregatedList
-    (
-    -- * REST Resource
-      AutoscalersAggregatedListResource
-
-    -- * Creating a Request
-    , autoscalersAggregatedList
-    , AutoscalersAggregatedList
-
-    -- * Request Lenses
-    , autOrderBy
-    , autProject
-    , autFilter
-    , autPageToken
-    , autMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.aggregatedList@ method which the
--- 'AutoscalersAggregatedList' request conforms to.
-type AutoscalersAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "autoscalers" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] AutoscalerAggregatedList
-
--- | Retrieves an aggregated list of autoscalers.
---
--- /See:/ 'autoscalersAggregatedList' smart constructor.
-data AutoscalersAggregatedList =
-  AutoscalersAggregatedList'
-    { _autOrderBy    :: !(Maybe Text)
-    , _autProject    :: !Text
-    , _autFilter     :: !(Maybe Text)
-    , _autPageToken  :: !(Maybe Text)
-    , _autMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'autOrderBy'
---
--- * 'autProject'
---
--- * 'autFilter'
---
--- * 'autPageToken'
---
--- * 'autMaxResults'
-autoscalersAggregatedList
-    :: Text -- ^ 'autProject'
-    -> AutoscalersAggregatedList
-autoscalersAggregatedList pAutProject_ =
-  AutoscalersAggregatedList'
-    { _autOrderBy = Nothing
-    , _autProject = pAutProject_
-    , _autFilter = Nothing
-    , _autPageToken = Nothing
-    , _autMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-autOrderBy :: Lens' AutoscalersAggregatedList (Maybe Text)
-autOrderBy
-  = lens _autOrderBy (\ s a -> s{_autOrderBy = a})
-
--- | Project ID for this request.
-autProject :: Lens' AutoscalersAggregatedList Text
-autProject
-  = lens _autProject (\ s a -> s{_autProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-autFilter :: Lens' AutoscalersAggregatedList (Maybe Text)
-autFilter
-  = lens _autFilter (\ s a -> s{_autFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-autPageToken :: Lens' AutoscalersAggregatedList (Maybe Text)
-autPageToken
-  = lens _autPageToken (\ s a -> s{_autPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-autMaxResults :: Lens' AutoscalersAggregatedList Word32
-autMaxResults
-  = lens _autMaxResults
-      (\ s a -> s{_autMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest AutoscalersAggregatedList
-         where
-        type Rs AutoscalersAggregatedList =
-             AutoscalerAggregatedList
-        type Scopes AutoscalersAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AutoscalersAggregatedList'{..}
-          = go _autProject _autOrderBy _autFilter _autPageToken
-              (Just _autMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/Delete.hs b/gen/Network/Google/Resource/Compute/Autoscalers/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/Delete.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.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 autoscaler.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.delete@.
-module Network.Google.Resource.Compute.Autoscalers.Delete
-    (
-    -- * REST Resource
-      AutoscalersDeleteResource
-
-    -- * Creating a Request
-    , autoscalersDelete
-    , AutoscalersDelete
-
-    -- * Request Lenses
-    , adRequestId
-    , adProject
-    , adZone
-    , adAutoscaler
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.delete@ method which the
--- 'AutoscalersDelete' request conforms to.
-type AutoscalersDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   Capture "autoscaler" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified autoscaler.
---
--- /See:/ 'autoscalersDelete' smart constructor.
-data AutoscalersDelete =
-  AutoscalersDelete'
-    { _adRequestId  :: !(Maybe Text)
-    , _adProject    :: !Text
-    , _adZone       :: !Text
-    , _adAutoscaler :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'adRequestId'
---
--- * 'adProject'
---
--- * 'adZone'
---
--- * 'adAutoscaler'
-autoscalersDelete
-    :: Text -- ^ 'adProject'
-    -> Text -- ^ 'adZone'
-    -> Text -- ^ 'adAutoscaler'
-    -> AutoscalersDelete
-autoscalersDelete pAdProject_ pAdZone_ pAdAutoscaler_ =
-  AutoscalersDelete'
-    { _adRequestId = Nothing
-    , _adProject = pAdProject_
-    , _adZone = pAdZone_
-    , _adAutoscaler = pAdAutoscaler_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-adRequestId :: Lens' AutoscalersDelete (Maybe Text)
-adRequestId
-  = lens _adRequestId (\ s a -> s{_adRequestId = a})
-
--- | Project ID for this request.
-adProject :: Lens' AutoscalersDelete Text
-adProject
-  = lens _adProject (\ s a -> s{_adProject = a})
-
--- | Name of the zone for this request.
-adZone :: Lens' AutoscalersDelete Text
-adZone = lens _adZone (\ s a -> s{_adZone = a})
-
--- | Name of the autoscaler to delete.
-adAutoscaler :: Lens' AutoscalersDelete Text
-adAutoscaler
-  = lens _adAutoscaler (\ s a -> s{_adAutoscaler = a})
-
-instance GoogleRequest AutoscalersDelete where
-        type Rs AutoscalersDelete = Operation
-        type Scopes AutoscalersDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AutoscalersDelete'{..}
-          = go _adProject _adZone _adAutoscaler _adRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/Get.hs b/gen/Network/Google/Resource/Compute/Autoscalers/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/Get.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.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)
---
--- Returns the specified autoscaler resource. Gets a list of available
--- autoscalers by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.get@.
-module Network.Google.Resource.Compute.Autoscalers.Get
-    (
-    -- * REST Resource
-      AutoscalersGetResource
-
-    -- * Creating a Request
-    , autoscalersGet
-    , AutoscalersGet
-
-    -- * Request Lenses
-    , agProject
-    , agZone
-    , agAutoscaler
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.get@ method which the
--- 'AutoscalersGet' request conforms to.
-type AutoscalersGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   Capture "autoscaler" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Autoscaler
-
--- | Returns the specified autoscaler resource. Gets a list of available
--- autoscalers by making a list() request.
---
--- /See:/ 'autoscalersGet' smart constructor.
-data AutoscalersGet =
-  AutoscalersGet'
-    { _agProject    :: !Text
-    , _agZone       :: !Text
-    , _agAutoscaler :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'agProject'
---
--- * 'agZone'
---
--- * 'agAutoscaler'
-autoscalersGet
-    :: Text -- ^ 'agProject'
-    -> Text -- ^ 'agZone'
-    -> Text -- ^ 'agAutoscaler'
-    -> AutoscalersGet
-autoscalersGet pAgProject_ pAgZone_ pAgAutoscaler_ =
-  AutoscalersGet'
-    { _agProject = pAgProject_
-    , _agZone = pAgZone_
-    , _agAutoscaler = pAgAutoscaler_
-    }
-
-
--- | Project ID for this request.
-agProject :: Lens' AutoscalersGet Text
-agProject
-  = lens _agProject (\ s a -> s{_agProject = a})
-
--- | Name of the zone for this request.
-agZone :: Lens' AutoscalersGet Text
-agZone = lens _agZone (\ s a -> s{_agZone = a})
-
--- | Name of the autoscaler to return.
-agAutoscaler :: Lens' AutoscalersGet Text
-agAutoscaler
-  = lens _agAutoscaler (\ s a -> s{_agAutoscaler = a})
-
-instance GoogleRequest AutoscalersGet where
-        type Rs AutoscalersGet = Autoscaler
-        type Scopes AutoscalersGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AutoscalersGet'{..}
-          = go _agProject _agZone _agAutoscaler (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy AutoscalersGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/Insert.hs b/gen/Network/Google/Resource/Compute/Autoscalers/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/Insert.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.Insert
--- 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 an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.insert@.
-module Network.Google.Resource.Compute.Autoscalers.Insert
-    (
-    -- * REST Resource
-      AutoscalersInsertResource
-
-    -- * Creating a Request
-    , autoscalersInsert
-    , AutoscalersInsert
-
-    -- * Request Lenses
-    , aiiRequestId
-    , aiiProject
-    , aiiZone
-    , aiiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.insert@ method which the
--- 'AutoscalersInsert' request conforms to.
-type AutoscalersInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Autoscaler :> Post '[JSON] Operation
-
--- | Creates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ 'autoscalersInsert' smart constructor.
-data AutoscalersInsert =
-  AutoscalersInsert'
-    { _aiiRequestId :: !(Maybe Text)
-    , _aiiProject   :: !Text
-    , _aiiZone      :: !Text
-    , _aiiPayload   :: !Autoscaler
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aiiRequestId'
---
--- * 'aiiProject'
---
--- * 'aiiZone'
---
--- * 'aiiPayload'
-autoscalersInsert
-    :: Text -- ^ 'aiiProject'
-    -> Text -- ^ 'aiiZone'
-    -> Autoscaler -- ^ 'aiiPayload'
-    -> AutoscalersInsert
-autoscalersInsert pAiiProject_ pAiiZone_ pAiiPayload_ =
-  AutoscalersInsert'
-    { _aiiRequestId = Nothing
-    , _aiiProject = pAiiProject_
-    , _aiiZone = pAiiZone_
-    , _aiiPayload = pAiiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-aiiRequestId :: Lens' AutoscalersInsert (Maybe Text)
-aiiRequestId
-  = lens _aiiRequestId (\ s a -> s{_aiiRequestId = a})
-
--- | Project ID for this request.
-aiiProject :: Lens' AutoscalersInsert Text
-aiiProject
-  = lens _aiiProject (\ s a -> s{_aiiProject = a})
-
--- | Name of the zone for this request.
-aiiZone :: Lens' AutoscalersInsert Text
-aiiZone = lens _aiiZone (\ s a -> s{_aiiZone = a})
-
--- | Multipart request metadata.
-aiiPayload :: Lens' AutoscalersInsert Autoscaler
-aiiPayload
-  = lens _aiiPayload (\ s a -> s{_aiiPayload = a})
-
-instance GoogleRequest AutoscalersInsert where
-        type Rs AutoscalersInsert = Operation
-        type Scopes AutoscalersInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AutoscalersInsert'{..}
-          = go _aiiProject _aiiZone _aiiRequestId
-              (Just AltJSON)
-              _aiiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/List.hs b/gen/Network/Google/Resource/Compute/Autoscalers/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/List.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.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)
---
--- Retrieves a list of autoscalers contained within the specified zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.list@.
-module Network.Google.Resource.Compute.Autoscalers.List
-    (
-    -- * REST Resource
-      AutoscalersListResource
-
-    -- * Creating a Request
-    , autoscalersList
-    , AutoscalersList
-
-    -- * Request Lenses
-    , aOrderBy
-    , aProject
-    , aZone
-    , aFilter
-    , aPageToken
-    , aMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.list@ method which the
--- 'AutoscalersList' request conforms to.
-type AutoscalersListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] AutoscalerList
-
--- | Retrieves a list of autoscalers contained within the specified zone.
---
--- /See:/ 'autoscalersList' smart constructor.
-data AutoscalersList =
-  AutoscalersList'
-    { _aOrderBy    :: !(Maybe Text)
-    , _aProject    :: !Text
-    , _aZone       :: !Text
-    , _aFilter     :: !(Maybe Text)
-    , _aPageToken  :: !(Maybe Text)
-    , _aMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'aOrderBy'
---
--- * 'aProject'
---
--- * 'aZone'
---
--- * 'aFilter'
---
--- * 'aPageToken'
---
--- * 'aMaxResults'
-autoscalersList
-    :: Text -- ^ 'aProject'
-    -> Text -- ^ 'aZone'
-    -> AutoscalersList
-autoscalersList pAProject_ pAZone_ =
-  AutoscalersList'
-    { _aOrderBy = Nothing
-    , _aProject = pAProject_
-    , _aZone = pAZone_
-    , _aFilter = Nothing
-    , _aPageToken = Nothing
-    , _aMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-aOrderBy :: Lens' AutoscalersList (Maybe Text)
-aOrderBy = lens _aOrderBy (\ s a -> s{_aOrderBy = a})
-
--- | Project ID for this request.
-aProject :: Lens' AutoscalersList Text
-aProject = lens _aProject (\ s a -> s{_aProject = a})
-
--- | Name of the zone for this request.
-aZone :: Lens' AutoscalersList Text
-aZone = lens _aZone (\ s a -> s{_aZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-aFilter :: Lens' AutoscalersList (Maybe Text)
-aFilter = lens _aFilter (\ s a -> s{_aFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-aPageToken :: Lens' AutoscalersList (Maybe Text)
-aPageToken
-  = lens _aPageToken (\ s a -> s{_aPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-aMaxResults :: Lens' AutoscalersList Word32
-aMaxResults
-  = lens _aMaxResults (\ s a -> s{_aMaxResults = a}) .
-      _Coerce
-
-instance GoogleRequest AutoscalersList where
-        type Rs AutoscalersList = AutoscalerList
-        type Scopes AutoscalersList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient AutoscalersList'{..}
-          = go _aProject _aZone _aOrderBy _aFilter _aPageToken
-              (Just _aMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/Patch.hs b/gen/Network/Google/Resource/Compute/Autoscalers/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/Patch.hs
+++ /dev/null
@@ -1,153 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an autoscaler in the specified project using the data included
--- in the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.patch@.
-module Network.Google.Resource.Compute.Autoscalers.Patch
-    (
-    -- * REST Resource
-      AutoscalersPatchResource
-
-    -- * Creating a Request
-    , autoscalersPatch
-    , AutoscalersPatch
-
-    -- * Request Lenses
-    , apRequestId
-    , apProject
-    , apZone
-    , apPayload
-    , apAutoscaler
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.patch@ method which the
--- 'AutoscalersPatch' request conforms to.
-type AutoscalersPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "autoscaler" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Autoscaler :> Patch '[JSON] Operation
-
--- | Updates an autoscaler in the specified project using the data included
--- in the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ 'autoscalersPatch' smart constructor.
-data AutoscalersPatch =
-  AutoscalersPatch'
-    { _apRequestId  :: !(Maybe Text)
-    , _apProject    :: !Text
-    , _apZone       :: !Text
-    , _apPayload    :: !Autoscaler
-    , _apAutoscaler :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'apRequestId'
---
--- * 'apProject'
---
--- * 'apZone'
---
--- * 'apPayload'
---
--- * 'apAutoscaler'
-autoscalersPatch
-    :: Text -- ^ 'apProject'
-    -> Text -- ^ 'apZone'
-    -> Autoscaler -- ^ 'apPayload'
-    -> AutoscalersPatch
-autoscalersPatch pApProject_ pApZone_ pApPayload_ =
-  AutoscalersPatch'
-    { _apRequestId = Nothing
-    , _apProject = pApProject_
-    , _apZone = pApZone_
-    , _apPayload = pApPayload_
-    , _apAutoscaler = Nothing
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-apRequestId :: Lens' AutoscalersPatch (Maybe Text)
-apRequestId
-  = lens _apRequestId (\ s a -> s{_apRequestId = a})
-
--- | Project ID for this request.
-apProject :: Lens' AutoscalersPatch Text
-apProject
-  = lens _apProject (\ s a -> s{_apProject = a})
-
--- | Name of the zone for this request.
-apZone :: Lens' AutoscalersPatch Text
-apZone = lens _apZone (\ s a -> s{_apZone = a})
-
--- | Multipart request metadata.
-apPayload :: Lens' AutoscalersPatch Autoscaler
-apPayload
-  = lens _apPayload (\ s a -> s{_apPayload = a})
-
--- | Name of the autoscaler to patch.
-apAutoscaler :: Lens' AutoscalersPatch (Maybe Text)
-apAutoscaler
-  = lens _apAutoscaler (\ s a -> s{_apAutoscaler = a})
-
-instance GoogleRequest AutoscalersPatch where
-        type Rs AutoscalersPatch = Operation
-        type Scopes AutoscalersPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AutoscalersPatch'{..}
-          = go _apProject _apZone _apRequestId _apAutoscaler
-              (Just AltJSON)
-              _apPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Autoscalers/Update.hs b/gen/Network/Google/Resource/Compute/Autoscalers/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Autoscalers/Update.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Autoscalers.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.autoscalers.update@.
-module Network.Google.Resource.Compute.Autoscalers.Update
-    (
-    -- * REST Resource
-      AutoscalersUpdateResource
-
-    -- * Creating a Request
-    , autoscalersUpdate
-    , AutoscalersUpdate
-
-    -- * Request Lenses
-    , auRequestId
-    , auProject
-    , auZone
-    , auPayload
-    , auAutoscaler
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.autoscalers.update@ method which the
--- 'AutoscalersUpdate' request conforms to.
-type AutoscalersUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "autoscaler" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Autoscaler :> Put '[JSON] Operation
-
--- | Updates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ 'autoscalersUpdate' smart constructor.
-data AutoscalersUpdate =
-  AutoscalersUpdate'
-    { _auRequestId  :: !(Maybe Text)
-    , _auProject    :: !Text
-    , _auZone       :: !Text
-    , _auPayload    :: !Autoscaler
-    , _auAutoscaler :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'AutoscalersUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'auRequestId'
---
--- * 'auProject'
---
--- * 'auZone'
---
--- * 'auPayload'
---
--- * 'auAutoscaler'
-autoscalersUpdate
-    :: Text -- ^ 'auProject'
-    -> Text -- ^ 'auZone'
-    -> Autoscaler -- ^ 'auPayload'
-    -> AutoscalersUpdate
-autoscalersUpdate pAuProject_ pAuZone_ pAuPayload_ =
-  AutoscalersUpdate'
-    { _auRequestId = Nothing
-    , _auProject = pAuProject_
-    , _auZone = pAuZone_
-    , _auPayload = pAuPayload_
-    , _auAutoscaler = Nothing
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-auRequestId :: Lens' AutoscalersUpdate (Maybe Text)
-auRequestId
-  = lens _auRequestId (\ s a -> s{_auRequestId = a})
-
--- | Project ID for this request.
-auProject :: Lens' AutoscalersUpdate Text
-auProject
-  = lens _auProject (\ s a -> s{_auProject = a})
-
--- | Name of the zone for this request.
-auZone :: Lens' AutoscalersUpdate Text
-auZone = lens _auZone (\ s a -> s{_auZone = a})
-
--- | Multipart request metadata.
-auPayload :: Lens' AutoscalersUpdate Autoscaler
-auPayload
-  = lens _auPayload (\ s a -> s{_auPayload = a})
-
--- | Name of the autoscaler to update.
-auAutoscaler :: Lens' AutoscalersUpdate (Maybe Text)
-auAutoscaler
-  = lens _auAutoscaler (\ s a -> s{_auAutoscaler = a})
-
-instance GoogleRequest AutoscalersUpdate where
-        type Rs AutoscalersUpdate = Operation
-        type Scopes AutoscalersUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient AutoscalersUpdate'{..}
-          = go _auProject _auZone _auRequestId _auAutoscaler
-              (Just AltJSON)
-              _auPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy AutoscalersUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/AddSignedURLKey.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/AddSignedURLKey.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/AddSignedURLKey.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.AddSignedURLKey
--- 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)
---
--- Adds a key for validating requests with signed URLs for this backend
--- bucket.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.addSignedUrlKey@.
-module Network.Google.Resource.Compute.BackendBuckets.AddSignedURLKey
-    (
-    -- * REST Resource
-      BackendBucketsAddSignedURLKeyResource
-
-    -- * Creating a Request
-    , backendBucketsAddSignedURLKey
-    , BackendBucketsAddSignedURLKey
-
-    -- * Request Lenses
-    , bbasukRequestId
-    , bbasukBackendBucket
-    , bbasukProject
-    , bbasukPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.addSignedUrlKey@ method which the
--- 'BackendBucketsAddSignedURLKey' request conforms to.
-type BackendBucketsAddSignedURLKeyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   "addSignedUrlKey" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SignedURLKey :>
-                           Post '[JSON] Operation
-
--- | Adds a key for validating requests with signed URLs for this backend
--- bucket.
---
--- /See:/ 'backendBucketsAddSignedURLKey' smart constructor.
-data BackendBucketsAddSignedURLKey =
-  BackendBucketsAddSignedURLKey'
-    { _bbasukRequestId     :: !(Maybe Text)
-    , _bbasukBackendBucket :: !Text
-    , _bbasukProject       :: !Text
-    , _bbasukPayload       :: !SignedURLKey
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsAddSignedURLKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbasukRequestId'
---
--- * 'bbasukBackendBucket'
---
--- * 'bbasukProject'
---
--- * 'bbasukPayload'
-backendBucketsAddSignedURLKey
-    :: Text -- ^ 'bbasukBackendBucket'
-    -> Text -- ^ 'bbasukProject'
-    -> SignedURLKey -- ^ 'bbasukPayload'
-    -> BackendBucketsAddSignedURLKey
-backendBucketsAddSignedURLKey pBbasukBackendBucket_ pBbasukProject_ pBbasukPayload_ =
-  BackendBucketsAddSignedURLKey'
-    { _bbasukRequestId = Nothing
-    , _bbasukBackendBucket = pBbasukBackendBucket_
-    , _bbasukProject = pBbasukProject_
-    , _bbasukPayload = pBbasukPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbasukRequestId :: Lens' BackendBucketsAddSignedURLKey (Maybe Text)
-bbasukRequestId
-  = lens _bbasukRequestId
-      (\ s a -> s{_bbasukRequestId = a})
-
--- | Name of the BackendBucket resource to which the Signed URL Key should be
--- added. The name should conform to RFC1035.
-bbasukBackendBucket :: Lens' BackendBucketsAddSignedURLKey Text
-bbasukBackendBucket
-  = lens _bbasukBackendBucket
-      (\ s a -> s{_bbasukBackendBucket = a})
-
--- | Project ID for this request.
-bbasukProject :: Lens' BackendBucketsAddSignedURLKey Text
-bbasukProject
-  = lens _bbasukProject
-      (\ s a -> s{_bbasukProject = a})
-
--- | Multipart request metadata.
-bbasukPayload :: Lens' BackendBucketsAddSignedURLKey SignedURLKey
-bbasukPayload
-  = lens _bbasukPayload
-      (\ s a -> s{_bbasukPayload = a})
-
-instance GoogleRequest BackendBucketsAddSignedURLKey
-         where
-        type Rs BackendBucketsAddSignedURLKey = Operation
-        type Scopes BackendBucketsAddSignedURLKey =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsAddSignedURLKey'{..}
-          = go _bbasukProject _bbasukBackendBucket
-              _bbasukRequestId
-              (Just AltJSON)
-              _bbasukPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendBucketsAddSignedURLKeyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/Delete.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/Delete.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.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 BackendBucket resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.delete@.
-module Network.Google.Resource.Compute.BackendBuckets.Delete
-    (
-    -- * REST Resource
-      BackendBucketsDeleteResource
-
-    -- * Creating a Request
-    , backendBucketsDelete
-    , BackendBucketsDelete
-
-    -- * Request Lenses
-    , bbdRequestId
-    , bbdBackendBucket
-    , bbdProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.delete@ method which the
--- 'BackendBucketsDelete' request conforms to.
-type BackendBucketsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified BackendBucket resource.
---
--- /See:/ 'backendBucketsDelete' smart constructor.
-data BackendBucketsDelete =
-  BackendBucketsDelete'
-    { _bbdRequestId     :: !(Maybe Text)
-    , _bbdBackendBucket :: !Text
-    , _bbdProject       :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbdRequestId'
---
--- * 'bbdBackendBucket'
---
--- * 'bbdProject'
-backendBucketsDelete
-    :: Text -- ^ 'bbdBackendBucket'
-    -> Text -- ^ 'bbdProject'
-    -> BackendBucketsDelete
-backendBucketsDelete pBbdBackendBucket_ pBbdProject_ =
-  BackendBucketsDelete'
-    { _bbdRequestId = Nothing
-    , _bbdBackendBucket = pBbdBackendBucket_
-    , _bbdProject = pBbdProject_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbdRequestId :: Lens' BackendBucketsDelete (Maybe Text)
-bbdRequestId
-  = lens _bbdRequestId (\ s a -> s{_bbdRequestId = a})
-
--- | Name of the BackendBucket resource to delete.
-bbdBackendBucket :: Lens' BackendBucketsDelete Text
-bbdBackendBucket
-  = lens _bbdBackendBucket
-      (\ s a -> s{_bbdBackendBucket = a})
-
--- | Project ID for this request.
-bbdProject :: Lens' BackendBucketsDelete Text
-bbdProject
-  = lens _bbdProject (\ s a -> s{_bbdProject = a})
-
-instance GoogleRequest BackendBucketsDelete where
-        type Rs BackendBucketsDelete = Operation
-        type Scopes BackendBucketsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsDelete'{..}
-          = go _bbdProject _bbdBackendBucket _bbdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/DeleteSignedURLKey.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/DeleteSignedURLKey.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/DeleteSignedURLKey.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.DeleteSignedURLKey
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes a key for validating requests with signed URLs for this backend
--- bucket.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.deleteSignedUrlKey@.
-module Network.Google.Resource.Compute.BackendBuckets.DeleteSignedURLKey
-    (
-    -- * REST Resource
-      BackendBucketsDeleteSignedURLKeyResource
-
-    -- * Creating a Request
-    , backendBucketsDeleteSignedURLKey
-    , BackendBucketsDeleteSignedURLKey
-
-    -- * Request Lenses
-    , bbdsukRequestId
-    , bbdsukBackendBucket
-    , bbdsukProject
-    , bbdsukKeyName
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.deleteSignedUrlKey@ method which the
--- 'BackendBucketsDeleteSignedURLKey' request conforms to.
-type BackendBucketsDeleteSignedURLKeyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   "deleteSignedUrlKey" :>
-                     QueryParam "keyName" Text :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Deletes a key for validating requests with signed URLs for this backend
--- bucket.
---
--- /See:/ 'backendBucketsDeleteSignedURLKey' smart constructor.
-data BackendBucketsDeleteSignedURLKey =
-  BackendBucketsDeleteSignedURLKey'
-    { _bbdsukRequestId     :: !(Maybe Text)
-    , _bbdsukBackendBucket :: !Text
-    , _bbdsukProject       :: !Text
-    , _bbdsukKeyName       :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsDeleteSignedURLKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbdsukRequestId'
---
--- * 'bbdsukBackendBucket'
---
--- * 'bbdsukProject'
---
--- * 'bbdsukKeyName'
-backendBucketsDeleteSignedURLKey
-    :: Text -- ^ 'bbdsukBackendBucket'
-    -> Text -- ^ 'bbdsukProject'
-    -> Text -- ^ 'bbdsukKeyName'
-    -> BackendBucketsDeleteSignedURLKey
-backendBucketsDeleteSignedURLKey pBbdsukBackendBucket_ pBbdsukProject_ pBbdsukKeyName_ =
-  BackendBucketsDeleteSignedURLKey'
-    { _bbdsukRequestId = Nothing
-    , _bbdsukBackendBucket = pBbdsukBackendBucket_
-    , _bbdsukProject = pBbdsukProject_
-    , _bbdsukKeyName = pBbdsukKeyName_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbdsukRequestId :: Lens' BackendBucketsDeleteSignedURLKey (Maybe Text)
-bbdsukRequestId
-  = lens _bbdsukRequestId
-      (\ s a -> s{_bbdsukRequestId = a})
-
--- | Name of the BackendBucket resource to which the Signed URL Key should be
--- added. The name should conform to RFC1035.
-bbdsukBackendBucket :: Lens' BackendBucketsDeleteSignedURLKey Text
-bbdsukBackendBucket
-  = lens _bbdsukBackendBucket
-      (\ s a -> s{_bbdsukBackendBucket = a})
-
--- | Project ID for this request.
-bbdsukProject :: Lens' BackendBucketsDeleteSignedURLKey Text
-bbdsukProject
-  = lens _bbdsukProject
-      (\ s a -> s{_bbdsukProject = a})
-
--- | The name of the Signed URL Key to delete.
-bbdsukKeyName :: Lens' BackendBucketsDeleteSignedURLKey Text
-bbdsukKeyName
-  = lens _bbdsukKeyName
-      (\ s a -> s{_bbdsukKeyName = a})
-
-instance GoogleRequest
-           BackendBucketsDeleteSignedURLKey
-         where
-        type Rs BackendBucketsDeleteSignedURLKey = Operation
-        type Scopes BackendBucketsDeleteSignedURLKey =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsDeleteSignedURLKey'{..}
-          = go _bbdsukProject _bbdsukBackendBucket
-              (Just _bbdsukKeyName)
-              _bbdsukRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendBucketsDeleteSignedURLKeyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/Get.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/Get.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.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)
---
--- Returns the specified BackendBucket resource. Gets a list of available
--- backend buckets by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.get@.
-module Network.Google.Resource.Compute.BackendBuckets.Get
-    (
-    -- * REST Resource
-      BackendBucketsGetResource
-
-    -- * Creating a Request
-    , backendBucketsGet
-    , BackendBucketsGet
-
-    -- * Request Lenses
-    , bbgBackendBucket
-    , bbgProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.get@ method which the
--- 'BackendBucketsGet' request conforms to.
-type BackendBucketsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] BackendBucket
-
--- | Returns the specified BackendBucket resource. Gets a list of available
--- backend buckets by making a list() request.
---
--- /See:/ 'backendBucketsGet' smart constructor.
-data BackendBucketsGet =
-  BackendBucketsGet'
-    { _bbgBackendBucket :: !Text
-    , _bbgProject       :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbgBackendBucket'
---
--- * 'bbgProject'
-backendBucketsGet
-    :: Text -- ^ 'bbgBackendBucket'
-    -> Text -- ^ 'bbgProject'
-    -> BackendBucketsGet
-backendBucketsGet pBbgBackendBucket_ pBbgProject_ =
-  BackendBucketsGet'
-    {_bbgBackendBucket = pBbgBackendBucket_, _bbgProject = pBbgProject_}
-
-
--- | Name of the BackendBucket resource to return.
-bbgBackendBucket :: Lens' BackendBucketsGet Text
-bbgBackendBucket
-  = lens _bbgBackendBucket
-      (\ s a -> s{_bbgBackendBucket = a})
-
--- | Project ID for this request.
-bbgProject :: Lens' BackendBucketsGet Text
-bbgProject
-  = lens _bbgProject (\ s a -> s{_bbgProject = a})
-
-instance GoogleRequest BackendBucketsGet where
-        type Rs BackendBucketsGet = BackendBucket
-        type Scopes BackendBucketsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendBucketsGet'{..}
-          = go _bbgProject _bbgBackendBucket (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/Insert.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/Insert.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.Insert
--- 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 BackendBucket resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.insert@.
-module Network.Google.Resource.Compute.BackendBuckets.Insert
-    (
-    -- * REST Resource
-      BackendBucketsInsertResource
-
-    -- * Creating a Request
-    , backendBucketsInsert
-    , BackendBucketsInsert
-
-    -- * Request Lenses
-    , bbiRequestId
-    , bbiProject
-    , bbiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.insert@ method which the
--- 'BackendBucketsInsert' request conforms to.
-type BackendBucketsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] BackendBucket :>
-                       Post '[JSON] Operation
-
--- | Creates a BackendBucket resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'backendBucketsInsert' smart constructor.
-data BackendBucketsInsert =
-  BackendBucketsInsert'
-    { _bbiRequestId :: !(Maybe Text)
-    , _bbiProject   :: !Text
-    , _bbiPayload   :: !BackendBucket
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbiRequestId'
---
--- * 'bbiProject'
---
--- * 'bbiPayload'
-backendBucketsInsert
-    :: Text -- ^ 'bbiProject'
-    -> BackendBucket -- ^ 'bbiPayload'
-    -> BackendBucketsInsert
-backendBucketsInsert pBbiProject_ pBbiPayload_ =
-  BackendBucketsInsert'
-    { _bbiRequestId = Nothing
-    , _bbiProject = pBbiProject_
-    , _bbiPayload = pBbiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbiRequestId :: Lens' BackendBucketsInsert (Maybe Text)
-bbiRequestId
-  = lens _bbiRequestId (\ s a -> s{_bbiRequestId = a})
-
--- | Project ID for this request.
-bbiProject :: Lens' BackendBucketsInsert Text
-bbiProject
-  = lens _bbiProject (\ s a -> s{_bbiProject = a})
-
--- | Multipart request metadata.
-bbiPayload :: Lens' BackendBucketsInsert BackendBucket
-bbiPayload
-  = lens _bbiPayload (\ s a -> s{_bbiPayload = a})
-
-instance GoogleRequest BackendBucketsInsert where
-        type Rs BackendBucketsInsert = Operation
-        type Scopes BackendBucketsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsInsert'{..}
-          = go _bbiProject _bbiRequestId (Just AltJSON)
-              _bbiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/List.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.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)
---
--- Retrieves the list of BackendBucket resources available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.list@.
-module Network.Google.Resource.Compute.BackendBuckets.List
-    (
-    -- * REST Resource
-      BackendBucketsListResource
-
-    -- * Creating a Request
-    , backendBucketsList
-    , BackendBucketsList
-
-    -- * Request Lenses
-    , bblOrderBy
-    , bblProject
-    , bblFilter
-    , bblPageToken
-    , bblMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.list@ method which the
--- 'BackendBucketsList' request conforms to.
-type BackendBucketsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] BackendBucketList
-
--- | Retrieves the list of BackendBucket resources available to the specified
--- project.
---
--- /See:/ 'backendBucketsList' smart constructor.
-data BackendBucketsList =
-  BackendBucketsList'
-    { _bblOrderBy    :: !(Maybe Text)
-    , _bblProject    :: !Text
-    , _bblFilter     :: !(Maybe Text)
-    , _bblPageToken  :: !(Maybe Text)
-    , _bblMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bblOrderBy'
---
--- * 'bblProject'
---
--- * 'bblFilter'
---
--- * 'bblPageToken'
---
--- * 'bblMaxResults'
-backendBucketsList
-    :: Text -- ^ 'bblProject'
-    -> BackendBucketsList
-backendBucketsList pBblProject_ =
-  BackendBucketsList'
-    { _bblOrderBy = Nothing
-    , _bblProject = pBblProject_
-    , _bblFilter = Nothing
-    , _bblPageToken = Nothing
-    , _bblMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-bblOrderBy :: Lens' BackendBucketsList (Maybe Text)
-bblOrderBy
-  = lens _bblOrderBy (\ s a -> s{_bblOrderBy = a})
-
--- | Project ID for this request.
-bblProject :: Lens' BackendBucketsList Text
-bblProject
-  = lens _bblProject (\ s a -> s{_bblProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-bblFilter :: Lens' BackendBucketsList (Maybe Text)
-bblFilter
-  = lens _bblFilter (\ s a -> s{_bblFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-bblPageToken :: Lens' BackendBucketsList (Maybe Text)
-bblPageToken
-  = lens _bblPageToken (\ s a -> s{_bblPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-bblMaxResults :: Lens' BackendBucketsList Word32
-bblMaxResults
-  = lens _bblMaxResults
-      (\ s a -> s{_bblMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest BackendBucketsList where
-        type Rs BackendBucketsList = BackendBucketList
-        type Scopes BackendBucketsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendBucketsList'{..}
-          = go _bblProject _bblOrderBy _bblFilter _bblPageToken
-              (Just _bblMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/Patch.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/Patch.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.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 BackendBucket resource with the data included in
--- the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.patch@.
-module Network.Google.Resource.Compute.BackendBuckets.Patch
-    (
-    -- * REST Resource
-      BackendBucketsPatchResource
-
-    -- * Creating a Request
-    , backendBucketsPatch
-    , BackendBucketsPatch
-
-    -- * Request Lenses
-    , bbpRequestId
-    , bbpBackendBucket
-    , bbpProject
-    , bbpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.patch@ method which the
--- 'BackendBucketsPatch' request conforms to.
-type BackendBucketsPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] BackendBucket :>
-                         Patch '[JSON] Operation
-
--- | Updates the specified BackendBucket resource with the data included in
--- the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ 'backendBucketsPatch' smart constructor.
-data BackendBucketsPatch =
-  BackendBucketsPatch'
-    { _bbpRequestId     :: !(Maybe Text)
-    , _bbpBackendBucket :: !Text
-    , _bbpProject       :: !Text
-    , _bbpPayload       :: !BackendBucket
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbpRequestId'
---
--- * 'bbpBackendBucket'
---
--- * 'bbpProject'
---
--- * 'bbpPayload'
-backendBucketsPatch
-    :: Text -- ^ 'bbpBackendBucket'
-    -> Text -- ^ 'bbpProject'
-    -> BackendBucket -- ^ 'bbpPayload'
-    -> BackendBucketsPatch
-backendBucketsPatch pBbpBackendBucket_ pBbpProject_ pBbpPayload_ =
-  BackendBucketsPatch'
-    { _bbpRequestId = Nothing
-    , _bbpBackendBucket = pBbpBackendBucket_
-    , _bbpProject = pBbpProject_
-    , _bbpPayload = pBbpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbpRequestId :: Lens' BackendBucketsPatch (Maybe Text)
-bbpRequestId
-  = lens _bbpRequestId (\ s a -> s{_bbpRequestId = a})
-
--- | Name of the BackendBucket resource to patch.
-bbpBackendBucket :: Lens' BackendBucketsPatch Text
-bbpBackendBucket
-  = lens _bbpBackendBucket
-      (\ s a -> s{_bbpBackendBucket = a})
-
--- | Project ID for this request.
-bbpProject :: Lens' BackendBucketsPatch Text
-bbpProject
-  = lens _bbpProject (\ s a -> s{_bbpProject = a})
-
--- | Multipart request metadata.
-bbpPayload :: Lens' BackendBucketsPatch BackendBucket
-bbpPayload
-  = lens _bbpPayload (\ s a -> s{_bbpPayload = a})
-
-instance GoogleRequest BackendBucketsPatch where
-        type Rs BackendBucketsPatch = Operation
-        type Scopes BackendBucketsPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsPatch'{..}
-          = go _bbpProject _bbpBackendBucket _bbpRequestId
-              (Just AltJSON)
-              _bbpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendBuckets/Update.hs b/gen/Network/Google/Resource/Compute/BackendBuckets/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendBuckets/Update.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendBuckets.Update
--- 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 BackendBucket resource with the data included in
--- the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendBuckets.update@.
-module Network.Google.Resource.Compute.BackendBuckets.Update
-    (
-    -- * REST Resource
-      BackendBucketsUpdateResource
-
-    -- * Creating a Request
-    , backendBucketsUpdate
-    , BackendBucketsUpdate
-
-    -- * Request Lenses
-    , bbuRequestId
-    , bbuBackendBucket
-    , bbuProject
-    , bbuPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendBuckets.update@ method which the
--- 'BackendBucketsUpdate' request conforms to.
-type BackendBucketsUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendBuckets" :>
-                 Capture "backendBucket" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] BackendBucket :>
-                         Put '[JSON] Operation
-
--- | Updates the specified BackendBucket resource with the data included in
--- the request.
---
--- /See:/ 'backendBucketsUpdate' smart constructor.
-data BackendBucketsUpdate =
-  BackendBucketsUpdate'
-    { _bbuRequestId     :: !(Maybe Text)
-    , _bbuBackendBucket :: !Text
-    , _bbuProject       :: !Text
-    , _bbuPayload       :: !BackendBucket
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendBucketsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bbuRequestId'
---
--- * 'bbuBackendBucket'
---
--- * 'bbuProject'
---
--- * 'bbuPayload'
-backendBucketsUpdate
-    :: Text -- ^ 'bbuBackendBucket'
-    -> Text -- ^ 'bbuProject'
-    -> BackendBucket -- ^ 'bbuPayload'
-    -> BackendBucketsUpdate
-backendBucketsUpdate pBbuBackendBucket_ pBbuProject_ pBbuPayload_ =
-  BackendBucketsUpdate'
-    { _bbuRequestId = Nothing
-    , _bbuBackendBucket = pBbuBackendBucket_
-    , _bbuProject = pBbuProject_
-    , _bbuPayload = pBbuPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bbuRequestId :: Lens' BackendBucketsUpdate (Maybe Text)
-bbuRequestId
-  = lens _bbuRequestId (\ s a -> s{_bbuRequestId = a})
-
--- | Name of the BackendBucket resource to update.
-bbuBackendBucket :: Lens' BackendBucketsUpdate Text
-bbuBackendBucket
-  = lens _bbuBackendBucket
-      (\ s a -> s{_bbuBackendBucket = a})
-
--- | Project ID for this request.
-bbuProject :: Lens' BackendBucketsUpdate Text
-bbuProject
-  = lens _bbuProject (\ s a -> s{_bbuProject = a})
-
--- | Multipart request metadata.
-bbuPayload :: Lens' BackendBucketsUpdate BackendBucket
-bbuPayload
-  = lens _bbuPayload (\ s a -> s{_bbuPayload = a})
-
-instance GoogleRequest BackendBucketsUpdate where
-        type Rs BackendBucketsUpdate = Operation
-        type Scopes BackendBucketsUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendBucketsUpdate'{..}
-          = go _bbuProject _bbuBackendBucket _bbuRequestId
-              (Just AltJSON)
-              _bbuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendBucketsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/AddSignedURLKey.hs b/gen/Network/Google/Resource/Compute/BackendServices/AddSignedURLKey.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/AddSignedURLKey.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.AddSignedURLKey
--- 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)
---
--- Adds a key for validating requests with signed URLs for this backend
--- service.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.addSignedUrlKey@.
-module Network.Google.Resource.Compute.BackendServices.AddSignedURLKey
-    (
-    -- * REST Resource
-      BackendServicesAddSignedURLKeyResource
-
-    -- * Creating a Request
-    , backendServicesAddSignedURLKey
-    , BackendServicesAddSignedURLKey
-
-    -- * Request Lenses
-    , bsasukRequestId
-    , bsasukProject
-    , bsasukPayload
-    , bsasukBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.addSignedUrlKey@ method which the
--- 'BackendServicesAddSignedURLKey' request conforms to.
-type BackendServicesAddSignedURLKeyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   "addSignedUrlKey" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SignedURLKey :>
-                           Post '[JSON] Operation
-
--- | Adds a key for validating requests with signed URLs for this backend
--- service.
---
--- /See:/ 'backendServicesAddSignedURLKey' smart constructor.
-data BackendServicesAddSignedURLKey =
-  BackendServicesAddSignedURLKey'
-    { _bsasukRequestId      :: !(Maybe Text)
-    , _bsasukProject        :: !Text
-    , _bsasukPayload        :: !SignedURLKey
-    , _bsasukBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesAddSignedURLKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsasukRequestId'
---
--- * 'bsasukProject'
---
--- * 'bsasukPayload'
---
--- * 'bsasukBackendService'
-backendServicesAddSignedURLKey
-    :: Text -- ^ 'bsasukProject'
-    -> SignedURLKey -- ^ 'bsasukPayload'
-    -> Text -- ^ 'bsasukBackendService'
-    -> BackendServicesAddSignedURLKey
-backendServicesAddSignedURLKey pBsasukProject_ pBsasukPayload_ pBsasukBackendService_ =
-  BackendServicesAddSignedURLKey'
-    { _bsasukRequestId = Nothing
-    , _bsasukProject = pBsasukProject_
-    , _bsasukPayload = pBsasukPayload_
-    , _bsasukBackendService = pBsasukBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bsasukRequestId :: Lens' BackendServicesAddSignedURLKey (Maybe Text)
-bsasukRequestId
-  = lens _bsasukRequestId
-      (\ s a -> s{_bsasukRequestId = a})
-
--- | Project ID for this request.
-bsasukProject :: Lens' BackendServicesAddSignedURLKey Text
-bsasukProject
-  = lens _bsasukProject
-      (\ s a -> s{_bsasukProject = a})
-
--- | Multipart request metadata.
-bsasukPayload :: Lens' BackendServicesAddSignedURLKey SignedURLKey
-bsasukPayload
-  = lens _bsasukPayload
-      (\ s a -> s{_bsasukPayload = a})
-
--- | Name of the BackendService resource to which the Signed URL Key should
--- be added. The name should conform to RFC1035.
-bsasukBackendService :: Lens' BackendServicesAddSignedURLKey Text
-bsasukBackendService
-  = lens _bsasukBackendService
-      (\ s a -> s{_bsasukBackendService = a})
-
-instance GoogleRequest BackendServicesAddSignedURLKey
-         where
-        type Rs BackendServicesAddSignedURLKey = Operation
-        type Scopes BackendServicesAddSignedURLKey =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesAddSignedURLKey'{..}
-          = go _bsasukProject _bsasukBackendService
-              _bsasukRequestId
-              (Just AltJSON)
-              _bsasukPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendServicesAddSignedURLKeyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/AggregatedList.hs b/gen/Network/Google/Resource/Compute/BackendServices/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/AggregatedList.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.AggregatedList
--- 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)
---
--- Retrieves the list of all BackendService resources, regional and global,
--- available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.aggregatedList@.
-module Network.Google.Resource.Compute.BackendServices.AggregatedList
-    (
-    -- * REST Resource
-      BackendServicesAggregatedListResource
-
-    -- * Creating a Request
-    , backendServicesAggregatedList
-    , BackendServicesAggregatedList
-
-    -- * Request Lenses
-    , bsalOrderBy
-    , bsalProject
-    , bsalFilter
-    , bsalPageToken
-    , bsalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.aggregatedList@ method which the
--- 'BackendServicesAggregatedList' request conforms to.
-type BackendServicesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "backendServices" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] BackendServiceAggregatedList
-
--- | Retrieves the list of all BackendService resources, regional and global,
--- available to the specified project.
---
--- /See:/ 'backendServicesAggregatedList' smart constructor.
-data BackendServicesAggregatedList =
-  BackendServicesAggregatedList'
-    { _bsalOrderBy    :: !(Maybe Text)
-    , _bsalProject    :: !Text
-    , _bsalFilter     :: !(Maybe Text)
-    , _bsalPageToken  :: !(Maybe Text)
-    , _bsalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsalOrderBy'
---
--- * 'bsalProject'
---
--- * 'bsalFilter'
---
--- * 'bsalPageToken'
---
--- * 'bsalMaxResults'
-backendServicesAggregatedList
-    :: Text -- ^ 'bsalProject'
-    -> BackendServicesAggregatedList
-backendServicesAggregatedList pBsalProject_ =
-  BackendServicesAggregatedList'
-    { _bsalOrderBy = Nothing
-    , _bsalProject = pBsalProject_
-    , _bsalFilter = Nothing
-    , _bsalPageToken = Nothing
-    , _bsalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-bsalOrderBy :: Lens' BackendServicesAggregatedList (Maybe Text)
-bsalOrderBy
-  = lens _bsalOrderBy (\ s a -> s{_bsalOrderBy = a})
-
--- | Name of the project scoping this request.
-bsalProject :: Lens' BackendServicesAggregatedList Text
-bsalProject
-  = lens _bsalProject (\ s a -> s{_bsalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-bsalFilter :: Lens' BackendServicesAggregatedList (Maybe Text)
-bsalFilter
-  = lens _bsalFilter (\ s a -> s{_bsalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-bsalPageToken :: Lens' BackendServicesAggregatedList (Maybe Text)
-bsalPageToken
-  = lens _bsalPageToken
-      (\ s a -> s{_bsalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-bsalMaxResults :: Lens' BackendServicesAggregatedList Word32
-bsalMaxResults
-  = lens _bsalMaxResults
-      (\ s a -> s{_bsalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest BackendServicesAggregatedList
-         where
-        type Rs BackendServicesAggregatedList =
-             BackendServiceAggregatedList
-        type Scopes BackendServicesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendServicesAggregatedList'{..}
-          = go _bsalProject _bsalOrderBy _bsalFilter
-              _bsalPageToken
-              (Just _bsalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendServicesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/Delete.hs b/gen/Network/Google/Resource/Compute/BackendServices/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/Delete.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.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 BackendService resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.delete@.
-module Network.Google.Resource.Compute.BackendServices.Delete
-    (
-    -- * REST Resource
-      BackendServicesDeleteResource
-
-    -- * Creating a Request
-    , backendServicesDelete
-    , BackendServicesDelete
-
-    -- * Request Lenses
-    , bsdRequestId
-    , bsdProject
-    , bsdBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.delete@ method which the
--- 'BackendServicesDelete' request conforms to.
-type BackendServicesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified BackendService resource.
---
--- /See:/ 'backendServicesDelete' smart constructor.
-data BackendServicesDelete =
-  BackendServicesDelete'
-    { _bsdRequestId      :: !(Maybe Text)
-    , _bsdProject        :: !Text
-    , _bsdBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsdRequestId'
---
--- * 'bsdProject'
---
--- * 'bsdBackendService'
-backendServicesDelete
-    :: Text -- ^ 'bsdProject'
-    -> Text -- ^ 'bsdBackendService'
-    -> BackendServicesDelete
-backendServicesDelete pBsdProject_ pBsdBackendService_ =
-  BackendServicesDelete'
-    { _bsdRequestId = Nothing
-    , _bsdProject = pBsdProject_
-    , _bsdBackendService = pBsdBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bsdRequestId :: Lens' BackendServicesDelete (Maybe Text)
-bsdRequestId
-  = lens _bsdRequestId (\ s a -> s{_bsdRequestId = a})
-
--- | Project ID for this request.
-bsdProject :: Lens' BackendServicesDelete Text
-bsdProject
-  = lens _bsdProject (\ s a -> s{_bsdProject = a})
-
--- | Name of the BackendService resource to delete.
-bsdBackendService :: Lens' BackendServicesDelete Text
-bsdBackendService
-  = lens _bsdBackendService
-      (\ s a -> s{_bsdBackendService = a})
-
-instance GoogleRequest BackendServicesDelete where
-        type Rs BackendServicesDelete = Operation
-        type Scopes BackendServicesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesDelete'{..}
-          = go _bsdProject _bsdBackendService _bsdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/DeleteSignedURLKey.hs b/gen/Network/Google/Resource/Compute/BackendServices/DeleteSignedURLKey.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/DeleteSignedURLKey.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.DeleteSignedURLKey
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes a key for validating requests with signed URLs for this backend
--- service.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.deleteSignedUrlKey@.
-module Network.Google.Resource.Compute.BackendServices.DeleteSignedURLKey
-    (
-    -- * REST Resource
-      BackendServicesDeleteSignedURLKeyResource
-
-    -- * Creating a Request
-    , backendServicesDeleteSignedURLKey
-    , BackendServicesDeleteSignedURLKey
-
-    -- * Request Lenses
-    , bsdsukRequestId
-    , bsdsukProject
-    , bsdsukKeyName
-    , bsdsukBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.deleteSignedUrlKey@ method which the
--- 'BackendServicesDeleteSignedURLKey' request conforms to.
-type BackendServicesDeleteSignedURLKeyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   "deleteSignedUrlKey" :>
-                     QueryParam "keyName" Text :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Deletes a key for validating requests with signed URLs for this backend
--- service.
---
--- /See:/ 'backendServicesDeleteSignedURLKey' smart constructor.
-data BackendServicesDeleteSignedURLKey =
-  BackendServicesDeleteSignedURLKey'
-    { _bsdsukRequestId      :: !(Maybe Text)
-    , _bsdsukProject        :: !Text
-    , _bsdsukKeyName        :: !Text
-    , _bsdsukBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesDeleteSignedURLKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsdsukRequestId'
---
--- * 'bsdsukProject'
---
--- * 'bsdsukKeyName'
---
--- * 'bsdsukBackendService'
-backendServicesDeleteSignedURLKey
-    :: Text -- ^ 'bsdsukProject'
-    -> Text -- ^ 'bsdsukKeyName'
-    -> Text -- ^ 'bsdsukBackendService'
-    -> BackendServicesDeleteSignedURLKey
-backendServicesDeleteSignedURLKey pBsdsukProject_ pBsdsukKeyName_ pBsdsukBackendService_ =
-  BackendServicesDeleteSignedURLKey'
-    { _bsdsukRequestId = Nothing
-    , _bsdsukProject = pBsdsukProject_
-    , _bsdsukKeyName = pBsdsukKeyName_
-    , _bsdsukBackendService = pBsdsukBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bsdsukRequestId :: Lens' BackendServicesDeleteSignedURLKey (Maybe Text)
-bsdsukRequestId
-  = lens _bsdsukRequestId
-      (\ s a -> s{_bsdsukRequestId = a})
-
--- | Project ID for this request.
-bsdsukProject :: Lens' BackendServicesDeleteSignedURLKey Text
-bsdsukProject
-  = lens _bsdsukProject
-      (\ s a -> s{_bsdsukProject = a})
-
--- | The name of the Signed URL Key to delete.
-bsdsukKeyName :: Lens' BackendServicesDeleteSignedURLKey Text
-bsdsukKeyName
-  = lens _bsdsukKeyName
-      (\ s a -> s{_bsdsukKeyName = a})
-
--- | Name of the BackendService resource to which the Signed URL Key should
--- be added. The name should conform to RFC1035.
-bsdsukBackendService :: Lens' BackendServicesDeleteSignedURLKey Text
-bsdsukBackendService
-  = lens _bsdsukBackendService
-      (\ s a -> s{_bsdsukBackendService = a})
-
-instance GoogleRequest
-           BackendServicesDeleteSignedURLKey
-         where
-        type Rs BackendServicesDeleteSignedURLKey = Operation
-        type Scopes BackendServicesDeleteSignedURLKey =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesDeleteSignedURLKey'{..}
-          = go _bsdsukProject _bsdsukBackendService
-              (Just _bsdsukKeyName)
-              _bsdsukRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendServicesDeleteSignedURLKeyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/Get.hs b/gen/Network/Google/Resource/Compute/BackendServices/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.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)
---
--- Returns the specified BackendService resource. Gets a list of available
--- backend services.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.get@.
-module Network.Google.Resource.Compute.BackendServices.Get
-    (
-    -- * REST Resource
-      BackendServicesGetResource
-
-    -- * Creating a Request
-    , backendServicesGet
-    , BackendServicesGet
-
-    -- * Request Lenses
-    , bsgProject
-    , bsgBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.get@ method which the
--- 'BackendServicesGet' request conforms to.
-type BackendServicesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] BackendService
-
--- | Returns the specified BackendService resource. Gets a list of available
--- backend services.
---
--- /See:/ 'backendServicesGet' smart constructor.
-data BackendServicesGet =
-  BackendServicesGet'
-    { _bsgProject        :: !Text
-    , _bsgBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsgProject'
---
--- * 'bsgBackendService'
-backendServicesGet
-    :: Text -- ^ 'bsgProject'
-    -> Text -- ^ 'bsgBackendService'
-    -> BackendServicesGet
-backendServicesGet pBsgProject_ pBsgBackendService_ =
-  BackendServicesGet'
-    {_bsgProject = pBsgProject_, _bsgBackendService = pBsgBackendService_}
-
-
--- | Project ID for this request.
-bsgProject :: Lens' BackendServicesGet Text
-bsgProject
-  = lens _bsgProject (\ s a -> s{_bsgProject = a})
-
--- | Name of the BackendService resource to return.
-bsgBackendService :: Lens' BackendServicesGet Text
-bsgBackendService
-  = lens _bsgBackendService
-      (\ s a -> s{_bsgBackendService = a})
-
-instance GoogleRequest BackendServicesGet where
-        type Rs BackendServicesGet = BackendService
-        type Scopes BackendServicesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendServicesGet'{..}
-          = go _bsgProject _bsgBackendService (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/GetHealth.hs b/gen/Network/Google/Resource/Compute/BackendServices/GetHealth.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/GetHealth.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.GetHealth
--- 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 most recent health check results for this BackendService.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.getHealth@.
-module Network.Google.Resource.Compute.BackendServices.GetHealth
-    (
-    -- * REST Resource
-      BackendServicesGetHealthResource
-
-    -- * Creating a Request
-    , backendServicesGetHealth
-    , BackendServicesGetHealth
-
-    -- * Request Lenses
-    , bsghProject
-    , bsghPayload
-    , bsghBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.getHealth@ method which the
--- 'BackendServicesGetHealth' request conforms to.
-type BackendServicesGetHealthResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   "getHealth" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] ResourceGroupReference :>
-                         Post '[JSON] BackendServiceGroupHealth
-
--- | Gets the most recent health check results for this BackendService.
---
--- /See:/ 'backendServicesGetHealth' smart constructor.
-data BackendServicesGetHealth =
-  BackendServicesGetHealth'
-    { _bsghProject        :: !Text
-    , _bsghPayload        :: !ResourceGroupReference
-    , _bsghBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesGetHealth' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsghProject'
---
--- * 'bsghPayload'
---
--- * 'bsghBackendService'
-backendServicesGetHealth
-    :: Text -- ^ 'bsghProject'
-    -> ResourceGroupReference -- ^ 'bsghPayload'
-    -> Text -- ^ 'bsghBackendService'
-    -> BackendServicesGetHealth
-backendServicesGetHealth pBsghProject_ pBsghPayload_ pBsghBackendService_ =
-  BackendServicesGetHealth'
-    { _bsghProject = pBsghProject_
-    , _bsghPayload = pBsghPayload_
-    , _bsghBackendService = pBsghBackendService_
-    }
-
-
-bsghProject :: Lens' BackendServicesGetHealth Text
-bsghProject
-  = lens _bsghProject (\ s a -> s{_bsghProject = a})
-
--- | Multipart request metadata.
-bsghPayload :: Lens' BackendServicesGetHealth ResourceGroupReference
-bsghPayload
-  = lens _bsghPayload (\ s a -> s{_bsghPayload = a})
-
--- | Name of the BackendService resource to which the queried instance
--- belongs.
-bsghBackendService :: Lens' BackendServicesGetHealth Text
-bsghBackendService
-  = lens _bsghBackendService
-      (\ s a -> s{_bsghBackendService = a})
-
-instance GoogleRequest BackendServicesGetHealth where
-        type Rs BackendServicesGetHealth =
-             BackendServiceGroupHealth
-        type Scopes BackendServicesGetHealth =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendServicesGetHealth'{..}
-          = go _bsghProject _bsghBackendService (Just AltJSON)
-              _bsghPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesGetHealthResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/Insert.hs b/gen/Network/Google/Resource/Compute/BackendServices/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/Insert.hs
+++ /dev/null
@@ -1,133 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.Insert
--- 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 BackendService resource in the specified project using the
--- data included in the request. There are several restrictions and
--- guidelines to keep in mind when creating a backend service. Read
--- Restrictions and Guidelines for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.insert@.
-module Network.Google.Resource.Compute.BackendServices.Insert
-    (
-    -- * REST Resource
-      BackendServicesInsertResource
-
-    -- * Creating a Request
-    , backendServicesInsert
-    , BackendServicesInsert
-
-    -- * Request Lenses
-    , bsiRequestId
-    , bsiProject
-    , bsiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.insert@ method which the
--- 'BackendServicesInsert' request conforms to.
-type BackendServicesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] BackendService :>
-                       Post '[JSON] Operation
-
--- | Creates a BackendService resource in the specified project using the
--- data included in the request. There are several restrictions and
--- guidelines to keep in mind when creating a backend service. Read
--- Restrictions and Guidelines for more information.
---
--- /See:/ 'backendServicesInsert' smart constructor.
-data BackendServicesInsert =
-  BackendServicesInsert'
-    { _bsiRequestId :: !(Maybe Text)
-    , _bsiProject   :: !Text
-    , _bsiPayload   :: !BackendService
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsiRequestId'
---
--- * 'bsiProject'
---
--- * 'bsiPayload'
-backendServicesInsert
-    :: Text -- ^ 'bsiProject'
-    -> BackendService -- ^ 'bsiPayload'
-    -> BackendServicesInsert
-backendServicesInsert pBsiProject_ pBsiPayload_ =
-  BackendServicesInsert'
-    { _bsiRequestId = Nothing
-    , _bsiProject = pBsiProject_
-    , _bsiPayload = pBsiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bsiRequestId :: Lens' BackendServicesInsert (Maybe Text)
-bsiRequestId
-  = lens _bsiRequestId (\ s a -> s{_bsiRequestId = a})
-
--- | Project ID for this request.
-bsiProject :: Lens' BackendServicesInsert Text
-bsiProject
-  = lens _bsiProject (\ s a -> s{_bsiProject = a})
-
--- | Multipart request metadata.
-bsiPayload :: Lens' BackendServicesInsert BackendService
-bsiPayload
-  = lens _bsiPayload (\ s a -> s{_bsiPayload = a})
-
-instance GoogleRequest BackendServicesInsert where
-        type Rs BackendServicesInsert = Operation
-        type Scopes BackendServicesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesInsert'{..}
-          = go _bsiProject _bsiRequestId (Just AltJSON)
-              _bsiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/List.hs b/gen/Network/Google/Resource/Compute/BackendServices/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.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)
---
--- Retrieves the list of BackendService resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.list@.
-module Network.Google.Resource.Compute.BackendServices.List
-    (
-    -- * REST Resource
-      BackendServicesListResource
-
-    -- * Creating a Request
-    , backendServicesList
-    , BackendServicesList
-
-    -- * Request Lenses
-    , bslOrderBy
-    , bslProject
-    , bslFilter
-    , bslPageToken
-    , bslMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.list@ method which the
--- 'BackendServicesList' request conforms to.
-type BackendServicesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] BackendServiceList
-
--- | Retrieves the list of BackendService resources available to the
--- specified project.
---
--- /See:/ 'backendServicesList' smart constructor.
-data BackendServicesList =
-  BackendServicesList'
-    { _bslOrderBy    :: !(Maybe Text)
-    , _bslProject    :: !Text
-    , _bslFilter     :: !(Maybe Text)
-    , _bslPageToken  :: !(Maybe Text)
-    , _bslMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bslOrderBy'
---
--- * 'bslProject'
---
--- * 'bslFilter'
---
--- * 'bslPageToken'
---
--- * 'bslMaxResults'
-backendServicesList
-    :: Text -- ^ 'bslProject'
-    -> BackendServicesList
-backendServicesList pBslProject_ =
-  BackendServicesList'
-    { _bslOrderBy = Nothing
-    , _bslProject = pBslProject_
-    , _bslFilter = Nothing
-    , _bslPageToken = Nothing
-    , _bslMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-bslOrderBy :: Lens' BackendServicesList (Maybe Text)
-bslOrderBy
-  = lens _bslOrderBy (\ s a -> s{_bslOrderBy = a})
-
--- | Project ID for this request.
-bslProject :: Lens' BackendServicesList Text
-bslProject
-  = lens _bslProject (\ s a -> s{_bslProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-bslFilter :: Lens' BackendServicesList (Maybe Text)
-bslFilter
-  = lens _bslFilter (\ s a -> s{_bslFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-bslPageToken :: Lens' BackendServicesList (Maybe Text)
-bslPageToken
-  = lens _bslPageToken (\ s a -> s{_bslPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-bslMaxResults :: Lens' BackendServicesList Word32
-bslMaxResults
-  = lens _bslMaxResults
-      (\ s a -> s{_bslMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest BackendServicesList where
-        type Rs BackendServicesList = BackendServiceList
-        type Scopes BackendServicesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient BackendServicesList'{..}
-          = go _bslProject _bslOrderBy _bslFilter _bslPageToken
-              (Just _bslMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/Patch.hs b/gen/Network/Google/Resource/Compute/BackendServices/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/Patch.hs
+++ /dev/null
@@ -1,149 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.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)
---
--- Patches the specified BackendService resource with the data included in
--- the request. There are several restrictions and guidelines to keep in
--- mind when updating a backend service. Read Restrictions and Guidelines
--- for more information. This method supports PATCH semantics and uses the
--- JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.patch@.
-module Network.Google.Resource.Compute.BackendServices.Patch
-    (
-    -- * REST Resource
-      BackendServicesPatchResource
-
-    -- * Creating a Request
-    , backendServicesPatch
-    , BackendServicesPatch
-
-    -- * Request Lenses
-    , bspRequestId
-    , bspProject
-    , bspPayload
-    , bspBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.patch@ method which the
--- 'BackendServicesPatch' request conforms to.
-type BackendServicesPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] BackendService :>
-                         Patch '[JSON] Operation
-
--- | Patches the specified BackendService resource with the data included in
--- the request. There are several restrictions and guidelines to keep in
--- mind when updating a backend service. Read Restrictions and Guidelines
--- for more information. This method supports PATCH semantics and uses the
--- JSON merge patch format and processing rules.
---
--- /See:/ 'backendServicesPatch' smart constructor.
-data BackendServicesPatch =
-  BackendServicesPatch'
-    { _bspRequestId      :: !(Maybe Text)
-    , _bspProject        :: !Text
-    , _bspPayload        :: !BackendService
-    , _bspBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bspRequestId'
---
--- * 'bspProject'
---
--- * 'bspPayload'
---
--- * 'bspBackendService'
-backendServicesPatch
-    :: Text -- ^ 'bspProject'
-    -> BackendService -- ^ 'bspPayload'
-    -> Text -- ^ 'bspBackendService'
-    -> BackendServicesPatch
-backendServicesPatch pBspProject_ pBspPayload_ pBspBackendService_ =
-  BackendServicesPatch'
-    { _bspRequestId = Nothing
-    , _bspProject = pBspProject_
-    , _bspPayload = pBspPayload_
-    , _bspBackendService = pBspBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bspRequestId :: Lens' BackendServicesPatch (Maybe Text)
-bspRequestId
-  = lens _bspRequestId (\ s a -> s{_bspRequestId = a})
-
--- | Project ID for this request.
-bspProject :: Lens' BackendServicesPatch Text
-bspProject
-  = lens _bspProject (\ s a -> s{_bspProject = a})
-
--- | Multipart request metadata.
-bspPayload :: Lens' BackendServicesPatch BackendService
-bspPayload
-  = lens _bspPayload (\ s a -> s{_bspPayload = a})
-
--- | Name of the BackendService resource to patch.
-bspBackendService :: Lens' BackendServicesPatch Text
-bspBackendService
-  = lens _bspBackendService
-      (\ s a -> s{_bspBackendService = a})
-
-instance GoogleRequest BackendServicesPatch where
-        type Rs BackendServicesPatch = Operation
-        type Scopes BackendServicesPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesPatch'{..}
-          = go _bspProject _bspBackendService _bspRequestId
-              (Just AltJSON)
-              _bspPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/SetSecurityPolicy.hs b/gen/Network/Google/Resource/Compute/BackendServices/SetSecurityPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/SetSecurityPolicy.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.SetSecurityPolicy
--- 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)
---
--- Sets the security policy for the specified backend service.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.setSecurityPolicy@.
-module Network.Google.Resource.Compute.BackendServices.SetSecurityPolicy
-    (
-    -- * REST Resource
-      BackendServicesSetSecurityPolicyResource
-
-    -- * Creating a Request
-    , backendServicesSetSecurityPolicy
-    , BackendServicesSetSecurityPolicy
-
-    -- * Request Lenses
-    , bssspRequestId
-    , bssspProject
-    , bssspPayload
-    , bssspBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.setSecurityPolicy@ method which the
--- 'BackendServicesSetSecurityPolicy' request conforms to.
-type BackendServicesSetSecurityPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   "setSecurityPolicy" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SecurityPolicyReference :>
-                           Post '[JSON] Operation
-
--- | Sets the security policy for the specified backend service.
---
--- /See:/ 'backendServicesSetSecurityPolicy' smart constructor.
-data BackendServicesSetSecurityPolicy =
-  BackendServicesSetSecurityPolicy'
-    { _bssspRequestId      :: !(Maybe Text)
-    , _bssspProject        :: !Text
-    , _bssspPayload        :: !SecurityPolicyReference
-    , _bssspBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesSetSecurityPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bssspRequestId'
---
--- * 'bssspProject'
---
--- * 'bssspPayload'
---
--- * 'bssspBackendService'
-backendServicesSetSecurityPolicy
-    :: Text -- ^ 'bssspProject'
-    -> SecurityPolicyReference -- ^ 'bssspPayload'
-    -> Text -- ^ 'bssspBackendService'
-    -> BackendServicesSetSecurityPolicy
-backendServicesSetSecurityPolicy pBssspProject_ pBssspPayload_ pBssspBackendService_ =
-  BackendServicesSetSecurityPolicy'
-    { _bssspRequestId = Nothing
-    , _bssspProject = pBssspProject_
-    , _bssspPayload = pBssspPayload_
-    , _bssspBackendService = pBssspBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bssspRequestId :: Lens' BackendServicesSetSecurityPolicy (Maybe Text)
-bssspRequestId
-  = lens _bssspRequestId
-      (\ s a -> s{_bssspRequestId = a})
-
--- | Project ID for this request.
-bssspProject :: Lens' BackendServicesSetSecurityPolicy Text
-bssspProject
-  = lens _bssspProject (\ s a -> s{_bssspProject = a})
-
--- | Multipart request metadata.
-bssspPayload :: Lens' BackendServicesSetSecurityPolicy SecurityPolicyReference
-bssspPayload
-  = lens _bssspPayload (\ s a -> s{_bssspPayload = a})
-
--- | Name of the BackendService resource to which the security policy should
--- be set. The name should conform to RFC1035.
-bssspBackendService :: Lens' BackendServicesSetSecurityPolicy Text
-bssspBackendService
-  = lens _bssspBackendService
-      (\ s a -> s{_bssspBackendService = a})
-
-instance GoogleRequest
-           BackendServicesSetSecurityPolicy
-         where
-        type Rs BackendServicesSetSecurityPolicy = Operation
-        type Scopes BackendServicesSetSecurityPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesSetSecurityPolicy'{..}
-          = go _bssspProject _bssspBackendService
-              _bssspRequestId
-              (Just AltJSON)
-              _bssspPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy BackendServicesSetSecurityPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/BackendServices/Update.hs b/gen/Network/Google/Resource/Compute/BackendServices/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/BackendServices/Update.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.BackendServices.Update
--- 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 BackendService resource with the data included in
--- the request. There are several restrictions and guidelines to keep in
--- mind when updating a backend service. Read Restrictions and Guidelines
--- for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.backendServices.update@.
-module Network.Google.Resource.Compute.BackendServices.Update
-    (
-    -- * REST Resource
-      BackendServicesUpdateResource
-
-    -- * Creating a Request
-    , backendServicesUpdate
-    , BackendServicesUpdate
-
-    -- * Request Lenses
-    , bsuRequestId
-    , bsuProject
-    , bsuPayload
-    , bsuBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.backendServices.update@ method which the
--- 'BackendServicesUpdate' request conforms to.
-type BackendServicesUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "backendServices" :>
-                 Capture "backendService" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] BackendService :>
-                         Put '[JSON] Operation
-
--- | Updates the specified BackendService resource with the data included in
--- the request. There are several restrictions and guidelines to keep in
--- mind when updating a backend service. Read Restrictions and Guidelines
--- for more information.
---
--- /See:/ 'backendServicesUpdate' smart constructor.
-data BackendServicesUpdate =
-  BackendServicesUpdate'
-    { _bsuRequestId      :: !(Maybe Text)
-    , _bsuProject        :: !Text
-    , _bsuPayload        :: !BackendService
-    , _bsuBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BackendServicesUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsuRequestId'
---
--- * 'bsuProject'
---
--- * 'bsuPayload'
---
--- * 'bsuBackendService'
-backendServicesUpdate
-    :: Text -- ^ 'bsuProject'
-    -> BackendService -- ^ 'bsuPayload'
-    -> Text -- ^ 'bsuBackendService'
-    -> BackendServicesUpdate
-backendServicesUpdate pBsuProject_ pBsuPayload_ pBsuBackendService_ =
-  BackendServicesUpdate'
-    { _bsuRequestId = Nothing
-    , _bsuProject = pBsuProject_
-    , _bsuPayload = pBsuPayload_
-    , _bsuBackendService = pBsuBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-bsuRequestId :: Lens' BackendServicesUpdate (Maybe Text)
-bsuRequestId
-  = lens _bsuRequestId (\ s a -> s{_bsuRequestId = a})
-
--- | Project ID for this request.
-bsuProject :: Lens' BackendServicesUpdate Text
-bsuProject
-  = lens _bsuProject (\ s a -> s{_bsuProject = a})
-
--- | Multipart request metadata.
-bsuPayload :: Lens' BackendServicesUpdate BackendService
-bsuPayload
-  = lens _bsuPayload (\ s a -> s{_bsuPayload = a})
-
--- | Name of the BackendService resource to update.
-bsuBackendService :: Lens' BackendServicesUpdate Text
-bsuBackendService
-  = lens _bsuBackendService
-      (\ s a -> s{_bsuBackendService = a})
-
-instance GoogleRequest BackendServicesUpdate where
-        type Rs BackendServicesUpdate = Operation
-        type Scopes BackendServicesUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient BackendServicesUpdate'{..}
-          = go _bsuProject _bsuBackendService _bsuRequestId
-              (Just AltJSON)
-              _bsuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy BackendServicesUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/DiskTypes/AggregatedList.hs b/gen/Network/Google/Resource/Compute/DiskTypes/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/DiskTypes/AggregatedList.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.DiskTypes.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of disk types.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.aggregatedList@.
-module Network.Google.Resource.Compute.DiskTypes.AggregatedList
-    (
-    -- * REST Resource
-      DiskTypesAggregatedListResource
-
-    -- * Creating a Request
-    , diskTypesAggregatedList
-    , DiskTypesAggregatedList
-
-    -- * Request Lenses
-    , dtalOrderBy
-    , dtalProject
-    , dtalFilter
-    , dtalPageToken
-    , dtalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.diskTypes.aggregatedList@ method which the
--- 'DiskTypesAggregatedList' request conforms to.
-type DiskTypesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "diskTypes" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] DiskTypeAggregatedList
-
--- | Retrieves an aggregated list of disk types.
---
--- /See:/ 'diskTypesAggregatedList' smart constructor.
-data DiskTypesAggregatedList =
-  DiskTypesAggregatedList'
-    { _dtalOrderBy    :: !(Maybe Text)
-    , _dtalProject    :: !Text
-    , _dtalFilter     :: !(Maybe Text)
-    , _dtalPageToken  :: !(Maybe Text)
-    , _dtalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtalOrderBy'
---
--- * 'dtalProject'
---
--- * 'dtalFilter'
---
--- * 'dtalPageToken'
---
--- * 'dtalMaxResults'
-diskTypesAggregatedList
-    :: Text -- ^ 'dtalProject'
-    -> DiskTypesAggregatedList
-diskTypesAggregatedList pDtalProject_ =
-  DiskTypesAggregatedList'
-    { _dtalOrderBy = Nothing
-    , _dtalProject = pDtalProject_
-    , _dtalFilter = Nothing
-    , _dtalPageToken = Nothing
-    , _dtalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-dtalOrderBy :: Lens' DiskTypesAggregatedList (Maybe Text)
-dtalOrderBy
-  = lens _dtalOrderBy (\ s a -> s{_dtalOrderBy = a})
-
--- | Project ID for this request.
-dtalProject :: Lens' DiskTypesAggregatedList Text
-dtalProject
-  = lens _dtalProject (\ s a -> s{_dtalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-dtalFilter :: Lens' DiskTypesAggregatedList (Maybe Text)
-dtalFilter
-  = lens _dtalFilter (\ s a -> s{_dtalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-dtalPageToken :: Lens' DiskTypesAggregatedList (Maybe Text)
-dtalPageToken
-  = lens _dtalPageToken
-      (\ s a -> s{_dtalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-dtalMaxResults :: Lens' DiskTypesAggregatedList Word32
-dtalMaxResults
-  = lens _dtalMaxResults
-      (\ s a -> s{_dtalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest DiskTypesAggregatedList where
-        type Rs DiskTypesAggregatedList =
-             DiskTypeAggregatedList
-        type Scopes DiskTypesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DiskTypesAggregatedList'{..}
-          = go _dtalProject _dtalOrderBy _dtalFilter
-              _dtalPageToken
-              (Just _dtalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DiskTypesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/DiskTypes/Get.hs b/gen/Network/Google/Resource/Compute/DiskTypes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/DiskTypes/Get.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.DiskTypes.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)
---
--- Returns the specified disk type. Gets a list of available disk types by
--- making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.get@.
-module Network.Google.Resource.Compute.DiskTypes.Get
-    (
-    -- * REST Resource
-      DiskTypesGetResource
-
-    -- * Creating a Request
-    , diskTypesGet
-    , DiskTypesGet
-
-    -- * Request Lenses
-    , dtgProject
-    , dtgZone
-    , dtgDiskType
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.diskTypes.get@ method which the
--- 'DiskTypesGet' request conforms to.
-type DiskTypesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "diskTypes" :>
-                   Capture "diskType" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] DiskType
-
--- | Returns the specified disk type. Gets a list of available disk types by
--- making a list() request.
---
--- /See:/ 'diskTypesGet' smart constructor.
-data DiskTypesGet =
-  DiskTypesGet'
-    { _dtgProject  :: !Text
-    , _dtgZone     :: !Text
-    , _dtgDiskType :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtgProject'
---
--- * 'dtgZone'
---
--- * 'dtgDiskType'
-diskTypesGet
-    :: Text -- ^ 'dtgProject'
-    -> Text -- ^ 'dtgZone'
-    -> Text -- ^ 'dtgDiskType'
-    -> DiskTypesGet
-diskTypesGet pDtgProject_ pDtgZone_ pDtgDiskType_ =
-  DiskTypesGet'
-    { _dtgProject = pDtgProject_
-    , _dtgZone = pDtgZone_
-    , _dtgDiskType = pDtgDiskType_
-    }
-
-
--- | Project ID for this request.
-dtgProject :: Lens' DiskTypesGet Text
-dtgProject
-  = lens _dtgProject (\ s a -> s{_dtgProject = a})
-
--- | The name of the zone for this request.
-dtgZone :: Lens' DiskTypesGet Text
-dtgZone = lens _dtgZone (\ s a -> s{_dtgZone = a})
-
--- | Name of the disk type to return.
-dtgDiskType :: Lens' DiskTypesGet Text
-dtgDiskType
-  = lens _dtgDiskType (\ s a -> s{_dtgDiskType = a})
-
-instance GoogleRequest DiskTypesGet where
-        type Rs DiskTypesGet = DiskType
-        type Scopes DiskTypesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DiskTypesGet'{..}
-          = go _dtgProject _dtgZone _dtgDiskType (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DiskTypesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/DiskTypes/List.hs b/gen/Network/Google/Resource/Compute/DiskTypes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/DiskTypes/List.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.DiskTypes.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)
---
--- Retrieves a list of disk types available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.diskTypes.list@.
-module Network.Google.Resource.Compute.DiskTypes.List
-    (
-    -- * REST Resource
-      DiskTypesListResource
-
-    -- * Creating a Request
-    , diskTypesList
-    , DiskTypesList
-
-    -- * Request Lenses
-    , dtlOrderBy
-    , dtlProject
-    , dtlZone
-    , dtlFilter
-    , dtlPageToken
-    , dtlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.diskTypes.list@ method which the
--- 'DiskTypesList' request conforms to.
-type DiskTypesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "diskTypes" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] DiskTypeList
-
--- | Retrieves a list of disk types available to the specified project.
---
--- /See:/ 'diskTypesList' smart constructor.
-data DiskTypesList =
-  DiskTypesList'
-    { _dtlOrderBy    :: !(Maybe Text)
-    , _dtlProject    :: !Text
-    , _dtlZone       :: !Text
-    , _dtlFilter     :: !(Maybe Text)
-    , _dtlPageToken  :: !(Maybe Text)
-    , _dtlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DiskTypesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtlOrderBy'
---
--- * 'dtlProject'
---
--- * 'dtlZone'
---
--- * 'dtlFilter'
---
--- * 'dtlPageToken'
---
--- * 'dtlMaxResults'
-diskTypesList
-    :: Text -- ^ 'dtlProject'
-    -> Text -- ^ 'dtlZone'
-    -> DiskTypesList
-diskTypesList pDtlProject_ pDtlZone_ =
-  DiskTypesList'
-    { _dtlOrderBy = Nothing
-    , _dtlProject = pDtlProject_
-    , _dtlZone = pDtlZone_
-    , _dtlFilter = Nothing
-    , _dtlPageToken = Nothing
-    , _dtlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-dtlOrderBy :: Lens' DiskTypesList (Maybe Text)
-dtlOrderBy
-  = lens _dtlOrderBy (\ s a -> s{_dtlOrderBy = a})
-
--- | Project ID for this request.
-dtlProject :: Lens' DiskTypesList Text
-dtlProject
-  = lens _dtlProject (\ s a -> s{_dtlProject = a})
-
--- | The name of the zone for this request.
-dtlZone :: Lens' DiskTypesList Text
-dtlZone = lens _dtlZone (\ s a -> s{_dtlZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-dtlFilter :: Lens' DiskTypesList (Maybe Text)
-dtlFilter
-  = lens _dtlFilter (\ s a -> s{_dtlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-dtlPageToken :: Lens' DiskTypesList (Maybe Text)
-dtlPageToken
-  = lens _dtlPageToken (\ s a -> s{_dtlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-dtlMaxResults :: Lens' DiskTypesList Word32
-dtlMaxResults
-  = lens _dtlMaxResults
-      (\ s a -> s{_dtlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest DiskTypesList where
-        type Rs DiskTypesList = DiskTypeList
-        type Scopes DiskTypesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DiskTypesList'{..}
-          = go _dtlProject _dtlZone _dtlOrderBy _dtlFilter
-              _dtlPageToken
-              (Just _dtlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DiskTypesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Disks/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/AggregatedList.hs
+++ /dev/null
@@ -1,170 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of persistent disks.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.aggregatedList@.
-module Network.Google.Resource.Compute.Disks.AggregatedList
-    (
-    -- * REST Resource
-      DisksAggregatedListResource
-
-    -- * Creating a Request
-    , disksAggregatedList
-    , DisksAggregatedList
-
-    -- * Request Lenses
-    , dalOrderBy
-    , dalProject
-    , dalFilter
-    , dalPageToken
-    , dalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.aggregatedList@ method which the
--- 'DisksAggregatedList' request conforms to.
-type DisksAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "disks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] DiskAggregatedList
-
--- | Retrieves an aggregated list of persistent disks.
---
--- /See:/ 'disksAggregatedList' smart constructor.
-data DisksAggregatedList =
-  DisksAggregatedList'
-    { _dalOrderBy    :: !(Maybe Text)
-    , _dalProject    :: !Text
-    , _dalFilter     :: !(Maybe Text)
-    , _dalPageToken  :: !(Maybe Text)
-    , _dalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dalOrderBy'
---
--- * 'dalProject'
---
--- * 'dalFilter'
---
--- * 'dalPageToken'
---
--- * 'dalMaxResults'
-disksAggregatedList
-    :: Text -- ^ 'dalProject'
-    -> DisksAggregatedList
-disksAggregatedList pDalProject_ =
-  DisksAggregatedList'
-    { _dalOrderBy = Nothing
-    , _dalProject = pDalProject_
-    , _dalFilter = Nothing
-    , _dalPageToken = Nothing
-    , _dalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-dalOrderBy :: Lens' DisksAggregatedList (Maybe Text)
-dalOrderBy
-  = lens _dalOrderBy (\ s a -> s{_dalOrderBy = a})
-
--- | Project ID for this request.
-dalProject :: Lens' DisksAggregatedList Text
-dalProject
-  = lens _dalProject (\ s a -> s{_dalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-dalFilter :: Lens' DisksAggregatedList (Maybe Text)
-dalFilter
-  = lens _dalFilter (\ s a -> s{_dalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-dalPageToken :: Lens' DisksAggregatedList (Maybe Text)
-dalPageToken
-  = lens _dalPageToken (\ s a -> s{_dalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-dalMaxResults :: Lens' DisksAggregatedList Word32
-dalMaxResults
-  = lens _dalMaxResults
-      (\ s a -> s{_dalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest DisksAggregatedList where
-        type Rs DisksAggregatedList = DiskAggregatedList
-        type Scopes DisksAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DisksAggregatedList'{..}
-          = go _dalProject _dalOrderBy _dalFilter _dalPageToken
-              (Just _dalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DisksAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/CreateSnapshot.hs b/gen/Network/Google/Resource/Compute/Disks/CreateSnapshot.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/CreateSnapshot.hs
+++ /dev/null
@@ -1,162 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.CreateSnapshot
--- 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 snapshot of a specified persistent disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.createSnapshot@.
-module Network.Google.Resource.Compute.Disks.CreateSnapshot
-    (
-    -- * REST Resource
-      DisksCreateSnapshotResource
-
-    -- * Creating a Request
-    , disksCreateSnapshot
-    , DisksCreateSnapshot
-
-    -- * Request Lenses
-    , dcsGuestFlush
-    , dcsRequestId
-    , dcsProject
-    , dcsDisk
-    , dcsZone
-    , dcsPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.createSnapshot@ method which the
--- 'DisksCreateSnapshot' request conforms to.
-type DisksCreateSnapshotResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     "createSnapshot" :>
-                       QueryParam "guestFlush" Bool :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] Snapshot :> Post '[JSON] Operation
-
--- | Creates a snapshot of a specified persistent disk.
---
--- /See:/ 'disksCreateSnapshot' smart constructor.
-data DisksCreateSnapshot =
-  DisksCreateSnapshot'
-    { _dcsGuestFlush :: !(Maybe Bool)
-    , _dcsRequestId  :: !(Maybe Text)
-    , _dcsProject    :: !Text
-    , _dcsDisk       :: !Text
-    , _dcsZone       :: !Text
-    , _dcsPayload    :: !Snapshot
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksCreateSnapshot' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dcsGuestFlush'
---
--- * 'dcsRequestId'
---
--- * 'dcsProject'
---
--- * 'dcsDisk'
---
--- * 'dcsZone'
---
--- * 'dcsPayload'
-disksCreateSnapshot
-    :: Text -- ^ 'dcsProject'
-    -> Text -- ^ 'dcsDisk'
-    -> Text -- ^ 'dcsZone'
-    -> Snapshot -- ^ 'dcsPayload'
-    -> DisksCreateSnapshot
-disksCreateSnapshot pDcsProject_ pDcsDisk_ pDcsZone_ pDcsPayload_ =
-  DisksCreateSnapshot'
-    { _dcsGuestFlush = Nothing
-    , _dcsRequestId = Nothing
-    , _dcsProject = pDcsProject_
-    , _dcsDisk = pDcsDisk_
-    , _dcsZone = pDcsZone_
-    , _dcsPayload = pDcsPayload_
-    }
-
-
-dcsGuestFlush :: Lens' DisksCreateSnapshot (Maybe Bool)
-dcsGuestFlush
-  = lens _dcsGuestFlush
-      (\ s a -> s{_dcsGuestFlush = a})
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-dcsRequestId :: Lens' DisksCreateSnapshot (Maybe Text)
-dcsRequestId
-  = lens _dcsRequestId (\ s a -> s{_dcsRequestId = a})
-
--- | Project ID for this request.
-dcsProject :: Lens' DisksCreateSnapshot Text
-dcsProject
-  = lens _dcsProject (\ s a -> s{_dcsProject = a})
-
--- | Name of the persistent disk to snapshot.
-dcsDisk :: Lens' DisksCreateSnapshot Text
-dcsDisk = lens _dcsDisk (\ s a -> s{_dcsDisk = a})
-
--- | The name of the zone for this request.
-dcsZone :: Lens' DisksCreateSnapshot Text
-dcsZone = lens _dcsZone (\ s a -> s{_dcsZone = a})
-
--- | Multipart request metadata.
-dcsPayload :: Lens' DisksCreateSnapshot Snapshot
-dcsPayload
-  = lens _dcsPayload (\ s a -> s{_dcsPayload = a})
-
-instance GoogleRequest DisksCreateSnapshot where
-        type Rs DisksCreateSnapshot = Operation
-        type Scopes DisksCreateSnapshot =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksCreateSnapshot'{..}
-          = go _dcsProject _dcsZone _dcsDisk _dcsGuestFlush
-              _dcsRequestId
-              (Just AltJSON)
-              _dcsPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DisksCreateSnapshotResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/Delete.hs b/gen/Network/Google/Resource/Compute/Disks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/Delete.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.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 persistent disk. Deleting a disk removes its data
--- permanently and is irreversible. However, deleting a disk does not
--- delete any snapshots previously made from the disk. You must separately
--- delete snapshots.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.delete@.
-module Network.Google.Resource.Compute.Disks.Delete
-    (
-    -- * REST Resource
-      DisksDeleteResource
-
-    -- * Creating a Request
-    , disksDelete
-    , DisksDelete
-
-    -- * Request Lenses
-    , ddRequestId
-    , ddProject
-    , ddDisk
-    , ddZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.delete@ method which the
--- 'DisksDelete' request conforms to.
-type DisksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified persistent disk. Deleting a disk removes its data
--- permanently and is irreversible. However, deleting a disk does not
--- delete any snapshots previously made from the disk. You must separately
--- delete snapshots.
---
--- /See:/ 'disksDelete' smart constructor.
-data DisksDelete =
-  DisksDelete'
-    { _ddRequestId :: !(Maybe Text)
-    , _ddProject   :: !Text
-    , _ddDisk      :: !Text
-    , _ddZone      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ddRequestId'
---
--- * 'ddProject'
---
--- * 'ddDisk'
---
--- * 'ddZone'
-disksDelete
-    :: Text -- ^ 'ddProject'
-    -> Text -- ^ 'ddDisk'
-    -> Text -- ^ 'ddZone'
-    -> DisksDelete
-disksDelete pDdProject_ pDdDisk_ pDdZone_ =
-  DisksDelete'
-    { _ddRequestId = Nothing
-    , _ddProject = pDdProject_
-    , _ddDisk = pDdDisk_
-    , _ddZone = pDdZone_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ddRequestId :: Lens' DisksDelete (Maybe Text)
-ddRequestId
-  = lens _ddRequestId (\ s a -> s{_ddRequestId = a})
-
--- | Project ID for this request.
-ddProject :: Lens' DisksDelete Text
-ddProject
-  = lens _ddProject (\ s a -> s{_ddProject = a})
-
--- | Name of the persistent disk to delete.
-ddDisk :: Lens' DisksDelete Text
-ddDisk = lens _ddDisk (\ s a -> s{_ddDisk = a})
-
--- | The name of the zone for this request.
-ddZone :: Lens' DisksDelete Text
-ddZone = lens _ddZone (\ s a -> s{_ddZone = a})
-
-instance GoogleRequest DisksDelete where
-        type Rs DisksDelete = Operation
-        type Scopes DisksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksDelete'{..}
-          = go _ddProject _ddZone _ddDisk _ddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/Get.hs b/gen/Network/Google/Resource/Compute/Disks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/Get.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.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)
---
--- Returns a specified persistent disk. Gets a list of available persistent
--- disks by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.get@.
-module Network.Google.Resource.Compute.Disks.Get
-    (
-    -- * REST Resource
-      DisksGetResource
-
-    -- * Creating a Request
-    , disksGet
-    , DisksGet
-
-    -- * Request Lenses
-    , dgProject
-    , dgDisk
-    , dgZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.get@ method which the
--- 'DisksGet' request conforms to.
-type DisksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Disk
-
--- | Returns a specified persistent disk. Gets a list of available persistent
--- disks by making a list() request.
---
--- /See:/ 'disksGet' smart constructor.
-data DisksGet =
-  DisksGet'
-    { _dgProject :: !Text
-    , _dgDisk    :: !Text
-    , _dgZone    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dgProject'
---
--- * 'dgDisk'
---
--- * 'dgZone'
-disksGet
-    :: Text -- ^ 'dgProject'
-    -> Text -- ^ 'dgDisk'
-    -> Text -- ^ 'dgZone'
-    -> DisksGet
-disksGet pDgProject_ pDgDisk_ pDgZone_ =
-  DisksGet' {_dgProject = pDgProject_, _dgDisk = pDgDisk_, _dgZone = pDgZone_}
-
-
--- | Project ID for this request.
-dgProject :: Lens' DisksGet Text
-dgProject
-  = lens _dgProject (\ s a -> s{_dgProject = a})
-
--- | Name of the persistent disk to return.
-dgDisk :: Lens' DisksGet Text
-dgDisk = lens _dgDisk (\ s a -> s{_dgDisk = a})
-
--- | The name of the zone for this request.
-dgZone :: Lens' DisksGet Text
-dgZone = lens _dgZone (\ s a -> s{_dgZone = a})
-
-instance GoogleRequest DisksGet where
-        type Rs DisksGet = Disk
-        type Scopes DisksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DisksGet'{..}
-          = go _dgProject _dgZone _dgDisk (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Disks/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/GetIAMPolicy.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.getIamPolicy@.
-module Network.Google.Resource.Compute.Disks.GetIAMPolicy
-    (
-    -- * REST Resource
-      DisksGetIAMPolicyResource
-
-    -- * Creating a Request
-    , disksGetIAMPolicy
-    , DisksGetIAMPolicy
-
-    -- * Request Lenses
-    , dgipProject
-    , dgipZone
-    , dgipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.getIamPolicy@ method which the
--- 'DisksGetIAMPolicy' request conforms to.
-type DisksGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "getIamPolicy" :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'disksGetIAMPolicy' smart constructor.
-data DisksGetIAMPolicy =
-  DisksGetIAMPolicy'
-    { _dgipProject  :: !Text
-    , _dgipZone     :: !Text
-    , _dgipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dgipProject'
---
--- * 'dgipZone'
---
--- * 'dgipResource'
-disksGetIAMPolicy
-    :: Text -- ^ 'dgipProject'
-    -> Text -- ^ 'dgipZone'
-    -> Text -- ^ 'dgipResource'
-    -> DisksGetIAMPolicy
-disksGetIAMPolicy pDgipProject_ pDgipZone_ pDgipResource_ =
-  DisksGetIAMPolicy'
-    { _dgipProject = pDgipProject_
-    , _dgipZone = pDgipZone_
-    , _dgipResource = pDgipResource_
-    }
-
-
--- | Project ID for this request.
-dgipProject :: Lens' DisksGetIAMPolicy Text
-dgipProject
-  = lens _dgipProject (\ s a -> s{_dgipProject = a})
-
--- | The name of the zone for this request.
-dgipZone :: Lens' DisksGetIAMPolicy Text
-dgipZone = lens _dgipZone (\ s a -> s{_dgipZone = a})
-
--- | Name or id of the resource for this request.
-dgipResource :: Lens' DisksGetIAMPolicy Text
-dgipResource
-  = lens _dgipResource (\ s a -> s{_dgipResource = a})
-
-instance GoogleRequest DisksGetIAMPolicy where
-        type Rs DisksGetIAMPolicy = Policy
-        type Scopes DisksGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DisksGetIAMPolicy'{..}
-          = go _dgipProject _dgipZone _dgipResource
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DisksGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/Insert.hs b/gen/Network/Google/Resource/Compute/Disks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/Insert.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.Insert
--- 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 persistent disk in the specified project using the data in the
--- request. You can create a disk with a sourceImage, a sourceSnapshot, or
--- create an empty 500 GB data disk by omitting all properties. You can
--- also create a disk that is larger than the default size by specifying
--- the sizeGb property.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.insert@.
-module Network.Google.Resource.Compute.Disks.Insert
-    (
-    -- * REST Resource
-      DisksInsertResource
-
-    -- * Creating a Request
-    , disksInsert
-    , DisksInsert
-
-    -- * Request Lenses
-    , diRequestId
-    , diSourceImage
-    , diProject
-    , diZone
-    , diPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.insert@ method which the
--- 'DisksInsert' request conforms to.
-type DisksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "sourceImage" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Disk :> Post '[JSON] Operation
-
--- | Creates a persistent disk in the specified project using the data in the
--- request. You can create a disk with a sourceImage, a sourceSnapshot, or
--- create an empty 500 GB data disk by omitting all properties. You can
--- also create a disk that is larger than the default size by specifying
--- the sizeGb property.
---
--- /See:/ 'disksInsert' smart constructor.
-data DisksInsert =
-  DisksInsert'
-    { _diRequestId   :: !(Maybe Text)
-    , _diSourceImage :: !(Maybe Text)
-    , _diProject     :: !Text
-    , _diZone        :: !Text
-    , _diPayload     :: !Disk
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'diRequestId'
---
--- * 'diSourceImage'
---
--- * 'diProject'
---
--- * 'diZone'
---
--- * 'diPayload'
-disksInsert
-    :: Text -- ^ 'diProject'
-    -> Text -- ^ 'diZone'
-    -> Disk -- ^ 'diPayload'
-    -> DisksInsert
-disksInsert pDiProject_ pDiZone_ pDiPayload_ =
-  DisksInsert'
-    { _diRequestId = Nothing
-    , _diSourceImage = Nothing
-    , _diProject = pDiProject_
-    , _diZone = pDiZone_
-    , _diPayload = pDiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-diRequestId :: Lens' DisksInsert (Maybe Text)
-diRequestId
-  = lens _diRequestId (\ s a -> s{_diRequestId = a})
-
--- | Optional. Source image to restore onto a disk.
-diSourceImage :: Lens' DisksInsert (Maybe Text)
-diSourceImage
-  = lens _diSourceImage
-      (\ s a -> s{_diSourceImage = a})
-
--- | Project ID for this request.
-diProject :: Lens' DisksInsert Text
-diProject
-  = lens _diProject (\ s a -> s{_diProject = a})
-
--- | The name of the zone for this request.
-diZone :: Lens' DisksInsert Text
-diZone = lens _diZone (\ s a -> s{_diZone = a})
-
--- | Multipart request metadata.
-diPayload :: Lens' DisksInsert Disk
-diPayload
-  = lens _diPayload (\ s a -> s{_diPayload = a})
-
-instance GoogleRequest DisksInsert where
-        type Rs DisksInsert = Operation
-        type Scopes DisksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksInsert'{..}
-          = go _diProject _diZone _diRequestId _diSourceImage
-              (Just AltJSON)
-              _diPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/List.hs b/gen/Network/Google/Resource/Compute/Disks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/List.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.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)
---
--- Retrieves a list of persistent disks contained within the specified
--- zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.list@.
-module Network.Google.Resource.Compute.Disks.List
-    (
-    -- * REST Resource
-      DisksListResource
-
-    -- * Creating a Request
-    , disksList
-    , DisksList
-
-    -- * Request Lenses
-    , dlOrderBy
-    , dlProject
-    , dlZone
-    , dlFilter
-    , dlPageToken
-    , dlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.list@ method which the
--- 'DisksList' request conforms to.
-type DisksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] DiskList
-
--- | Retrieves a list of persistent disks contained within the specified
--- zone.
---
--- /See:/ 'disksList' smart constructor.
-data DisksList =
-  DisksList'
-    { _dlOrderBy    :: !(Maybe Text)
-    , _dlProject    :: !Text
-    , _dlZone       :: !Text
-    , _dlFilter     :: !(Maybe Text)
-    , _dlPageToken  :: !(Maybe Text)
-    , _dlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dlOrderBy'
---
--- * 'dlProject'
---
--- * 'dlZone'
---
--- * 'dlFilter'
---
--- * 'dlPageToken'
---
--- * 'dlMaxResults'
-disksList
-    :: Text -- ^ 'dlProject'
-    -> Text -- ^ 'dlZone'
-    -> DisksList
-disksList pDlProject_ pDlZone_ =
-  DisksList'
-    { _dlOrderBy = Nothing
-    , _dlProject = pDlProject_
-    , _dlZone = pDlZone_
-    , _dlFilter = Nothing
-    , _dlPageToken = Nothing
-    , _dlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-dlOrderBy :: Lens' DisksList (Maybe Text)
-dlOrderBy
-  = lens _dlOrderBy (\ s a -> s{_dlOrderBy = a})
-
--- | Project ID for this request.
-dlProject :: Lens' DisksList Text
-dlProject
-  = lens _dlProject (\ s a -> s{_dlProject = a})
-
--- | The name of the zone for this request.
-dlZone :: Lens' DisksList Text
-dlZone = lens _dlZone (\ s a -> s{_dlZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-dlFilter :: Lens' DisksList (Maybe Text)
-dlFilter = lens _dlFilter (\ s a -> s{_dlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-dlPageToken :: Lens' DisksList (Maybe Text)
-dlPageToken
-  = lens _dlPageToken (\ s a -> s{_dlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-dlMaxResults :: Lens' DisksList Word32
-dlMaxResults
-  = lens _dlMaxResults (\ s a -> s{_dlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest DisksList where
-        type Rs DisksList = DiskList
-        type Scopes DisksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DisksList'{..}
-          = go _dlProject _dlZone _dlOrderBy _dlFilter
-              _dlPageToken
-              (Just _dlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/Resize.hs b/gen/Network/Google/Resource/Compute/Disks/Resize.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/Resize.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.Resize
--- 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)
---
--- Resizes the specified persistent disk. You can only increase the size of
--- the disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.resize@.
-module Network.Google.Resource.Compute.Disks.Resize
-    (
-    -- * REST Resource
-      DisksResizeResource
-
-    -- * Creating a Request
-    , disksResize
-    , DisksResize
-
-    -- * Request Lenses
-    , drRequestId
-    , drProject
-    , drDisk
-    , drZone
-    , drPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.resize@ method which the
--- 'DisksResize' request conforms to.
-type DisksResizeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     "resize" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] DisksResizeRequest :>
-                             Post '[JSON] Operation
-
--- | Resizes the specified persistent disk. You can only increase the size of
--- the disk.
---
--- /See:/ 'disksResize' smart constructor.
-data DisksResize =
-  DisksResize'
-    { _drRequestId :: !(Maybe Text)
-    , _drProject   :: !Text
-    , _drDisk      :: !Text
-    , _drZone      :: !Text
-    , _drPayload   :: !DisksResizeRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksResize' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drRequestId'
---
--- * 'drProject'
---
--- * 'drDisk'
---
--- * 'drZone'
---
--- * 'drPayload'
-disksResize
-    :: Text -- ^ 'drProject'
-    -> Text -- ^ 'drDisk'
-    -> Text -- ^ 'drZone'
-    -> DisksResizeRequest -- ^ 'drPayload'
-    -> DisksResize
-disksResize pDrProject_ pDrDisk_ pDrZone_ pDrPayload_ =
-  DisksResize'
-    { _drRequestId = Nothing
-    , _drProject = pDrProject_
-    , _drDisk = pDrDisk_
-    , _drZone = pDrZone_
-    , _drPayload = pDrPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-drRequestId :: Lens' DisksResize (Maybe Text)
-drRequestId
-  = lens _drRequestId (\ s a -> s{_drRequestId = a})
-
--- | Project ID for this request.
-drProject :: Lens' DisksResize Text
-drProject
-  = lens _drProject (\ s a -> s{_drProject = a})
-
--- | The name of the persistent disk.
-drDisk :: Lens' DisksResize Text
-drDisk = lens _drDisk (\ s a -> s{_drDisk = a})
-
--- | The name of the zone for this request.
-drZone :: Lens' DisksResize Text
-drZone = lens _drZone (\ s a -> s{_drZone = a})
-
--- | Multipart request metadata.
-drPayload :: Lens' DisksResize DisksResizeRequest
-drPayload
-  = lens _drPayload (\ s a -> s{_drPayload = a})
-
-instance GoogleRequest DisksResize where
-        type Rs DisksResize = Operation
-        type Scopes DisksResize =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksResize'{..}
-          = go _drProject _drZone _drDisk _drRequestId
-              (Just AltJSON)
-              _drPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksResizeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Disks/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/SetIAMPolicy.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.setIamPolicy@.
-module Network.Google.Resource.Compute.Disks.SetIAMPolicy
-    (
-    -- * REST Resource
-      DisksSetIAMPolicyResource
-
-    -- * Creating a Request
-    , disksSetIAMPolicy
-    , DisksSetIAMPolicy
-
-    -- * Request Lenses
-    , dsipProject
-    , dsipZone
-    , dsipPayload
-    , dsipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.setIamPolicy@ method which the
--- 'DisksSetIAMPolicy' request conforms to.
-type DisksSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "setIamPolicy" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] ZoneSetPolicyRequest :>
-                           Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'disksSetIAMPolicy' smart constructor.
-data DisksSetIAMPolicy =
-  DisksSetIAMPolicy'
-    { _dsipProject  :: !Text
-    , _dsipZone     :: !Text
-    , _dsipPayload  :: !ZoneSetPolicyRequest
-    , _dsipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dsipProject'
---
--- * 'dsipZone'
---
--- * 'dsipPayload'
---
--- * 'dsipResource'
-disksSetIAMPolicy
-    :: Text -- ^ 'dsipProject'
-    -> Text -- ^ 'dsipZone'
-    -> ZoneSetPolicyRequest -- ^ 'dsipPayload'
-    -> Text -- ^ 'dsipResource'
-    -> DisksSetIAMPolicy
-disksSetIAMPolicy pDsipProject_ pDsipZone_ pDsipPayload_ pDsipResource_ =
-  DisksSetIAMPolicy'
-    { _dsipProject = pDsipProject_
-    , _dsipZone = pDsipZone_
-    , _dsipPayload = pDsipPayload_
-    , _dsipResource = pDsipResource_
-    }
-
-
--- | Project ID for this request.
-dsipProject :: Lens' DisksSetIAMPolicy Text
-dsipProject
-  = lens _dsipProject (\ s a -> s{_dsipProject = a})
-
--- | The name of the zone for this request.
-dsipZone :: Lens' DisksSetIAMPolicy Text
-dsipZone = lens _dsipZone (\ s a -> s{_dsipZone = a})
-
--- | Multipart request metadata.
-dsipPayload :: Lens' DisksSetIAMPolicy ZoneSetPolicyRequest
-dsipPayload
-  = lens _dsipPayload (\ s a -> s{_dsipPayload = a})
-
--- | Name or id of the resource for this request.
-dsipResource :: Lens' DisksSetIAMPolicy Text
-dsipResource
-  = lens _dsipResource (\ s a -> s{_dsipResource = a})
-
-instance GoogleRequest DisksSetIAMPolicy where
-        type Rs DisksSetIAMPolicy = Policy
-        type Scopes DisksSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksSetIAMPolicy'{..}
-          = go _dsipProject _dsipZone _dsipResource
-              (Just AltJSON)
-              _dsipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DisksSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/SetLabels.hs b/gen/Network/Google/Resource/Compute/Disks/SetLabels.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/SetLabels.hs
+++ /dev/null
@@ -1,153 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.SetLabels
--- 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)
---
--- Sets the labels on a disk. To learn more about labels, read the Labeling
--- Resources documentation.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.setLabels@.
-module Network.Google.Resource.Compute.Disks.SetLabels
-    (
-    -- * REST Resource
-      DisksSetLabelsResource
-
-    -- * Creating a Request
-    , disksSetLabels
-    , DisksSetLabels
-
-    -- * Request Lenses
-    , dslRequestId
-    , dslProject
-    , dslZone
-    , dslPayload
-    , dslResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.setLabels@ method which the
--- 'DisksSetLabels' request conforms to.
-type DisksSetLabelsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "setLabels" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] ZoneSetLabelsRequest :>
-                             Post '[JSON] Operation
-
--- | Sets the labels on a disk. To learn more about labels, read the Labeling
--- Resources documentation.
---
--- /See:/ 'disksSetLabels' smart constructor.
-data DisksSetLabels =
-  DisksSetLabels'
-    { _dslRequestId :: !(Maybe Text)
-    , _dslProject   :: !Text
-    , _dslZone      :: !Text
-    , _dslPayload   :: !ZoneSetLabelsRequest
-    , _dslResource  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksSetLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dslRequestId'
---
--- * 'dslProject'
---
--- * 'dslZone'
---
--- * 'dslPayload'
---
--- * 'dslResource'
-disksSetLabels
-    :: Text -- ^ 'dslProject'
-    -> Text -- ^ 'dslZone'
-    -> ZoneSetLabelsRequest -- ^ 'dslPayload'
-    -> Text -- ^ 'dslResource'
-    -> DisksSetLabels
-disksSetLabels pDslProject_ pDslZone_ pDslPayload_ pDslResource_ =
-  DisksSetLabels'
-    { _dslRequestId = Nothing
-    , _dslProject = pDslProject_
-    , _dslZone = pDslZone_
-    , _dslPayload = pDslPayload_
-    , _dslResource = pDslResource_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-dslRequestId :: Lens' DisksSetLabels (Maybe Text)
-dslRequestId
-  = lens _dslRequestId (\ s a -> s{_dslRequestId = a})
-
--- | Project ID for this request.
-dslProject :: Lens' DisksSetLabels Text
-dslProject
-  = lens _dslProject (\ s a -> s{_dslProject = a})
-
--- | The name of the zone for this request.
-dslZone :: Lens' DisksSetLabels Text
-dslZone = lens _dslZone (\ s a -> s{_dslZone = a})
-
--- | Multipart request metadata.
-dslPayload :: Lens' DisksSetLabels ZoneSetLabelsRequest
-dslPayload
-  = lens _dslPayload (\ s a -> s{_dslPayload = a})
-
--- | Name or id of the resource for this request.
-dslResource :: Lens' DisksSetLabels Text
-dslResource
-  = lens _dslResource (\ s a -> s{_dslResource = a})
-
-instance GoogleRequest DisksSetLabels where
-        type Rs DisksSetLabels = Operation
-        type Scopes DisksSetLabels =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient DisksSetLabels'{..}
-          = go _dslProject _dslZone _dslResource _dslRequestId
-              (Just AltJSON)
-              _dslPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy DisksSetLabelsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Disks/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Disks/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Disks/TestIAMPermissions.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Disks.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.disks.testIamPermissions@.
-module Network.Google.Resource.Compute.Disks.TestIAMPermissions
-    (
-    -- * REST Resource
-      DisksTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , disksTestIAMPermissions
-    , DisksTestIAMPermissions
-
-    -- * Request Lenses
-    , dtipProject
-    , dtipZone
-    , dtipPayload
-    , dtipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.disks.testIamPermissions@ method which the
--- 'DisksTestIAMPermissions' request conforms to.
-type DisksTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'disksTestIAMPermissions' smart constructor.
-data DisksTestIAMPermissions =
-  DisksTestIAMPermissions'
-    { _dtipProject  :: !Text
-    , _dtipZone     :: !Text
-    , _dtipPayload  :: !TestPermissionsRequest
-    , _dtipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DisksTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dtipProject'
---
--- * 'dtipZone'
---
--- * 'dtipPayload'
---
--- * 'dtipResource'
-disksTestIAMPermissions
-    :: Text -- ^ 'dtipProject'
-    -> Text -- ^ 'dtipZone'
-    -> TestPermissionsRequest -- ^ 'dtipPayload'
-    -> Text -- ^ 'dtipResource'
-    -> DisksTestIAMPermissions
-disksTestIAMPermissions pDtipProject_ pDtipZone_ pDtipPayload_ pDtipResource_ =
-  DisksTestIAMPermissions'
-    { _dtipProject = pDtipProject_
-    , _dtipZone = pDtipZone_
-    , _dtipPayload = pDtipPayload_
-    , _dtipResource = pDtipResource_
-    }
-
-
--- | Project ID for this request.
-dtipProject :: Lens' DisksTestIAMPermissions Text
-dtipProject
-  = lens _dtipProject (\ s a -> s{_dtipProject = a})
-
--- | The name of the zone for this request.
-dtipZone :: Lens' DisksTestIAMPermissions Text
-dtipZone = lens _dtipZone (\ s a -> s{_dtipZone = a})
-
--- | Multipart request metadata.
-dtipPayload :: Lens' DisksTestIAMPermissions TestPermissionsRequest
-dtipPayload
-  = lens _dtipPayload (\ s a -> s{_dtipPayload = a})
-
--- | Name or id of the resource for this request.
-dtipResource :: Lens' DisksTestIAMPermissions Text
-dtipResource
-  = lens _dtipResource (\ s a -> s{_dtipResource = a})
-
-instance GoogleRequest DisksTestIAMPermissions where
-        type Rs DisksTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes DisksTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient DisksTestIAMPermissions'{..}
-          = go _dtipProject _dtipZone _dtipResource
-              (Just AltJSON)
-              _dtipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy DisksTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/Delete.hs b/gen/Network/Google/Resource/Compute/Firewalls/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/Delete.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.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.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.delete@.
-module Network.Google.Resource.Compute.Firewalls.Delete
-    (
-    -- * REST Resource
-      FirewallsDeleteResource
-
-    -- * Creating a Request
-    , firewallsDelete
-    , FirewallsDelete
-
-    -- * Request Lenses
-    , fdRequestId
-    , fdProject
-    , fdFirewall
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.delete@ method which the
--- 'FirewallsDelete' request conforms to.
-type FirewallsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 Capture "firewall" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified firewall.
---
--- /See:/ 'firewallsDelete' smart constructor.
-data FirewallsDelete =
-  FirewallsDelete'
-    { _fdRequestId :: !(Maybe Text)
-    , _fdProject   :: !Text
-    , _fdFirewall  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fdRequestId'
---
--- * 'fdProject'
---
--- * 'fdFirewall'
-firewallsDelete
-    :: Text -- ^ 'fdProject'
-    -> Text -- ^ 'fdFirewall'
-    -> FirewallsDelete
-firewallsDelete pFdProject_ pFdFirewall_ =
-  FirewallsDelete'
-    { _fdRequestId = Nothing
-    , _fdProject = pFdProject_
-    , _fdFirewall = pFdFirewall_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-fdRequestId :: Lens' FirewallsDelete (Maybe Text)
-fdRequestId
-  = lens _fdRequestId (\ s a -> s{_fdRequestId = a})
-
--- | Project ID for this request.
-fdProject :: Lens' FirewallsDelete Text
-fdProject
-  = lens _fdProject (\ s a -> s{_fdProject = a})
-
--- | Name of the firewall rule to delete.
-fdFirewall :: Lens' FirewallsDelete Text
-fdFirewall
-  = lens _fdFirewall (\ s a -> s{_fdFirewall = a})
-
-instance GoogleRequest FirewallsDelete where
-        type Rs FirewallsDelete = Operation
-        type Scopes FirewallsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient FirewallsDelete'{..}
-          = go _fdProject _fdFirewall _fdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy FirewallsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/Get.hs b/gen/Network/Google/Resource/Compute/Firewalls/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/Get.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.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)
---
--- Returns the specified firewall.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.get@.
-module Network.Google.Resource.Compute.Firewalls.Get
-    (
-    -- * REST Resource
-      FirewallsGetResource
-
-    -- * Creating a Request
-    , firewallsGet
-    , FirewallsGet
-
-    -- * Request Lenses
-    , fgProject
-    , fgFirewall
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.get@ method which the
--- 'FirewallsGet' request conforms to.
-type FirewallsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 Capture "firewall" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Firewall
-
--- | Returns the specified firewall.
---
--- /See:/ 'firewallsGet' smart constructor.
-data FirewallsGet =
-  FirewallsGet'
-    { _fgProject  :: !Text
-    , _fgFirewall :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fgProject'
---
--- * 'fgFirewall'
-firewallsGet
-    :: Text -- ^ 'fgProject'
-    -> Text -- ^ 'fgFirewall'
-    -> FirewallsGet
-firewallsGet pFgProject_ pFgFirewall_ =
-  FirewallsGet' {_fgProject = pFgProject_, _fgFirewall = pFgFirewall_}
-
-
--- | Project ID for this request.
-fgProject :: Lens' FirewallsGet Text
-fgProject
-  = lens _fgProject (\ s a -> s{_fgProject = a})
-
--- | Name of the firewall rule to return.
-fgFirewall :: Lens' FirewallsGet Text
-fgFirewall
-  = lens _fgFirewall (\ s a -> s{_fgFirewall = a})
-
-instance GoogleRequest FirewallsGet where
-        type Rs FirewallsGet = Firewall
-        type Scopes FirewallsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient FirewallsGet'{..}
-          = go _fgProject _fgFirewall (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy FirewallsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/Insert.hs b/gen/Network/Google/Resource/Compute/Firewalls/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/Insert.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.Insert
--- 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 in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.insert@.
-module Network.Google.Resource.Compute.Firewalls.Insert
-    (
-    -- * REST Resource
-      FirewallsInsertResource
-
-    -- * Creating a Request
-    , firewallsInsert
-    , FirewallsInsert
-
-    -- * Request Lenses
-    , fiRequestId
-    , fiProject
-    , fiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.insert@ method which the
--- 'FirewallsInsert' request conforms to.
-type FirewallsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Firewall :> Post '[JSON] Operation
-
--- | Creates a firewall rule in the specified project using the data included
--- in the request.
---
--- /See:/ 'firewallsInsert' smart constructor.
-data FirewallsInsert =
-  FirewallsInsert'
-    { _fiRequestId :: !(Maybe Text)
-    , _fiProject   :: !Text
-    , _fiPayload   :: !Firewall
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fiRequestId'
---
--- * 'fiProject'
---
--- * 'fiPayload'
-firewallsInsert
-    :: Text -- ^ 'fiProject'
-    -> Firewall -- ^ 'fiPayload'
-    -> FirewallsInsert
-firewallsInsert pFiProject_ pFiPayload_ =
-  FirewallsInsert'
-    {_fiRequestId = Nothing, _fiProject = pFiProject_, _fiPayload = pFiPayload_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-fiRequestId :: Lens' FirewallsInsert (Maybe Text)
-fiRequestId
-  = lens _fiRequestId (\ s a -> s{_fiRequestId = a})
-
--- | Project ID for this request.
-fiProject :: Lens' FirewallsInsert Text
-fiProject
-  = lens _fiProject (\ s a -> s{_fiProject = a})
-
--- | Multipart request metadata.
-fiPayload :: Lens' FirewallsInsert Firewall
-fiPayload
-  = lens _fiPayload (\ s a -> s{_fiPayload = a})
-
-instance GoogleRequest FirewallsInsert where
-        type Rs FirewallsInsert = Operation
-        type Scopes FirewallsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient FirewallsInsert'{..}
-          = go _fiProject _fiRequestId (Just AltJSON)
-              _fiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy FirewallsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/List.hs b/gen/Network/Google/Resource/Compute/Firewalls/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/List.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.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)
---
--- Retrieves the list of firewall rules available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.list@.
-module Network.Google.Resource.Compute.Firewalls.List
-    (
-    -- * REST Resource
-      FirewallsListResource
-
-    -- * Creating a Request
-    , firewallsList
-    , FirewallsList
-
-    -- * Request Lenses
-    , flOrderBy
-    , flProject
-    , flFilter
-    , flPageToken
-    , flMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.list@ method which the
--- 'FirewallsList' request conforms to.
-type FirewallsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] FirewallList
-
--- | Retrieves the list of firewall rules available to the specified project.
---
--- /See:/ 'firewallsList' smart constructor.
-data FirewallsList =
-  FirewallsList'
-    { _flOrderBy    :: !(Maybe Text)
-    , _flProject    :: !Text
-    , _flFilter     :: !(Maybe Text)
-    , _flPageToken  :: !(Maybe Text)
-    , _flMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'flOrderBy'
---
--- * 'flProject'
---
--- * 'flFilter'
---
--- * 'flPageToken'
---
--- * 'flMaxResults'
-firewallsList
-    :: Text -- ^ 'flProject'
-    -> FirewallsList
-firewallsList pFlProject_ =
-  FirewallsList'
-    { _flOrderBy = Nothing
-    , _flProject = pFlProject_
-    , _flFilter = Nothing
-    , _flPageToken = Nothing
-    , _flMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-flOrderBy :: Lens' FirewallsList (Maybe Text)
-flOrderBy
-  = lens _flOrderBy (\ s a -> s{_flOrderBy = a})
-
--- | Project ID for this request.
-flProject :: Lens' FirewallsList Text
-flProject
-  = lens _flProject (\ s a -> s{_flProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-flFilter :: Lens' FirewallsList (Maybe Text)
-flFilter = lens _flFilter (\ s a -> s{_flFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-flPageToken :: Lens' FirewallsList (Maybe Text)
-flPageToken
-  = lens _flPageToken (\ s a -> s{_flPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-flMaxResults :: Lens' FirewallsList Word32
-flMaxResults
-  = lens _flMaxResults (\ s a -> s{_flMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest FirewallsList where
-        type Rs FirewallsList = FirewallList
-        type Scopes FirewallsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient FirewallsList'{..}
-          = go _flProject _flOrderBy _flFilter _flPageToken
-              (Just _flMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy FirewallsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/Patch.hs b/gen/Network/Google/Resource/Compute/Firewalls/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/Patch.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.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 with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.patch@.
-module Network.Google.Resource.Compute.Firewalls.Patch
-    (
-    -- * REST Resource
-      FirewallsPatchResource
-
-    -- * Creating a Request
-    , firewallsPatch
-    , FirewallsPatch
-
-    -- * Request Lenses
-    , fpRequestId
-    , fpProject
-    , fpPayload
-    , fpFirewall
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.patch@ method which the
--- 'FirewallsPatch' request conforms to.
-type FirewallsPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 Capture "firewall" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Firewall :> Patch '[JSON] Operation
-
--- | Updates the specified firewall rule with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ 'firewallsPatch' smart constructor.
-data FirewallsPatch =
-  FirewallsPatch'
-    { _fpRequestId :: !(Maybe Text)
-    , _fpProject   :: !Text
-    , _fpPayload   :: !Firewall
-    , _fpFirewall  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fpRequestId'
---
--- * 'fpProject'
---
--- * 'fpPayload'
---
--- * 'fpFirewall'
-firewallsPatch
-    :: Text -- ^ 'fpProject'
-    -> Firewall -- ^ 'fpPayload'
-    -> Text -- ^ 'fpFirewall'
-    -> FirewallsPatch
-firewallsPatch pFpProject_ pFpPayload_ pFpFirewall_ =
-  FirewallsPatch'
-    { _fpRequestId = Nothing
-    , _fpProject = pFpProject_
-    , _fpPayload = pFpPayload_
-    , _fpFirewall = pFpFirewall_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-fpRequestId :: Lens' FirewallsPatch (Maybe Text)
-fpRequestId
-  = lens _fpRequestId (\ s a -> s{_fpRequestId = a})
-
--- | Project ID for this request.
-fpProject :: Lens' FirewallsPatch Text
-fpProject
-  = lens _fpProject (\ s a -> s{_fpProject = a})
-
--- | Multipart request metadata.
-fpPayload :: Lens' FirewallsPatch Firewall
-fpPayload
-  = lens _fpPayload (\ s a -> s{_fpPayload = a})
-
--- | Name of the firewall rule to patch.
-fpFirewall :: Lens' FirewallsPatch Text
-fpFirewall
-  = lens _fpFirewall (\ s a -> s{_fpFirewall = a})
-
-instance GoogleRequest FirewallsPatch where
-        type Rs FirewallsPatch = Operation
-        type Scopes FirewallsPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient FirewallsPatch'{..}
-          = go _fpProject _fpFirewall _fpRequestId
-              (Just AltJSON)
-              _fpPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy FirewallsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Firewalls/Update.hs b/gen/Network/Google/Resource/Compute/Firewalls/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Firewalls/Update.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Firewalls.Update
--- 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 with the data included in the
--- request. The PUT method can only update the following fields of firewall
--- rule: allowed, description, sourceRanges, sourceTags, targetTags.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.firewalls.update@.
-module Network.Google.Resource.Compute.Firewalls.Update
-    (
-    -- * REST Resource
-      FirewallsUpdateResource
-
-    -- * Creating a Request
-    , firewallsUpdate
-    , FirewallsUpdate
-
-    -- * Request Lenses
-    , fuRequestId
-    , fuProject
-    , fuPayload
-    , fuFirewall
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.firewalls.update@ method which the
--- 'FirewallsUpdate' request conforms to.
-type FirewallsUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "firewalls" :>
-                 Capture "firewall" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Firewall :> Put '[JSON] Operation
-
--- | Updates the specified firewall rule with the data included in the
--- request. The PUT method can only update the following fields of firewall
--- rule: allowed, description, sourceRanges, sourceTags, targetTags.
---
--- /See:/ 'firewallsUpdate' smart constructor.
-data FirewallsUpdate =
-  FirewallsUpdate'
-    { _fuRequestId :: !(Maybe Text)
-    , _fuProject   :: !Text
-    , _fuPayload   :: !Firewall
-    , _fuFirewall  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'FirewallsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fuRequestId'
---
--- * 'fuProject'
---
--- * 'fuPayload'
---
--- * 'fuFirewall'
-firewallsUpdate
-    :: Text -- ^ 'fuProject'
-    -> Firewall -- ^ 'fuPayload'
-    -> Text -- ^ 'fuFirewall'
-    -> FirewallsUpdate
-firewallsUpdate pFuProject_ pFuPayload_ pFuFirewall_ =
-  FirewallsUpdate'
-    { _fuRequestId = Nothing
-    , _fuProject = pFuProject_
-    , _fuPayload = pFuPayload_
-    , _fuFirewall = pFuFirewall_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-fuRequestId :: Lens' FirewallsUpdate (Maybe Text)
-fuRequestId
-  = lens _fuRequestId (\ s a -> s{_fuRequestId = a})
-
--- | Project ID for this request.
-fuProject :: Lens' FirewallsUpdate Text
-fuProject
-  = lens _fuProject (\ s a -> s{_fuProject = a})
-
--- | Multipart request metadata.
-fuPayload :: Lens' FirewallsUpdate Firewall
-fuPayload
-  = lens _fuPayload (\ s a -> s{_fuPayload = a})
-
--- | Name of the firewall rule to update.
-fuFirewall :: Lens' FirewallsUpdate Text
-fuFirewall
-  = lens _fuFirewall (\ s a -> s{_fuFirewall = a})
-
-instance GoogleRequest FirewallsUpdate where
-        type Rs FirewallsUpdate = Operation
-        type Scopes FirewallsUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient FirewallsUpdate'{..}
-          = go _fuProject _fuFirewall _fuRequestId
-              (Just AltJSON)
-              _fuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy FirewallsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/AggregatedList.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of forwarding rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.aggregatedList@.
-module Network.Google.Resource.Compute.ForwardingRules.AggregatedList
-    (
-    -- * REST Resource
-      ForwardingRulesAggregatedListResource
-
-    -- * Creating a Request
-    , forwardingRulesAggregatedList
-    , ForwardingRulesAggregatedList
-
-    -- * Request Lenses
-    , fralOrderBy
-    , fralProject
-    , fralFilter
-    , fralPageToken
-    , fralMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.aggregatedList@ method which the
--- 'ForwardingRulesAggregatedList' request conforms to.
-type ForwardingRulesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "forwardingRules" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] ForwardingRuleAggregatedList
-
--- | Retrieves an aggregated list of forwarding rules.
---
--- /See:/ 'forwardingRulesAggregatedList' smart constructor.
-data ForwardingRulesAggregatedList =
-  ForwardingRulesAggregatedList'
-    { _fralOrderBy    :: !(Maybe Text)
-    , _fralProject    :: !Text
-    , _fralFilter     :: !(Maybe Text)
-    , _fralPageToken  :: !(Maybe Text)
-    , _fralMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'fralOrderBy'
---
--- * 'fralProject'
---
--- * 'fralFilter'
---
--- * 'fralPageToken'
---
--- * 'fralMaxResults'
-forwardingRulesAggregatedList
-    :: Text -- ^ 'fralProject'
-    -> ForwardingRulesAggregatedList
-forwardingRulesAggregatedList pFralProject_ =
-  ForwardingRulesAggregatedList'
-    { _fralOrderBy = Nothing
-    , _fralProject = pFralProject_
-    , _fralFilter = Nothing
-    , _fralPageToken = Nothing
-    , _fralMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-fralOrderBy :: Lens' ForwardingRulesAggregatedList (Maybe Text)
-fralOrderBy
-  = lens _fralOrderBy (\ s a -> s{_fralOrderBy = a})
-
--- | Project ID for this request.
-fralProject :: Lens' ForwardingRulesAggregatedList Text
-fralProject
-  = lens _fralProject (\ s a -> s{_fralProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-fralFilter :: Lens' ForwardingRulesAggregatedList (Maybe Text)
-fralFilter
-  = lens _fralFilter (\ s a -> s{_fralFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-fralPageToken :: Lens' ForwardingRulesAggregatedList (Maybe Text)
-fralPageToken
-  = lens _fralPageToken
-      (\ s a -> s{_fralPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-fralMaxResults :: Lens' ForwardingRulesAggregatedList Word32
-fralMaxResults
-  = lens _fralMaxResults
-      (\ s a -> s{_fralMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ForwardingRulesAggregatedList
-         where
-        type Rs ForwardingRulesAggregatedList =
-             ForwardingRuleAggregatedList
-        type Scopes ForwardingRulesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ForwardingRulesAggregatedList'{..}
-          = go _fralProject _fralOrderBy _fralFilter
-              _fralPageToken
-              (Just _fralMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy ForwardingRulesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/Delete.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/Delete.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.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 ForwardingRule resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.delete@.
-module Network.Google.Resource.Compute.ForwardingRules.Delete
-    (
-    -- * REST Resource
-      ForwardingRulesDeleteResource
-
-    -- * Creating a Request
-    , forwardingRulesDelete
-    , ForwardingRulesDelete
-
-    -- * Request Lenses
-    , frdRequestId
-    , frdProject
-    , frdForwardingRule
-    , frdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.delete@ method which the
--- 'ForwardingRulesDelete' request conforms to.
-type ForwardingRulesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "forwardingRules" :>
-                   Capture "forwardingRule" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified ForwardingRule resource.
---
--- /See:/ 'forwardingRulesDelete' smart constructor.
-data ForwardingRulesDelete =
-  ForwardingRulesDelete'
-    { _frdRequestId      :: !(Maybe Text)
-    , _frdProject        :: !Text
-    , _frdForwardingRule :: !Text
-    , _frdRegion         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frdRequestId'
---
--- * 'frdProject'
---
--- * 'frdForwardingRule'
---
--- * 'frdRegion'
-forwardingRulesDelete
-    :: Text -- ^ 'frdProject'
-    -> Text -- ^ 'frdForwardingRule'
-    -> Text -- ^ 'frdRegion'
-    -> ForwardingRulesDelete
-forwardingRulesDelete pFrdProject_ pFrdForwardingRule_ pFrdRegion_ =
-  ForwardingRulesDelete'
-    { _frdRequestId = Nothing
-    , _frdProject = pFrdProject_
-    , _frdForwardingRule = pFrdForwardingRule_
-    , _frdRegion = pFrdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-frdRequestId :: Lens' ForwardingRulesDelete (Maybe Text)
-frdRequestId
-  = lens _frdRequestId (\ s a -> s{_frdRequestId = a})
-
--- | Project ID for this request.
-frdProject :: Lens' ForwardingRulesDelete Text
-frdProject
-  = lens _frdProject (\ s a -> s{_frdProject = a})
-
--- | Name of the ForwardingRule resource to delete.
-frdForwardingRule :: Lens' ForwardingRulesDelete Text
-frdForwardingRule
-  = lens _frdForwardingRule
-      (\ s a -> s{_frdForwardingRule = a})
-
--- | Name of the region scoping this request.
-frdRegion :: Lens' ForwardingRulesDelete Text
-frdRegion
-  = lens _frdRegion (\ s a -> s{_frdRegion = a})
-
-instance GoogleRequest ForwardingRulesDelete where
-        type Rs ForwardingRulesDelete = Operation
-        type Scopes ForwardingRulesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ForwardingRulesDelete'{..}
-          = go _frdProject _frdRegion _frdForwardingRule
-              _frdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ForwardingRulesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/Get.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.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)
---
--- Returns the specified ForwardingRule resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.get@.
-module Network.Google.Resource.Compute.ForwardingRules.Get
-    (
-    -- * REST Resource
-      ForwardingRulesGetResource
-
-    -- * Creating a Request
-    , forwardingRulesGet
-    , ForwardingRulesGet
-
-    -- * Request Lenses
-    , frgProject
-    , frgForwardingRule
-    , frgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.get@ method which the
--- 'ForwardingRulesGet' request conforms to.
-type ForwardingRulesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "forwardingRules" :>
-                   Capture "forwardingRule" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] ForwardingRule
-
--- | Returns the specified ForwardingRule resource.
---
--- /See:/ 'forwardingRulesGet' smart constructor.
-data ForwardingRulesGet =
-  ForwardingRulesGet'
-    { _frgProject        :: !Text
-    , _frgForwardingRule :: !Text
-    , _frgRegion         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frgProject'
---
--- * 'frgForwardingRule'
---
--- * 'frgRegion'
-forwardingRulesGet
-    :: Text -- ^ 'frgProject'
-    -> Text -- ^ 'frgForwardingRule'
-    -> Text -- ^ 'frgRegion'
-    -> ForwardingRulesGet
-forwardingRulesGet pFrgProject_ pFrgForwardingRule_ pFrgRegion_ =
-  ForwardingRulesGet'
-    { _frgProject = pFrgProject_
-    , _frgForwardingRule = pFrgForwardingRule_
-    , _frgRegion = pFrgRegion_
-    }
-
-
--- | Project ID for this request.
-frgProject :: Lens' ForwardingRulesGet Text
-frgProject
-  = lens _frgProject (\ s a -> s{_frgProject = a})
-
--- | Name of the ForwardingRule resource to return.
-frgForwardingRule :: Lens' ForwardingRulesGet Text
-frgForwardingRule
-  = lens _frgForwardingRule
-      (\ s a -> s{_frgForwardingRule = a})
-
--- | Name of the region scoping this request.
-frgRegion :: Lens' ForwardingRulesGet Text
-frgRegion
-  = lens _frgRegion (\ s a -> s{_frgRegion = a})
-
-instance GoogleRequest ForwardingRulesGet where
-        type Rs ForwardingRulesGet = ForwardingRule
-        type Scopes ForwardingRulesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ForwardingRulesGet'{..}
-          = go _frgProject _frgRegion _frgForwardingRule
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ForwardingRulesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/Insert.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/Insert.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.Insert
--- 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 ForwardingRule resource in the specified project and region
--- using the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.insert@.
-module Network.Google.Resource.Compute.ForwardingRules.Insert
-    (
-    -- * REST Resource
-      ForwardingRulesInsertResource
-
-    -- * Creating a Request
-    , forwardingRulesInsert
-    , ForwardingRulesInsert
-
-    -- * Request Lenses
-    , friRequestId
-    , friProject
-    , friPayload
-    , friRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.insert@ method which the
--- 'ForwardingRulesInsert' request conforms to.
-type ForwardingRulesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "forwardingRules" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] ForwardingRule :>
-                         Post '[JSON] Operation
-
--- | Creates a ForwardingRule resource in the specified project and region
--- using the data included in the request.
---
--- /See:/ 'forwardingRulesInsert' smart constructor.
-data ForwardingRulesInsert =
-  ForwardingRulesInsert'
-    { _friRequestId :: !(Maybe Text)
-    , _friProject   :: !Text
-    , _friPayload   :: !ForwardingRule
-    , _friRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'friRequestId'
---
--- * 'friProject'
---
--- * 'friPayload'
---
--- * 'friRegion'
-forwardingRulesInsert
-    :: Text -- ^ 'friProject'
-    -> ForwardingRule -- ^ 'friPayload'
-    -> Text -- ^ 'friRegion'
-    -> ForwardingRulesInsert
-forwardingRulesInsert pFriProject_ pFriPayload_ pFriRegion_ =
-  ForwardingRulesInsert'
-    { _friRequestId = Nothing
-    , _friProject = pFriProject_
-    , _friPayload = pFriPayload_
-    , _friRegion = pFriRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-friRequestId :: Lens' ForwardingRulesInsert (Maybe Text)
-friRequestId
-  = lens _friRequestId (\ s a -> s{_friRequestId = a})
-
--- | Project ID for this request.
-friProject :: Lens' ForwardingRulesInsert Text
-friProject
-  = lens _friProject (\ s a -> s{_friProject = a})
-
--- | Multipart request metadata.
-friPayload :: Lens' ForwardingRulesInsert ForwardingRule
-friPayload
-  = lens _friPayload (\ s a -> s{_friPayload = a})
-
--- | Name of the region scoping this request.
-friRegion :: Lens' ForwardingRulesInsert Text
-friRegion
-  = lens _friRegion (\ s a -> s{_friRegion = a})
-
-instance GoogleRequest ForwardingRulesInsert where
-        type Rs ForwardingRulesInsert = Operation
-        type Scopes ForwardingRulesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ForwardingRulesInsert'{..}
-          = go _friProject _friRegion _friRequestId
-              (Just AltJSON)
-              _friPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ForwardingRulesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/List.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/List.hs
+++ /dev/null
@@ -1,185 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.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)
---
--- Retrieves a list of ForwardingRule resources available to the specified
--- project and region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.list@.
-module Network.Google.Resource.Compute.ForwardingRules.List
-    (
-    -- * REST Resource
-      ForwardingRulesListResource
-
-    -- * Creating a Request
-    , forwardingRulesList
-    , ForwardingRulesList
-
-    -- * Request Lenses
-    , frlOrderBy
-    , frlProject
-    , frlFilter
-    , frlRegion
-    , frlPageToken
-    , frlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.list@ method which the
--- 'ForwardingRulesList' request conforms to.
-type ForwardingRulesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "forwardingRules" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] ForwardingRuleList
-
--- | Retrieves a list of ForwardingRule resources available to the specified
--- project and region.
---
--- /See:/ 'forwardingRulesList' smart constructor.
-data ForwardingRulesList =
-  ForwardingRulesList'
-    { _frlOrderBy    :: !(Maybe Text)
-    , _frlProject    :: !Text
-    , _frlFilter     :: !(Maybe Text)
-    , _frlRegion     :: !Text
-    , _frlPageToken  :: !(Maybe Text)
-    , _frlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frlOrderBy'
---
--- * 'frlProject'
---
--- * 'frlFilter'
---
--- * 'frlRegion'
---
--- * 'frlPageToken'
---
--- * 'frlMaxResults'
-forwardingRulesList
-    :: Text -- ^ 'frlProject'
-    -> Text -- ^ 'frlRegion'
-    -> ForwardingRulesList
-forwardingRulesList pFrlProject_ pFrlRegion_ =
-  ForwardingRulesList'
-    { _frlOrderBy = Nothing
-    , _frlProject = pFrlProject_
-    , _frlFilter = Nothing
-    , _frlRegion = pFrlRegion_
-    , _frlPageToken = Nothing
-    , _frlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-frlOrderBy :: Lens' ForwardingRulesList (Maybe Text)
-frlOrderBy
-  = lens _frlOrderBy (\ s a -> s{_frlOrderBy = a})
-
--- | Project ID for this request.
-frlProject :: Lens' ForwardingRulesList Text
-frlProject
-  = lens _frlProject (\ s a -> s{_frlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-frlFilter :: Lens' ForwardingRulesList (Maybe Text)
-frlFilter
-  = lens _frlFilter (\ s a -> s{_frlFilter = a})
-
--- | Name of the region scoping this request.
-frlRegion :: Lens' ForwardingRulesList Text
-frlRegion
-  = lens _frlRegion (\ s a -> s{_frlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-frlPageToken :: Lens' ForwardingRulesList (Maybe Text)
-frlPageToken
-  = lens _frlPageToken (\ s a -> s{_frlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-frlMaxResults :: Lens' ForwardingRulesList Word32
-frlMaxResults
-  = lens _frlMaxResults
-      (\ s a -> s{_frlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ForwardingRulesList where
-        type Rs ForwardingRulesList = ForwardingRuleList
-        type Scopes ForwardingRulesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ForwardingRulesList'{..}
-          = go _frlProject _frlRegion _frlOrderBy _frlFilter
-              _frlPageToken
-              (Just _frlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ForwardingRulesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ForwardingRules/SetTarget.hs b/gen/Network/Google/Resource/Compute/ForwardingRules/SetTarget.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ForwardingRules/SetTarget.hs
+++ /dev/null
@@ -1,158 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ForwardingRules.SetTarget
--- 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)
---
--- Changes target URL for forwarding rule. The new target should be of the
--- same type as the old target.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.forwardingRules.setTarget@.
-module Network.Google.Resource.Compute.ForwardingRules.SetTarget
-    (
-    -- * REST Resource
-      ForwardingRulesSetTargetResource
-
-    -- * Creating a Request
-    , forwardingRulesSetTarget
-    , ForwardingRulesSetTarget
-
-    -- * Request Lenses
-    , frstRequestId
-    , frstProject
-    , frstForwardingRule
-    , frstPayload
-    , frstRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.forwardingRules.setTarget@ method which the
--- 'ForwardingRulesSetTarget' request conforms to.
-type ForwardingRulesSetTargetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "forwardingRules" :>
-                   Capture "forwardingRule" Text :>
-                     "setTarget" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] TargetReference :>
-                             Post '[JSON] Operation
-
--- | Changes target URL for forwarding rule. The new target should be of the
--- same type as the old target.
---
--- /See:/ 'forwardingRulesSetTarget' smart constructor.
-data ForwardingRulesSetTarget =
-  ForwardingRulesSetTarget'
-    { _frstRequestId      :: !(Maybe Text)
-    , _frstProject        :: !Text
-    , _frstForwardingRule :: !Text
-    , _frstPayload        :: !TargetReference
-    , _frstRegion         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ForwardingRulesSetTarget' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'frstRequestId'
---
--- * 'frstProject'
---
--- * 'frstForwardingRule'
---
--- * 'frstPayload'
---
--- * 'frstRegion'
-forwardingRulesSetTarget
-    :: Text -- ^ 'frstProject'
-    -> Text -- ^ 'frstForwardingRule'
-    -> TargetReference -- ^ 'frstPayload'
-    -> Text -- ^ 'frstRegion'
-    -> ForwardingRulesSetTarget
-forwardingRulesSetTarget pFrstProject_ pFrstForwardingRule_ pFrstPayload_ pFrstRegion_ =
-  ForwardingRulesSetTarget'
-    { _frstRequestId = Nothing
-    , _frstProject = pFrstProject_
-    , _frstForwardingRule = pFrstForwardingRule_
-    , _frstPayload = pFrstPayload_
-    , _frstRegion = pFrstRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-frstRequestId :: Lens' ForwardingRulesSetTarget (Maybe Text)
-frstRequestId
-  = lens _frstRequestId
-      (\ s a -> s{_frstRequestId = a})
-
--- | Project ID for this request.
-frstProject :: Lens' ForwardingRulesSetTarget Text
-frstProject
-  = lens _frstProject (\ s a -> s{_frstProject = a})
-
--- | Name of the ForwardingRule resource in which target is to be set.
-frstForwardingRule :: Lens' ForwardingRulesSetTarget Text
-frstForwardingRule
-  = lens _frstForwardingRule
-      (\ s a -> s{_frstForwardingRule = a})
-
--- | Multipart request metadata.
-frstPayload :: Lens' ForwardingRulesSetTarget TargetReference
-frstPayload
-  = lens _frstPayload (\ s a -> s{_frstPayload = a})
-
--- | Name of the region scoping this request.
-frstRegion :: Lens' ForwardingRulesSetTarget Text
-frstRegion
-  = lens _frstRegion (\ s a -> s{_frstRegion = a})
-
-instance GoogleRequest ForwardingRulesSetTarget where
-        type Rs ForwardingRulesSetTarget = Operation
-        type Scopes ForwardingRulesSetTarget =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ForwardingRulesSetTarget'{..}
-          = go _frstProject _frstRegion _frstForwardingRule
-              _frstRequestId
-              (Just AltJSON)
-              _frstPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ForwardingRulesSetTargetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalAddresses/Delete.hs b/gen/Network/Google/Resource/Compute/GlobalAddresses/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalAddresses/Delete.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalAddresses.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 address resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.delete@.
-module Network.Google.Resource.Compute.GlobalAddresses.Delete
-    (
-    -- * REST Resource
-      GlobalAddressesDeleteResource
-
-    -- * Creating a Request
-    , globalAddressesDelete
-    , GlobalAddressesDelete
-
-    -- * Request Lenses
-    , gadRequestId
-    , gadProject
-    , gadAddress
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalAddresses.delete@ method which the
--- 'GlobalAddressesDelete' request conforms to.
-type GlobalAddressesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "addresses" :>
-                 Capture "address" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified address resource.
---
--- /See:/ 'globalAddressesDelete' smart constructor.
-data GlobalAddressesDelete =
-  GlobalAddressesDelete'
-    { _gadRequestId :: !(Maybe Text)
-    , _gadProject   :: !Text
-    , _gadAddress   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalAddressesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gadRequestId'
---
--- * 'gadProject'
---
--- * 'gadAddress'
-globalAddressesDelete
-    :: Text -- ^ 'gadProject'
-    -> Text -- ^ 'gadAddress'
-    -> GlobalAddressesDelete
-globalAddressesDelete pGadProject_ pGadAddress_ =
-  GlobalAddressesDelete'
-    { _gadRequestId = Nothing
-    , _gadProject = pGadProject_
-    , _gadAddress = pGadAddress_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-gadRequestId :: Lens' GlobalAddressesDelete (Maybe Text)
-gadRequestId
-  = lens _gadRequestId (\ s a -> s{_gadRequestId = a})
-
--- | Project ID for this request.
-gadProject :: Lens' GlobalAddressesDelete Text
-gadProject
-  = lens _gadProject (\ s a -> s{_gadProject = a})
-
--- | Name of the address resource to delete.
-gadAddress :: Lens' GlobalAddressesDelete Text
-gadAddress
-  = lens _gadAddress (\ s a -> s{_gadAddress = a})
-
-instance GoogleRequest GlobalAddressesDelete where
-        type Rs GlobalAddressesDelete = Operation
-        type Scopes GlobalAddressesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalAddressesDelete'{..}
-          = go _gadProject _gadAddress _gadRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalAddressesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalAddresses/Get.hs b/gen/Network/Google/Resource/Compute/GlobalAddresses/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalAddresses/Get.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalAddresses.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)
---
--- Returns the specified address resource. Gets a list of available
--- addresses by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.get@.
-module Network.Google.Resource.Compute.GlobalAddresses.Get
-    (
-    -- * REST Resource
-      GlobalAddressesGetResource
-
-    -- * Creating a Request
-    , globalAddressesGet
-    , GlobalAddressesGet
-
-    -- * Request Lenses
-    , gagProject
-    , gagAddress
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalAddresses.get@ method which the
--- 'GlobalAddressesGet' request conforms to.
-type GlobalAddressesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "addresses" :>
-                 Capture "address" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Address
-
--- | Returns the specified address resource. Gets a list of available
--- addresses by making a list() request.
---
--- /See:/ 'globalAddressesGet' smart constructor.
-data GlobalAddressesGet =
-  GlobalAddressesGet'
-    { _gagProject :: !Text
-    , _gagAddress :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalAddressesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gagProject'
---
--- * 'gagAddress'
-globalAddressesGet
-    :: Text -- ^ 'gagProject'
-    -> Text -- ^ 'gagAddress'
-    -> GlobalAddressesGet
-globalAddressesGet pGagProject_ pGagAddress_ =
-  GlobalAddressesGet' {_gagProject = pGagProject_, _gagAddress = pGagAddress_}
-
-
--- | Project ID for this request.
-gagProject :: Lens' GlobalAddressesGet Text
-gagProject
-  = lens _gagProject (\ s a -> s{_gagProject = a})
-
--- | Name of the address resource to return.
-gagAddress :: Lens' GlobalAddressesGet Text
-gagAddress
-  = lens _gagAddress (\ s a -> s{_gagAddress = a})
-
-instance GoogleRequest GlobalAddressesGet where
-        type Rs GlobalAddressesGet = Address
-        type Scopes GlobalAddressesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalAddressesGet'{..}
-          = go _gagProject _gagAddress (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalAddressesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalAddresses/Insert.hs b/gen/Network/Google/Resource/Compute/GlobalAddresses/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalAddresses/Insert.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalAddresses.Insert
--- 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 an address resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.insert@.
-module Network.Google.Resource.Compute.GlobalAddresses.Insert
-    (
-    -- * REST Resource
-      GlobalAddressesInsertResource
-
-    -- * Creating a Request
-    , globalAddressesInsert
-    , GlobalAddressesInsert
-
-    -- * Request Lenses
-    , gaiRequestId
-    , gaiProject
-    , gaiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalAddresses.insert@ method which the
--- 'GlobalAddressesInsert' request conforms to.
-type GlobalAddressesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "addresses" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Address :> Post '[JSON] Operation
-
--- | Creates an address resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'globalAddressesInsert' smart constructor.
-data GlobalAddressesInsert =
-  GlobalAddressesInsert'
-    { _gaiRequestId :: !(Maybe Text)
-    , _gaiProject   :: !Text
-    , _gaiPayload   :: !Address
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalAddressesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gaiRequestId'
---
--- * 'gaiProject'
---
--- * 'gaiPayload'
-globalAddressesInsert
-    :: Text -- ^ 'gaiProject'
-    -> Address -- ^ 'gaiPayload'
-    -> GlobalAddressesInsert
-globalAddressesInsert pGaiProject_ pGaiPayload_ =
-  GlobalAddressesInsert'
-    { _gaiRequestId = Nothing
-    , _gaiProject = pGaiProject_
-    , _gaiPayload = pGaiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-gaiRequestId :: Lens' GlobalAddressesInsert (Maybe Text)
-gaiRequestId
-  = lens _gaiRequestId (\ s a -> s{_gaiRequestId = a})
-
--- | Project ID for this request.
-gaiProject :: Lens' GlobalAddressesInsert Text
-gaiProject
-  = lens _gaiProject (\ s a -> s{_gaiProject = a})
-
--- | Multipart request metadata.
-gaiPayload :: Lens' GlobalAddressesInsert Address
-gaiPayload
-  = lens _gaiPayload (\ s a -> s{_gaiPayload = a})
-
-instance GoogleRequest GlobalAddressesInsert where
-        type Rs GlobalAddressesInsert = Operation
-        type Scopes GlobalAddressesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalAddressesInsert'{..}
-          = go _gaiProject _gaiRequestId (Just AltJSON)
-              _gaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalAddressesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalAddresses/List.hs b/gen/Network/Google/Resource/Compute/GlobalAddresses/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalAddresses/List.hs
+++ /dev/null
@@ -1,169 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalAddresses.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)
---
--- Retrieves a list of global addresses.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalAddresses.list@.
-module Network.Google.Resource.Compute.GlobalAddresses.List
-    (
-    -- * REST Resource
-      GlobalAddressesListResource
-
-    -- * Creating a Request
-    , globalAddressesList
-    , GlobalAddressesList
-
-    -- * Request Lenses
-    , galOrderBy
-    , galProject
-    , galFilter
-    , galPageToken
-    , galMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalAddresses.list@ method which the
--- 'GlobalAddressesList' request conforms to.
-type GlobalAddressesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "addresses" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] AddressList
-
--- | Retrieves a list of global addresses.
---
--- /See:/ 'globalAddressesList' smart constructor.
-data GlobalAddressesList =
-  GlobalAddressesList'
-    { _galOrderBy    :: !(Maybe Text)
-    , _galProject    :: !Text
-    , _galFilter     :: !(Maybe Text)
-    , _galPageToken  :: !(Maybe Text)
-    , _galMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalAddressesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'galOrderBy'
---
--- * 'galProject'
---
--- * 'galFilter'
---
--- * 'galPageToken'
---
--- * 'galMaxResults'
-globalAddressesList
-    :: Text -- ^ 'galProject'
-    -> GlobalAddressesList
-globalAddressesList pGalProject_ =
-  GlobalAddressesList'
-    { _galOrderBy = Nothing
-    , _galProject = pGalProject_
-    , _galFilter = Nothing
-    , _galPageToken = Nothing
-    , _galMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-galOrderBy :: Lens' GlobalAddressesList (Maybe Text)
-galOrderBy
-  = lens _galOrderBy (\ s a -> s{_galOrderBy = a})
-
--- | Project ID for this request.
-galProject :: Lens' GlobalAddressesList Text
-galProject
-  = lens _galProject (\ s a -> s{_galProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-galFilter :: Lens' GlobalAddressesList (Maybe Text)
-galFilter
-  = lens _galFilter (\ s a -> s{_galFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-galPageToken :: Lens' GlobalAddressesList (Maybe Text)
-galPageToken
-  = lens _galPageToken (\ s a -> s{_galPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-galMaxResults :: Lens' GlobalAddressesList Word32
-galMaxResults
-  = lens _galMaxResults
-      (\ s a -> s{_galMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest GlobalAddressesList where
-        type Rs GlobalAddressesList = AddressList
-        type Scopes GlobalAddressesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalAddressesList'{..}
-          = go _galProject _galOrderBy _galFilter _galPageToken
-              (Just _galMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalAddressesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Delete.hs b/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Delete.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.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 GlobalForwardingRule resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.delete@.
-module Network.Google.Resource.Compute.GlobalForwardingRules.Delete
-    (
-    -- * REST Resource
-      GlobalForwardingRulesDeleteResource
-
-    -- * Creating a Request
-    , globalForwardingRulesDelete
-    , GlobalForwardingRulesDelete
-
-    -- * Request Lenses
-    , gfrdRequestId
-    , gfrdProject
-    , gfrdForwardingRule
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalForwardingRules.delete@ method which the
--- 'GlobalForwardingRulesDelete' request conforms to.
-type GlobalForwardingRulesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "forwardingRules" :>
-                 Capture "forwardingRule" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified GlobalForwardingRule resource.
---
--- /See:/ 'globalForwardingRulesDelete' smart constructor.
-data GlobalForwardingRulesDelete =
-  GlobalForwardingRulesDelete'
-    { _gfrdRequestId      :: !(Maybe Text)
-    , _gfrdProject        :: !Text
-    , _gfrdForwardingRule :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalForwardingRulesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gfrdRequestId'
---
--- * 'gfrdProject'
---
--- * 'gfrdForwardingRule'
-globalForwardingRulesDelete
-    :: Text -- ^ 'gfrdProject'
-    -> Text -- ^ 'gfrdForwardingRule'
-    -> GlobalForwardingRulesDelete
-globalForwardingRulesDelete pGfrdProject_ pGfrdForwardingRule_ =
-  GlobalForwardingRulesDelete'
-    { _gfrdRequestId = Nothing
-    , _gfrdProject = pGfrdProject_
-    , _gfrdForwardingRule = pGfrdForwardingRule_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-gfrdRequestId :: Lens' GlobalForwardingRulesDelete (Maybe Text)
-gfrdRequestId
-  = lens _gfrdRequestId
-      (\ s a -> s{_gfrdRequestId = a})
-
--- | Project ID for this request.
-gfrdProject :: Lens' GlobalForwardingRulesDelete Text
-gfrdProject
-  = lens _gfrdProject (\ s a -> s{_gfrdProject = a})
-
--- | Name of the ForwardingRule resource to delete.
-gfrdForwardingRule :: Lens' GlobalForwardingRulesDelete Text
-gfrdForwardingRule
-  = lens _gfrdForwardingRule
-      (\ s a -> s{_gfrdForwardingRule = a})
-
-instance GoogleRequest GlobalForwardingRulesDelete
-         where
-        type Rs GlobalForwardingRulesDelete = Operation
-        type Scopes GlobalForwardingRulesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalForwardingRulesDelete'{..}
-          = go _gfrdProject _gfrdForwardingRule _gfrdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalForwardingRulesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Get.hs b/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.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)
---
--- Returns the specified GlobalForwardingRule resource. Gets a list of
--- available forwarding rules by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.get@.
-module Network.Google.Resource.Compute.GlobalForwardingRules.Get
-    (
-    -- * REST Resource
-      GlobalForwardingRulesGetResource
-
-    -- * Creating a Request
-    , globalForwardingRulesGet
-    , GlobalForwardingRulesGet
-
-    -- * Request Lenses
-    , gfrgProject
-    , gfrgForwardingRule
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalForwardingRules.get@ method which the
--- 'GlobalForwardingRulesGet' request conforms to.
-type GlobalForwardingRulesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "forwardingRules" :>
-                 Capture "forwardingRule" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] ForwardingRule
-
--- | Returns the specified GlobalForwardingRule resource. Gets a list of
--- available forwarding rules by making a list() request.
---
--- /See:/ 'globalForwardingRulesGet' smart constructor.
-data GlobalForwardingRulesGet =
-  GlobalForwardingRulesGet'
-    { _gfrgProject        :: !Text
-    , _gfrgForwardingRule :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalForwardingRulesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gfrgProject'
---
--- * 'gfrgForwardingRule'
-globalForwardingRulesGet
-    :: Text -- ^ 'gfrgProject'
-    -> Text -- ^ 'gfrgForwardingRule'
-    -> GlobalForwardingRulesGet
-globalForwardingRulesGet pGfrgProject_ pGfrgForwardingRule_ =
-  GlobalForwardingRulesGet'
-    {_gfrgProject = pGfrgProject_, _gfrgForwardingRule = pGfrgForwardingRule_}
-
-
--- | Project ID for this request.
-gfrgProject :: Lens' GlobalForwardingRulesGet Text
-gfrgProject
-  = lens _gfrgProject (\ s a -> s{_gfrgProject = a})
-
--- | Name of the ForwardingRule resource to return.
-gfrgForwardingRule :: Lens' GlobalForwardingRulesGet Text
-gfrgForwardingRule
-  = lens _gfrgForwardingRule
-      (\ s a -> s{_gfrgForwardingRule = a})
-
-instance GoogleRequest GlobalForwardingRulesGet where
-        type Rs GlobalForwardingRulesGet = ForwardingRule
-        type Scopes GlobalForwardingRulesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalForwardingRulesGet'{..}
-          = go _gfrgProject _gfrgForwardingRule (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalForwardingRulesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Insert.hs b/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/Insert.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.Insert
--- 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 GlobalForwardingRule resource in the specified project using
--- the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.insert@.
-module Network.Google.Resource.Compute.GlobalForwardingRules.Insert
-    (
-    -- * REST Resource
-      GlobalForwardingRulesInsertResource
-
-    -- * Creating a Request
-    , globalForwardingRulesInsert
-    , GlobalForwardingRulesInsert
-
-    -- * Request Lenses
-    , gfriRequestId
-    , gfriProject
-    , gfriPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalForwardingRules.insert@ method which the
--- 'GlobalForwardingRulesInsert' request conforms to.
-type GlobalForwardingRulesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "forwardingRules" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] ForwardingRule :>
-                       Post '[JSON] Operation
-
--- | Creates a GlobalForwardingRule resource in the specified project using
--- the data included in the request.
---
--- /See:/ 'globalForwardingRulesInsert' smart constructor.
-data GlobalForwardingRulesInsert =
-  GlobalForwardingRulesInsert'
-    { _gfriRequestId :: !(Maybe Text)
-    , _gfriProject   :: !Text
-    , _gfriPayload   :: !ForwardingRule
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalForwardingRulesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gfriRequestId'
---
--- * 'gfriProject'
---
--- * 'gfriPayload'
-globalForwardingRulesInsert
-    :: Text -- ^ 'gfriProject'
-    -> ForwardingRule -- ^ 'gfriPayload'
-    -> GlobalForwardingRulesInsert
-globalForwardingRulesInsert pGfriProject_ pGfriPayload_ =
-  GlobalForwardingRulesInsert'
-    { _gfriRequestId = Nothing
-    , _gfriProject = pGfriProject_
-    , _gfriPayload = pGfriPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-gfriRequestId :: Lens' GlobalForwardingRulesInsert (Maybe Text)
-gfriRequestId
-  = lens _gfriRequestId
-      (\ s a -> s{_gfriRequestId = a})
-
--- | Project ID for this request.
-gfriProject :: Lens' GlobalForwardingRulesInsert Text
-gfriProject
-  = lens _gfriProject (\ s a -> s{_gfriProject = a})
-
--- | Multipart request metadata.
-gfriPayload :: Lens' GlobalForwardingRulesInsert ForwardingRule
-gfriPayload
-  = lens _gfriPayload (\ s a -> s{_gfriPayload = a})
-
-instance GoogleRequest GlobalForwardingRulesInsert
-         where
-        type Rs GlobalForwardingRulesInsert = Operation
-        type Scopes GlobalForwardingRulesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalForwardingRulesInsert'{..}
-          = go _gfriProject _gfriRequestId (Just AltJSON)
-              _gfriPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalForwardingRulesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/List.hs b/gen/Network/Google/Resource/Compute/GlobalForwardingRules/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/List.hs
+++ /dev/null
@@ -1,176 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.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)
---
--- Retrieves a list of GlobalForwardingRule resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.list@.
-module Network.Google.Resource.Compute.GlobalForwardingRules.List
-    (
-    -- * REST Resource
-      GlobalForwardingRulesListResource
-
-    -- * Creating a Request
-    , globalForwardingRulesList
-    , GlobalForwardingRulesList
-
-    -- * Request Lenses
-    , gfrlOrderBy
-    , gfrlProject
-    , gfrlFilter
-    , gfrlPageToken
-    , gfrlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalForwardingRules.list@ method which the
--- 'GlobalForwardingRulesList' request conforms to.
-type GlobalForwardingRulesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "forwardingRules" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] ForwardingRuleList
-
--- | Retrieves a list of GlobalForwardingRule resources available to the
--- specified project.
---
--- /See:/ 'globalForwardingRulesList' smart constructor.
-data GlobalForwardingRulesList =
-  GlobalForwardingRulesList'
-    { _gfrlOrderBy    :: !(Maybe Text)
-    , _gfrlProject    :: !Text
-    , _gfrlFilter     :: !(Maybe Text)
-    , _gfrlPageToken  :: !(Maybe Text)
-    , _gfrlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalForwardingRulesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gfrlOrderBy'
---
--- * 'gfrlProject'
---
--- * 'gfrlFilter'
---
--- * 'gfrlPageToken'
---
--- * 'gfrlMaxResults'
-globalForwardingRulesList
-    :: Text -- ^ 'gfrlProject'
-    -> GlobalForwardingRulesList
-globalForwardingRulesList pGfrlProject_ =
-  GlobalForwardingRulesList'
-    { _gfrlOrderBy = Nothing
-    , _gfrlProject = pGfrlProject_
-    , _gfrlFilter = Nothing
-    , _gfrlPageToken = Nothing
-    , _gfrlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-gfrlOrderBy :: Lens' GlobalForwardingRulesList (Maybe Text)
-gfrlOrderBy
-  = lens _gfrlOrderBy (\ s a -> s{_gfrlOrderBy = a})
-
--- | Project ID for this request.
-gfrlProject :: Lens' GlobalForwardingRulesList Text
-gfrlProject
-  = lens _gfrlProject (\ s a -> s{_gfrlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-gfrlFilter :: Lens' GlobalForwardingRulesList (Maybe Text)
-gfrlFilter
-  = lens _gfrlFilter (\ s a -> s{_gfrlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-gfrlPageToken :: Lens' GlobalForwardingRulesList (Maybe Text)
-gfrlPageToken
-  = lens _gfrlPageToken
-      (\ s a -> s{_gfrlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-gfrlMaxResults :: Lens' GlobalForwardingRulesList Word32
-gfrlMaxResults
-  = lens _gfrlMaxResults
-      (\ s a -> s{_gfrlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest GlobalForwardingRulesList
-         where
-        type Rs GlobalForwardingRulesList =
-             ForwardingRuleList
-        type Scopes GlobalForwardingRulesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalForwardingRulesList'{..}
-          = go _gfrlProject _gfrlOrderBy _gfrlFilter
-              _gfrlPageToken
-              (Just _gfrlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalForwardingRulesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/SetTarget.hs b/gen/Network/Google/Resource/Compute/GlobalForwardingRules/SetTarget.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalForwardingRules/SetTarget.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget
--- 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)
---
--- Changes target URL for the GlobalForwardingRule resource. The new target
--- should be of the same type as the old target.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalForwardingRules.setTarget@.
-module Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget
-    (
-    -- * REST Resource
-      GlobalForwardingRulesSetTargetResource
-
-    -- * Creating a Request
-    , globalForwardingRulesSetTarget
-    , GlobalForwardingRulesSetTarget
-
-    -- * Request Lenses
-    , gfrstRequestId
-    , gfrstProject
-    , gfrstForwardingRule
-    , gfrstPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalForwardingRules.setTarget@ method which the
--- 'GlobalForwardingRulesSetTarget' request conforms to.
-type GlobalForwardingRulesSetTargetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "forwardingRules" :>
-                 Capture "forwardingRule" Text :>
-                   "setTarget" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TargetReference :>
-                           Post '[JSON] Operation
-
--- | Changes target URL for the GlobalForwardingRule resource. The new target
--- should be of the same type as the old target.
---
--- /See:/ 'globalForwardingRulesSetTarget' smart constructor.
-data GlobalForwardingRulesSetTarget =
-  GlobalForwardingRulesSetTarget'
-    { _gfrstRequestId      :: !(Maybe Text)
-    , _gfrstProject        :: !Text
-    , _gfrstForwardingRule :: !Text
-    , _gfrstPayload        :: !TargetReference
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalForwardingRulesSetTarget' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gfrstRequestId'
---
--- * 'gfrstProject'
---
--- * 'gfrstForwardingRule'
---
--- * 'gfrstPayload'
-globalForwardingRulesSetTarget
-    :: Text -- ^ 'gfrstProject'
-    -> Text -- ^ 'gfrstForwardingRule'
-    -> TargetReference -- ^ 'gfrstPayload'
-    -> GlobalForwardingRulesSetTarget
-globalForwardingRulesSetTarget pGfrstProject_ pGfrstForwardingRule_ pGfrstPayload_ =
-  GlobalForwardingRulesSetTarget'
-    { _gfrstRequestId = Nothing
-    , _gfrstProject = pGfrstProject_
-    , _gfrstForwardingRule = pGfrstForwardingRule_
-    , _gfrstPayload = pGfrstPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-gfrstRequestId :: Lens' GlobalForwardingRulesSetTarget (Maybe Text)
-gfrstRequestId
-  = lens _gfrstRequestId
-      (\ s a -> s{_gfrstRequestId = a})
-
--- | Project ID for this request.
-gfrstProject :: Lens' GlobalForwardingRulesSetTarget Text
-gfrstProject
-  = lens _gfrstProject (\ s a -> s{_gfrstProject = a})
-
--- | Name of the ForwardingRule resource in which target is to be set.
-gfrstForwardingRule :: Lens' GlobalForwardingRulesSetTarget Text
-gfrstForwardingRule
-  = lens _gfrstForwardingRule
-      (\ s a -> s{_gfrstForwardingRule = a})
-
--- | Multipart request metadata.
-gfrstPayload :: Lens' GlobalForwardingRulesSetTarget TargetReference
-gfrstPayload
-  = lens _gfrstPayload (\ s a -> s{_gfrstPayload = a})
-
-instance GoogleRequest GlobalForwardingRulesSetTarget
-         where
-        type Rs GlobalForwardingRulesSetTarget = Operation
-        type Scopes GlobalForwardingRulesSetTarget =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalForwardingRulesSetTarget'{..}
-          = go _gfrstProject _gfrstForwardingRule
-              _gfrstRequestId
-              (Just AltJSON)
-              _gfrstPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy GlobalForwardingRulesSetTargetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalOperations/AggregatedList.hs b/gen/Network/Google/Resource/Compute/GlobalOperations/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalOperations/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalOperations.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of all operations.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.aggregatedList@.
-module Network.Google.Resource.Compute.GlobalOperations.AggregatedList
-    (
-    -- * REST Resource
-      GlobalOperationsAggregatedListResource
-
-    -- * Creating a Request
-    , globalOperationsAggregatedList
-    , GlobalOperationsAggregatedList
-
-    -- * Request Lenses
-    , goalOrderBy
-    , goalProject
-    , goalFilter
-    , goalPageToken
-    , goalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalOperations.aggregatedList@ method which the
--- 'GlobalOperationsAggregatedList' request conforms to.
-type GlobalOperationsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "operations" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] OperationAggregatedList
-
--- | Retrieves an aggregated list of all operations.
---
--- /See:/ 'globalOperationsAggregatedList' smart constructor.
-data GlobalOperationsAggregatedList =
-  GlobalOperationsAggregatedList'
-    { _goalOrderBy    :: !(Maybe Text)
-    , _goalProject    :: !Text
-    , _goalFilter     :: !(Maybe Text)
-    , _goalPageToken  :: !(Maybe Text)
-    , _goalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalOperationsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'goalOrderBy'
---
--- * 'goalProject'
---
--- * 'goalFilter'
---
--- * 'goalPageToken'
---
--- * 'goalMaxResults'
-globalOperationsAggregatedList
-    :: Text -- ^ 'goalProject'
-    -> GlobalOperationsAggregatedList
-globalOperationsAggregatedList pGoalProject_ =
-  GlobalOperationsAggregatedList'
-    { _goalOrderBy = Nothing
-    , _goalProject = pGoalProject_
-    , _goalFilter = Nothing
-    , _goalPageToken = Nothing
-    , _goalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-goalOrderBy :: Lens' GlobalOperationsAggregatedList (Maybe Text)
-goalOrderBy
-  = lens _goalOrderBy (\ s a -> s{_goalOrderBy = a})
-
--- | Project ID for this request.
-goalProject :: Lens' GlobalOperationsAggregatedList Text
-goalProject
-  = lens _goalProject (\ s a -> s{_goalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-goalFilter :: Lens' GlobalOperationsAggregatedList (Maybe Text)
-goalFilter
-  = lens _goalFilter (\ s a -> s{_goalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-goalPageToken :: Lens' GlobalOperationsAggregatedList (Maybe Text)
-goalPageToken
-  = lens _goalPageToken
-      (\ s a -> s{_goalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-goalMaxResults :: Lens' GlobalOperationsAggregatedList Word32
-goalMaxResults
-  = lens _goalMaxResults
-      (\ s a -> s{_goalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest GlobalOperationsAggregatedList
-         where
-        type Rs GlobalOperationsAggregatedList =
-             OperationAggregatedList
-        type Scopes GlobalOperationsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalOperationsAggregatedList'{..}
-          = go _goalProject _goalOrderBy _goalFilter
-              _goalPageToken
-              (Just _goalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy GlobalOperationsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalOperations/Delete.hs b/gen/Network/Google/Resource/Compute/GlobalOperations/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalOperations/Delete.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalOperations.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 Operations resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.delete@.
-module Network.Google.Resource.Compute.GlobalOperations.Delete
-    (
-    -- * REST Resource
-      GlobalOperationsDeleteResource
-
-    -- * Creating a Request
-    , globalOperationsDelete
-    , GlobalOperationsDelete
-
-    -- * Request Lenses
-    , godProject
-    , godOperation
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalOperations.delete@ method which the
--- 'GlobalOperationsDelete' request conforms to.
-type GlobalOperationsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "operations" :>
-                 Capture "operation" Text :>
-                   QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes the specified Operations resource.
---
--- /See:/ 'globalOperationsDelete' smart constructor.
-data GlobalOperationsDelete =
-  GlobalOperationsDelete'
-    { _godProject   :: !Text
-    , _godOperation :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalOperationsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'godProject'
---
--- * 'godOperation'
-globalOperationsDelete
-    :: Text -- ^ 'godProject'
-    -> Text -- ^ 'godOperation'
-    -> GlobalOperationsDelete
-globalOperationsDelete pGodProject_ pGodOperation_ =
-  GlobalOperationsDelete'
-    {_godProject = pGodProject_, _godOperation = pGodOperation_}
-
-
--- | Project ID for this request.
-godProject :: Lens' GlobalOperationsDelete Text
-godProject
-  = lens _godProject (\ s a -> s{_godProject = a})
-
--- | Name of the Operations resource to delete.
-godOperation :: Lens' GlobalOperationsDelete Text
-godOperation
-  = lens _godOperation (\ s a -> s{_godOperation = a})
-
-instance GoogleRequest GlobalOperationsDelete where
-        type Rs GlobalOperationsDelete = ()
-        type Scopes GlobalOperationsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient GlobalOperationsDelete'{..}
-          = go _godProject _godOperation (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalOperationsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalOperations/Get.hs b/gen/Network/Google/Resource/Compute/GlobalOperations/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalOperations/Get.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalOperations.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)
---
--- Retrieves the specified Operations resource. Gets a list of operations
--- by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.get@.
-module Network.Google.Resource.Compute.GlobalOperations.Get
-    (
-    -- * REST Resource
-      GlobalOperationsGetResource
-
-    -- * Creating a Request
-    , globalOperationsGet
-    , GlobalOperationsGet
-
-    -- * Request Lenses
-    , gogProject
-    , gogOperation
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalOperations.get@ method which the
--- 'GlobalOperationsGet' request conforms to.
-type GlobalOperationsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "operations" :>
-                 Capture "operation" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Operation
-
--- | Retrieves the specified Operations resource. Gets a list of operations
--- by making a list() request.
---
--- /See:/ 'globalOperationsGet' smart constructor.
-data GlobalOperationsGet =
-  GlobalOperationsGet'
-    { _gogProject   :: !Text
-    , _gogOperation :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalOperationsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'gogProject'
---
--- * 'gogOperation'
-globalOperationsGet
-    :: Text -- ^ 'gogProject'
-    -> Text -- ^ 'gogOperation'
-    -> GlobalOperationsGet
-globalOperationsGet pGogProject_ pGogOperation_ =
-  GlobalOperationsGet'
-    {_gogProject = pGogProject_, _gogOperation = pGogOperation_}
-
-
--- | Project ID for this request.
-gogProject :: Lens' GlobalOperationsGet Text
-gogProject
-  = lens _gogProject (\ s a -> s{_gogProject = a})
-
--- | Name of the Operations resource to return.
-gogOperation :: Lens' GlobalOperationsGet Text
-gogOperation
-  = lens _gogOperation (\ s a -> s{_gogOperation = a})
-
-instance GoogleRequest GlobalOperationsGet where
-        type Rs GlobalOperationsGet = Operation
-        type Scopes GlobalOperationsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalOperationsGet'{..}
-          = go _gogProject _gogOperation (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalOperationsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/GlobalOperations/List.hs b/gen/Network/Google/Resource/Compute/GlobalOperations/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/GlobalOperations/List.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.GlobalOperations.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)
---
--- Retrieves a list of Operation resources contained within the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.globalOperations.list@.
-module Network.Google.Resource.Compute.GlobalOperations.List
-    (
-    -- * REST Resource
-      GlobalOperationsListResource
-
-    -- * Creating a Request
-    , globalOperationsList
-    , GlobalOperationsList
-
-    -- * Request Lenses
-    , golOrderBy
-    , golProject
-    , golFilter
-    , golPageToken
-    , golMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.globalOperations.list@ method which the
--- 'GlobalOperationsList' request conforms to.
-type GlobalOperationsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "operations" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] OperationList
-
--- | Retrieves a list of Operation resources contained within the specified
--- project.
---
--- /See:/ 'globalOperationsList' smart constructor.
-data GlobalOperationsList =
-  GlobalOperationsList'
-    { _golOrderBy    :: !(Maybe Text)
-    , _golProject    :: !Text
-    , _golFilter     :: !(Maybe Text)
-    , _golPageToken  :: !(Maybe Text)
-    , _golMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'GlobalOperationsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'golOrderBy'
---
--- * 'golProject'
---
--- * 'golFilter'
---
--- * 'golPageToken'
---
--- * 'golMaxResults'
-globalOperationsList
-    :: Text -- ^ 'golProject'
-    -> GlobalOperationsList
-globalOperationsList pGolProject_ =
-  GlobalOperationsList'
-    { _golOrderBy = Nothing
-    , _golProject = pGolProject_
-    , _golFilter = Nothing
-    , _golPageToken = Nothing
-    , _golMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-golOrderBy :: Lens' GlobalOperationsList (Maybe Text)
-golOrderBy
-  = lens _golOrderBy (\ s a -> s{_golOrderBy = a})
-
--- | Project ID for this request.
-golProject :: Lens' GlobalOperationsList Text
-golProject
-  = lens _golProject (\ s a -> s{_golProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-golFilter :: Lens' GlobalOperationsList (Maybe Text)
-golFilter
-  = lens _golFilter (\ s a -> s{_golFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-golPageToken :: Lens' GlobalOperationsList (Maybe Text)
-golPageToken
-  = lens _golPageToken (\ s a -> s{_golPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-golMaxResults :: Lens' GlobalOperationsList Word32
-golMaxResults
-  = lens _golMaxResults
-      (\ s a -> s{_golMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest GlobalOperationsList where
-        type Rs GlobalOperationsList = OperationList
-        type Scopes GlobalOperationsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient GlobalOperationsList'{..}
-          = go _golProject _golOrderBy _golFilter _golPageToken
-              (Just _golMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy GlobalOperationsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Delete.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Delete.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.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 HttpHealthCheck resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.delete@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.Delete
-    (
-    -- * REST Resource
-      HTTPHealthChecksDeleteResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksDelete
-    , HTTPHealthChecksDelete
-
-    -- * Request Lenses
-    , httphcdRequestId
-    , httphcdProject
-    , httphcdHTTPHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.delete@ method which the
--- 'HTTPHealthChecksDelete' request conforms to.
-type HTTPHealthChecksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 Capture "httpHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified HttpHealthCheck resource.
---
--- /See:/ 'hTTPHealthChecksDelete' smart constructor.
-data HTTPHealthChecksDelete =
-  HTTPHealthChecksDelete'
-    { _httphcdRequestId       :: !(Maybe Text)
-    , _httphcdProject         :: !Text
-    , _httphcdHTTPHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphcdRequestId'
---
--- * 'httphcdProject'
---
--- * 'httphcdHTTPHealthCheck'
-hTTPHealthChecksDelete
-    :: Text -- ^ 'httphcdProject'
-    -> Text -- ^ 'httphcdHTTPHealthCheck'
-    -> HTTPHealthChecksDelete
-hTTPHealthChecksDelete pHttphcdProject_ pHttphcdHTTPHealthCheck_ =
-  HTTPHealthChecksDelete'
-    { _httphcdRequestId = Nothing
-    , _httphcdProject = pHttphcdProject_
-    , _httphcdHTTPHealthCheck = pHttphcdHTTPHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-httphcdRequestId :: Lens' HTTPHealthChecksDelete (Maybe Text)
-httphcdRequestId
-  = lens _httphcdRequestId
-      (\ s a -> s{_httphcdRequestId = a})
-
--- | Project ID for this request.
-httphcdProject :: Lens' HTTPHealthChecksDelete Text
-httphcdProject
-  = lens _httphcdProject
-      (\ s a -> s{_httphcdProject = a})
-
--- | Name of the HttpHealthCheck resource to delete.
-httphcdHTTPHealthCheck :: Lens' HTTPHealthChecksDelete Text
-httphcdHTTPHealthCheck
-  = lens _httphcdHTTPHealthCheck
-      (\ s a -> s{_httphcdHTTPHealthCheck = a})
-
-instance GoogleRequest HTTPHealthChecksDelete where
-        type Rs HTTPHealthChecksDelete = Operation
-        type Scopes HTTPHealthChecksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPHealthChecksDelete'{..}
-          = go _httphcdProject _httphcdHTTPHealthCheck
-              _httphcdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Get.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Get.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.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)
---
--- Returns the specified HttpHealthCheck resource. Gets a list of available
--- HTTP health checks by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.get@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.Get
-    (
-    -- * REST Resource
-      HTTPHealthChecksGetResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksGet
-    , HTTPHealthChecksGet
-
-    -- * Request Lenses
-    , httphcgProject
-    , httphcgHTTPHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.get@ method which the
--- 'HTTPHealthChecksGet' request conforms to.
-type HTTPHealthChecksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 Capture "httpHealthCheck" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] HTTPHealthCheck
-
--- | Returns the specified HttpHealthCheck resource. Gets a list of available
--- HTTP health checks by making a list() request.
---
--- /See:/ 'hTTPHealthChecksGet' smart constructor.
-data HTTPHealthChecksGet =
-  HTTPHealthChecksGet'
-    { _httphcgProject         :: !Text
-    , _httphcgHTTPHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphcgProject'
---
--- * 'httphcgHTTPHealthCheck'
-hTTPHealthChecksGet
-    :: Text -- ^ 'httphcgProject'
-    -> Text -- ^ 'httphcgHTTPHealthCheck'
-    -> HTTPHealthChecksGet
-hTTPHealthChecksGet pHttphcgProject_ pHttphcgHTTPHealthCheck_ =
-  HTTPHealthChecksGet'
-    { _httphcgProject = pHttphcgProject_
-    , _httphcgHTTPHealthCheck = pHttphcgHTTPHealthCheck_
-    }
-
-
--- | Project ID for this request.
-httphcgProject :: Lens' HTTPHealthChecksGet Text
-httphcgProject
-  = lens _httphcgProject
-      (\ s a -> s{_httphcgProject = a})
-
--- | Name of the HttpHealthCheck resource to return.
-httphcgHTTPHealthCheck :: Lens' HTTPHealthChecksGet Text
-httphcgHTTPHealthCheck
-  = lens _httphcgHTTPHealthCheck
-      (\ s a -> s{_httphcgHTTPHealthCheck = a})
-
-instance GoogleRequest HTTPHealthChecksGet where
-        type Rs HTTPHealthChecksGet = HTTPHealthCheck
-        type Scopes HTTPHealthChecksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HTTPHealthChecksGet'{..}
-          = go _httphcgProject _httphcgHTTPHealthCheck
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Insert.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Insert.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.Insert
--- 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 HttpHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.insert@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.Insert
-    (
-    -- * REST Resource
-      HTTPHealthChecksInsertResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksInsert
-    , HTTPHealthChecksInsert
-
-    -- * Request Lenses
-    , httphciRequestId
-    , httphciProject
-    , httphciPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.insert@ method which the
--- 'HTTPHealthChecksInsert' request conforms to.
-type HTTPHealthChecksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] HTTPHealthCheck :>
-                       Post '[JSON] Operation
-
--- | Creates a HttpHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'hTTPHealthChecksInsert' smart constructor.
-data HTTPHealthChecksInsert =
-  HTTPHealthChecksInsert'
-    { _httphciRequestId :: !(Maybe Text)
-    , _httphciProject   :: !Text
-    , _httphciPayload   :: !HTTPHealthCheck
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphciRequestId'
---
--- * 'httphciProject'
---
--- * 'httphciPayload'
-hTTPHealthChecksInsert
-    :: Text -- ^ 'httphciProject'
-    -> HTTPHealthCheck -- ^ 'httphciPayload'
-    -> HTTPHealthChecksInsert
-hTTPHealthChecksInsert pHttphciProject_ pHttphciPayload_ =
-  HTTPHealthChecksInsert'
-    { _httphciRequestId = Nothing
-    , _httphciProject = pHttphciProject_
-    , _httphciPayload = pHttphciPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-httphciRequestId :: Lens' HTTPHealthChecksInsert (Maybe Text)
-httphciRequestId
-  = lens _httphciRequestId
-      (\ s a -> s{_httphciRequestId = a})
-
--- | Project ID for this request.
-httphciProject :: Lens' HTTPHealthChecksInsert Text
-httphciProject
-  = lens _httphciProject
-      (\ s a -> s{_httphciProject = a})
-
--- | Multipart request metadata.
-httphciPayload :: Lens' HTTPHealthChecksInsert HTTPHealthCheck
-httphciPayload
-  = lens _httphciPayload
-      (\ s a -> s{_httphciPayload = a})
-
-instance GoogleRequest HTTPHealthChecksInsert where
-        type Rs HTTPHealthChecksInsert = Operation
-        type Scopes HTTPHealthChecksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPHealthChecksInsert'{..}
-          = go _httphciProject _httphciRequestId (Just AltJSON)
-              _httphciPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/List.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/List.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.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)
---
--- Retrieves the list of HttpHealthCheck resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.list@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.List
-    (
-    -- * REST Resource
-      HTTPHealthChecksListResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksList
-    , HTTPHealthChecksList
-
-    -- * Request Lenses
-    , httphclOrderBy
-    , httphclProject
-    , httphclFilter
-    , httphclPageToken
-    , httphclMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.list@ method which the
--- 'HTTPHealthChecksList' request conforms to.
-type HTTPHealthChecksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] HTTPHealthCheckList
-
--- | Retrieves the list of HttpHealthCheck resources available to the
--- specified project.
---
--- /See:/ 'hTTPHealthChecksList' smart constructor.
-data HTTPHealthChecksList =
-  HTTPHealthChecksList'
-    { _httphclOrderBy    :: !(Maybe Text)
-    , _httphclProject    :: !Text
-    , _httphclFilter     :: !(Maybe Text)
-    , _httphclPageToken  :: !(Maybe Text)
-    , _httphclMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphclOrderBy'
---
--- * 'httphclProject'
---
--- * 'httphclFilter'
---
--- * 'httphclPageToken'
---
--- * 'httphclMaxResults'
-hTTPHealthChecksList
-    :: Text -- ^ 'httphclProject'
-    -> HTTPHealthChecksList
-hTTPHealthChecksList pHttphclProject_ =
-  HTTPHealthChecksList'
-    { _httphclOrderBy = Nothing
-    , _httphclProject = pHttphclProject_
-    , _httphclFilter = Nothing
-    , _httphclPageToken = Nothing
-    , _httphclMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-httphclOrderBy :: Lens' HTTPHealthChecksList (Maybe Text)
-httphclOrderBy
-  = lens _httphclOrderBy
-      (\ s a -> s{_httphclOrderBy = a})
-
--- | Project ID for this request.
-httphclProject :: Lens' HTTPHealthChecksList Text
-httphclProject
-  = lens _httphclProject
-      (\ s a -> s{_httphclProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-httphclFilter :: Lens' HTTPHealthChecksList (Maybe Text)
-httphclFilter
-  = lens _httphclFilter
-      (\ s a -> s{_httphclFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-httphclPageToken :: Lens' HTTPHealthChecksList (Maybe Text)
-httphclPageToken
-  = lens _httphclPageToken
-      (\ s a -> s{_httphclPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-httphclMaxResults :: Lens' HTTPHealthChecksList Word32
-httphclMaxResults
-  = lens _httphclMaxResults
-      (\ s a -> s{_httphclMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest HTTPHealthChecksList where
-        type Rs HTTPHealthChecksList = HTTPHealthCheckList
-        type Scopes HTTPHealthChecksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HTTPHealthChecksList'{..}
-          = go _httphclProject _httphclOrderBy _httphclFilter
-              _httphclPageToken
-              (Just _httphclMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Patch.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Patch.hs
+++ /dev/null
@@ -1,149 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.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 a HttpHealthCheck resource in the specified project using the
--- data included in the request. This method supports PATCH semantics and
--- uses the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.patch@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.Patch
-    (
-    -- * REST Resource
-      HTTPHealthChecksPatchResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksPatch
-    , HTTPHealthChecksPatch
-
-    -- * Request Lenses
-    , httphcpRequestId
-    , httphcpProject
-    , httphcpPayload
-    , httphcpHTTPHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.patch@ method which the
--- 'HTTPHealthChecksPatch' request conforms to.
-type HTTPHealthChecksPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 Capture "httpHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HTTPHealthCheck :>
-                         Patch '[JSON] Operation
-
--- | Updates a HttpHealthCheck resource in the specified project using the
--- data included in the request. This method supports PATCH semantics and
--- uses the JSON merge patch format and processing rules.
---
--- /See:/ 'hTTPHealthChecksPatch' smart constructor.
-data HTTPHealthChecksPatch =
-  HTTPHealthChecksPatch'
-    { _httphcpRequestId       :: !(Maybe Text)
-    , _httphcpProject         :: !Text
-    , _httphcpPayload         :: !HTTPHealthCheck
-    , _httphcpHTTPHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphcpRequestId'
---
--- * 'httphcpProject'
---
--- * 'httphcpPayload'
---
--- * 'httphcpHTTPHealthCheck'
-hTTPHealthChecksPatch
-    :: Text -- ^ 'httphcpProject'
-    -> HTTPHealthCheck -- ^ 'httphcpPayload'
-    -> Text -- ^ 'httphcpHTTPHealthCheck'
-    -> HTTPHealthChecksPatch
-hTTPHealthChecksPatch pHttphcpProject_ pHttphcpPayload_ pHttphcpHTTPHealthCheck_ =
-  HTTPHealthChecksPatch'
-    { _httphcpRequestId = Nothing
-    , _httphcpProject = pHttphcpProject_
-    , _httphcpPayload = pHttphcpPayload_
-    , _httphcpHTTPHealthCheck = pHttphcpHTTPHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-httphcpRequestId :: Lens' HTTPHealthChecksPatch (Maybe Text)
-httphcpRequestId
-  = lens _httphcpRequestId
-      (\ s a -> s{_httphcpRequestId = a})
-
--- | Project ID for this request.
-httphcpProject :: Lens' HTTPHealthChecksPatch Text
-httphcpProject
-  = lens _httphcpProject
-      (\ s a -> s{_httphcpProject = a})
-
--- | Multipart request metadata.
-httphcpPayload :: Lens' HTTPHealthChecksPatch HTTPHealthCheck
-httphcpPayload
-  = lens _httphcpPayload
-      (\ s a -> s{_httphcpPayload = a})
-
--- | Name of the HttpHealthCheck resource to patch.
-httphcpHTTPHealthCheck :: Lens' HTTPHealthChecksPatch Text
-httphcpHTTPHealthCheck
-  = lens _httphcpHTTPHealthCheck
-      (\ s a -> s{_httphcpHTTPHealthCheck = a})
-
-instance GoogleRequest HTTPHealthChecksPatch where
-        type Rs HTTPHealthChecksPatch = Operation
-        type Scopes HTTPHealthChecksPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPHealthChecksPatch'{..}
-          = go _httphcpProject _httphcpHTTPHealthCheck
-              _httphcpRequestId
-              (Just AltJSON)
-              _httphcpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Update.hs b/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPHealthChecks/Update.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPHealthChecks.Update
--- 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 a HttpHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpHealthChecks.update@.
-module Network.Google.Resource.Compute.HTTPHealthChecks.Update
-    (
-    -- * REST Resource
-      HTTPHealthChecksUpdateResource
-
-    -- * Creating a Request
-    , hTTPHealthChecksUpdate
-    , HTTPHealthChecksUpdate
-
-    -- * Request Lenses
-    , httphcuRequestId
-    , httphcuProject
-    , httphcuPayload
-    , httphcuHTTPHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpHealthChecks.update@ method which the
--- 'HTTPHealthChecksUpdate' request conforms to.
-type HTTPHealthChecksUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpHealthChecks" :>
-                 Capture "httpHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HTTPHealthCheck :>
-                         Put '[JSON] Operation
-
--- | Updates a HttpHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'hTTPHealthChecksUpdate' smart constructor.
-data HTTPHealthChecksUpdate =
-  HTTPHealthChecksUpdate'
-    { _httphcuRequestId       :: !(Maybe Text)
-    , _httphcuProject         :: !Text
-    , _httphcuPayload         :: !HTTPHealthCheck
-    , _httphcuHTTPHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPHealthChecksUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'httphcuRequestId'
---
--- * 'httphcuProject'
---
--- * 'httphcuPayload'
---
--- * 'httphcuHTTPHealthCheck'
-hTTPHealthChecksUpdate
-    :: Text -- ^ 'httphcuProject'
-    -> HTTPHealthCheck -- ^ 'httphcuPayload'
-    -> Text -- ^ 'httphcuHTTPHealthCheck'
-    -> HTTPHealthChecksUpdate
-hTTPHealthChecksUpdate pHttphcuProject_ pHttphcuPayload_ pHttphcuHTTPHealthCheck_ =
-  HTTPHealthChecksUpdate'
-    { _httphcuRequestId = Nothing
-    , _httphcuProject = pHttphcuProject_
-    , _httphcuPayload = pHttphcuPayload_
-    , _httphcuHTTPHealthCheck = pHttphcuHTTPHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-httphcuRequestId :: Lens' HTTPHealthChecksUpdate (Maybe Text)
-httphcuRequestId
-  = lens _httphcuRequestId
-      (\ s a -> s{_httphcuRequestId = a})
-
--- | Project ID for this request.
-httphcuProject :: Lens' HTTPHealthChecksUpdate Text
-httphcuProject
-  = lens _httphcuProject
-      (\ s a -> s{_httphcuProject = a})
-
--- | Multipart request metadata.
-httphcuPayload :: Lens' HTTPHealthChecksUpdate HTTPHealthCheck
-httphcuPayload
-  = lens _httphcuPayload
-      (\ s a -> s{_httphcuPayload = a})
-
--- | Name of the HttpHealthCheck resource to update.
-httphcuHTTPHealthCheck :: Lens' HTTPHealthChecksUpdate Text
-httphcuHTTPHealthCheck
-  = lens _httphcuHTTPHealthCheck
-      (\ s a -> s{_httphcuHTTPHealthCheck = a})
-
-instance GoogleRequest HTTPHealthChecksUpdate where
-        type Rs HTTPHealthChecksUpdate = Operation
-        type Scopes HTTPHealthChecksUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPHealthChecksUpdate'{..}
-          = go _httphcuProject _httphcuHTTPHealthCheck
-              _httphcuRequestId
-              (Just AltJSON)
-              _httphcuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPHealthChecksUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Delete.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Delete.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.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 HttpsHealthCheck resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.delete@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.Delete
-    (
-    -- * REST Resource
-      HTTPSHealthChecksDeleteResource
-
-    -- * Creating a Request
-    , httpsHealthChecksDelete
-    , HTTPSHealthChecksDelete
-
-    -- * Request Lenses
-    , hhcdRequestId
-    , hhcdProject
-    , hhcdHTTPSHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.delete@ method which the
--- 'HTTPSHealthChecksDelete' request conforms to.
-type HTTPSHealthChecksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 Capture "httpsHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified HttpsHealthCheck resource.
---
--- /See:/ 'httpsHealthChecksDelete' smart constructor.
-data HTTPSHealthChecksDelete =
-  HTTPSHealthChecksDelete'
-    { _hhcdRequestId        :: !(Maybe Text)
-    , _hhcdProject          :: !Text
-    , _hhcdHTTPSHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhcdRequestId'
---
--- * 'hhcdProject'
---
--- * 'hhcdHTTPSHealthCheck'
-httpsHealthChecksDelete
-    :: Text -- ^ 'hhcdProject'
-    -> Text -- ^ 'hhcdHTTPSHealthCheck'
-    -> HTTPSHealthChecksDelete
-httpsHealthChecksDelete pHhcdProject_ pHhcdHTTPSHealthCheck_ =
-  HTTPSHealthChecksDelete'
-    { _hhcdRequestId = Nothing
-    , _hhcdProject = pHhcdProject_
-    , _hhcdHTTPSHealthCheck = pHhcdHTTPSHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hhcdRequestId :: Lens' HTTPSHealthChecksDelete (Maybe Text)
-hhcdRequestId
-  = lens _hhcdRequestId
-      (\ s a -> s{_hhcdRequestId = a})
-
--- | Project ID for this request.
-hhcdProject :: Lens' HTTPSHealthChecksDelete Text
-hhcdProject
-  = lens _hhcdProject (\ s a -> s{_hhcdProject = a})
-
--- | Name of the HttpsHealthCheck resource to delete.
-hhcdHTTPSHealthCheck :: Lens' HTTPSHealthChecksDelete Text
-hhcdHTTPSHealthCheck
-  = lens _hhcdHTTPSHealthCheck
-      (\ s a -> s{_hhcdHTTPSHealthCheck = a})
-
-instance GoogleRequest HTTPSHealthChecksDelete where
-        type Rs HTTPSHealthChecksDelete = Operation
-        type Scopes HTTPSHealthChecksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPSHealthChecksDelete'{..}
-          = go _hhcdProject _hhcdHTTPSHealthCheck
-              _hhcdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Get.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Get.hs
+++ /dev/null
@@ -1,111 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.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)
---
--- Returns the specified HttpsHealthCheck resource. Gets a list of
--- available HTTPS health checks by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.get@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.Get
-    (
-    -- * REST Resource
-      HTTPSHealthChecksGetResource
-
-    -- * Creating a Request
-    , httpsHealthChecksGet
-    , HTTPSHealthChecksGet
-
-    -- * Request Lenses
-    , hhcgProject
-    , hhcgHTTPSHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.get@ method which the
--- 'HTTPSHealthChecksGet' request conforms to.
-type HTTPSHealthChecksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 Capture "httpsHealthCheck" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] HTTPSHealthCheck
-
--- | Returns the specified HttpsHealthCheck resource. Gets a list of
--- available HTTPS health checks by making a list() request.
---
--- /See:/ 'httpsHealthChecksGet' smart constructor.
-data HTTPSHealthChecksGet =
-  HTTPSHealthChecksGet'
-    { _hhcgProject          :: !Text
-    , _hhcgHTTPSHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhcgProject'
---
--- * 'hhcgHTTPSHealthCheck'
-httpsHealthChecksGet
-    :: Text -- ^ 'hhcgProject'
-    -> Text -- ^ 'hhcgHTTPSHealthCheck'
-    -> HTTPSHealthChecksGet
-httpsHealthChecksGet pHhcgProject_ pHhcgHTTPSHealthCheck_ =
-  HTTPSHealthChecksGet'
-    { _hhcgProject = pHhcgProject_
-    , _hhcgHTTPSHealthCheck = pHhcgHTTPSHealthCheck_
-    }
-
-
--- | Project ID for this request.
-hhcgProject :: Lens' HTTPSHealthChecksGet Text
-hhcgProject
-  = lens _hhcgProject (\ s a -> s{_hhcgProject = a})
-
--- | Name of the HttpsHealthCheck resource to return.
-hhcgHTTPSHealthCheck :: Lens' HTTPSHealthChecksGet Text
-hhcgHTTPSHealthCheck
-  = lens _hhcgHTTPSHealthCheck
-      (\ s a -> s{_hhcgHTTPSHealthCheck = a})
-
-instance GoogleRequest HTTPSHealthChecksGet where
-        type Rs HTTPSHealthChecksGet = HTTPSHealthCheck
-        type Scopes HTTPSHealthChecksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HTTPSHealthChecksGet'{..}
-          = go _hhcgProject _hhcgHTTPSHealthCheck
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Insert.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Insert.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.Insert
--- 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 HttpsHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.insert@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.Insert
-    (
-    -- * REST Resource
-      HTTPSHealthChecksInsertResource
-
-    -- * Creating a Request
-    , httpsHealthChecksInsert
-    , HTTPSHealthChecksInsert
-
-    -- * Request Lenses
-    , hhciRequestId
-    , hhciProject
-    , hhciPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.insert@ method which the
--- 'HTTPSHealthChecksInsert' request conforms to.
-type HTTPSHealthChecksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] HTTPSHealthCheck :>
-                       Post '[JSON] Operation
-
--- | Creates a HttpsHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'httpsHealthChecksInsert' smart constructor.
-data HTTPSHealthChecksInsert =
-  HTTPSHealthChecksInsert'
-    { _hhciRequestId :: !(Maybe Text)
-    , _hhciProject   :: !Text
-    , _hhciPayload   :: !HTTPSHealthCheck
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhciRequestId'
---
--- * 'hhciProject'
---
--- * 'hhciPayload'
-httpsHealthChecksInsert
-    :: Text -- ^ 'hhciProject'
-    -> HTTPSHealthCheck -- ^ 'hhciPayload'
-    -> HTTPSHealthChecksInsert
-httpsHealthChecksInsert pHhciProject_ pHhciPayload_ =
-  HTTPSHealthChecksInsert'
-    { _hhciRequestId = Nothing
-    , _hhciProject = pHhciProject_
-    , _hhciPayload = pHhciPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hhciRequestId :: Lens' HTTPSHealthChecksInsert (Maybe Text)
-hhciRequestId
-  = lens _hhciRequestId
-      (\ s a -> s{_hhciRequestId = a})
-
--- | Project ID for this request.
-hhciProject :: Lens' HTTPSHealthChecksInsert Text
-hhciProject
-  = lens _hhciProject (\ s a -> s{_hhciProject = a})
-
--- | Multipart request metadata.
-hhciPayload :: Lens' HTTPSHealthChecksInsert HTTPSHealthCheck
-hhciPayload
-  = lens _hhciPayload (\ s a -> s{_hhciPayload = a})
-
-instance GoogleRequest HTTPSHealthChecksInsert where
-        type Rs HTTPSHealthChecksInsert = Operation
-        type Scopes HTTPSHealthChecksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPSHealthChecksInsert'{..}
-          = go _hhciProject _hhciRequestId (Just AltJSON)
-              _hhciPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/List.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.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)
---
--- Retrieves the list of HttpsHealthCheck resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.list@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.List
-    (
-    -- * REST Resource
-      HTTPSHealthChecksListResource
-
-    -- * Creating a Request
-    , httpsHealthChecksList
-    , HTTPSHealthChecksList
-
-    -- * Request Lenses
-    , hhclOrderBy
-    , hhclProject
-    , hhclFilter
-    , hhclPageToken
-    , hhclMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.list@ method which the
--- 'HTTPSHealthChecksList' request conforms to.
-type HTTPSHealthChecksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] HTTPSHealthCheckList
-
--- | Retrieves the list of HttpsHealthCheck resources available to the
--- specified project.
---
--- /See:/ 'httpsHealthChecksList' smart constructor.
-data HTTPSHealthChecksList =
-  HTTPSHealthChecksList'
-    { _hhclOrderBy    :: !(Maybe Text)
-    , _hhclProject    :: !Text
-    , _hhclFilter     :: !(Maybe Text)
-    , _hhclPageToken  :: !(Maybe Text)
-    , _hhclMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhclOrderBy'
---
--- * 'hhclProject'
---
--- * 'hhclFilter'
---
--- * 'hhclPageToken'
---
--- * 'hhclMaxResults'
-httpsHealthChecksList
-    :: Text -- ^ 'hhclProject'
-    -> HTTPSHealthChecksList
-httpsHealthChecksList pHhclProject_ =
-  HTTPSHealthChecksList'
-    { _hhclOrderBy = Nothing
-    , _hhclProject = pHhclProject_
-    , _hhclFilter = Nothing
-    , _hhclPageToken = Nothing
-    , _hhclMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-hhclOrderBy :: Lens' HTTPSHealthChecksList (Maybe Text)
-hhclOrderBy
-  = lens _hhclOrderBy (\ s a -> s{_hhclOrderBy = a})
-
--- | Project ID for this request.
-hhclProject :: Lens' HTTPSHealthChecksList Text
-hhclProject
-  = lens _hhclProject (\ s a -> s{_hhclProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-hhclFilter :: Lens' HTTPSHealthChecksList (Maybe Text)
-hhclFilter
-  = lens _hhclFilter (\ s a -> s{_hhclFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-hhclPageToken :: Lens' HTTPSHealthChecksList (Maybe Text)
-hhclPageToken
-  = lens _hhclPageToken
-      (\ s a -> s{_hhclPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-hhclMaxResults :: Lens' HTTPSHealthChecksList Word32
-hhclMaxResults
-  = lens _hhclMaxResults
-      (\ s a -> s{_hhclMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest HTTPSHealthChecksList where
-        type Rs HTTPSHealthChecksList = HTTPSHealthCheckList
-        type Scopes HTTPSHealthChecksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HTTPSHealthChecksList'{..}
-          = go _hhclProject _hhclOrderBy _hhclFilter
-              _hhclPageToken
-              (Just _hhclMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Patch.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Patch.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.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 a HttpsHealthCheck resource in the specified project using the
--- data included in the request. This method supports PATCH semantics and
--- uses the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.patch@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.Patch
-    (
-    -- * REST Resource
-      HTTPSHealthChecksPatchResource
-
-    -- * Creating a Request
-    , httpsHealthChecksPatch
-    , HTTPSHealthChecksPatch
-
-    -- * Request Lenses
-    , hhcpRequestId
-    , hhcpProject
-    , hhcpPayload
-    , hhcpHTTPSHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.patch@ method which the
--- 'HTTPSHealthChecksPatch' request conforms to.
-type HTTPSHealthChecksPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 Capture "httpsHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HTTPSHealthCheck :>
-                         Patch '[JSON] Operation
-
--- | Updates a HttpsHealthCheck resource in the specified project using the
--- data included in the request. This method supports PATCH semantics and
--- uses the JSON merge patch format and processing rules.
---
--- /See:/ 'httpsHealthChecksPatch' smart constructor.
-data HTTPSHealthChecksPatch =
-  HTTPSHealthChecksPatch'
-    { _hhcpRequestId        :: !(Maybe Text)
-    , _hhcpProject          :: !Text
-    , _hhcpPayload          :: !HTTPSHealthCheck
-    , _hhcpHTTPSHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhcpRequestId'
---
--- * 'hhcpProject'
---
--- * 'hhcpPayload'
---
--- * 'hhcpHTTPSHealthCheck'
-httpsHealthChecksPatch
-    :: Text -- ^ 'hhcpProject'
-    -> HTTPSHealthCheck -- ^ 'hhcpPayload'
-    -> Text -- ^ 'hhcpHTTPSHealthCheck'
-    -> HTTPSHealthChecksPatch
-httpsHealthChecksPatch pHhcpProject_ pHhcpPayload_ pHhcpHTTPSHealthCheck_ =
-  HTTPSHealthChecksPatch'
-    { _hhcpRequestId = Nothing
-    , _hhcpProject = pHhcpProject_
-    , _hhcpPayload = pHhcpPayload_
-    , _hhcpHTTPSHealthCheck = pHhcpHTTPSHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hhcpRequestId :: Lens' HTTPSHealthChecksPatch (Maybe Text)
-hhcpRequestId
-  = lens _hhcpRequestId
-      (\ s a -> s{_hhcpRequestId = a})
-
--- | Project ID for this request.
-hhcpProject :: Lens' HTTPSHealthChecksPatch Text
-hhcpProject
-  = lens _hhcpProject (\ s a -> s{_hhcpProject = a})
-
--- | Multipart request metadata.
-hhcpPayload :: Lens' HTTPSHealthChecksPatch HTTPSHealthCheck
-hhcpPayload
-  = lens _hhcpPayload (\ s a -> s{_hhcpPayload = a})
-
--- | Name of the HttpsHealthCheck resource to patch.
-hhcpHTTPSHealthCheck :: Lens' HTTPSHealthChecksPatch Text
-hhcpHTTPSHealthCheck
-  = lens _hhcpHTTPSHealthCheck
-      (\ s a -> s{_hhcpHTTPSHealthCheck = a})
-
-instance GoogleRequest HTTPSHealthChecksPatch where
-        type Rs HTTPSHealthChecksPatch = Operation
-        type Scopes HTTPSHealthChecksPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPSHealthChecksPatch'{..}
-          = go _hhcpProject _hhcpHTTPSHealthCheck
-              _hhcpRequestId
-              (Just AltJSON)
-              _hhcpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Update.hs b/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HTTPSHealthChecks/Update.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HTTPSHealthChecks.Update
--- 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 a HttpsHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.httpsHealthChecks.update@.
-module Network.Google.Resource.Compute.HTTPSHealthChecks.Update
-    (
-    -- * REST Resource
-      HTTPSHealthChecksUpdateResource
-
-    -- * Creating a Request
-    , httpsHealthChecksUpdate
-    , HTTPSHealthChecksUpdate
-
-    -- * Request Lenses
-    , hhcuRequestId
-    , hhcuProject
-    , hhcuPayload
-    , hhcuHTTPSHealthCheck
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.httpsHealthChecks.update@ method which the
--- 'HTTPSHealthChecksUpdate' request conforms to.
-type HTTPSHealthChecksUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "httpsHealthChecks" :>
-                 Capture "httpsHealthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HTTPSHealthCheck :>
-                         Put '[JSON] Operation
-
--- | Updates a HttpsHealthCheck resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'httpsHealthChecksUpdate' smart constructor.
-data HTTPSHealthChecksUpdate =
-  HTTPSHealthChecksUpdate'
-    { _hhcuRequestId        :: !(Maybe Text)
-    , _hhcuProject          :: !Text
-    , _hhcuPayload          :: !HTTPSHealthCheck
-    , _hhcuHTTPSHealthCheck :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HTTPSHealthChecksUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hhcuRequestId'
---
--- * 'hhcuProject'
---
--- * 'hhcuPayload'
---
--- * 'hhcuHTTPSHealthCheck'
-httpsHealthChecksUpdate
-    :: Text -- ^ 'hhcuProject'
-    -> HTTPSHealthCheck -- ^ 'hhcuPayload'
-    -> Text -- ^ 'hhcuHTTPSHealthCheck'
-    -> HTTPSHealthChecksUpdate
-httpsHealthChecksUpdate pHhcuProject_ pHhcuPayload_ pHhcuHTTPSHealthCheck_ =
-  HTTPSHealthChecksUpdate'
-    { _hhcuRequestId = Nothing
-    , _hhcuProject = pHhcuProject_
-    , _hhcuPayload = pHhcuPayload_
-    , _hhcuHTTPSHealthCheck = pHhcuHTTPSHealthCheck_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hhcuRequestId :: Lens' HTTPSHealthChecksUpdate (Maybe Text)
-hhcuRequestId
-  = lens _hhcuRequestId
-      (\ s a -> s{_hhcuRequestId = a})
-
--- | Project ID for this request.
-hhcuProject :: Lens' HTTPSHealthChecksUpdate Text
-hhcuProject
-  = lens _hhcuProject (\ s a -> s{_hhcuProject = a})
-
--- | Multipart request metadata.
-hhcuPayload :: Lens' HTTPSHealthChecksUpdate HTTPSHealthCheck
-hhcuPayload
-  = lens _hhcuPayload (\ s a -> s{_hhcuPayload = a})
-
--- | Name of the HttpsHealthCheck resource to update.
-hhcuHTTPSHealthCheck :: Lens' HTTPSHealthChecksUpdate Text
-hhcuHTTPSHealthCheck
-  = lens _hhcuHTTPSHealthCheck
-      (\ s a -> s{_hhcuHTTPSHealthCheck = a})
-
-instance GoogleRequest HTTPSHealthChecksUpdate where
-        type Rs HTTPSHealthChecksUpdate = Operation
-        type Scopes HTTPSHealthChecksUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HTTPSHealthChecksUpdate'{..}
-          = go _hhcuProject _hhcuHTTPSHealthCheck
-              _hhcuRequestId
-              (Just AltJSON)
-              _hhcuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HTTPSHealthChecksUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/Delete.hs b/gen/Network/Google/Resource/Compute/HealthChecks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/Delete.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.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 HealthCheck resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.delete@.
-module Network.Google.Resource.Compute.HealthChecks.Delete
-    (
-    -- * REST Resource
-      HealthChecksDeleteResource
-
-    -- * Creating a Request
-    , healthChecksDelete
-    , HealthChecksDelete
-
-    -- * Request Lenses
-    , hcdRequestId
-    , hcdHealthCheck
-    , hcdProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.delete@ method which the
--- 'HealthChecksDelete' request conforms to.
-type HealthChecksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 Capture "healthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified HealthCheck resource.
---
--- /See:/ 'healthChecksDelete' smart constructor.
-data HealthChecksDelete =
-  HealthChecksDelete'
-    { _hcdRequestId   :: !(Maybe Text)
-    , _hcdHealthCheck :: !Text
-    , _hcdProject     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcdRequestId'
---
--- * 'hcdHealthCheck'
---
--- * 'hcdProject'
-healthChecksDelete
-    :: Text -- ^ 'hcdHealthCheck'
-    -> Text -- ^ 'hcdProject'
-    -> HealthChecksDelete
-healthChecksDelete pHcdHealthCheck_ pHcdProject_ =
-  HealthChecksDelete'
-    { _hcdRequestId = Nothing
-    , _hcdHealthCheck = pHcdHealthCheck_
-    , _hcdProject = pHcdProject_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hcdRequestId :: Lens' HealthChecksDelete (Maybe Text)
-hcdRequestId
-  = lens _hcdRequestId (\ s a -> s{_hcdRequestId = a})
-
--- | Name of the HealthCheck resource to delete.
-hcdHealthCheck :: Lens' HealthChecksDelete Text
-hcdHealthCheck
-  = lens _hcdHealthCheck
-      (\ s a -> s{_hcdHealthCheck = a})
-
--- | Project ID for this request.
-hcdProject :: Lens' HealthChecksDelete Text
-hcdProject
-  = lens _hcdProject (\ s a -> s{_hcdProject = a})
-
-instance GoogleRequest HealthChecksDelete where
-        type Rs HealthChecksDelete = Operation
-        type Scopes HealthChecksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HealthChecksDelete'{..}
-          = go _hcdProject _hcdHealthCheck _hcdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/Get.hs b/gen/Network/Google/Resource/Compute/HealthChecks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/Get.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.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)
---
--- Returns the specified HealthCheck resource. Gets a list of available
--- health checks by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.get@.
-module Network.Google.Resource.Compute.HealthChecks.Get
-    (
-    -- * REST Resource
-      HealthChecksGetResource
-
-    -- * Creating a Request
-    , healthChecksGet
-    , HealthChecksGet
-
-    -- * Request Lenses
-    , hcgHealthCheck
-    , hcgProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.get@ method which the
--- 'HealthChecksGet' request conforms to.
-type HealthChecksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 Capture "healthCheck" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] HealthCheck
-
--- | Returns the specified HealthCheck resource. Gets a list of available
--- health checks by making a list() request.
---
--- /See:/ 'healthChecksGet' smart constructor.
-data HealthChecksGet =
-  HealthChecksGet'
-    { _hcgHealthCheck :: !Text
-    , _hcgProject     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcgHealthCheck'
---
--- * 'hcgProject'
-healthChecksGet
-    :: Text -- ^ 'hcgHealthCheck'
-    -> Text -- ^ 'hcgProject'
-    -> HealthChecksGet
-healthChecksGet pHcgHealthCheck_ pHcgProject_ =
-  HealthChecksGet'
-    {_hcgHealthCheck = pHcgHealthCheck_, _hcgProject = pHcgProject_}
-
-
--- | Name of the HealthCheck resource to return.
-hcgHealthCheck :: Lens' HealthChecksGet Text
-hcgHealthCheck
-  = lens _hcgHealthCheck
-      (\ s a -> s{_hcgHealthCheck = a})
-
--- | Project ID for this request.
-hcgProject :: Lens' HealthChecksGet Text
-hcgProject
-  = lens _hcgProject (\ s a -> s{_hcgProject = a})
-
-instance GoogleRequest HealthChecksGet where
-        type Rs HealthChecksGet = HealthCheck
-        type Scopes HealthChecksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HealthChecksGet'{..}
-          = go _hcgProject _hcgHealthCheck (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/Insert.hs b/gen/Network/Google/Resource/Compute/HealthChecks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/Insert.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.Insert
--- 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 HealthCheck resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.insert@.
-module Network.Google.Resource.Compute.HealthChecks.Insert
-    (
-    -- * REST Resource
-      HealthChecksInsertResource
-
-    -- * Creating a Request
-    , healthChecksInsert
-    , HealthChecksInsert
-
-    -- * Request Lenses
-    , hciRequestId
-    , hciProject
-    , hciPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.insert@ method which the
--- 'HealthChecksInsert' request conforms to.
-type HealthChecksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] HealthCheck :> Post '[JSON] Operation
-
--- | Creates a HealthCheck resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'healthChecksInsert' smart constructor.
-data HealthChecksInsert =
-  HealthChecksInsert'
-    { _hciRequestId :: !(Maybe Text)
-    , _hciProject   :: !Text
-    , _hciPayload   :: !HealthCheck
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hciRequestId'
---
--- * 'hciProject'
---
--- * 'hciPayload'
-healthChecksInsert
-    :: Text -- ^ 'hciProject'
-    -> HealthCheck -- ^ 'hciPayload'
-    -> HealthChecksInsert
-healthChecksInsert pHciProject_ pHciPayload_ =
-  HealthChecksInsert'
-    { _hciRequestId = Nothing
-    , _hciProject = pHciProject_
-    , _hciPayload = pHciPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hciRequestId :: Lens' HealthChecksInsert (Maybe Text)
-hciRequestId
-  = lens _hciRequestId (\ s a -> s{_hciRequestId = a})
-
--- | Project ID for this request.
-hciProject :: Lens' HealthChecksInsert Text
-hciProject
-  = lens _hciProject (\ s a -> s{_hciProject = a})
-
--- | Multipart request metadata.
-hciPayload :: Lens' HealthChecksInsert HealthCheck
-hciPayload
-  = lens _hciPayload (\ s a -> s{_hciPayload = a})
-
-instance GoogleRequest HealthChecksInsert where
-        type Rs HealthChecksInsert = Operation
-        type Scopes HealthChecksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HealthChecksInsert'{..}
-          = go _hciProject _hciRequestId (Just AltJSON)
-              _hciPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/List.hs b/gen/Network/Google/Resource/Compute/HealthChecks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.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)
---
--- Retrieves the list of HealthCheck resources available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.list@.
-module Network.Google.Resource.Compute.HealthChecks.List
-    (
-    -- * REST Resource
-      HealthChecksListResource
-
-    -- * Creating a Request
-    , healthChecksList
-    , HealthChecksList
-
-    -- * Request Lenses
-    , hclOrderBy
-    , hclProject
-    , hclFilter
-    , hclPageToken
-    , hclMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.list@ method which the
--- 'HealthChecksList' request conforms to.
-type HealthChecksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] HealthCheckList
-
--- | Retrieves the list of HealthCheck resources available to the specified
--- project.
---
--- /See:/ 'healthChecksList' smart constructor.
-data HealthChecksList =
-  HealthChecksList'
-    { _hclOrderBy    :: !(Maybe Text)
-    , _hclProject    :: !Text
-    , _hclFilter     :: !(Maybe Text)
-    , _hclPageToken  :: !(Maybe Text)
-    , _hclMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hclOrderBy'
---
--- * 'hclProject'
---
--- * 'hclFilter'
---
--- * 'hclPageToken'
---
--- * 'hclMaxResults'
-healthChecksList
-    :: Text -- ^ 'hclProject'
-    -> HealthChecksList
-healthChecksList pHclProject_ =
-  HealthChecksList'
-    { _hclOrderBy = Nothing
-    , _hclProject = pHclProject_
-    , _hclFilter = Nothing
-    , _hclPageToken = Nothing
-    , _hclMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-hclOrderBy :: Lens' HealthChecksList (Maybe Text)
-hclOrderBy
-  = lens _hclOrderBy (\ s a -> s{_hclOrderBy = a})
-
--- | Project ID for this request.
-hclProject :: Lens' HealthChecksList Text
-hclProject
-  = lens _hclProject (\ s a -> s{_hclProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-hclFilter :: Lens' HealthChecksList (Maybe Text)
-hclFilter
-  = lens _hclFilter (\ s a -> s{_hclFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-hclPageToken :: Lens' HealthChecksList (Maybe Text)
-hclPageToken
-  = lens _hclPageToken (\ s a -> s{_hclPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-hclMaxResults :: Lens' HealthChecksList Word32
-hclMaxResults
-  = lens _hclMaxResults
-      (\ s a -> s{_hclMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest HealthChecksList where
-        type Rs HealthChecksList = HealthCheckList
-        type Scopes HealthChecksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient HealthChecksList'{..}
-          = go _hclProject _hclOrderBy _hclFilter _hclPageToken
-              (Just _hclMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/Patch.hs b/gen/Network/Google/Resource/Compute/HealthChecks/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/Patch.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.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 a HealthCheck resource in the specified project using the data
--- included in the request. This method supports PATCH semantics and uses
--- the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.patch@.
-module Network.Google.Resource.Compute.HealthChecks.Patch
-    (
-    -- * REST Resource
-      HealthChecksPatchResource
-
-    -- * Creating a Request
-    , healthChecksPatch
-    , HealthChecksPatch
-
-    -- * Request Lenses
-    , hcpRequestId
-    , hcpHealthCheck
-    , hcpProject
-    , hcpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.patch@ method which the
--- 'HealthChecksPatch' request conforms to.
-type HealthChecksPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 Capture "healthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HealthCheck :>
-                         Patch '[JSON] Operation
-
--- | Updates a HealthCheck resource in the specified project using the data
--- included in the request. This method supports PATCH semantics and uses
--- the JSON merge patch format and processing rules.
---
--- /See:/ 'healthChecksPatch' smart constructor.
-data HealthChecksPatch =
-  HealthChecksPatch'
-    { _hcpRequestId   :: !(Maybe Text)
-    , _hcpHealthCheck :: !Text
-    , _hcpProject     :: !Text
-    , _hcpPayload     :: !HealthCheck
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcpRequestId'
---
--- * 'hcpHealthCheck'
---
--- * 'hcpProject'
---
--- * 'hcpPayload'
-healthChecksPatch
-    :: Text -- ^ 'hcpHealthCheck'
-    -> Text -- ^ 'hcpProject'
-    -> HealthCheck -- ^ 'hcpPayload'
-    -> HealthChecksPatch
-healthChecksPatch pHcpHealthCheck_ pHcpProject_ pHcpPayload_ =
-  HealthChecksPatch'
-    { _hcpRequestId = Nothing
-    , _hcpHealthCheck = pHcpHealthCheck_
-    , _hcpProject = pHcpProject_
-    , _hcpPayload = pHcpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hcpRequestId :: Lens' HealthChecksPatch (Maybe Text)
-hcpRequestId
-  = lens _hcpRequestId (\ s a -> s{_hcpRequestId = a})
-
--- | Name of the HealthCheck resource to patch.
-hcpHealthCheck :: Lens' HealthChecksPatch Text
-hcpHealthCheck
-  = lens _hcpHealthCheck
-      (\ s a -> s{_hcpHealthCheck = a})
-
--- | Project ID for this request.
-hcpProject :: Lens' HealthChecksPatch Text
-hcpProject
-  = lens _hcpProject (\ s a -> s{_hcpProject = a})
-
--- | Multipart request metadata.
-hcpPayload :: Lens' HealthChecksPatch HealthCheck
-hcpPayload
-  = lens _hcpPayload (\ s a -> s{_hcpPayload = a})
-
-instance GoogleRequest HealthChecksPatch where
-        type Rs HealthChecksPatch = Operation
-        type Scopes HealthChecksPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HealthChecksPatch'{..}
-          = go _hcpProject _hcpHealthCheck _hcpRequestId
-              (Just AltJSON)
-              _hcpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/HealthChecks/Update.hs b/gen/Network/Google/Resource/Compute/HealthChecks/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/HealthChecks/Update.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.HealthChecks.Update
--- 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 a HealthCheck resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.healthChecks.update@.
-module Network.Google.Resource.Compute.HealthChecks.Update
-    (
-    -- * REST Resource
-      HealthChecksUpdateResource
-
-    -- * Creating a Request
-    , healthChecksUpdate
-    , HealthChecksUpdate
-
-    -- * Request Lenses
-    , hcuRequestId
-    , hcuHealthCheck
-    , hcuProject
-    , hcuPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.healthChecks.update@ method which the
--- 'HealthChecksUpdate' request conforms to.
-type HealthChecksUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "healthChecks" :>
-                 Capture "healthCheck" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] HealthCheck :> Put '[JSON] Operation
-
--- | Updates a HealthCheck resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'healthChecksUpdate' smart constructor.
-data HealthChecksUpdate =
-  HealthChecksUpdate'
-    { _hcuRequestId   :: !(Maybe Text)
-    , _hcuHealthCheck :: !Text
-    , _hcuProject     :: !Text
-    , _hcuPayload     :: !HealthCheck
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'HealthChecksUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'hcuRequestId'
---
--- * 'hcuHealthCheck'
---
--- * 'hcuProject'
---
--- * 'hcuPayload'
-healthChecksUpdate
-    :: Text -- ^ 'hcuHealthCheck'
-    -> Text -- ^ 'hcuProject'
-    -> HealthCheck -- ^ 'hcuPayload'
-    -> HealthChecksUpdate
-healthChecksUpdate pHcuHealthCheck_ pHcuProject_ pHcuPayload_ =
-  HealthChecksUpdate'
-    { _hcuRequestId = Nothing
-    , _hcuHealthCheck = pHcuHealthCheck_
-    , _hcuProject = pHcuProject_
-    , _hcuPayload = pHcuPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-hcuRequestId :: Lens' HealthChecksUpdate (Maybe Text)
-hcuRequestId
-  = lens _hcuRequestId (\ s a -> s{_hcuRequestId = a})
-
--- | Name of the HealthCheck resource to update.
-hcuHealthCheck :: Lens' HealthChecksUpdate Text
-hcuHealthCheck
-  = lens _hcuHealthCheck
-      (\ s a -> s{_hcuHealthCheck = a})
-
--- | Project ID for this request.
-hcuProject :: Lens' HealthChecksUpdate Text
-hcuProject
-  = lens _hcuProject (\ s a -> s{_hcuProject = a})
-
--- | Multipart request metadata.
-hcuPayload :: Lens' HealthChecksUpdate HealthCheck
-hcuPayload
-  = lens _hcuPayload (\ s a -> s{_hcuPayload = a})
-
-instance GoogleRequest HealthChecksUpdate where
-        type Rs HealthChecksUpdate = Operation
-        type Scopes HealthChecksUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient HealthChecksUpdate'{..}
-          = go _hcuProject _hcuHealthCheck _hcuRequestId
-              (Just AltJSON)
-              _hcuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy HealthChecksUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/Delete.hs b/gen/Network/Google/Resource/Compute/Images/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/Delete.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.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 image.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.delete@.
-module Network.Google.Resource.Compute.Images.Delete
-    (
-    -- * REST Resource
-      ImagesDeleteResource
-
-    -- * Creating a Request
-    , imagesDelete
-    , ImagesDelete
-
-    -- * Request Lenses
-    , iddRequestId
-    , iddImage
-    , iddProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.delete@ method which the
--- 'ImagesDelete' request conforms to.
-type ImagesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "image" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified image.
---
--- /See:/ 'imagesDelete' smart constructor.
-data ImagesDelete =
-  ImagesDelete'
-    { _iddRequestId :: !(Maybe Text)
-    , _iddImage     :: !Text
-    , _iddProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iddRequestId'
---
--- * 'iddImage'
---
--- * 'iddProject'
-imagesDelete
-    :: Text -- ^ 'iddImage'
-    -> Text -- ^ 'iddProject'
-    -> ImagesDelete
-imagesDelete pIddImage_ pIddProject_ =
-  ImagesDelete'
-    { _iddRequestId = Nothing
-    , _iddImage = pIddImage_
-    , _iddProject = pIddProject_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iddRequestId :: Lens' ImagesDelete (Maybe Text)
-iddRequestId
-  = lens _iddRequestId (\ s a -> s{_iddRequestId = a})
-
--- | Name of the image resource to delete.
-iddImage :: Lens' ImagesDelete Text
-iddImage = lens _iddImage (\ s a -> s{_iddImage = a})
-
--- | Project ID for this request.
-iddProject :: Lens' ImagesDelete Text
-iddProject
-  = lens _iddProject (\ s a -> s{_iddProject = a})
-
-instance GoogleRequest ImagesDelete where
-        type Rs ImagesDelete = Operation
-        type Scopes ImagesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ImagesDelete'{..}
-          = go _iddProject _iddImage _iddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy ImagesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/Deprecate.hs b/gen/Network/Google/Resource/Compute/Images/Deprecate.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/Deprecate.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.Deprecate
--- 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)
---
--- Sets the deprecation status of an image. If an empty request body is
--- given, clears the deprecation status instead.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.deprecate@.
-module Network.Google.Resource.Compute.Images.Deprecate
-    (
-    -- * REST Resource
-      ImagesDeprecateResource
-
-    -- * Creating a Request
-    , imagesDeprecate
-    , ImagesDeprecate
-
-    -- * Request Lenses
-    , id1RequestId
-    , id1Image
-    , id1Project
-    , id1Payload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.deprecate@ method which the
--- 'ImagesDeprecate' request conforms to.
-type ImagesDeprecateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "image" Text :>
-                   "deprecate" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] DeprecationStatus :>
-                           Post '[JSON] Operation
-
--- | Sets the deprecation status of an image. If an empty request body is
--- given, clears the deprecation status instead.
---
--- /See:/ 'imagesDeprecate' smart constructor.
-data ImagesDeprecate =
-  ImagesDeprecate'
-    { _id1RequestId :: !(Maybe Text)
-    , _id1Image     :: !Text
-    , _id1Project   :: !Text
-    , _id1Payload   :: !DeprecationStatus
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesDeprecate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'id1RequestId'
---
--- * 'id1Image'
---
--- * 'id1Project'
---
--- * 'id1Payload'
-imagesDeprecate
-    :: Text -- ^ 'id1Image'
-    -> Text -- ^ 'id1Project'
-    -> DeprecationStatus -- ^ 'id1Payload'
-    -> ImagesDeprecate
-imagesDeprecate pId1Image_ pId1Project_ pId1Payload_ =
-  ImagesDeprecate'
-    { _id1RequestId = Nothing
-    , _id1Image = pId1Image_
-    , _id1Project = pId1Project_
-    , _id1Payload = pId1Payload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-id1RequestId :: Lens' ImagesDeprecate (Maybe Text)
-id1RequestId
-  = lens _id1RequestId (\ s a -> s{_id1RequestId = a})
-
--- | Image name.
-id1Image :: Lens' ImagesDeprecate Text
-id1Image = lens _id1Image (\ s a -> s{_id1Image = a})
-
--- | Project ID for this request.
-id1Project :: Lens' ImagesDeprecate Text
-id1Project
-  = lens _id1Project (\ s a -> s{_id1Project = a})
-
--- | Multipart request metadata.
-id1Payload :: Lens' ImagesDeprecate DeprecationStatus
-id1Payload
-  = lens _id1Payload (\ s a -> s{_id1Payload = a})
-
-instance GoogleRequest ImagesDeprecate where
-        type Rs ImagesDeprecate = Operation
-        type Scopes ImagesDeprecate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ImagesDeprecate'{..}
-          = go _id1Project _id1Image _id1RequestId
-              (Just AltJSON)
-              _id1Payload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesDeprecateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/Get.hs b/gen/Network/Google/Resource/Compute/Images/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/Get.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.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)
---
--- Returns the specified image. Gets a list of available images by making a
--- list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.get@.
-module Network.Google.Resource.Compute.Images.Get
-    (
-    -- * REST Resource
-      ImagesGetResource
-
-    -- * Creating a Request
-    , imagesGet
-    , ImagesGet
-
-    -- * Request Lenses
-    , imaImage
-    , imaProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.get@ method which the
--- 'ImagesGet' request conforms to.
-type ImagesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "image" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Image
-
--- | Returns the specified image. Gets a list of available images by making a
--- list() request.
---
--- /See:/ 'imagesGet' smart constructor.
-data ImagesGet =
-  ImagesGet'
-    { _imaImage   :: !Text
-    , _imaProject :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'imaImage'
---
--- * 'imaProject'
-imagesGet
-    :: Text -- ^ 'imaImage'
-    -> Text -- ^ 'imaProject'
-    -> ImagesGet
-imagesGet pImaImage_ pImaProject_ =
-  ImagesGet' {_imaImage = pImaImage_, _imaProject = pImaProject_}
-
-
--- | Name of the image resource to return.
-imaImage :: Lens' ImagesGet Text
-imaImage = lens _imaImage (\ s a -> s{_imaImage = a})
-
--- | Project ID for this request.
-imaProject :: Lens' ImagesGet Text
-imaProject
-  = lens _imaProject (\ s a -> s{_imaProject = a})
-
-instance GoogleRequest ImagesGet where
-        type Rs ImagesGet = Image
-        type Scopes ImagesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ImagesGet'{..}
-          = go _imaProject _imaImage (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy ImagesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/GetFromFamily.hs b/gen/Network/Google/Resource/Compute/Images/GetFromFamily.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/GetFromFamily.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.GetFromFamily
--- 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)
---
--- Returns the latest image that is part of an image family and is not
--- deprecated.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.getFromFamily@.
-module Network.Google.Resource.Compute.Images.GetFromFamily
-    (
-    -- * REST Resource
-      ImagesGetFromFamilyResource
-
-    -- * Creating a Request
-    , imagesGetFromFamily
-    , ImagesGetFromFamily
-
-    -- * Request Lenses
-    , igffProject
-    , igffFamily
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.getFromFamily@ method which the
--- 'ImagesGetFromFamily' request conforms to.
-type ImagesGetFromFamilyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 "family" :>
-                   Capture "family" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Image
-
--- | Returns the latest image that is part of an image family and is not
--- deprecated.
---
--- /See:/ 'imagesGetFromFamily' smart constructor.
-data ImagesGetFromFamily =
-  ImagesGetFromFamily'
-    { _igffProject :: !Text
-    , _igffFamily  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesGetFromFamily' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igffProject'
---
--- * 'igffFamily'
-imagesGetFromFamily
-    :: Text -- ^ 'igffProject'
-    -> Text -- ^ 'igffFamily'
-    -> ImagesGetFromFamily
-imagesGetFromFamily pIgffProject_ pIgffFamily_ =
-  ImagesGetFromFamily'
-    {_igffProject = pIgffProject_, _igffFamily = pIgffFamily_}
-
-
--- | Project ID for this request.
-igffProject :: Lens' ImagesGetFromFamily Text
-igffProject
-  = lens _igffProject (\ s a -> s{_igffProject = a})
-
--- | Name of the image family to search for.
-igffFamily :: Lens' ImagesGetFromFamily Text
-igffFamily
-  = lens _igffFamily (\ s a -> s{_igffFamily = a})
-
-instance GoogleRequest ImagesGetFromFamily where
-        type Rs ImagesGetFromFamily = Image
-        type Scopes ImagesGetFromFamily =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ImagesGetFromFamily'{..}
-          = go _igffProject _igffFamily (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesGetFromFamilyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Images/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/GetIAMPolicy.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.getIamPolicy@.
-module Network.Google.Resource.Compute.Images.GetIAMPolicy
-    (
-    -- * REST Resource
-      ImagesGetIAMPolicyResource
-
-    -- * Creating a Request
-    , imagesGetIAMPolicy
-    , ImagesGetIAMPolicy
-
-    -- * Request Lenses
-    , igipProject
-    , igipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.getIamPolicy@ method which the
--- 'ImagesGetIAMPolicy' request conforms to.
-type ImagesGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "resource" Text :>
-                   "getIamPolicy" :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'imagesGetIAMPolicy' smart constructor.
-data ImagesGetIAMPolicy =
-  ImagesGetIAMPolicy'
-    { _igipProject  :: !Text
-    , _igipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igipProject'
---
--- * 'igipResource'
-imagesGetIAMPolicy
-    :: Text -- ^ 'igipProject'
-    -> Text -- ^ 'igipResource'
-    -> ImagesGetIAMPolicy
-imagesGetIAMPolicy pIgipProject_ pIgipResource_ =
-  ImagesGetIAMPolicy'
-    {_igipProject = pIgipProject_, _igipResource = pIgipResource_}
-
-
--- | Project ID for this request.
-igipProject :: Lens' ImagesGetIAMPolicy Text
-igipProject
-  = lens _igipProject (\ s a -> s{_igipProject = a})
-
--- | Name or id of the resource for this request.
-igipResource :: Lens' ImagesGetIAMPolicy Text
-igipResource
-  = lens _igipResource (\ s a -> s{_igipResource = a})
-
-instance GoogleRequest ImagesGetIAMPolicy where
-        type Rs ImagesGetIAMPolicy = Policy
-        type Scopes ImagesGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ImagesGetIAMPolicy'{..}
-          = go _igipProject _igipResource (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/Insert.hs b/gen/Network/Google/Resource/Compute/Images/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/Insert.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.Insert
--- 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 an image in the specified project using the data included in the
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.insert@.
-module Network.Google.Resource.Compute.Images.Insert
-    (
-    -- * REST Resource
-      ImagesInsertResource
-
-    -- * Creating a Request
-    , imagesInsert
-    , ImagesInsert
-
-    -- * Request Lenses
-    , iiRequestId
-    , iiProject
-    , iiPayload
-    , iiForceCreate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.insert@ method which the
--- 'ImagesInsert' request conforms to.
-type ImagesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "forceCreate" Bool :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Image :> Post '[JSON] Operation
-
--- | Creates an image in the specified project using the data included in the
--- request.
---
--- /See:/ 'imagesInsert' smart constructor.
-data ImagesInsert =
-  ImagesInsert'
-    { _iiRequestId   :: !(Maybe Text)
-    , _iiProject     :: !Text
-    , _iiPayload     :: !Image
-    , _iiForceCreate :: !(Maybe Bool)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iiRequestId'
---
--- * 'iiProject'
---
--- * 'iiPayload'
---
--- * 'iiForceCreate'
-imagesInsert
-    :: Text -- ^ 'iiProject'
-    -> Image -- ^ 'iiPayload'
-    -> ImagesInsert
-imagesInsert pIiProject_ pIiPayload_ =
-  ImagesInsert'
-    { _iiRequestId = Nothing
-    , _iiProject = pIiProject_
-    , _iiPayload = pIiPayload_
-    , _iiForceCreate = Nothing
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iiRequestId :: Lens' ImagesInsert (Maybe Text)
-iiRequestId
-  = lens _iiRequestId (\ s a -> s{_iiRequestId = a})
-
--- | Project ID for this request.
-iiProject :: Lens' ImagesInsert Text
-iiProject
-  = lens _iiProject (\ s a -> s{_iiProject = a})
-
--- | Multipart request metadata.
-iiPayload :: Lens' ImagesInsert Image
-iiPayload
-  = lens _iiPayload (\ s a -> s{_iiPayload = a})
-
--- | Force image creation if true.
-iiForceCreate :: Lens' ImagesInsert (Maybe Bool)
-iiForceCreate
-  = lens _iiForceCreate
-      (\ s a -> s{_iiForceCreate = a})
-
-instance GoogleRequest ImagesInsert where
-        type Rs ImagesInsert = Operation
-        type Scopes ImagesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/devstorage.full_control",
-               "https://www.googleapis.com/auth/devstorage.read_only",
-               "https://www.googleapis.com/auth/devstorage.read_write"]
-        requestClient ImagesInsert'{..}
-          = go _iiProject _iiRequestId _iiForceCreate
-              (Just AltJSON)
-              _iiPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy ImagesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/List.hs b/gen/Network/Google/Resource/Compute/Images/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/List.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.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)
---
--- Retrieves the list of custom images available to the specified project.
--- Custom images are images you create that belong to your project. This
--- method does not get any images that belong to other projects, including
--- publicly-available images, like Debian 8. If you want to get a list of
--- publicly-available images, use this method to make a request to the
--- respective image project, such as debian-cloud or windows-cloud.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.list@.
-module Network.Google.Resource.Compute.Images.List
-    (
-    -- * REST Resource
-      ImagesListResource
-
-    -- * Creating a Request
-    , imagesList
-    , ImagesList
-
-    -- * Request Lenses
-    , imamOrderBy
-    , imamProject
-    , imamFilter
-    , imamPageToken
-    , imamMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.list@ method which the
--- 'ImagesList' request conforms to.
-type ImagesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] ImageList
-
--- | Retrieves the list of custom images available to the specified project.
--- Custom images are images you create that belong to your project. This
--- method does not get any images that belong to other projects, including
--- publicly-available images, like Debian 8. If you want to get a list of
--- publicly-available images, use this method to make a request to the
--- respective image project, such as debian-cloud or windows-cloud.
---
--- /See:/ 'imagesList' smart constructor.
-data ImagesList =
-  ImagesList'
-    { _imamOrderBy    :: !(Maybe Text)
-    , _imamProject    :: !Text
-    , _imamFilter     :: !(Maybe Text)
-    , _imamPageToken  :: !(Maybe Text)
-    , _imamMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'imamOrderBy'
---
--- * 'imamProject'
---
--- * 'imamFilter'
---
--- * 'imamPageToken'
---
--- * 'imamMaxResults'
-imagesList
-    :: Text -- ^ 'imamProject'
-    -> ImagesList
-imagesList pImamProject_ =
-  ImagesList'
-    { _imamOrderBy = Nothing
-    , _imamProject = pImamProject_
-    , _imamFilter = Nothing
-    , _imamPageToken = Nothing
-    , _imamMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-imamOrderBy :: Lens' ImagesList (Maybe Text)
-imamOrderBy
-  = lens _imamOrderBy (\ s a -> s{_imamOrderBy = a})
-
--- | Project ID for this request.
-imamProject :: Lens' ImagesList Text
-imamProject
-  = lens _imamProject (\ s a -> s{_imamProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-imamFilter :: Lens' ImagesList (Maybe Text)
-imamFilter
-  = lens _imamFilter (\ s a -> s{_imamFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-imamPageToken :: Lens' ImagesList (Maybe Text)
-imamPageToken
-  = lens _imamPageToken
-      (\ s a -> s{_imamPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-imamMaxResults :: Lens' ImagesList Word32
-imamMaxResults
-  = lens _imamMaxResults
-      (\ s a -> s{_imamMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ImagesList where
-        type Rs ImagesList = ImageList
-        type Scopes ImagesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ImagesList'{..}
-          = go _imamProject _imamOrderBy _imamFilter
-              _imamPageToken
-              (Just _imamMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy ImagesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Images/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/SetIAMPolicy.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.setIamPolicy@.
-module Network.Google.Resource.Compute.Images.SetIAMPolicy
-    (
-    -- * REST Resource
-      ImagesSetIAMPolicyResource
-
-    -- * Creating a Request
-    , imagesSetIAMPolicy
-    , ImagesSetIAMPolicy
-
-    -- * Request Lenses
-    , isiampProject
-    , isiampPayload
-    , isiampResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.setIamPolicy@ method which the
--- 'ImagesSetIAMPolicy' request conforms to.
-type ImagesSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "resource" Text :>
-                   "setIamPolicy" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetPolicyRequest :>
-                         Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'imagesSetIAMPolicy' smart constructor.
-data ImagesSetIAMPolicy =
-  ImagesSetIAMPolicy'
-    { _isiampProject  :: !Text
-    , _isiampPayload  :: !GlobalSetPolicyRequest
-    , _isiampResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isiampProject'
---
--- * 'isiampPayload'
---
--- * 'isiampResource'
-imagesSetIAMPolicy
-    :: Text -- ^ 'isiampProject'
-    -> GlobalSetPolicyRequest -- ^ 'isiampPayload'
-    -> Text -- ^ 'isiampResource'
-    -> ImagesSetIAMPolicy
-imagesSetIAMPolicy pIsiampProject_ pIsiampPayload_ pIsiampResource_ =
-  ImagesSetIAMPolicy'
-    { _isiampProject = pIsiampProject_
-    , _isiampPayload = pIsiampPayload_
-    , _isiampResource = pIsiampResource_
-    }
-
-
--- | Project ID for this request.
-isiampProject :: Lens' ImagesSetIAMPolicy Text
-isiampProject
-  = lens _isiampProject
-      (\ s a -> s{_isiampProject = a})
-
--- | Multipart request metadata.
-isiampPayload :: Lens' ImagesSetIAMPolicy GlobalSetPolicyRequest
-isiampPayload
-  = lens _isiampPayload
-      (\ s a -> s{_isiampPayload = a})
-
--- | Name or id of the resource for this request.
-isiampResource :: Lens' ImagesSetIAMPolicy Text
-isiampResource
-  = lens _isiampResource
-      (\ s a -> s{_isiampResource = a})
-
-instance GoogleRequest ImagesSetIAMPolicy where
-        type Rs ImagesSetIAMPolicy = Policy
-        type Scopes ImagesSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ImagesSetIAMPolicy'{..}
-          = go _isiampProject _isiampResource (Just AltJSON)
-              _isiampPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/SetLabels.hs b/gen/Network/Google/Resource/Compute/Images/SetLabels.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/SetLabels.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.SetLabels
--- 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)
---
--- Sets the labels on an image. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.setLabels@.
-module Network.Google.Resource.Compute.Images.SetLabels
-    (
-    -- * REST Resource
-      ImagesSetLabelsResource
-
-    -- * Creating a Request
-    , imagesSetLabels
-    , ImagesSetLabels
-
-    -- * Request Lenses
-    , islsProject
-    , islsPayload
-    , islsResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.setLabels@ method which the
--- 'ImagesSetLabels' request conforms to.
-type ImagesSetLabelsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "resource" Text :>
-                   "setLabels" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetLabelsRequest :>
-                         Post '[JSON] Operation
-
--- | Sets the labels on an image. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ 'imagesSetLabels' smart constructor.
-data ImagesSetLabels =
-  ImagesSetLabels'
-    { _islsProject  :: !Text
-    , _islsPayload  :: !GlobalSetLabelsRequest
-    , _islsResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesSetLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islsProject'
---
--- * 'islsPayload'
---
--- * 'islsResource'
-imagesSetLabels
-    :: Text -- ^ 'islsProject'
-    -> GlobalSetLabelsRequest -- ^ 'islsPayload'
-    -> Text -- ^ 'islsResource'
-    -> ImagesSetLabels
-imagesSetLabels pIslsProject_ pIslsPayload_ pIslsResource_ =
-  ImagesSetLabels'
-    { _islsProject = pIslsProject_
-    , _islsPayload = pIslsPayload_
-    , _islsResource = pIslsResource_
-    }
-
-
--- | Project ID for this request.
-islsProject :: Lens' ImagesSetLabels Text
-islsProject
-  = lens _islsProject (\ s a -> s{_islsProject = a})
-
--- | Multipart request metadata.
-islsPayload :: Lens' ImagesSetLabels GlobalSetLabelsRequest
-islsPayload
-  = lens _islsPayload (\ s a -> s{_islsPayload = a})
-
--- | Name or id of the resource for this request.
-islsResource :: Lens' ImagesSetLabels Text
-islsResource
-  = lens _islsResource (\ s a -> s{_islsResource = a})
-
-instance GoogleRequest ImagesSetLabels where
-        type Rs ImagesSetLabels = Operation
-        type Scopes ImagesSetLabels =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ImagesSetLabels'{..}
-          = go _islsProject _islsResource (Just AltJSON)
-              _islsPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesSetLabelsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Images/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Images/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Images/TestIAMPermissions.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Images.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.images.testIamPermissions@.
-module Network.Google.Resource.Compute.Images.TestIAMPermissions
-    (
-    -- * REST Resource
-      ImagesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , imagesTestIAMPermissions
-    , ImagesTestIAMPermissions
-
-    -- * Request Lenses
-    , itiampProject
-    , itiampPayload
-    , itiampResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.images.testIamPermissions@ method which the
--- 'ImagesTestIAMPermissions' request conforms to.
-type ImagesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "images" :>
-                 Capture "resource" Text :>
-                   "testIamPermissions" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TestPermissionsRequest :>
-                         Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'imagesTestIAMPermissions' smart constructor.
-data ImagesTestIAMPermissions =
-  ImagesTestIAMPermissions'
-    { _itiampProject  :: !Text
-    , _itiampPayload  :: !TestPermissionsRequest
-    , _itiampResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ImagesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itiampProject'
---
--- * 'itiampPayload'
---
--- * 'itiampResource'
-imagesTestIAMPermissions
-    :: Text -- ^ 'itiampProject'
-    -> TestPermissionsRequest -- ^ 'itiampPayload'
-    -> Text -- ^ 'itiampResource'
-    -> ImagesTestIAMPermissions
-imagesTestIAMPermissions pItiampProject_ pItiampPayload_ pItiampResource_ =
-  ImagesTestIAMPermissions'
-    { _itiampProject = pItiampProject_
-    , _itiampPayload = pItiampPayload_
-    , _itiampResource = pItiampResource_
-    }
-
-
--- | Project ID for this request.
-itiampProject :: Lens' ImagesTestIAMPermissions Text
-itiampProject
-  = lens _itiampProject
-      (\ s a -> s{_itiampProject = a})
-
--- | Multipart request metadata.
-itiampPayload :: Lens' ImagesTestIAMPermissions TestPermissionsRequest
-itiampPayload
-  = lens _itiampPayload
-      (\ s a -> s{_itiampPayload = a})
-
--- | Name or id of the resource for this request.
-itiampResource :: Lens' ImagesTestIAMPermissions Text
-itiampResource
-  = lens _itiampResource
-      (\ s a -> s{_itiampResource = a})
-
-instance GoogleRequest ImagesTestIAMPermissions where
-        type Rs ImagesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes ImagesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ImagesTestIAMPermissions'{..}
-          = go _itiampProject _itiampResource (Just AltJSON)
-              _itiampPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ImagesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AbandonInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AbandonInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AbandonInstances.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances
--- 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)
---
--- Flags the specified instances to be removed from the managed instance
--- group. Abandoning an instance does not delete the instance, but it does
--- remove the instance from any target pools that are applied by the
--- managed instance group. This method reduces the targetSize of the
--- managed instance group by the number of instances that you abandon. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances have not yet been removed from the group. You must separately
--- verify the status of the abandoning action with the listmanagedinstances
--- method. If the group is part of a backend service that has enabled
--- connection draining, it can take up to 60 seconds after the connection
--- draining duration has elapsed before the VM instance is removed or
--- deleted. You can specify a maximum of 1000 instances with this method
--- per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.abandonInstances@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances
-    (
-    -- * REST Resource
-      InstanceGroupManagersAbandonInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupManagersAbandonInstances
-    , InstanceGroupManagersAbandonInstances
-
-    -- * Request Lenses
-    , igmaiRequestId
-    , igmaiProject
-    , igmaiInstanceGroupManager
-    , igmaiZone
-    , igmaiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.abandonInstances@ method which the
--- 'InstanceGroupManagersAbandonInstances' request conforms to.
-type InstanceGroupManagersAbandonInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "abandonInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstanceGroupManagersAbandonInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances to be removed from the managed instance
--- group. Abandoning an instance does not delete the instance, but it does
--- remove the instance from any target pools that are applied by the
--- managed instance group. This method reduces the targetSize of the
--- managed instance group by the number of instances that you abandon. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances have not yet been removed from the group. You must separately
--- verify the status of the abandoning action with the listmanagedinstances
--- method. If the group is part of a backend service that has enabled
--- connection draining, it can take up to 60 seconds after the connection
--- draining duration has elapsed before the VM instance is removed or
--- deleted. You can specify a maximum of 1000 instances with this method
--- per request.
---
--- /See:/ 'instanceGroupManagersAbandonInstances' smart constructor.
-data InstanceGroupManagersAbandonInstances =
-  InstanceGroupManagersAbandonInstances'
-    { _igmaiRequestId            :: !(Maybe Text)
-    , _igmaiProject              :: !Text
-    , _igmaiInstanceGroupManager :: !Text
-    , _igmaiZone                 :: !Text
-    , _igmaiPayload              :: !InstanceGroupManagersAbandonInstancesRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersAbandonInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmaiRequestId'
---
--- * 'igmaiProject'
---
--- * 'igmaiInstanceGroupManager'
---
--- * 'igmaiZone'
---
--- * 'igmaiPayload'
-instanceGroupManagersAbandonInstances
-    :: Text -- ^ 'igmaiProject'
-    -> Text -- ^ 'igmaiInstanceGroupManager'
-    -> Text -- ^ 'igmaiZone'
-    -> InstanceGroupManagersAbandonInstancesRequest -- ^ 'igmaiPayload'
-    -> InstanceGroupManagersAbandonInstances
-instanceGroupManagersAbandonInstances pIgmaiProject_ pIgmaiInstanceGroupManager_ pIgmaiZone_ pIgmaiPayload_ =
-  InstanceGroupManagersAbandonInstances'
-    { _igmaiRequestId = Nothing
-    , _igmaiProject = pIgmaiProject_
-    , _igmaiInstanceGroupManager = pIgmaiInstanceGroupManager_
-    , _igmaiZone = pIgmaiZone_
-    , _igmaiPayload = pIgmaiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmaiRequestId :: Lens' InstanceGroupManagersAbandonInstances (Maybe Text)
-igmaiRequestId
-  = lens _igmaiRequestId
-      (\ s a -> s{_igmaiRequestId = a})
-
--- | Project ID for this request.
-igmaiProject :: Lens' InstanceGroupManagersAbandonInstances Text
-igmaiProject
-  = lens _igmaiProject (\ s a -> s{_igmaiProject = a})
-
--- | The name of the managed instance group.
-igmaiInstanceGroupManager :: Lens' InstanceGroupManagersAbandonInstances Text
-igmaiInstanceGroupManager
-  = lens _igmaiInstanceGroupManager
-      (\ s a -> s{_igmaiInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmaiZone :: Lens' InstanceGroupManagersAbandonInstances Text
-igmaiZone
-  = lens _igmaiZone (\ s a -> s{_igmaiZone = a})
-
--- | Multipart request metadata.
-igmaiPayload :: Lens' InstanceGroupManagersAbandonInstances InstanceGroupManagersAbandonInstancesRequest
-igmaiPayload
-  = lens _igmaiPayload (\ s a -> s{_igmaiPayload = a})
-
-instance GoogleRequest
-           InstanceGroupManagersAbandonInstances
-         where
-        type Rs InstanceGroupManagersAbandonInstances =
-             Operation
-        type Scopes InstanceGroupManagersAbandonInstances =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstanceGroupManagersAbandonInstances'{..}
-          = go _igmaiProject _igmaiZone
-              _igmaiInstanceGroupManager
-              _igmaiRequestId
-              (Just AltJSON)
-              _igmaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupManagersAbandonInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AggregatedList.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/AggregatedList.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList
--- 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)
---
--- Retrieves the list of managed instance groups and groups them by zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.aggregatedList@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList
-    (
-    -- * REST Resource
-      InstanceGroupManagersAggregatedListResource
-
-    -- * Creating a Request
-    , instanceGroupManagersAggregatedList
-    , InstanceGroupManagersAggregatedList
-
-    -- * Request Lenses
-    , igmalOrderBy
-    , igmalProject
-    , igmalFilter
-    , igmalPageToken
-    , igmalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.aggregatedList@ method which the
--- 'InstanceGroupManagersAggregatedList' request conforms to.
-type InstanceGroupManagersAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "instanceGroupManagers" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InstanceGroupManagerAggregatedList
-
--- | Retrieves the list of managed instance groups and groups them by zone.
---
--- /See:/ 'instanceGroupManagersAggregatedList' smart constructor.
-data InstanceGroupManagersAggregatedList =
-  InstanceGroupManagersAggregatedList'
-    { _igmalOrderBy    :: !(Maybe Text)
-    , _igmalProject    :: !Text
-    , _igmalFilter     :: !(Maybe Text)
-    , _igmalPageToken  :: !(Maybe Text)
-    , _igmalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmalOrderBy'
---
--- * 'igmalProject'
---
--- * 'igmalFilter'
---
--- * 'igmalPageToken'
---
--- * 'igmalMaxResults'
-instanceGroupManagersAggregatedList
-    :: Text -- ^ 'igmalProject'
-    -> InstanceGroupManagersAggregatedList
-instanceGroupManagersAggregatedList pIgmalProject_ =
-  InstanceGroupManagersAggregatedList'
-    { _igmalOrderBy = Nothing
-    , _igmalProject = pIgmalProject_
-    , _igmalFilter = Nothing
-    , _igmalPageToken = Nothing
-    , _igmalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-igmalOrderBy :: Lens' InstanceGroupManagersAggregatedList (Maybe Text)
-igmalOrderBy
-  = lens _igmalOrderBy (\ s a -> s{_igmalOrderBy = a})
-
--- | Project ID for this request.
-igmalProject :: Lens' InstanceGroupManagersAggregatedList Text
-igmalProject
-  = lens _igmalProject (\ s a -> s{_igmalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-igmalFilter :: Lens' InstanceGroupManagersAggregatedList (Maybe Text)
-igmalFilter
-  = lens _igmalFilter (\ s a -> s{_igmalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-igmalPageToken :: Lens' InstanceGroupManagersAggregatedList (Maybe Text)
-igmalPageToken
-  = lens _igmalPageToken
-      (\ s a -> s{_igmalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-igmalMaxResults :: Lens' InstanceGroupManagersAggregatedList Word32
-igmalMaxResults
-  = lens _igmalMaxResults
-      (\ s a -> s{_igmalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           InstanceGroupManagersAggregatedList
-         where
-        type Rs InstanceGroupManagersAggregatedList =
-             InstanceGroupManagerAggregatedList
-        type Scopes InstanceGroupManagersAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          InstanceGroupManagersAggregatedList'{..}
-          = go _igmalProject _igmalOrderBy _igmalFilter
-              _igmalPageToken
-              (Just _igmalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupManagersAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Delete.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Delete.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.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 managed instance group and all of the instances in
--- that group. Note that the instance group must not belong to a backend
--- service. Read Deleting an instance group for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.delete@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.Delete
-    (
-    -- * REST Resource
-      InstanceGroupManagersDeleteResource
-
-    -- * Creating a Request
-    , instanceGroupManagersDelete
-    , InstanceGroupManagersDelete
-
-    -- * Request Lenses
-    , igmdRequestId
-    , igmdProject
-    , igmdInstanceGroupManager
-    , igmdZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.delete@ method which the
--- 'InstanceGroupManagersDelete' request conforms to.
-type InstanceGroupManagersDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified managed instance group and all of the instances in
--- that group. Note that the instance group must not belong to a backend
--- service. Read Deleting an instance group for more information.
---
--- /See:/ 'instanceGroupManagersDelete' smart constructor.
-data InstanceGroupManagersDelete =
-  InstanceGroupManagersDelete'
-    { _igmdRequestId            :: !(Maybe Text)
-    , _igmdProject              :: !Text
-    , _igmdInstanceGroupManager :: !Text
-    , _igmdZone                 :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmdRequestId'
---
--- * 'igmdProject'
---
--- * 'igmdInstanceGroupManager'
---
--- * 'igmdZone'
-instanceGroupManagersDelete
-    :: Text -- ^ 'igmdProject'
-    -> Text -- ^ 'igmdInstanceGroupManager'
-    -> Text -- ^ 'igmdZone'
-    -> InstanceGroupManagersDelete
-instanceGroupManagersDelete pIgmdProject_ pIgmdInstanceGroupManager_ pIgmdZone_ =
-  InstanceGroupManagersDelete'
-    { _igmdRequestId = Nothing
-    , _igmdProject = pIgmdProject_
-    , _igmdInstanceGroupManager = pIgmdInstanceGroupManager_
-    , _igmdZone = pIgmdZone_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmdRequestId :: Lens' InstanceGroupManagersDelete (Maybe Text)
-igmdRequestId
-  = lens _igmdRequestId
-      (\ s a -> s{_igmdRequestId = a})
-
--- | Project ID for this request.
-igmdProject :: Lens' InstanceGroupManagersDelete Text
-igmdProject
-  = lens _igmdProject (\ s a -> s{_igmdProject = a})
-
--- | The name of the managed instance group to delete.
-igmdInstanceGroupManager :: Lens' InstanceGroupManagersDelete Text
-igmdInstanceGroupManager
-  = lens _igmdInstanceGroupManager
-      (\ s a -> s{_igmdInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmdZone :: Lens' InstanceGroupManagersDelete Text
-igmdZone = lens _igmdZone (\ s a -> s{_igmdZone = a})
-
-instance GoogleRequest InstanceGroupManagersDelete
-         where
-        type Rs InstanceGroupManagersDelete = Operation
-        type Scopes InstanceGroupManagersDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupManagersDelete'{..}
-          = go _igmdProject _igmdZone _igmdInstanceGroupManager
-              _igmdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/DeleteInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/DeleteInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/DeleteInstances.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances
--- 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)
---
--- Flags the specified instances in the managed instance group for
--- immediate deletion. The instances are also removed from any target pools
--- of which they were a member. This method reduces the targetSize of the
--- managed instance group by the number of instances that you delete. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances are still being deleted. You must separately verify the status
--- of the deleting action with the listmanagedinstances method. If the
--- group is part of a backend service that has enabled connection draining,
--- it can take up to 60 seconds after the connection draining duration has
--- elapsed before the VM instance is removed or deleted. You can specify a
--- maximum of 1000 instances with this method per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.deleteInstances@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances
-    (
-    -- * REST Resource
-      InstanceGroupManagersDeleteInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupManagersDeleteInstances
-    , InstanceGroupManagersDeleteInstances
-
-    -- * Request Lenses
-    , igmdiRequestId
-    , igmdiProject
-    , igmdiInstanceGroupManager
-    , igmdiZone
-    , igmdiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.deleteInstances@ method which the
--- 'InstanceGroupManagersDeleteInstances' request conforms to.
-type InstanceGroupManagersDeleteInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "deleteInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstanceGroupManagersDeleteInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances in the managed instance group for
--- immediate deletion. The instances are also removed from any target pools
--- of which they were a member. This method reduces the targetSize of the
--- managed instance group by the number of instances that you delete. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances are still being deleted. You must separately verify the status
--- of the deleting action with the listmanagedinstances method. If the
--- group is part of a backend service that has enabled connection draining,
--- it can take up to 60 seconds after the connection draining duration has
--- elapsed before the VM instance is removed or deleted. You can specify a
--- maximum of 1000 instances with this method per request.
---
--- /See:/ 'instanceGroupManagersDeleteInstances' smart constructor.
-data InstanceGroupManagersDeleteInstances =
-  InstanceGroupManagersDeleteInstances'
-    { _igmdiRequestId            :: !(Maybe Text)
-    , _igmdiProject              :: !Text
-    , _igmdiInstanceGroupManager :: !Text
-    , _igmdiZone                 :: !Text
-    , _igmdiPayload              :: !InstanceGroupManagersDeleteInstancesRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersDeleteInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmdiRequestId'
---
--- * 'igmdiProject'
---
--- * 'igmdiInstanceGroupManager'
---
--- * 'igmdiZone'
---
--- * 'igmdiPayload'
-instanceGroupManagersDeleteInstances
-    :: Text -- ^ 'igmdiProject'
-    -> Text -- ^ 'igmdiInstanceGroupManager'
-    -> Text -- ^ 'igmdiZone'
-    -> InstanceGroupManagersDeleteInstancesRequest -- ^ 'igmdiPayload'
-    -> InstanceGroupManagersDeleteInstances
-instanceGroupManagersDeleteInstances pIgmdiProject_ pIgmdiInstanceGroupManager_ pIgmdiZone_ pIgmdiPayload_ =
-  InstanceGroupManagersDeleteInstances'
-    { _igmdiRequestId = Nothing
-    , _igmdiProject = pIgmdiProject_
-    , _igmdiInstanceGroupManager = pIgmdiInstanceGroupManager_
-    , _igmdiZone = pIgmdiZone_
-    , _igmdiPayload = pIgmdiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmdiRequestId :: Lens' InstanceGroupManagersDeleteInstances (Maybe Text)
-igmdiRequestId
-  = lens _igmdiRequestId
-      (\ s a -> s{_igmdiRequestId = a})
-
--- | Project ID for this request.
-igmdiProject :: Lens' InstanceGroupManagersDeleteInstances Text
-igmdiProject
-  = lens _igmdiProject (\ s a -> s{_igmdiProject = a})
-
--- | The name of the managed instance group.
-igmdiInstanceGroupManager :: Lens' InstanceGroupManagersDeleteInstances Text
-igmdiInstanceGroupManager
-  = lens _igmdiInstanceGroupManager
-      (\ s a -> s{_igmdiInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmdiZone :: Lens' InstanceGroupManagersDeleteInstances Text
-igmdiZone
-  = lens _igmdiZone (\ s a -> s{_igmdiZone = a})
-
--- | Multipart request metadata.
-igmdiPayload :: Lens' InstanceGroupManagersDeleteInstances InstanceGroupManagersDeleteInstancesRequest
-igmdiPayload
-  = lens _igmdiPayload (\ s a -> s{_igmdiPayload = a})
-
-instance GoogleRequest
-           InstanceGroupManagersDeleteInstances
-         where
-        type Rs InstanceGroupManagersDeleteInstances =
-             Operation
-        type Scopes InstanceGroupManagersDeleteInstances =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstanceGroupManagersDeleteInstances'{..}
-          = go _igmdiProject _igmdiZone
-              _igmdiInstanceGroupManager
-              _igmdiRequestId
-              (Just AltJSON)
-              _igmdiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupManagersDeleteInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Get.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Get.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.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)
---
--- Returns all of the details about the specified managed instance group.
--- Gets a list of available managed instance groups by making a list()
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.get@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.Get
-    (
-    -- * REST Resource
-      InstanceGroupManagersGetResource
-
-    -- * Creating a Request
-    , instanceGroupManagersGet
-    , InstanceGroupManagersGet
-
-    -- * Request Lenses
-    , igmgProject
-    , igmgInstanceGroupManager
-    , igmgZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.get@ method which the
--- 'InstanceGroupManagersGet' request conforms to.
-type InstanceGroupManagersGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] InstanceGroupManager
-
--- | Returns all of the details about the specified managed instance group.
--- Gets a list of available managed instance groups by making a list()
--- request.
---
--- /See:/ 'instanceGroupManagersGet' smart constructor.
-data InstanceGroupManagersGet =
-  InstanceGroupManagersGet'
-    { _igmgProject              :: !Text
-    , _igmgInstanceGroupManager :: !Text
-    , _igmgZone                 :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmgProject'
---
--- * 'igmgInstanceGroupManager'
---
--- * 'igmgZone'
-instanceGroupManagersGet
-    :: Text -- ^ 'igmgProject'
-    -> Text -- ^ 'igmgInstanceGroupManager'
-    -> Text -- ^ 'igmgZone'
-    -> InstanceGroupManagersGet
-instanceGroupManagersGet pIgmgProject_ pIgmgInstanceGroupManager_ pIgmgZone_ =
-  InstanceGroupManagersGet'
-    { _igmgProject = pIgmgProject_
-    , _igmgInstanceGroupManager = pIgmgInstanceGroupManager_
-    , _igmgZone = pIgmgZone_
-    }
-
-
--- | Project ID for this request.
-igmgProject :: Lens' InstanceGroupManagersGet Text
-igmgProject
-  = lens _igmgProject (\ s a -> s{_igmgProject = a})
-
--- | The name of the managed instance group.
-igmgInstanceGroupManager :: Lens' InstanceGroupManagersGet Text
-igmgInstanceGroupManager
-  = lens _igmgInstanceGroupManager
-      (\ s a -> s{_igmgInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmgZone :: Lens' InstanceGroupManagersGet Text
-igmgZone = lens _igmgZone (\ s a -> s{_igmgZone = a})
-
-instance GoogleRequest InstanceGroupManagersGet where
-        type Rs InstanceGroupManagersGet =
-             InstanceGroupManager
-        type Scopes InstanceGroupManagersGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupManagersGet'{..}
-          = go _igmgProject _igmgZone _igmgInstanceGroupManager
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Insert.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Insert.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.Insert
--- 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 managed instance group using the information that you specify
--- in the request. After the group is created, instances in the group are
--- created using the specified instance template. This operation is marked
--- as DONE when the group is created even if the instances in the group
--- have not yet been created. You must separately verify the status of the
--- individual instances with the listmanagedinstances method. A managed
--- instance group can have up to 1000 VM instances per group. Please
--- contact Cloud Support if you need an increase in this limit.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.insert@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.Insert
-    (
-    -- * REST Resource
-      InstanceGroupManagersInsertResource
-
-    -- * Creating a Request
-    , instanceGroupManagersInsert
-    , InstanceGroupManagersInsert
-
-    -- * Request Lenses
-    , igmiRequestId
-    , igmiProject
-    , igmiZone
-    , igmiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.insert@ method which the
--- 'InstanceGroupManagersInsert' request conforms to.
-type InstanceGroupManagersInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] InstanceGroupManager :>
-                         Post '[JSON] Operation
-
--- | Creates a managed instance group using the information that you specify
--- in the request. After the group is created, instances in the group are
--- created using the specified instance template. This operation is marked
--- as DONE when the group is created even if the instances in the group
--- have not yet been created. You must separately verify the status of the
--- individual instances with the listmanagedinstances method. A managed
--- instance group can have up to 1000 VM instances per group. Please
--- contact Cloud Support if you need an increase in this limit.
---
--- /See:/ 'instanceGroupManagersInsert' smart constructor.
-data InstanceGroupManagersInsert =
-  InstanceGroupManagersInsert'
-    { _igmiRequestId :: !(Maybe Text)
-    , _igmiProject   :: !Text
-    , _igmiZone      :: !Text
-    , _igmiPayload   :: !InstanceGroupManager
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmiRequestId'
---
--- * 'igmiProject'
---
--- * 'igmiZone'
---
--- * 'igmiPayload'
-instanceGroupManagersInsert
-    :: Text -- ^ 'igmiProject'
-    -> Text -- ^ 'igmiZone'
-    -> InstanceGroupManager -- ^ 'igmiPayload'
-    -> InstanceGroupManagersInsert
-instanceGroupManagersInsert pIgmiProject_ pIgmiZone_ pIgmiPayload_ =
-  InstanceGroupManagersInsert'
-    { _igmiRequestId = Nothing
-    , _igmiProject = pIgmiProject_
-    , _igmiZone = pIgmiZone_
-    , _igmiPayload = pIgmiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmiRequestId :: Lens' InstanceGroupManagersInsert (Maybe Text)
-igmiRequestId
-  = lens _igmiRequestId
-      (\ s a -> s{_igmiRequestId = a})
-
--- | Project ID for this request.
-igmiProject :: Lens' InstanceGroupManagersInsert Text
-igmiProject
-  = lens _igmiProject (\ s a -> s{_igmiProject = a})
-
--- | The name of the zone where you want to create the managed instance
--- group.
-igmiZone :: Lens' InstanceGroupManagersInsert Text
-igmiZone = lens _igmiZone (\ s a -> s{_igmiZone = a})
-
--- | Multipart request metadata.
-igmiPayload :: Lens' InstanceGroupManagersInsert InstanceGroupManager
-igmiPayload
-  = lens _igmiPayload (\ s a -> s{_igmiPayload = a})
-
-instance GoogleRequest InstanceGroupManagersInsert
-         where
-        type Rs InstanceGroupManagersInsert = Operation
-        type Scopes InstanceGroupManagersInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupManagersInsert'{..}
-          = go _igmiProject _igmiZone _igmiRequestId
-              (Just AltJSON)
-              _igmiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/List.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/List.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.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)
---
--- Retrieves a list of managed instance groups that are contained within
--- the specified project and zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.list@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.List
-    (
-    -- * REST Resource
-      InstanceGroupManagersListResource
-
-    -- * Creating a Request
-    , instanceGroupManagersList
-    , InstanceGroupManagersList
-
-    -- * Request Lenses
-    , igmlOrderBy
-    , igmlProject
-    , igmlZone
-    , igmlFilter
-    , igmlPageToken
-    , igmlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.list@ method which the
--- 'InstanceGroupManagersList' request conforms to.
-type InstanceGroupManagersListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] InstanceGroupManagerList
-
--- | Retrieves a list of managed instance groups that are contained within
--- the specified project and zone.
---
--- /See:/ 'instanceGroupManagersList' smart constructor.
-data InstanceGroupManagersList =
-  InstanceGroupManagersList'
-    { _igmlOrderBy    :: !(Maybe Text)
-    , _igmlProject    :: !Text
-    , _igmlZone       :: !Text
-    , _igmlFilter     :: !(Maybe Text)
-    , _igmlPageToken  :: !(Maybe Text)
-    , _igmlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlOrderBy'
---
--- * 'igmlProject'
---
--- * 'igmlZone'
---
--- * 'igmlFilter'
---
--- * 'igmlPageToken'
---
--- * 'igmlMaxResults'
-instanceGroupManagersList
-    :: Text -- ^ 'igmlProject'
-    -> Text -- ^ 'igmlZone'
-    -> InstanceGroupManagersList
-instanceGroupManagersList pIgmlProject_ pIgmlZone_ =
-  InstanceGroupManagersList'
-    { _igmlOrderBy = Nothing
-    , _igmlProject = pIgmlProject_
-    , _igmlZone = pIgmlZone_
-    , _igmlFilter = Nothing
-    , _igmlPageToken = Nothing
-    , _igmlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-igmlOrderBy :: Lens' InstanceGroupManagersList (Maybe Text)
-igmlOrderBy
-  = lens _igmlOrderBy (\ s a -> s{_igmlOrderBy = a})
-
--- | Project ID for this request.
-igmlProject :: Lens' InstanceGroupManagersList Text
-igmlProject
-  = lens _igmlProject (\ s a -> s{_igmlProject = a})
-
--- | The name of the zone where the managed instance group is located.
-igmlZone :: Lens' InstanceGroupManagersList Text
-igmlZone = lens _igmlZone (\ s a -> s{_igmlZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-igmlFilter :: Lens' InstanceGroupManagersList (Maybe Text)
-igmlFilter
-  = lens _igmlFilter (\ s a -> s{_igmlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-igmlPageToken :: Lens' InstanceGroupManagersList (Maybe Text)
-igmlPageToken
-  = lens _igmlPageToken
-      (\ s a -> s{_igmlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-igmlMaxResults :: Lens' InstanceGroupManagersList Word32
-igmlMaxResults
-  = lens _igmlMaxResults
-      (\ s a -> s{_igmlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstanceGroupManagersList
-         where
-        type Rs InstanceGroupManagersList =
-             InstanceGroupManagerList
-        type Scopes InstanceGroupManagersList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupManagersList'{..}
-          = go _igmlProject _igmlZone _igmlOrderBy _igmlFilter
-              _igmlPageToken
-              (Just _igmlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/ListManagedInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/ListManagedInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/ListManagedInstances.hs
+++ /dev/null
@@ -1,222 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances
--- 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 of the instances in the managed instance group. Each instance
--- in the list has a currentAction, which indicates the action that the
--- managed instance group is performing on the instance. For example, if
--- the group is still creating an instance, the currentAction is CREATING.
--- If a previous action failed, the list displays the errors for that
--- failed action.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.listManagedInstances@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances
-    (
-    -- * REST Resource
-      InstanceGroupManagersListManagedInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupManagersListManagedInstances
-    , InstanceGroupManagersListManagedInstances
-
-    -- * Request Lenses
-    , igmlmiProject
-    , igmlmiInstanceGroupManager
-    , igmlmiZone
-    , igmlmiOrderBy
-    , igmlmiFilter
-    , igmlmiPageToken
-    , igmlmiMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.listManagedInstances@ method which the
--- 'InstanceGroupManagersListManagedInstances' request conforms to.
-type InstanceGroupManagersListManagedInstancesResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "listManagedInstances" :>
-                       QueryParam "order_by" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 Post '[JSON]
-                                   InstanceGroupManagersListManagedInstancesResponse
-
--- | Lists all of the instances in the managed instance group. Each instance
--- in the list has a currentAction, which indicates the action that the
--- managed instance group is performing on the instance. For example, if
--- the group is still creating an instance, the currentAction is CREATING.
--- If a previous action failed, the list displays the errors for that
--- failed action.
---
--- /See:/ 'instanceGroupManagersListManagedInstances' smart constructor.
-data InstanceGroupManagersListManagedInstances =
-  InstanceGroupManagersListManagedInstances'
-    { _igmlmiProject              :: !Text
-    , _igmlmiInstanceGroupManager :: !Text
-    , _igmlmiZone                 :: !Text
-    , _igmlmiOrderBy              :: !(Maybe Text)
-    , _igmlmiFilter               :: !(Maybe Text)
-    , _igmlmiPageToken            :: !(Maybe Text)
-    , _igmlmiMaxResults           :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersListManagedInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmlmiProject'
---
--- * 'igmlmiInstanceGroupManager'
---
--- * 'igmlmiZone'
---
--- * 'igmlmiOrderBy'
---
--- * 'igmlmiFilter'
---
--- * 'igmlmiPageToken'
---
--- * 'igmlmiMaxResults'
-instanceGroupManagersListManagedInstances
-    :: Text -- ^ 'igmlmiProject'
-    -> Text -- ^ 'igmlmiInstanceGroupManager'
-    -> Text -- ^ 'igmlmiZone'
-    -> InstanceGroupManagersListManagedInstances
-instanceGroupManagersListManagedInstances pIgmlmiProject_ pIgmlmiInstanceGroupManager_ pIgmlmiZone_ =
-  InstanceGroupManagersListManagedInstances'
-    { _igmlmiProject = pIgmlmiProject_
-    , _igmlmiInstanceGroupManager = pIgmlmiInstanceGroupManager_
-    , _igmlmiZone = pIgmlmiZone_
-    , _igmlmiOrderBy = Nothing
-    , _igmlmiFilter = Nothing
-    , _igmlmiPageToken = Nothing
-    , _igmlmiMaxResults = 500
-    }
-
-
--- | Project ID for this request.
-igmlmiProject :: Lens' InstanceGroupManagersListManagedInstances Text
-igmlmiProject
-  = lens _igmlmiProject
-      (\ s a -> s{_igmlmiProject = a})
-
--- | The name of the managed instance group.
-igmlmiInstanceGroupManager :: Lens' InstanceGroupManagersListManagedInstances Text
-igmlmiInstanceGroupManager
-  = lens _igmlmiInstanceGroupManager
-      (\ s a -> s{_igmlmiInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmlmiZone :: Lens' InstanceGroupManagersListManagedInstances Text
-igmlmiZone
-  = lens _igmlmiZone (\ s a -> s{_igmlmiZone = a})
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-igmlmiOrderBy :: Lens' InstanceGroupManagersListManagedInstances (Maybe Text)
-igmlmiOrderBy
-  = lens _igmlmiOrderBy
-      (\ s a -> s{_igmlmiOrderBy = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-igmlmiFilter :: Lens' InstanceGroupManagersListManagedInstances (Maybe Text)
-igmlmiFilter
-  = lens _igmlmiFilter (\ s a -> s{_igmlmiFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-igmlmiPageToken :: Lens' InstanceGroupManagersListManagedInstances (Maybe Text)
-igmlmiPageToken
-  = lens _igmlmiPageToken
-      (\ s a -> s{_igmlmiPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-igmlmiMaxResults :: Lens' InstanceGroupManagersListManagedInstances Word32
-igmlmiMaxResults
-  = lens _igmlmiMaxResults
-      (\ s a -> s{_igmlmiMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           InstanceGroupManagersListManagedInstances
-         where
-        type Rs InstanceGroupManagersListManagedInstances =
-             InstanceGroupManagersListManagedInstancesResponse
-        type Scopes InstanceGroupManagersListManagedInstances
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          InstanceGroupManagersListManagedInstances'{..}
-          = go _igmlmiProject _igmlmiZone
-              _igmlmiInstanceGroupManager
-              _igmlmiOrderBy
-              _igmlmiFilter
-              _igmlmiPageToken
-              (Just _igmlmiMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           InstanceGroupManagersListManagedInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Patch.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Patch.hs
+++ /dev/null
@@ -1,168 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.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 a managed instance group using the information that you specify
--- in the request. This operation is marked as DONE when the group is
--- patched even if the instances in the group are still in the process of
--- being patched. You must separately verify the status of the individual
--- instances with the listManagedInstances method. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.patch@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.Patch
-    (
-    -- * REST Resource
-      InstanceGroupManagersPatchResource
-
-    -- * Creating a Request
-    , instanceGroupManagersPatch
-    , InstanceGroupManagersPatch
-
-    -- * Request Lenses
-    , igmpRequestId
-    , igmpProject
-    , igmpInstanceGroupManager
-    , igmpZone
-    , igmpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.patch@ method which the
--- 'InstanceGroupManagersPatch' request conforms to.
-type InstanceGroupManagersPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] InstanceGroupManager :>
-                           Patch '[JSON] Operation
-
--- | Updates a managed instance group using the information that you specify
--- in the request. This operation is marked as DONE when the group is
--- patched even if the instances in the group are still in the process of
--- being patched. You must separately verify the status of the individual
--- instances with the listManagedInstances method. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ 'instanceGroupManagersPatch' smart constructor.
-data InstanceGroupManagersPatch =
-  InstanceGroupManagersPatch'
-    { _igmpRequestId            :: !(Maybe Text)
-    , _igmpProject              :: !Text
-    , _igmpInstanceGroupManager :: !Text
-    , _igmpZone                 :: !Text
-    , _igmpPayload              :: !InstanceGroupManager
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmpRequestId'
---
--- * 'igmpProject'
---
--- * 'igmpInstanceGroupManager'
---
--- * 'igmpZone'
---
--- * 'igmpPayload'
-instanceGroupManagersPatch
-    :: Text -- ^ 'igmpProject'
-    -> Text -- ^ 'igmpInstanceGroupManager'
-    -> Text -- ^ 'igmpZone'
-    -> InstanceGroupManager -- ^ 'igmpPayload'
-    -> InstanceGroupManagersPatch
-instanceGroupManagersPatch pIgmpProject_ pIgmpInstanceGroupManager_ pIgmpZone_ pIgmpPayload_ =
-  InstanceGroupManagersPatch'
-    { _igmpRequestId = Nothing
-    , _igmpProject = pIgmpProject_
-    , _igmpInstanceGroupManager = pIgmpInstanceGroupManager_
-    , _igmpZone = pIgmpZone_
-    , _igmpPayload = pIgmpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmpRequestId :: Lens' InstanceGroupManagersPatch (Maybe Text)
-igmpRequestId
-  = lens _igmpRequestId
-      (\ s a -> s{_igmpRequestId = a})
-
--- | Project ID for this request.
-igmpProject :: Lens' InstanceGroupManagersPatch Text
-igmpProject
-  = lens _igmpProject (\ s a -> s{_igmpProject = a})
-
--- | The name of the instance group manager.
-igmpInstanceGroupManager :: Lens' InstanceGroupManagersPatch Text
-igmpInstanceGroupManager
-  = lens _igmpInstanceGroupManager
-      (\ s a -> s{_igmpInstanceGroupManager = a})
-
--- | The name of the zone where you want to create the managed instance
--- group.
-igmpZone :: Lens' InstanceGroupManagersPatch Text
-igmpZone = lens _igmpZone (\ s a -> s{_igmpZone = a})
-
--- | Multipart request metadata.
-igmpPayload :: Lens' InstanceGroupManagersPatch InstanceGroupManager
-igmpPayload
-  = lens _igmpPayload (\ s a -> s{_igmpPayload = a})
-
-instance GoogleRequest InstanceGroupManagersPatch
-         where
-        type Rs InstanceGroupManagersPatch = Operation
-        type Scopes InstanceGroupManagersPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupManagersPatch'{..}
-          = go _igmpProject _igmpZone _igmpInstanceGroupManager
-              _igmpRequestId
-              (Just AltJSON)
-              _igmpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/RecreateInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/RecreateInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/RecreateInstances.hs
+++ /dev/null
@@ -1,181 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances
--- 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)
---
--- Flags the specified instances in the managed instance group to be
--- immediately recreated. The instances are deleted and recreated using the
--- current instance template for the managed instance group. This operation
--- is marked as DONE when the flag is set even if the instances have not
--- yet been recreated. You must separately verify the status of the
--- recreating action with the listmanagedinstances method. If the group is
--- part of a backend service that has enabled connection draining, it can
--- take up to 60 seconds after the connection draining duration has elapsed
--- before the VM instance is removed or deleted. You can specify a maximum
--- of 1000 instances with this method per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.recreateInstances@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances
-    (
-    -- * REST Resource
-      InstanceGroupManagersRecreateInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupManagersRecreateInstances
-    , InstanceGroupManagersRecreateInstances
-
-    -- * Request Lenses
-    , igmriRequestId
-    , igmriProject
-    , igmriInstanceGroupManager
-    , igmriZone
-    , igmriPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.recreateInstances@ method which the
--- 'InstanceGroupManagersRecreateInstances' request conforms to.
-type InstanceGroupManagersRecreateInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "recreateInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstanceGroupManagersRecreateInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances in the managed instance group to be
--- immediately recreated. The instances are deleted and recreated using the
--- current instance template for the managed instance group. This operation
--- is marked as DONE when the flag is set even if the instances have not
--- yet been recreated. You must separately verify the status of the
--- recreating action with the listmanagedinstances method. If the group is
--- part of a backend service that has enabled connection draining, it can
--- take up to 60 seconds after the connection draining duration has elapsed
--- before the VM instance is removed or deleted. You can specify a maximum
--- of 1000 instances with this method per request.
---
--- /See:/ 'instanceGroupManagersRecreateInstances' smart constructor.
-data InstanceGroupManagersRecreateInstances =
-  InstanceGroupManagersRecreateInstances'
-    { _igmriRequestId            :: !(Maybe Text)
-    , _igmriProject              :: !Text
-    , _igmriInstanceGroupManager :: !Text
-    , _igmriZone                 :: !Text
-    , _igmriPayload              :: !InstanceGroupManagersRecreateInstancesRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersRecreateInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmriRequestId'
---
--- * 'igmriProject'
---
--- * 'igmriInstanceGroupManager'
---
--- * 'igmriZone'
---
--- * 'igmriPayload'
-instanceGroupManagersRecreateInstances
-    :: Text -- ^ 'igmriProject'
-    -> Text -- ^ 'igmriInstanceGroupManager'
-    -> Text -- ^ 'igmriZone'
-    -> InstanceGroupManagersRecreateInstancesRequest -- ^ 'igmriPayload'
-    -> InstanceGroupManagersRecreateInstances
-instanceGroupManagersRecreateInstances pIgmriProject_ pIgmriInstanceGroupManager_ pIgmriZone_ pIgmriPayload_ =
-  InstanceGroupManagersRecreateInstances'
-    { _igmriRequestId = Nothing
-    , _igmriProject = pIgmriProject_
-    , _igmriInstanceGroupManager = pIgmriInstanceGroupManager_
-    , _igmriZone = pIgmriZone_
-    , _igmriPayload = pIgmriPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmriRequestId :: Lens' InstanceGroupManagersRecreateInstances (Maybe Text)
-igmriRequestId
-  = lens _igmriRequestId
-      (\ s a -> s{_igmriRequestId = a})
-
--- | Project ID for this request.
-igmriProject :: Lens' InstanceGroupManagersRecreateInstances Text
-igmriProject
-  = lens _igmriProject (\ s a -> s{_igmriProject = a})
-
--- | The name of the managed instance group.
-igmriInstanceGroupManager :: Lens' InstanceGroupManagersRecreateInstances Text
-igmriInstanceGroupManager
-  = lens _igmriInstanceGroupManager
-      (\ s a -> s{_igmriInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmriZone :: Lens' InstanceGroupManagersRecreateInstances Text
-igmriZone
-  = lens _igmriZone (\ s a -> s{_igmriZone = a})
-
--- | Multipart request metadata.
-igmriPayload :: Lens' InstanceGroupManagersRecreateInstances InstanceGroupManagersRecreateInstancesRequest
-igmriPayload
-  = lens _igmriPayload (\ s a -> s{_igmriPayload = a})
-
-instance GoogleRequest
-           InstanceGroupManagersRecreateInstances
-         where
-        type Rs InstanceGroupManagersRecreateInstances =
-             Operation
-        type Scopes InstanceGroupManagersRecreateInstances =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstanceGroupManagersRecreateInstances'{..}
-          = go _igmriProject _igmriZone
-              _igmriInstanceGroupManager
-              _igmriRequestId
-              (Just AltJSON)
-              _igmriPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupManagersRecreateInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Resize.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Resize.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/Resize.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.Resize
--- 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)
---
--- Resizes the managed instance group. If you increase the size, the group
--- creates new instances using the current instance template. If you
--- decrease the size, the group deletes instances. The resize operation is
--- marked DONE when the resize actions are scheduled even if the group has
--- not yet added or deleted any instances. You must separately verify the
--- status of the creating or deleting actions with the listmanagedinstances
--- method. When resizing down, the instance group arbitrarily chooses the
--- order in which VMs are deleted. The group takes into account some VM
--- attributes when making the selection including: + The status of the VM
--- instance. + The health of the VM instance. + The instance template
--- version the VM is based on. + For regional managed instance groups, the
--- location of the VM instance. This list is subject to change. If the
--- group is part of a backend service that has enabled connection draining,
--- it can take up to 60 seconds after the connection draining duration has
--- elapsed before the VM instance is removed or deleted.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.resize@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.Resize
-    (
-    -- * REST Resource
-      InstanceGroupManagersResizeResource
-
-    -- * Creating a Request
-    , instanceGroupManagersResize
-    , InstanceGroupManagersResize
-
-    -- * Request Lenses
-    , igmrRequestId
-    , igmrProject
-    , igmrSize
-    , igmrInstanceGroupManager
-    , igmrZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.resize@ method which the
--- 'InstanceGroupManagersResize' request conforms to.
-type InstanceGroupManagersResizeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "resize" :>
-                       QueryParam "size" (Textual Int32) :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Resizes the managed instance group. If you increase the size, the group
--- creates new instances using the current instance template. If you
--- decrease the size, the group deletes instances. The resize operation is
--- marked DONE when the resize actions are scheduled even if the group has
--- not yet added or deleted any instances. You must separately verify the
--- status of the creating or deleting actions with the listmanagedinstances
--- method. When resizing down, the instance group arbitrarily chooses the
--- order in which VMs are deleted. The group takes into account some VM
--- attributes when making the selection including: + The status of the VM
--- instance. + The health of the VM instance. + The instance template
--- version the VM is based on. + For regional managed instance groups, the
--- location of the VM instance. This list is subject to change. If the
--- group is part of a backend service that has enabled connection draining,
--- it can take up to 60 seconds after the connection draining duration has
--- elapsed before the VM instance is removed or deleted.
---
--- /See:/ 'instanceGroupManagersResize' smart constructor.
-data InstanceGroupManagersResize =
-  InstanceGroupManagersResize'
-    { _igmrRequestId            :: !(Maybe Text)
-    , _igmrProject              :: !Text
-    , _igmrSize                 :: !(Textual Int32)
-    , _igmrInstanceGroupManager :: !Text
-    , _igmrZone                 :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersResize' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmrRequestId'
---
--- * 'igmrProject'
---
--- * 'igmrSize'
---
--- * 'igmrInstanceGroupManager'
---
--- * 'igmrZone'
-instanceGroupManagersResize
-    :: Text -- ^ 'igmrProject'
-    -> Int32 -- ^ 'igmrSize'
-    -> Text -- ^ 'igmrInstanceGroupManager'
-    -> Text -- ^ 'igmrZone'
-    -> InstanceGroupManagersResize
-instanceGroupManagersResize pIgmrProject_ pIgmrSize_ pIgmrInstanceGroupManager_ pIgmrZone_ =
-  InstanceGroupManagersResize'
-    { _igmrRequestId = Nothing
-    , _igmrProject = pIgmrProject_
-    , _igmrSize = _Coerce # pIgmrSize_
-    , _igmrInstanceGroupManager = pIgmrInstanceGroupManager_
-    , _igmrZone = pIgmrZone_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmrRequestId :: Lens' InstanceGroupManagersResize (Maybe Text)
-igmrRequestId
-  = lens _igmrRequestId
-      (\ s a -> s{_igmrRequestId = a})
-
--- | Project ID for this request.
-igmrProject :: Lens' InstanceGroupManagersResize Text
-igmrProject
-  = lens _igmrProject (\ s a -> s{_igmrProject = a})
-
--- | The number of running instances that the managed instance group should
--- maintain at any given time. The group automatically adds or removes
--- instances to maintain the number of instances specified by this
--- parameter.
-igmrSize :: Lens' InstanceGroupManagersResize Int32
-igmrSize
-  = lens _igmrSize (\ s a -> s{_igmrSize = a}) .
-      _Coerce
-
--- | The name of the managed instance group.
-igmrInstanceGroupManager :: Lens' InstanceGroupManagersResize Text
-igmrInstanceGroupManager
-  = lens _igmrInstanceGroupManager
-      (\ s a -> s{_igmrInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmrZone :: Lens' InstanceGroupManagersResize Text
-igmrZone = lens _igmrZone (\ s a -> s{_igmrZone = a})
-
-instance GoogleRequest InstanceGroupManagersResize
-         where
-        type Rs InstanceGroupManagersResize = Operation
-        type Scopes InstanceGroupManagersResize =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupManagersResize'{..}
-          = go _igmrProject _igmrZone _igmrInstanceGroupManager
-              (Just _igmrSize)
-              _igmrRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupManagersResizeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetInstanceTemplate.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetInstanceTemplate.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetInstanceTemplate.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate
--- 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)
---
--- Specifies the instance template to use when creating new instances in
--- this group. The templates for existing instances in the group do not
--- change unless you recreate them.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.setInstanceTemplate@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate
-    (
-    -- * REST Resource
-      InstanceGroupManagersSetInstanceTemplateResource
-
-    -- * Creating a Request
-    , instanceGroupManagersSetInstanceTemplate
-    , InstanceGroupManagersSetInstanceTemplate
-
-    -- * Request Lenses
-    , igmsitRequestId
-    , igmsitProject
-    , igmsitInstanceGroupManager
-    , igmsitZone
-    , igmsitPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.setInstanceTemplate@ method which the
--- 'InstanceGroupManagersSetInstanceTemplate' request conforms to.
-type InstanceGroupManagersSetInstanceTemplateResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "setInstanceTemplate" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstanceGroupManagersSetInstanceTemplateRequest
-                             :> Post '[JSON] Operation
-
--- | Specifies the instance template to use when creating new instances in
--- this group. The templates for existing instances in the group do not
--- change unless you recreate them.
---
--- /See:/ 'instanceGroupManagersSetInstanceTemplate' smart constructor.
-data InstanceGroupManagersSetInstanceTemplate =
-  InstanceGroupManagersSetInstanceTemplate'
-    { _igmsitRequestId            :: !(Maybe Text)
-    , _igmsitProject              :: !Text
-    , _igmsitInstanceGroupManager :: !Text
-    , _igmsitZone                 :: !Text
-    , _igmsitPayload              :: !InstanceGroupManagersSetInstanceTemplateRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersSetInstanceTemplate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmsitRequestId'
---
--- * 'igmsitProject'
---
--- * 'igmsitInstanceGroupManager'
---
--- * 'igmsitZone'
---
--- * 'igmsitPayload'
-instanceGroupManagersSetInstanceTemplate
-    :: Text -- ^ 'igmsitProject'
-    -> Text -- ^ 'igmsitInstanceGroupManager'
-    -> Text -- ^ 'igmsitZone'
-    -> InstanceGroupManagersSetInstanceTemplateRequest -- ^ 'igmsitPayload'
-    -> InstanceGroupManagersSetInstanceTemplate
-instanceGroupManagersSetInstanceTemplate pIgmsitProject_ pIgmsitInstanceGroupManager_ pIgmsitZone_ pIgmsitPayload_ =
-  InstanceGroupManagersSetInstanceTemplate'
-    { _igmsitRequestId = Nothing
-    , _igmsitProject = pIgmsitProject_
-    , _igmsitInstanceGroupManager = pIgmsitInstanceGroupManager_
-    , _igmsitZone = pIgmsitZone_
-    , _igmsitPayload = pIgmsitPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmsitRequestId :: Lens' InstanceGroupManagersSetInstanceTemplate (Maybe Text)
-igmsitRequestId
-  = lens _igmsitRequestId
-      (\ s a -> s{_igmsitRequestId = a})
-
--- | Project ID for this request.
-igmsitProject :: Lens' InstanceGroupManagersSetInstanceTemplate Text
-igmsitProject
-  = lens _igmsitProject
-      (\ s a -> s{_igmsitProject = a})
-
--- | The name of the managed instance group.
-igmsitInstanceGroupManager :: Lens' InstanceGroupManagersSetInstanceTemplate Text
-igmsitInstanceGroupManager
-  = lens _igmsitInstanceGroupManager
-      (\ s a -> s{_igmsitInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmsitZone :: Lens' InstanceGroupManagersSetInstanceTemplate Text
-igmsitZone
-  = lens _igmsitZone (\ s a -> s{_igmsitZone = a})
-
--- | Multipart request metadata.
-igmsitPayload :: Lens' InstanceGroupManagersSetInstanceTemplate InstanceGroupManagersSetInstanceTemplateRequest
-igmsitPayload
-  = lens _igmsitPayload
-      (\ s a -> s{_igmsitPayload = a})
-
-instance GoogleRequest
-           InstanceGroupManagersSetInstanceTemplate
-         where
-        type Rs InstanceGroupManagersSetInstanceTemplate =
-             Operation
-        type Scopes InstanceGroupManagersSetInstanceTemplate
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstanceGroupManagersSetInstanceTemplate'{..}
-          = go _igmsitProject _igmsitZone
-              _igmsitInstanceGroupManager
-              _igmsitRequestId
-              (Just AltJSON)
-              _igmsitPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           InstanceGroupManagersSetInstanceTemplateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetTargetPools.hs b/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetTargetPools.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroupManagers/SetTargetPools.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools
--- 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)
---
--- Modifies the target pools to which all instances in this managed
--- instance group are assigned. The target pools automatically apply to all
--- of the instances in the managed instance group. This operation is marked
--- DONE when you make the request even if the instances have not yet been
--- added to their target pools. The change might take some time to apply to
--- all of the instances in the group depending on the size of the group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroupManagers.setTargetPools@.
-module Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools
-    (
-    -- * REST Resource
-      InstanceGroupManagersSetTargetPoolsResource
-
-    -- * Creating a Request
-    , instanceGroupManagersSetTargetPools
-    , InstanceGroupManagersSetTargetPools
-
-    -- * Request Lenses
-    , igmstpRequestId
-    , igmstpProject
-    , igmstpInstanceGroupManager
-    , igmstpZone
-    , igmstpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroupManagers.setTargetPools@ method which the
--- 'InstanceGroupManagersSetTargetPools' request conforms to.
-type InstanceGroupManagersSetTargetPoolsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "setTargetPools" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstanceGroupManagersSetTargetPoolsRequest
-                             :> Post '[JSON] Operation
-
--- | Modifies the target pools to which all instances in this managed
--- instance group are assigned. The target pools automatically apply to all
--- of the instances in the managed instance group. This operation is marked
--- DONE when you make the request even if the instances have not yet been
--- added to their target pools. The change might take some time to apply to
--- all of the instances in the group depending on the size of the group.
---
--- /See:/ 'instanceGroupManagersSetTargetPools' smart constructor.
-data InstanceGroupManagersSetTargetPools =
-  InstanceGroupManagersSetTargetPools'
-    { _igmstpRequestId            :: !(Maybe Text)
-    , _igmstpProject              :: !Text
-    , _igmstpInstanceGroupManager :: !Text
-    , _igmstpZone                 :: !Text
-    , _igmstpPayload              :: !InstanceGroupManagersSetTargetPoolsRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupManagersSetTargetPools' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igmstpRequestId'
---
--- * 'igmstpProject'
---
--- * 'igmstpInstanceGroupManager'
---
--- * 'igmstpZone'
---
--- * 'igmstpPayload'
-instanceGroupManagersSetTargetPools
-    :: Text -- ^ 'igmstpProject'
-    -> Text -- ^ 'igmstpInstanceGroupManager'
-    -> Text -- ^ 'igmstpZone'
-    -> InstanceGroupManagersSetTargetPoolsRequest -- ^ 'igmstpPayload'
-    -> InstanceGroupManagersSetTargetPools
-instanceGroupManagersSetTargetPools pIgmstpProject_ pIgmstpInstanceGroupManager_ pIgmstpZone_ pIgmstpPayload_ =
-  InstanceGroupManagersSetTargetPools'
-    { _igmstpRequestId = Nothing
-    , _igmstpProject = pIgmstpProject_
-    , _igmstpInstanceGroupManager = pIgmstpInstanceGroupManager_
-    , _igmstpZone = pIgmstpZone_
-    , _igmstpPayload = pIgmstpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igmstpRequestId :: Lens' InstanceGroupManagersSetTargetPools (Maybe Text)
-igmstpRequestId
-  = lens _igmstpRequestId
-      (\ s a -> s{_igmstpRequestId = a})
-
--- | Project ID for this request.
-igmstpProject :: Lens' InstanceGroupManagersSetTargetPools Text
-igmstpProject
-  = lens _igmstpProject
-      (\ s a -> s{_igmstpProject = a})
-
--- | The name of the managed instance group.
-igmstpInstanceGroupManager :: Lens' InstanceGroupManagersSetTargetPools Text
-igmstpInstanceGroupManager
-  = lens _igmstpInstanceGroupManager
-      (\ s a -> s{_igmstpInstanceGroupManager = a})
-
--- | The name of the zone where the managed instance group is located.
-igmstpZone :: Lens' InstanceGroupManagersSetTargetPools Text
-igmstpZone
-  = lens _igmstpZone (\ s a -> s{_igmstpZone = a})
-
--- | Multipart request metadata.
-igmstpPayload :: Lens' InstanceGroupManagersSetTargetPools InstanceGroupManagersSetTargetPoolsRequest
-igmstpPayload
-  = lens _igmstpPayload
-      (\ s a -> s{_igmstpPayload = a})
-
-instance GoogleRequest
-           InstanceGroupManagersSetTargetPools
-         where
-        type Rs InstanceGroupManagersSetTargetPools =
-             Operation
-        type Scopes InstanceGroupManagersSetTargetPools =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstanceGroupManagersSetTargetPools'{..}
-          = go _igmstpProject _igmstpZone
-              _igmstpInstanceGroupManager
-              _igmstpRequestId
-              (Just AltJSON)
-              _igmstpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupManagersSetTargetPoolsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/AddInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/AddInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/AddInstances.hs
+++ /dev/null
@@ -1,160 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.AddInstances
--- 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)
---
--- Adds a list of instances to the specified instance group. All of the
--- instances in the instance group must be in the same network\/subnetwork.
--- Read Adding instances for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.addInstances@.
-module Network.Google.Resource.Compute.InstanceGroups.AddInstances
-    (
-    -- * REST Resource
-      InstanceGroupsAddInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupsAddInstances
-    , InstanceGroupsAddInstances
-
-    -- * Request Lenses
-    , igaiRequestId
-    , igaiProject
-    , igaiZone
-    , igaiPayload
-    , igaiInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.addInstances@ method which the
--- 'InstanceGroupsAddInstances' request conforms to.
-type InstanceGroupsAddInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "addInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstanceGroupsAddInstancesRequest :>
-                             Post '[JSON] Operation
-
--- | Adds a list of instances to the specified instance group. All of the
--- instances in the instance group must be in the same network\/subnetwork.
--- Read Adding instances for more information.
---
--- /See:/ 'instanceGroupsAddInstances' smart constructor.
-data InstanceGroupsAddInstances =
-  InstanceGroupsAddInstances'
-    { _igaiRequestId     :: !(Maybe Text)
-    , _igaiProject       :: !Text
-    , _igaiZone          :: !Text
-    , _igaiPayload       :: !InstanceGroupsAddInstancesRequest
-    , _igaiInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsAddInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igaiRequestId'
---
--- * 'igaiProject'
---
--- * 'igaiZone'
---
--- * 'igaiPayload'
---
--- * 'igaiInstanceGroup'
-instanceGroupsAddInstances
-    :: Text -- ^ 'igaiProject'
-    -> Text -- ^ 'igaiZone'
-    -> InstanceGroupsAddInstancesRequest -- ^ 'igaiPayload'
-    -> Text -- ^ 'igaiInstanceGroup'
-    -> InstanceGroupsAddInstances
-instanceGroupsAddInstances pIgaiProject_ pIgaiZone_ pIgaiPayload_ pIgaiInstanceGroup_ =
-  InstanceGroupsAddInstances'
-    { _igaiRequestId = Nothing
-    , _igaiProject = pIgaiProject_
-    , _igaiZone = pIgaiZone_
-    , _igaiPayload = pIgaiPayload_
-    , _igaiInstanceGroup = pIgaiInstanceGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igaiRequestId :: Lens' InstanceGroupsAddInstances (Maybe Text)
-igaiRequestId
-  = lens _igaiRequestId
-      (\ s a -> s{_igaiRequestId = a})
-
--- | Project ID for this request.
-igaiProject :: Lens' InstanceGroupsAddInstances Text
-igaiProject
-  = lens _igaiProject (\ s a -> s{_igaiProject = a})
-
--- | The name of the zone where the instance group is located.
-igaiZone :: Lens' InstanceGroupsAddInstances Text
-igaiZone = lens _igaiZone (\ s a -> s{_igaiZone = a})
-
--- | Multipart request metadata.
-igaiPayload :: Lens' InstanceGroupsAddInstances InstanceGroupsAddInstancesRequest
-igaiPayload
-  = lens _igaiPayload (\ s a -> s{_igaiPayload = a})
-
--- | The name of the instance group where you are adding instances.
-igaiInstanceGroup :: Lens' InstanceGroupsAddInstances Text
-igaiInstanceGroup
-  = lens _igaiInstanceGroup
-      (\ s a -> s{_igaiInstanceGroup = a})
-
-instance GoogleRequest InstanceGroupsAddInstances
-         where
-        type Rs InstanceGroupsAddInstances = Operation
-        type Scopes InstanceGroupsAddInstances =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupsAddInstances'{..}
-          = go _igaiProject _igaiZone _igaiInstanceGroup
-              _igaiRequestId
-              (Just AltJSON)
-              _igaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsAddInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/AggregatedList.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/AggregatedList.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.AggregatedList
--- 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)
---
--- Retrieves the list of instance groups and sorts them by zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.aggregatedList@.
-module Network.Google.Resource.Compute.InstanceGroups.AggregatedList
-    (
-    -- * REST Resource
-      InstanceGroupsAggregatedListResource
-
-    -- * Creating a Request
-    , instanceGroupsAggregatedList
-    , InstanceGroupsAggregatedList
-
-    -- * Request Lenses
-    , igalOrderBy
-    , igalProject
-    , igalFilter
-    , igalPageToken
-    , igalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.aggregatedList@ method which the
--- 'InstanceGroupsAggregatedList' request conforms to.
-type InstanceGroupsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "instanceGroups" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InstanceGroupAggregatedList
-
--- | Retrieves the list of instance groups and sorts them by zone.
---
--- /See:/ 'instanceGroupsAggregatedList' smart constructor.
-data InstanceGroupsAggregatedList =
-  InstanceGroupsAggregatedList'
-    { _igalOrderBy    :: !(Maybe Text)
-    , _igalProject    :: !Text
-    , _igalFilter     :: !(Maybe Text)
-    , _igalPageToken  :: !(Maybe Text)
-    , _igalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igalOrderBy'
---
--- * 'igalProject'
---
--- * 'igalFilter'
---
--- * 'igalPageToken'
---
--- * 'igalMaxResults'
-instanceGroupsAggregatedList
-    :: Text -- ^ 'igalProject'
-    -> InstanceGroupsAggregatedList
-instanceGroupsAggregatedList pIgalProject_ =
-  InstanceGroupsAggregatedList'
-    { _igalOrderBy = Nothing
-    , _igalProject = pIgalProject_
-    , _igalFilter = Nothing
-    , _igalPageToken = Nothing
-    , _igalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-igalOrderBy :: Lens' InstanceGroupsAggregatedList (Maybe Text)
-igalOrderBy
-  = lens _igalOrderBy (\ s a -> s{_igalOrderBy = a})
-
--- | Project ID for this request.
-igalProject :: Lens' InstanceGroupsAggregatedList Text
-igalProject
-  = lens _igalProject (\ s a -> s{_igalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-igalFilter :: Lens' InstanceGroupsAggregatedList (Maybe Text)
-igalFilter
-  = lens _igalFilter (\ s a -> s{_igalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-igalPageToken :: Lens' InstanceGroupsAggregatedList (Maybe Text)
-igalPageToken
-  = lens _igalPageToken
-      (\ s a -> s{_igalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-igalMaxResults :: Lens' InstanceGroupsAggregatedList Word32
-igalMaxResults
-  = lens _igalMaxResults
-      (\ s a -> s{_igalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstanceGroupsAggregatedList
-         where
-        type Rs InstanceGroupsAggregatedList =
-             InstanceGroupAggregatedList
-        type Scopes InstanceGroupsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupsAggregatedList'{..}
-          = go _igalProject _igalOrderBy _igalFilter
-              _igalPageToken
-              (Just _igalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/Delete.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/Delete.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.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 instance group. The instances in the group are not
--- deleted. Note that instance group must not belong to a backend service.
--- Read Deleting an instance group for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.delete@.
-module Network.Google.Resource.Compute.InstanceGroups.Delete
-    (
-    -- * REST Resource
-      InstanceGroupsDeleteResource
-
-    -- * Creating a Request
-    , instanceGroupsDelete
-    , InstanceGroupsDelete
-
-    -- * Request Lenses
-    , igdRequestId
-    , igdProject
-    , igdZone
-    , igdInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.delete@ method which the
--- 'InstanceGroupsDelete' request conforms to.
-type InstanceGroupsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified instance group. The instances in the group are not
--- deleted. Note that instance group must not belong to a backend service.
--- Read Deleting an instance group for more information.
---
--- /See:/ 'instanceGroupsDelete' smart constructor.
-data InstanceGroupsDelete =
-  InstanceGroupsDelete'
-    { _igdRequestId     :: !(Maybe Text)
-    , _igdProject       :: !Text
-    , _igdZone          :: !Text
-    , _igdInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igdRequestId'
---
--- * 'igdProject'
---
--- * 'igdZone'
---
--- * 'igdInstanceGroup'
-instanceGroupsDelete
-    :: Text -- ^ 'igdProject'
-    -> Text -- ^ 'igdZone'
-    -> Text -- ^ 'igdInstanceGroup'
-    -> InstanceGroupsDelete
-instanceGroupsDelete pIgdProject_ pIgdZone_ pIgdInstanceGroup_ =
-  InstanceGroupsDelete'
-    { _igdRequestId = Nothing
-    , _igdProject = pIgdProject_
-    , _igdZone = pIgdZone_
-    , _igdInstanceGroup = pIgdInstanceGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igdRequestId :: Lens' InstanceGroupsDelete (Maybe Text)
-igdRequestId
-  = lens _igdRequestId (\ s a -> s{_igdRequestId = a})
-
--- | Project ID for this request.
-igdProject :: Lens' InstanceGroupsDelete Text
-igdProject
-  = lens _igdProject (\ s a -> s{_igdProject = a})
-
--- | The name of the zone where the instance group is located.
-igdZone :: Lens' InstanceGroupsDelete Text
-igdZone = lens _igdZone (\ s a -> s{_igdZone = a})
-
--- | The name of the instance group to delete.
-igdInstanceGroup :: Lens' InstanceGroupsDelete Text
-igdInstanceGroup
-  = lens _igdInstanceGroup
-      (\ s a -> s{_igdInstanceGroup = a})
-
-instance GoogleRequest InstanceGroupsDelete where
-        type Rs InstanceGroupsDelete = Operation
-        type Scopes InstanceGroupsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupsDelete'{..}
-          = go _igdProject _igdZone _igdInstanceGroup
-              _igdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/Get.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.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)
---
--- Returns the specified instance group. Gets a list of available instance
--- groups by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.get@.
-module Network.Google.Resource.Compute.InstanceGroups.Get
-    (
-    -- * REST Resource
-      InstanceGroupsGetResource
-
-    -- * Creating a Request
-    , instanceGroupsGet
-    , InstanceGroupsGet
-
-    -- * Request Lenses
-    , iggProject
-    , iggZone
-    , iggInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.get@ method which the
--- 'InstanceGroupsGet' request conforms to.
-type InstanceGroupsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] InstanceGroup
-
--- | Returns the specified instance group. Gets a list of available instance
--- groups by making a list() request.
---
--- /See:/ 'instanceGroupsGet' smart constructor.
-data InstanceGroupsGet =
-  InstanceGroupsGet'
-    { _iggProject       :: !Text
-    , _iggZone          :: !Text
-    , _iggInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iggProject'
---
--- * 'iggZone'
---
--- * 'iggInstanceGroup'
-instanceGroupsGet
-    :: Text -- ^ 'iggProject'
-    -> Text -- ^ 'iggZone'
-    -> Text -- ^ 'iggInstanceGroup'
-    -> InstanceGroupsGet
-instanceGroupsGet pIggProject_ pIggZone_ pIggInstanceGroup_ =
-  InstanceGroupsGet'
-    { _iggProject = pIggProject_
-    , _iggZone = pIggZone_
-    , _iggInstanceGroup = pIggInstanceGroup_
-    }
-
-
--- | Project ID for this request.
-iggProject :: Lens' InstanceGroupsGet Text
-iggProject
-  = lens _iggProject (\ s a -> s{_iggProject = a})
-
--- | The name of the zone where the instance group is located.
-iggZone :: Lens' InstanceGroupsGet Text
-iggZone = lens _iggZone (\ s a -> s{_iggZone = a})
-
--- | The name of the instance group.
-iggInstanceGroup :: Lens' InstanceGroupsGet Text
-iggInstanceGroup
-  = lens _iggInstanceGroup
-      (\ s a -> s{_iggInstanceGroup = a})
-
-instance GoogleRequest InstanceGroupsGet where
-        type Rs InstanceGroupsGet = InstanceGroup
-        type Scopes InstanceGroupsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupsGet'{..}
-          = go _iggProject _iggZone _iggInstanceGroup
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/Insert.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.Insert
--- 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 an instance group in the specified project using the parameters
--- that are included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.insert@.
-module Network.Google.Resource.Compute.InstanceGroups.Insert
-    (
-    -- * REST Resource
-      InstanceGroupsInsertResource
-
-    -- * Creating a Request
-    , instanceGroupsInsert
-    , InstanceGroupsInsert
-
-    -- * Request Lenses
-    , igiRequestId
-    , igiProject
-    , igiZone
-    , igiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.insert@ method which the
--- 'InstanceGroupsInsert' request conforms to.
-type InstanceGroupsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] InstanceGroup :>
-                         Post '[JSON] Operation
-
--- | Creates an instance group in the specified project using the parameters
--- that are included in the request.
---
--- /See:/ 'instanceGroupsInsert' smart constructor.
-data InstanceGroupsInsert =
-  InstanceGroupsInsert'
-    { _igiRequestId :: !(Maybe Text)
-    , _igiProject   :: !Text
-    , _igiZone      :: !Text
-    , _igiPayload   :: !InstanceGroup
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igiRequestId'
---
--- * 'igiProject'
---
--- * 'igiZone'
---
--- * 'igiPayload'
-instanceGroupsInsert
-    :: Text -- ^ 'igiProject'
-    -> Text -- ^ 'igiZone'
-    -> InstanceGroup -- ^ 'igiPayload'
-    -> InstanceGroupsInsert
-instanceGroupsInsert pIgiProject_ pIgiZone_ pIgiPayload_ =
-  InstanceGroupsInsert'
-    { _igiRequestId = Nothing
-    , _igiProject = pIgiProject_
-    , _igiZone = pIgiZone_
-    , _igiPayload = pIgiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igiRequestId :: Lens' InstanceGroupsInsert (Maybe Text)
-igiRequestId
-  = lens _igiRequestId (\ s a -> s{_igiRequestId = a})
-
--- | Project ID for this request.
-igiProject :: Lens' InstanceGroupsInsert Text
-igiProject
-  = lens _igiProject (\ s a -> s{_igiProject = a})
-
--- | The name of the zone where you want to create the instance group.
-igiZone :: Lens' InstanceGroupsInsert Text
-igiZone = lens _igiZone (\ s a -> s{_igiZone = a})
-
--- | Multipart request metadata.
-igiPayload :: Lens' InstanceGroupsInsert InstanceGroup
-igiPayload
-  = lens _igiPayload (\ s a -> s{_igiPayload = a})
-
-instance GoogleRequest InstanceGroupsInsert where
-        type Rs InstanceGroupsInsert = Operation
-        type Scopes InstanceGroupsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupsInsert'{..}
-          = go _igiProject _igiZone _igiRequestId
-              (Just AltJSON)
-              _igiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/List.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/List.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.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)
---
--- Retrieves the list of instance groups that are located in the specified
--- project and zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.list@.
-module Network.Google.Resource.Compute.InstanceGroups.List
-    (
-    -- * REST Resource
-      InstanceGroupsListResource
-
-    -- * Creating a Request
-    , instanceGroupsList
-    , InstanceGroupsList
-
-    -- * Request Lenses
-    , iglOrderBy
-    , iglProject
-    , iglZone
-    , iglFilter
-    , iglPageToken
-    , iglMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.list@ method which the
--- 'InstanceGroupsList' request conforms to.
-type InstanceGroupsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] InstanceGroupList
-
--- | Retrieves the list of instance groups that are located in the specified
--- project and zone.
---
--- /See:/ 'instanceGroupsList' smart constructor.
-data InstanceGroupsList =
-  InstanceGroupsList'
-    { _iglOrderBy    :: !(Maybe Text)
-    , _iglProject    :: !Text
-    , _iglZone       :: !Text
-    , _iglFilter     :: !(Maybe Text)
-    , _iglPageToken  :: !(Maybe Text)
-    , _iglMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iglOrderBy'
---
--- * 'iglProject'
---
--- * 'iglZone'
---
--- * 'iglFilter'
---
--- * 'iglPageToken'
---
--- * 'iglMaxResults'
-instanceGroupsList
-    :: Text -- ^ 'iglProject'
-    -> Text -- ^ 'iglZone'
-    -> InstanceGroupsList
-instanceGroupsList pIglProject_ pIglZone_ =
-  InstanceGroupsList'
-    { _iglOrderBy = Nothing
-    , _iglProject = pIglProject_
-    , _iglZone = pIglZone_
-    , _iglFilter = Nothing
-    , _iglPageToken = Nothing
-    , _iglMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-iglOrderBy :: Lens' InstanceGroupsList (Maybe Text)
-iglOrderBy
-  = lens _iglOrderBy (\ s a -> s{_iglOrderBy = a})
-
--- | Project ID for this request.
-iglProject :: Lens' InstanceGroupsList Text
-iglProject
-  = lens _iglProject (\ s a -> s{_iglProject = a})
-
--- | The name of the zone where the instance group is located.
-iglZone :: Lens' InstanceGroupsList Text
-iglZone = lens _iglZone (\ s a -> s{_iglZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-iglFilter :: Lens' InstanceGroupsList (Maybe Text)
-iglFilter
-  = lens _iglFilter (\ s a -> s{_iglFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-iglPageToken :: Lens' InstanceGroupsList (Maybe Text)
-iglPageToken
-  = lens _iglPageToken (\ s a -> s{_iglPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-iglMaxResults :: Lens' InstanceGroupsList Word32
-iglMaxResults
-  = lens _iglMaxResults
-      (\ s a -> s{_iglMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstanceGroupsList where
-        type Rs InstanceGroupsList = InstanceGroupList
-        type Scopes InstanceGroupsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupsList'{..}
-          = go _iglProject _iglZone _iglOrderBy _iglFilter
-              _iglPageToken
-              (Just _iglMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/ListInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/ListInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/ListInstances.hs
+++ /dev/null
@@ -1,216 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.ListInstances
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists the instances in the specified instance group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.listInstances@.
-module Network.Google.Resource.Compute.InstanceGroups.ListInstances
-    (
-    -- * REST Resource
-      InstanceGroupsListInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupsListInstances'
-    , InstanceGroupsListInstances'
-
-    -- * Request Lenses
-    , igliOrderBy
-    , igliProject
-    , igliZone
-    , igliPayload
-    , igliFilter
-    , igliPageToken
-    , igliInstanceGroup
-    , igliMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.listInstances@ method which the
--- 'InstanceGroupsListInstances'' request conforms to.
-type InstanceGroupsListInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "listInstances" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 ReqBody '[JSON]
-                                   InstanceGroupsListInstancesRequest
-                                   :> Post '[JSON] InstanceGroupsListInstances
-
--- | Lists the instances in the specified instance group.
---
--- /See:/ 'instanceGroupsListInstances'' smart constructor.
-data InstanceGroupsListInstances' =
-  InstanceGroupsListInstances''
-    { _igliOrderBy       :: !(Maybe Text)
-    , _igliProject       :: !Text
-    , _igliZone          :: !Text
-    , _igliPayload       :: !InstanceGroupsListInstancesRequest
-    , _igliFilter        :: !(Maybe Text)
-    , _igliPageToken     :: !(Maybe Text)
-    , _igliInstanceGroup :: !Text
-    , _igliMaxResults    :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsListInstances'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igliOrderBy'
---
--- * 'igliProject'
---
--- * 'igliZone'
---
--- * 'igliPayload'
---
--- * 'igliFilter'
---
--- * 'igliPageToken'
---
--- * 'igliInstanceGroup'
---
--- * 'igliMaxResults'
-instanceGroupsListInstances'
-    :: Text -- ^ 'igliProject'
-    -> Text -- ^ 'igliZone'
-    -> InstanceGroupsListInstancesRequest -- ^ 'igliPayload'
-    -> Text -- ^ 'igliInstanceGroup'
-    -> InstanceGroupsListInstances'
-instanceGroupsListInstances' pIgliProject_ pIgliZone_ pIgliPayload_ pIgliInstanceGroup_ =
-  InstanceGroupsListInstances''
-    { _igliOrderBy = Nothing
-    , _igliProject = pIgliProject_
-    , _igliZone = pIgliZone_
-    , _igliPayload = pIgliPayload_
-    , _igliFilter = Nothing
-    , _igliPageToken = Nothing
-    , _igliInstanceGroup = pIgliInstanceGroup_
-    , _igliMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-igliOrderBy :: Lens' InstanceGroupsListInstances' (Maybe Text)
-igliOrderBy
-  = lens _igliOrderBy (\ s a -> s{_igliOrderBy = a})
-
--- | Project ID for this request.
-igliProject :: Lens' InstanceGroupsListInstances' Text
-igliProject
-  = lens _igliProject (\ s a -> s{_igliProject = a})
-
--- | The name of the zone where the instance group is located.
-igliZone :: Lens' InstanceGroupsListInstances' Text
-igliZone = lens _igliZone (\ s a -> s{_igliZone = a})
-
--- | Multipart request metadata.
-igliPayload :: Lens' InstanceGroupsListInstances' InstanceGroupsListInstancesRequest
-igliPayload
-  = lens _igliPayload (\ s a -> s{_igliPayload = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-igliFilter :: Lens' InstanceGroupsListInstances' (Maybe Text)
-igliFilter
-  = lens _igliFilter (\ s a -> s{_igliFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-igliPageToken :: Lens' InstanceGroupsListInstances' (Maybe Text)
-igliPageToken
-  = lens _igliPageToken
-      (\ s a -> s{_igliPageToken = a})
-
--- | The name of the instance group from which you want to generate a list of
--- included instances.
-igliInstanceGroup :: Lens' InstanceGroupsListInstances' Text
-igliInstanceGroup
-  = lens _igliInstanceGroup
-      (\ s a -> s{_igliInstanceGroup = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-igliMaxResults :: Lens' InstanceGroupsListInstances' Word32
-igliMaxResults
-  = lens _igliMaxResults
-      (\ s a -> s{_igliMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstanceGroupsListInstances'
-         where
-        type Rs InstanceGroupsListInstances' =
-             InstanceGroupsListInstances
-        type Scopes InstanceGroupsListInstances' =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceGroupsListInstances''{..}
-          = go _igliProject _igliZone _igliInstanceGroup
-              _igliOrderBy
-              _igliFilter
-              _igliPageToken
-              (Just _igliMaxResults)
-              (Just AltJSON)
-              _igliPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsListInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/RemoveInstances.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/RemoveInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/RemoveInstances.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.RemoveInstances
--- 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)
---
--- Removes one or more instances from the specified instance group, but
--- does not delete those instances. If the group is part of a backend
--- service that has enabled connection draining, it can take up to 60
--- seconds after the connection draining duration before the VM instance is
--- removed or deleted.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.removeInstances@.
-module Network.Google.Resource.Compute.InstanceGroups.RemoveInstances
-    (
-    -- * REST Resource
-      InstanceGroupsRemoveInstancesResource
-
-    -- * Creating a Request
-    , instanceGroupsRemoveInstances
-    , InstanceGroupsRemoveInstances
-
-    -- * Request Lenses
-    , igriRequestId
-    , igriProject
-    , igriZone
-    , igriPayload
-    , igriInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.removeInstances@ method which the
--- 'InstanceGroupsRemoveInstances' request conforms to.
-type InstanceGroupsRemoveInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "removeInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstanceGroupsRemoveInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Removes one or more instances from the specified instance group, but
--- does not delete those instances. If the group is part of a backend
--- service that has enabled connection draining, it can take up to 60
--- seconds after the connection draining duration before the VM instance is
--- removed or deleted.
---
--- /See:/ 'instanceGroupsRemoveInstances' smart constructor.
-data InstanceGroupsRemoveInstances =
-  InstanceGroupsRemoveInstances'
-    { _igriRequestId     :: !(Maybe Text)
-    , _igriProject       :: !Text
-    , _igriZone          :: !Text
-    , _igriPayload       :: !InstanceGroupsRemoveInstancesRequest
-    , _igriInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsRemoveInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igriRequestId'
---
--- * 'igriProject'
---
--- * 'igriZone'
---
--- * 'igriPayload'
---
--- * 'igriInstanceGroup'
-instanceGroupsRemoveInstances
-    :: Text -- ^ 'igriProject'
-    -> Text -- ^ 'igriZone'
-    -> InstanceGroupsRemoveInstancesRequest -- ^ 'igriPayload'
-    -> Text -- ^ 'igriInstanceGroup'
-    -> InstanceGroupsRemoveInstances
-instanceGroupsRemoveInstances pIgriProject_ pIgriZone_ pIgriPayload_ pIgriInstanceGroup_ =
-  InstanceGroupsRemoveInstances'
-    { _igriRequestId = Nothing
-    , _igriProject = pIgriProject_
-    , _igriZone = pIgriZone_
-    , _igriPayload = pIgriPayload_
-    , _igriInstanceGroup = pIgriInstanceGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igriRequestId :: Lens' InstanceGroupsRemoveInstances (Maybe Text)
-igriRequestId
-  = lens _igriRequestId
-      (\ s a -> s{_igriRequestId = a})
-
--- | Project ID for this request.
-igriProject :: Lens' InstanceGroupsRemoveInstances Text
-igriProject
-  = lens _igriProject (\ s a -> s{_igriProject = a})
-
--- | The name of the zone where the instance group is located.
-igriZone :: Lens' InstanceGroupsRemoveInstances Text
-igriZone = lens _igriZone (\ s a -> s{_igriZone = a})
-
--- | Multipart request metadata.
-igriPayload :: Lens' InstanceGroupsRemoveInstances InstanceGroupsRemoveInstancesRequest
-igriPayload
-  = lens _igriPayload (\ s a -> s{_igriPayload = a})
-
--- | The name of the instance group where the specified instances will be
--- removed.
-igriInstanceGroup :: Lens' InstanceGroupsRemoveInstances Text
-igriInstanceGroup
-  = lens _igriInstanceGroup
-      (\ s a -> s{_igriInstanceGroup = a})
-
-instance GoogleRequest InstanceGroupsRemoveInstances
-         where
-        type Rs InstanceGroupsRemoveInstances = Operation
-        type Scopes InstanceGroupsRemoveInstances =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupsRemoveInstances'{..}
-          = go _igriProject _igriZone _igriInstanceGroup
-              _igriRequestId
-              (Just AltJSON)
-              _igriPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceGroupsRemoveInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceGroups/SetNamedPorts.hs b/gen/Network/Google/Resource/Compute/InstanceGroups/SetNamedPorts.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceGroups/SetNamedPorts.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts
--- 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)
---
--- Sets the named ports for the specified instance group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceGroups.setNamedPorts@.
-module Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts
-    (
-    -- * REST Resource
-      InstanceGroupsSetNamedPortsResource
-
-    -- * Creating a Request
-    , instanceGroupsSetNamedPorts
-    , InstanceGroupsSetNamedPorts
-
-    -- * Request Lenses
-    , igsnpRequestId
-    , igsnpProject
-    , igsnpZone
-    , igsnpPayload
-    , igsnpInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceGroups.setNamedPorts@ method which the
--- 'InstanceGroupsSetNamedPorts' request conforms to.
-type InstanceGroupsSetNamedPortsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "setNamedPorts" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstanceGroupsSetNamedPortsRequest :>
-                             Post '[JSON] Operation
-
--- | Sets the named ports for the specified instance group.
---
--- /See:/ 'instanceGroupsSetNamedPorts' smart constructor.
-data InstanceGroupsSetNamedPorts =
-  InstanceGroupsSetNamedPorts'
-    { _igsnpRequestId     :: !(Maybe Text)
-    , _igsnpProject       :: !Text
-    , _igsnpZone          :: !Text
-    , _igsnpPayload       :: !InstanceGroupsSetNamedPortsRequest
-    , _igsnpInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceGroupsSetNamedPorts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igsnpRequestId'
---
--- * 'igsnpProject'
---
--- * 'igsnpZone'
---
--- * 'igsnpPayload'
---
--- * 'igsnpInstanceGroup'
-instanceGroupsSetNamedPorts
-    :: Text -- ^ 'igsnpProject'
-    -> Text -- ^ 'igsnpZone'
-    -> InstanceGroupsSetNamedPortsRequest -- ^ 'igsnpPayload'
-    -> Text -- ^ 'igsnpInstanceGroup'
-    -> InstanceGroupsSetNamedPorts
-instanceGroupsSetNamedPorts pIgsnpProject_ pIgsnpZone_ pIgsnpPayload_ pIgsnpInstanceGroup_ =
-  InstanceGroupsSetNamedPorts'
-    { _igsnpRequestId = Nothing
-    , _igsnpProject = pIgsnpProject_
-    , _igsnpZone = pIgsnpZone_
-    , _igsnpPayload = pIgsnpPayload_
-    , _igsnpInstanceGroup = pIgsnpInstanceGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-igsnpRequestId :: Lens' InstanceGroupsSetNamedPorts (Maybe Text)
-igsnpRequestId
-  = lens _igsnpRequestId
-      (\ s a -> s{_igsnpRequestId = a})
-
--- | Project ID for this request.
-igsnpProject :: Lens' InstanceGroupsSetNamedPorts Text
-igsnpProject
-  = lens _igsnpProject (\ s a -> s{_igsnpProject = a})
-
--- | The name of the zone where the instance group is located.
-igsnpZone :: Lens' InstanceGroupsSetNamedPorts Text
-igsnpZone
-  = lens _igsnpZone (\ s a -> s{_igsnpZone = a})
-
--- | Multipart request metadata.
-igsnpPayload :: Lens' InstanceGroupsSetNamedPorts InstanceGroupsSetNamedPortsRequest
-igsnpPayload
-  = lens _igsnpPayload (\ s a -> s{_igsnpPayload = a})
-
--- | The name of the instance group where the named ports are updated.
-igsnpInstanceGroup :: Lens' InstanceGroupsSetNamedPorts Text
-igsnpInstanceGroup
-  = lens _igsnpInstanceGroup
-      (\ s a -> s{_igsnpInstanceGroup = a})
-
-instance GoogleRequest InstanceGroupsSetNamedPorts
-         where
-        type Rs InstanceGroupsSetNamedPorts = Operation
-        type Scopes InstanceGroupsSetNamedPorts =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceGroupsSetNamedPorts'{..}
-          = go _igsnpProject _igsnpZone _igsnpInstanceGroup
-              _igsnpRequestId
-              (Just AltJSON)
-              _igsnpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceGroupsSetNamedPortsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/Delete.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/Delete.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.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 instance template. Deleting an instance template
--- is permanent and cannot be undone. It is not possible to delete
--- templates that are already in use by a managed instance group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.delete@.
-module Network.Google.Resource.Compute.InstanceTemplates.Delete
-    (
-    -- * REST Resource
-      InstanceTemplatesDeleteResource
-
-    -- * Creating a Request
-    , instanceTemplatesDelete
-    , InstanceTemplatesDelete
-
-    -- * Request Lenses
-    , itdRequestId
-    , itdProject
-    , itdInstanceTemplate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.delete@ method which the
--- 'InstanceTemplatesDelete' request conforms to.
-type InstanceTemplatesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 Capture "instanceTemplate" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified instance template. Deleting an instance template
--- is permanent and cannot be undone. It is not possible to delete
--- templates that are already in use by a managed instance group.
---
--- /See:/ 'instanceTemplatesDelete' smart constructor.
-data InstanceTemplatesDelete =
-  InstanceTemplatesDelete'
-    { _itdRequestId        :: !(Maybe Text)
-    , _itdProject          :: !Text
-    , _itdInstanceTemplate :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itdRequestId'
---
--- * 'itdProject'
---
--- * 'itdInstanceTemplate'
-instanceTemplatesDelete
-    :: Text -- ^ 'itdProject'
-    -> Text -- ^ 'itdInstanceTemplate'
-    -> InstanceTemplatesDelete
-instanceTemplatesDelete pItdProject_ pItdInstanceTemplate_ =
-  InstanceTemplatesDelete'
-    { _itdRequestId = Nothing
-    , _itdProject = pItdProject_
-    , _itdInstanceTemplate = pItdInstanceTemplate_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-itdRequestId :: Lens' InstanceTemplatesDelete (Maybe Text)
-itdRequestId
-  = lens _itdRequestId (\ s a -> s{_itdRequestId = a})
-
--- | Project ID for this request.
-itdProject :: Lens' InstanceTemplatesDelete Text
-itdProject
-  = lens _itdProject (\ s a -> s{_itdProject = a})
-
--- | The name of the instance template to delete.
-itdInstanceTemplate :: Lens' InstanceTemplatesDelete Text
-itdInstanceTemplate
-  = lens _itdInstanceTemplate
-      (\ s a -> s{_itdInstanceTemplate = a})
-
-instance GoogleRequest InstanceTemplatesDelete where
-        type Rs InstanceTemplatesDelete = Operation
-        type Scopes InstanceTemplatesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceTemplatesDelete'{..}
-          = go _itdProject _itdInstanceTemplate _itdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceTemplatesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/Get.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.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)
---
--- Returns the specified instance template. Gets a list of available
--- instance templates by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.get@.
-module Network.Google.Resource.Compute.InstanceTemplates.Get
-    (
-    -- * REST Resource
-      InstanceTemplatesGetResource
-
-    -- * Creating a Request
-    , instanceTemplatesGet
-    , InstanceTemplatesGet
-
-    -- * Request Lenses
-    , itgProject
-    , itgInstanceTemplate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.get@ method which the
--- 'InstanceTemplatesGet' request conforms to.
-type InstanceTemplatesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 Capture "instanceTemplate" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] InstanceTemplate
-
--- | Returns the specified instance template. Gets a list of available
--- instance templates by making a list() request.
---
--- /See:/ 'instanceTemplatesGet' smart constructor.
-data InstanceTemplatesGet =
-  InstanceTemplatesGet'
-    { _itgProject          :: !Text
-    , _itgInstanceTemplate :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itgProject'
---
--- * 'itgInstanceTemplate'
-instanceTemplatesGet
-    :: Text -- ^ 'itgProject'
-    -> Text -- ^ 'itgInstanceTemplate'
-    -> InstanceTemplatesGet
-instanceTemplatesGet pItgProject_ pItgInstanceTemplate_ =
-  InstanceTemplatesGet'
-    {_itgProject = pItgProject_, _itgInstanceTemplate = pItgInstanceTemplate_}
-
-
--- | Project ID for this request.
-itgProject :: Lens' InstanceTemplatesGet Text
-itgProject
-  = lens _itgProject (\ s a -> s{_itgProject = a})
-
--- | The name of the instance template.
-itgInstanceTemplate :: Lens' InstanceTemplatesGet Text
-itgInstanceTemplate
-  = lens _itgInstanceTemplate
-      (\ s a -> s{_itgInstanceTemplate = a})
-
-instance GoogleRequest InstanceTemplatesGet where
-        type Rs InstanceTemplatesGet = InstanceTemplate
-        type Scopes InstanceTemplatesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceTemplatesGet'{..}
-          = go _itgProject _itgInstanceTemplate (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceTemplatesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/GetIAMPolicy.hs
+++ /dev/null
@@ -1,110 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.getIamPolicy@.
-module Network.Google.Resource.Compute.InstanceTemplates.GetIAMPolicy
-    (
-    -- * REST Resource
-      InstanceTemplatesGetIAMPolicyResource
-
-    -- * Creating a Request
-    , instanceTemplatesGetIAMPolicy
-    , InstanceTemplatesGetIAMPolicy
-
-    -- * Request Lenses
-    , itgipProject
-    , itgipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.getIamPolicy@ method which the
--- 'InstanceTemplatesGetIAMPolicy' request conforms to.
-type InstanceTemplatesGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 Capture "resource" Text :>
-                   "getIamPolicy" :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'instanceTemplatesGetIAMPolicy' smart constructor.
-data InstanceTemplatesGetIAMPolicy =
-  InstanceTemplatesGetIAMPolicy'
-    { _itgipProject  :: !Text
-    , _itgipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itgipProject'
---
--- * 'itgipResource'
-instanceTemplatesGetIAMPolicy
-    :: Text -- ^ 'itgipProject'
-    -> Text -- ^ 'itgipResource'
-    -> InstanceTemplatesGetIAMPolicy
-instanceTemplatesGetIAMPolicy pItgipProject_ pItgipResource_ =
-  InstanceTemplatesGetIAMPolicy'
-    {_itgipProject = pItgipProject_, _itgipResource = pItgipResource_}
-
-
--- | Project ID for this request.
-itgipProject :: Lens' InstanceTemplatesGetIAMPolicy Text
-itgipProject
-  = lens _itgipProject (\ s a -> s{_itgipProject = a})
-
--- | Name or id of the resource for this request.
-itgipResource :: Lens' InstanceTemplatesGetIAMPolicy Text
-itgipResource
-  = lens _itgipResource
-      (\ s a -> s{_itgipResource = a})
-
-instance GoogleRequest InstanceTemplatesGetIAMPolicy
-         where
-        type Rs InstanceTemplatesGetIAMPolicy = Policy
-        type Scopes InstanceTemplatesGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceTemplatesGetIAMPolicy'{..}
-          = go _itgipProject _itgipResource (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceTemplatesGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/Insert.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/Insert.hs
+++ /dev/null
@@ -1,135 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.Insert
--- 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 an instance template in the specified project using the data
--- that is included in the request. If you are creating a new template to
--- update an existing instance group, your new instance template must use
--- the same network or, if applicable, the same subnetwork as the original
--- template.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.insert@.
-module Network.Google.Resource.Compute.InstanceTemplates.Insert
-    (
-    -- * REST Resource
-      InstanceTemplatesInsertResource
-
-    -- * Creating a Request
-    , instanceTemplatesInsert
-    , InstanceTemplatesInsert
-
-    -- * Request Lenses
-    , itiRequestId
-    , itiProject
-    , itiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.insert@ method which the
--- 'InstanceTemplatesInsert' request conforms to.
-type InstanceTemplatesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] InstanceTemplate :>
-                       Post '[JSON] Operation
-
--- | Creates an instance template in the specified project using the data
--- that is included in the request. If you are creating a new template to
--- update an existing instance group, your new instance template must use
--- the same network or, if applicable, the same subnetwork as the original
--- template.
---
--- /See:/ 'instanceTemplatesInsert' smart constructor.
-data InstanceTemplatesInsert =
-  InstanceTemplatesInsert'
-    { _itiRequestId :: !(Maybe Text)
-    , _itiProject   :: !Text
-    , _itiPayload   :: !InstanceTemplate
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itiRequestId'
---
--- * 'itiProject'
---
--- * 'itiPayload'
-instanceTemplatesInsert
-    :: Text -- ^ 'itiProject'
-    -> InstanceTemplate -- ^ 'itiPayload'
-    -> InstanceTemplatesInsert
-instanceTemplatesInsert pItiProject_ pItiPayload_ =
-  InstanceTemplatesInsert'
-    { _itiRequestId = Nothing
-    , _itiProject = pItiProject_
-    , _itiPayload = pItiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-itiRequestId :: Lens' InstanceTemplatesInsert (Maybe Text)
-itiRequestId
-  = lens _itiRequestId (\ s a -> s{_itiRequestId = a})
-
--- | Project ID for this request.
-itiProject :: Lens' InstanceTemplatesInsert Text
-itiProject
-  = lens _itiProject (\ s a -> s{_itiProject = a})
-
--- | Multipart request metadata.
-itiPayload :: Lens' InstanceTemplatesInsert InstanceTemplate
-itiPayload
-  = lens _itiPayload (\ s a -> s{_itiPayload = a})
-
-instance GoogleRequest InstanceTemplatesInsert where
-        type Rs InstanceTemplatesInsert = Operation
-        type Scopes InstanceTemplatesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceTemplatesInsert'{..}
-          = go _itiProject _itiRequestId (Just AltJSON)
-              _itiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceTemplatesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/List.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.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)
---
--- Retrieves a list of instance templates that are contained within the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.list@.
-module Network.Google.Resource.Compute.InstanceTemplates.List
-    (
-    -- * REST Resource
-      InstanceTemplatesListResource
-
-    -- * Creating a Request
-    , instanceTemplatesList
-    , InstanceTemplatesList
-
-    -- * Request Lenses
-    , itlOrderBy
-    , itlProject
-    , itlFilter
-    , itlPageToken
-    , itlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.list@ method which the
--- 'InstanceTemplatesList' request conforms to.
-type InstanceTemplatesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InstanceTemplateList
-
--- | Retrieves a list of instance templates that are contained within the
--- specified project.
---
--- /See:/ 'instanceTemplatesList' smart constructor.
-data InstanceTemplatesList =
-  InstanceTemplatesList'
-    { _itlOrderBy    :: !(Maybe Text)
-    , _itlProject    :: !Text
-    , _itlFilter     :: !(Maybe Text)
-    , _itlPageToken  :: !(Maybe Text)
-    , _itlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itlOrderBy'
---
--- * 'itlProject'
---
--- * 'itlFilter'
---
--- * 'itlPageToken'
---
--- * 'itlMaxResults'
-instanceTemplatesList
-    :: Text -- ^ 'itlProject'
-    -> InstanceTemplatesList
-instanceTemplatesList pItlProject_ =
-  InstanceTemplatesList'
-    { _itlOrderBy = Nothing
-    , _itlProject = pItlProject_
-    , _itlFilter = Nothing
-    , _itlPageToken = Nothing
-    , _itlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-itlOrderBy :: Lens' InstanceTemplatesList (Maybe Text)
-itlOrderBy
-  = lens _itlOrderBy (\ s a -> s{_itlOrderBy = a})
-
--- | Project ID for this request.
-itlProject :: Lens' InstanceTemplatesList Text
-itlProject
-  = lens _itlProject (\ s a -> s{_itlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-itlFilter :: Lens' InstanceTemplatesList (Maybe Text)
-itlFilter
-  = lens _itlFilter (\ s a -> s{_itlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-itlPageToken :: Lens' InstanceTemplatesList (Maybe Text)
-itlPageToken
-  = lens _itlPageToken (\ s a -> s{_itlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-itlMaxResults :: Lens' InstanceTemplatesList Word32
-itlMaxResults
-  = lens _itlMaxResults
-      (\ s a -> s{_itlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstanceTemplatesList where
-        type Rs InstanceTemplatesList = InstanceTemplateList
-        type Scopes InstanceTemplatesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstanceTemplatesList'{..}
-          = go _itlProject _itlOrderBy _itlFilter _itlPageToken
-              (Just _itlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstanceTemplatesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/SetIAMPolicy.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.setIamPolicy@.
-module Network.Google.Resource.Compute.InstanceTemplates.SetIAMPolicy
-    (
-    -- * REST Resource
-      InstanceTemplatesSetIAMPolicyResource
-
-    -- * Creating a Request
-    , instanceTemplatesSetIAMPolicy
-    , InstanceTemplatesSetIAMPolicy
-
-    -- * Request Lenses
-    , itsipProject
-    , itsipPayload
-    , itsipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.setIamPolicy@ method which the
--- 'InstanceTemplatesSetIAMPolicy' request conforms to.
-type InstanceTemplatesSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 Capture "resource" Text :>
-                   "setIamPolicy" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetPolicyRequest :>
-                         Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'instanceTemplatesSetIAMPolicy' smart constructor.
-data InstanceTemplatesSetIAMPolicy =
-  InstanceTemplatesSetIAMPolicy'
-    { _itsipProject  :: !Text
-    , _itsipPayload  :: !GlobalSetPolicyRequest
-    , _itsipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itsipProject'
---
--- * 'itsipPayload'
---
--- * 'itsipResource'
-instanceTemplatesSetIAMPolicy
-    :: Text -- ^ 'itsipProject'
-    -> GlobalSetPolicyRequest -- ^ 'itsipPayload'
-    -> Text -- ^ 'itsipResource'
-    -> InstanceTemplatesSetIAMPolicy
-instanceTemplatesSetIAMPolicy pItsipProject_ pItsipPayload_ pItsipResource_ =
-  InstanceTemplatesSetIAMPolicy'
-    { _itsipProject = pItsipProject_
-    , _itsipPayload = pItsipPayload_
-    , _itsipResource = pItsipResource_
-    }
-
-
--- | Project ID for this request.
-itsipProject :: Lens' InstanceTemplatesSetIAMPolicy Text
-itsipProject
-  = lens _itsipProject (\ s a -> s{_itsipProject = a})
-
--- | Multipart request metadata.
-itsipPayload :: Lens' InstanceTemplatesSetIAMPolicy GlobalSetPolicyRequest
-itsipPayload
-  = lens _itsipPayload (\ s a -> s{_itsipPayload = a})
-
--- | Name or id of the resource for this request.
-itsipResource :: Lens' InstanceTemplatesSetIAMPolicy Text
-itsipResource
-  = lens _itsipResource
-      (\ s a -> s{_itsipResource = a})
-
-instance GoogleRequest InstanceTemplatesSetIAMPolicy
-         where
-        type Rs InstanceTemplatesSetIAMPolicy = Policy
-        type Scopes InstanceTemplatesSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstanceTemplatesSetIAMPolicy'{..}
-          = go _itsipProject _itsipResource (Just AltJSON)
-              _itsipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceTemplatesSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InstanceTemplates/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/InstanceTemplates/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InstanceTemplates/TestIAMPermissions.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InstanceTemplates.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instanceTemplates.testIamPermissions@.
-module Network.Google.Resource.Compute.InstanceTemplates.TestIAMPermissions
-    (
-    -- * REST Resource
-      InstanceTemplatesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , instanceTemplatesTestIAMPermissions
-    , InstanceTemplatesTestIAMPermissions
-
-    -- * Request Lenses
-    , ittipProject
-    , ittipPayload
-    , ittipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instanceTemplates.testIamPermissions@ method which the
--- 'InstanceTemplatesTestIAMPermissions' request conforms to.
-type InstanceTemplatesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "instanceTemplates" :>
-                 Capture "resource" Text :>
-                   "testIamPermissions" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TestPermissionsRequest :>
-                         Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'instanceTemplatesTestIAMPermissions' smart constructor.
-data InstanceTemplatesTestIAMPermissions =
-  InstanceTemplatesTestIAMPermissions'
-    { _ittipProject  :: !Text
-    , _ittipPayload  :: !TestPermissionsRequest
-    , _ittipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstanceTemplatesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ittipProject'
---
--- * 'ittipPayload'
---
--- * 'ittipResource'
-instanceTemplatesTestIAMPermissions
-    :: Text -- ^ 'ittipProject'
-    -> TestPermissionsRequest -- ^ 'ittipPayload'
-    -> Text -- ^ 'ittipResource'
-    -> InstanceTemplatesTestIAMPermissions
-instanceTemplatesTestIAMPermissions pIttipProject_ pIttipPayload_ pIttipResource_ =
-  InstanceTemplatesTestIAMPermissions'
-    { _ittipProject = pIttipProject_
-    , _ittipPayload = pIttipPayload_
-    , _ittipResource = pIttipResource_
-    }
-
-
--- | Project ID for this request.
-ittipProject :: Lens' InstanceTemplatesTestIAMPermissions Text
-ittipProject
-  = lens _ittipProject (\ s a -> s{_ittipProject = a})
-
--- | Multipart request metadata.
-ittipPayload :: Lens' InstanceTemplatesTestIAMPermissions TestPermissionsRequest
-ittipPayload
-  = lens _ittipPayload (\ s a -> s{_ittipPayload = a})
-
--- | Name or id of the resource for this request.
-ittipResource :: Lens' InstanceTemplatesTestIAMPermissions Text
-ittipResource
-  = lens _ittipResource
-      (\ s a -> s{_ittipResource = a})
-
-instance GoogleRequest
-           InstanceTemplatesTestIAMPermissions
-         where
-        type Rs InstanceTemplatesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes InstanceTemplatesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          InstanceTemplatesTestIAMPermissions'{..}
-          = go _ittipProject _ittipResource (Just AltJSON)
-              _ittipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstanceTemplatesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/AddAccessConfig.hs b/gen/Network/Google/Resource/Compute/Instances/AddAccessConfig.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/AddAccessConfig.hs
+++ /dev/null
@@ -1,168 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.AddAccessConfig
--- 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)
---
--- Adds an access config to an instance\'s network interface.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.addAccessConfig@.
-module Network.Google.Resource.Compute.Instances.AddAccessConfig
-    (
-    -- * REST Resource
-      InstancesAddAccessConfigResource
-
-    -- * Creating a Request
-    , instancesAddAccessConfig
-    , InstancesAddAccessConfig
-
-    -- * Request Lenses
-    , iaacRequestId
-    , iaacProject
-    , iaacNetworkInterface
-    , iaacZone
-    , iaacPayload
-    , iaacInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.addAccessConfig@ method which the
--- 'InstancesAddAccessConfig' request conforms to.
-type InstancesAddAccessConfigResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "addAccessConfig" :>
-                       QueryParam "networkInterface" Text :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] AccessConfig :>
-                               Post '[JSON] Operation
-
--- | Adds an access config to an instance\'s network interface.
---
--- /See:/ 'instancesAddAccessConfig' smart constructor.
-data InstancesAddAccessConfig =
-  InstancesAddAccessConfig'
-    { _iaacRequestId        :: !(Maybe Text)
-    , _iaacProject          :: !Text
-    , _iaacNetworkInterface :: !Text
-    , _iaacZone             :: !Text
-    , _iaacPayload          :: !AccessConfig
-    , _iaacInstance         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesAddAccessConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaacRequestId'
---
--- * 'iaacProject'
---
--- * 'iaacNetworkInterface'
---
--- * 'iaacZone'
---
--- * 'iaacPayload'
---
--- * 'iaacInstance'
-instancesAddAccessConfig
-    :: Text -- ^ 'iaacProject'
-    -> Text -- ^ 'iaacNetworkInterface'
-    -> Text -- ^ 'iaacZone'
-    -> AccessConfig -- ^ 'iaacPayload'
-    -> Text -- ^ 'iaacInstance'
-    -> InstancesAddAccessConfig
-instancesAddAccessConfig pIaacProject_ pIaacNetworkInterface_ pIaacZone_ pIaacPayload_ pIaacInstance_ =
-  InstancesAddAccessConfig'
-    { _iaacRequestId = Nothing
-    , _iaacProject = pIaacProject_
-    , _iaacNetworkInterface = pIaacNetworkInterface_
-    , _iaacZone = pIaacZone_
-    , _iaacPayload = pIaacPayload_
-    , _iaacInstance = pIaacInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iaacRequestId :: Lens' InstancesAddAccessConfig (Maybe Text)
-iaacRequestId
-  = lens _iaacRequestId
-      (\ s a -> s{_iaacRequestId = a})
-
--- | Project ID for this request.
-iaacProject :: Lens' InstancesAddAccessConfig Text
-iaacProject
-  = lens _iaacProject (\ s a -> s{_iaacProject = a})
-
--- | The name of the network interface to add to this instance.
-iaacNetworkInterface :: Lens' InstancesAddAccessConfig Text
-iaacNetworkInterface
-  = lens _iaacNetworkInterface
-      (\ s a -> s{_iaacNetworkInterface = a})
-
--- | The name of the zone for this request.
-iaacZone :: Lens' InstancesAddAccessConfig Text
-iaacZone = lens _iaacZone (\ s a -> s{_iaacZone = a})
-
--- | Multipart request metadata.
-iaacPayload :: Lens' InstancesAddAccessConfig AccessConfig
-iaacPayload
-  = lens _iaacPayload (\ s a -> s{_iaacPayload = a})
-
--- | The instance name for this request.
-iaacInstance :: Lens' InstancesAddAccessConfig Text
-iaacInstance
-  = lens _iaacInstance (\ s a -> s{_iaacInstance = a})
-
-instance GoogleRequest InstancesAddAccessConfig where
-        type Rs InstancesAddAccessConfig = Operation
-        type Scopes InstancesAddAccessConfig =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesAddAccessConfig'{..}
-          = go _iaacProject _iaacZone _iaacInstance
-              (Just _iaacNetworkInterface)
-              _iaacRequestId
-              (Just AltJSON)
-              _iaacPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesAddAccessConfigResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Instances/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.AggregatedList
--- 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)
---
--- Retrieves aggregated list of all of the instances in your project across
--- all regions and zones.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.aggregatedList@.
-module Network.Google.Resource.Compute.Instances.AggregatedList
-    (
-    -- * REST Resource
-      InstancesAggregatedListResource
-
-    -- * Creating a Request
-    , instancesAggregatedList
-    , InstancesAggregatedList
-
-    -- * Request Lenses
-    , ialaOrderBy
-    , ialaProject
-    , ialaFilter
-    , ialaPageToken
-    , ialaMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.aggregatedList@ method which the
--- 'InstancesAggregatedList' request conforms to.
-type InstancesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "instances" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InstanceAggregatedList
-
--- | Retrieves aggregated list of all of the instances in your project across
--- all regions and zones.
---
--- /See:/ 'instancesAggregatedList' smart constructor.
-data InstancesAggregatedList =
-  InstancesAggregatedList'
-    { _ialaOrderBy    :: !(Maybe Text)
-    , _ialaProject    :: !Text
-    , _ialaFilter     :: !(Maybe Text)
-    , _ialaPageToken  :: !(Maybe Text)
-    , _ialaMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialaOrderBy'
---
--- * 'ialaProject'
---
--- * 'ialaFilter'
---
--- * 'ialaPageToken'
---
--- * 'ialaMaxResults'
-instancesAggregatedList
-    :: Text -- ^ 'ialaProject'
-    -> InstancesAggregatedList
-instancesAggregatedList pIalaProject_ =
-  InstancesAggregatedList'
-    { _ialaOrderBy = Nothing
-    , _ialaProject = pIalaProject_
-    , _ialaFilter = Nothing
-    , _ialaPageToken = Nothing
-    , _ialaMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ialaOrderBy :: Lens' InstancesAggregatedList (Maybe Text)
-ialaOrderBy
-  = lens _ialaOrderBy (\ s a -> s{_ialaOrderBy = a})
-
--- | Project ID for this request.
-ialaProject :: Lens' InstancesAggregatedList Text
-ialaProject
-  = lens _ialaProject (\ s a -> s{_ialaProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ialaFilter :: Lens' InstancesAggregatedList (Maybe Text)
-ialaFilter
-  = lens _ialaFilter (\ s a -> s{_ialaFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ialaPageToken :: Lens' InstancesAggregatedList (Maybe Text)
-ialaPageToken
-  = lens _ialaPageToken
-      (\ s a -> s{_ialaPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ialaMaxResults :: Lens' InstancesAggregatedList Word32
-ialaMaxResults
-  = lens _ialaMaxResults
-      (\ s a -> s{_ialaMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstancesAggregatedList where
-        type Rs InstancesAggregatedList =
-             InstanceAggregatedList
-        type Scopes InstancesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesAggregatedList'{..}
-          = go _ialaProject _ialaOrderBy _ialaFilter
-              _ialaPageToken
-              (Just _ialaMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/AttachDisk.hs b/gen/Network/Google/Resource/Compute/Instances/AttachDisk.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/AttachDisk.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.AttachDisk
--- 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)
---
--- Attaches an existing Disk resource to an instance. You must first create
--- the disk before you can attach it. It is not possible to create and
--- attach a disk at the same time. For more information, read Adding a
--- persistent disk to your instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.attachDisk@.
-module Network.Google.Resource.Compute.Instances.AttachDisk
-    (
-    -- * REST Resource
-      InstancesAttachDiskResource
-
-    -- * Creating a Request
-    , instancesAttachDisk
-    , InstancesAttachDisk
-
-    -- * Request Lenses
-    , insRequestId
-    , insProject
-    , insZone
-    , insPayload
-    , insForceAttach
-    , insInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.attachDisk@ method which the
--- 'InstancesAttachDisk' request conforms to.
-type InstancesAttachDiskResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "attachDisk" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "forceAttach" Bool :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] AttachedDisk :>
-                               Post '[JSON] Operation
-
--- | Attaches an existing Disk resource to an instance. You must first create
--- the disk before you can attach it. It is not possible to create and
--- attach a disk at the same time. For more information, read Adding a
--- persistent disk to your instance.
---
--- /See:/ 'instancesAttachDisk' smart constructor.
-data InstancesAttachDisk =
-  InstancesAttachDisk'
-    { _insRequestId   :: !(Maybe Text)
-    , _insProject     :: !Text
-    , _insZone        :: !Text
-    , _insPayload     :: !AttachedDisk
-    , _insForceAttach :: !(Maybe Bool)
-    , _insInstance    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesAttachDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'insRequestId'
---
--- * 'insProject'
---
--- * 'insZone'
---
--- * 'insPayload'
---
--- * 'insForceAttach'
---
--- * 'insInstance'
-instancesAttachDisk
-    :: Text -- ^ 'insProject'
-    -> Text -- ^ 'insZone'
-    -> AttachedDisk -- ^ 'insPayload'
-    -> Text -- ^ 'insInstance'
-    -> InstancesAttachDisk
-instancesAttachDisk pInsProject_ pInsZone_ pInsPayload_ pInsInstance_ =
-  InstancesAttachDisk'
-    { _insRequestId = Nothing
-    , _insProject = pInsProject_
-    , _insZone = pInsZone_
-    , _insPayload = pInsPayload_
-    , _insForceAttach = Nothing
-    , _insInstance = pInsInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-insRequestId :: Lens' InstancesAttachDisk (Maybe Text)
-insRequestId
-  = lens _insRequestId (\ s a -> s{_insRequestId = a})
-
--- | Project ID for this request.
-insProject :: Lens' InstancesAttachDisk Text
-insProject
-  = lens _insProject (\ s a -> s{_insProject = a})
-
--- | The name of the zone for this request.
-insZone :: Lens' InstancesAttachDisk Text
-insZone = lens _insZone (\ s a -> s{_insZone = a})
-
--- | Multipart request metadata.
-insPayload :: Lens' InstancesAttachDisk AttachedDisk
-insPayload
-  = lens _insPayload (\ s a -> s{_insPayload = a})
-
--- | Whether to force attach the disk even if it\'s currently attached to
--- another instance.
-insForceAttach :: Lens' InstancesAttachDisk (Maybe Bool)
-insForceAttach
-  = lens _insForceAttach
-      (\ s a -> s{_insForceAttach = a})
-
--- | The instance name for this request.
-insInstance :: Lens' InstancesAttachDisk Text
-insInstance
-  = lens _insInstance (\ s a -> s{_insInstance = a})
-
-instance GoogleRequest InstancesAttachDisk where
-        type Rs InstancesAttachDisk = Operation
-        type Scopes InstancesAttachDisk =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesAttachDisk'{..}
-          = go _insProject _insZone _insInstance _insRequestId
-              _insForceAttach
-              (Just AltJSON)
-              _insPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesAttachDiskResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Delete.hs b/gen/Network/Google/Resource/Compute/Instances/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Delete.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Delete
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes the specified Instance resource. For more information, see
--- Stopping or Deleting an Instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.delete@.
-module Network.Google.Resource.Compute.Instances.Delete
-    (
-    -- * REST Resource
-      InstancesDeleteResource
-
-    -- * Creating a Request
-    , instancesDelete
-    , InstancesDelete
-
-    -- * Request Lenses
-    , idRequestId
-    , idProject
-    , idZone
-    , idInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.delete@ method which the
--- 'InstancesDelete' request conforms to.
-type InstancesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified Instance resource. For more information, see
--- Stopping or Deleting an Instance.
---
--- /See:/ 'instancesDelete' smart constructor.
-data InstancesDelete =
-  InstancesDelete'
-    { _idRequestId :: !(Maybe Text)
-    , _idProject   :: !Text
-    , _idZone      :: !Text
-    , _idInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idRequestId'
---
--- * 'idProject'
---
--- * 'idZone'
---
--- * 'idInstance'
-instancesDelete
-    :: Text -- ^ 'idProject'
-    -> Text -- ^ 'idZone'
-    -> Text -- ^ 'idInstance'
-    -> InstancesDelete
-instancesDelete pIdProject_ pIdZone_ pIdInstance_ =
-  InstancesDelete'
-    { _idRequestId = Nothing
-    , _idProject = pIdProject_
-    , _idZone = pIdZone_
-    , _idInstance = pIdInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-idRequestId :: Lens' InstancesDelete (Maybe Text)
-idRequestId
-  = lens _idRequestId (\ s a -> s{_idRequestId = a})
-
--- | Project ID for this request.
-idProject :: Lens' InstancesDelete Text
-idProject
-  = lens _idProject (\ s a -> s{_idProject = a})
-
--- | The name of the zone for this request.
-idZone :: Lens' InstancesDelete Text
-idZone = lens _idZone (\ s a -> s{_idZone = a})
-
--- | Name of the instance resource to delete.
-idInstance :: Lens' InstancesDelete Text
-idInstance
-  = lens _idInstance (\ s a -> s{_idInstance = a})
-
-instance GoogleRequest InstancesDelete where
-        type Rs InstancesDelete = Operation
-        type Scopes InstancesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesDelete'{..}
-          = go _idProject _idZone _idInstance _idRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/DeleteAccessConfig.hs b/gen/Network/Google/Resource/Compute/Instances/DeleteAccessConfig.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/DeleteAccessConfig.hs
+++ /dev/null
@@ -1,169 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.DeleteAccessConfig
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes an access config from an instance\'s network interface.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.deleteAccessConfig@.
-module Network.Google.Resource.Compute.Instances.DeleteAccessConfig
-    (
-    -- * REST Resource
-      InstancesDeleteAccessConfigResource
-
-    -- * Creating a Request
-    , instancesDeleteAccessConfig
-    , InstancesDeleteAccessConfig
-
-    -- * Request Lenses
-    , idacRequestId
-    , idacProject
-    , idacNetworkInterface
-    , idacZone
-    , idacAccessConfig
-    , idacInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.deleteAccessConfig@ method which the
--- 'InstancesDeleteAccessConfig' request conforms to.
-type InstancesDeleteAccessConfigResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "deleteAccessConfig" :>
-                       QueryParam "accessConfig" Text :>
-                         QueryParam "networkInterface" Text :>
-                           QueryParam "requestId" Text :>
-                             QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Deletes an access config from an instance\'s network interface.
---
--- /See:/ 'instancesDeleteAccessConfig' smart constructor.
-data InstancesDeleteAccessConfig =
-  InstancesDeleteAccessConfig'
-    { _idacRequestId        :: !(Maybe Text)
-    , _idacProject          :: !Text
-    , _idacNetworkInterface :: !Text
-    , _idacZone             :: !Text
-    , _idacAccessConfig     :: !Text
-    , _idacInstance         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesDeleteAccessConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idacRequestId'
---
--- * 'idacProject'
---
--- * 'idacNetworkInterface'
---
--- * 'idacZone'
---
--- * 'idacAccessConfig'
---
--- * 'idacInstance'
-instancesDeleteAccessConfig
-    :: Text -- ^ 'idacProject'
-    -> Text -- ^ 'idacNetworkInterface'
-    -> Text -- ^ 'idacZone'
-    -> Text -- ^ 'idacAccessConfig'
-    -> Text -- ^ 'idacInstance'
-    -> InstancesDeleteAccessConfig
-instancesDeleteAccessConfig pIdacProject_ pIdacNetworkInterface_ pIdacZone_ pIdacAccessConfig_ pIdacInstance_ =
-  InstancesDeleteAccessConfig'
-    { _idacRequestId = Nothing
-    , _idacProject = pIdacProject_
-    , _idacNetworkInterface = pIdacNetworkInterface_
-    , _idacZone = pIdacZone_
-    , _idacAccessConfig = pIdacAccessConfig_
-    , _idacInstance = pIdacInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-idacRequestId :: Lens' InstancesDeleteAccessConfig (Maybe Text)
-idacRequestId
-  = lens _idacRequestId
-      (\ s a -> s{_idacRequestId = a})
-
--- | Project ID for this request.
-idacProject :: Lens' InstancesDeleteAccessConfig Text
-idacProject
-  = lens _idacProject (\ s a -> s{_idacProject = a})
-
--- | The name of the network interface.
-idacNetworkInterface :: Lens' InstancesDeleteAccessConfig Text
-idacNetworkInterface
-  = lens _idacNetworkInterface
-      (\ s a -> s{_idacNetworkInterface = a})
-
--- | The name of the zone for this request.
-idacZone :: Lens' InstancesDeleteAccessConfig Text
-idacZone = lens _idacZone (\ s a -> s{_idacZone = a})
-
--- | The name of the access config to delete.
-idacAccessConfig :: Lens' InstancesDeleteAccessConfig Text
-idacAccessConfig
-  = lens _idacAccessConfig
-      (\ s a -> s{_idacAccessConfig = a})
-
--- | The instance name for this request.
-idacInstance :: Lens' InstancesDeleteAccessConfig Text
-idacInstance
-  = lens _idacInstance (\ s a -> s{_idacInstance = a})
-
-instance GoogleRequest InstancesDeleteAccessConfig
-         where
-        type Rs InstancesDeleteAccessConfig = Operation
-        type Scopes InstancesDeleteAccessConfig =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesDeleteAccessConfig'{..}
-          = go _idacProject _idacZone _idacInstance
-              (Just _idacAccessConfig)
-              (Just _idacNetworkInterface)
-              _idacRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesDeleteAccessConfigResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/DetachDisk.hs b/gen/Network/Google/Resource/Compute/Instances/DetachDisk.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/DetachDisk.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.DetachDisk
--- 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)
---
--- Detaches a disk from an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.detachDisk@.
-module Network.Google.Resource.Compute.Instances.DetachDisk
-    (
-    -- * REST Resource
-      InstancesDetachDiskResource
-
-    -- * Creating a Request
-    , instancesDetachDisk
-    , InstancesDetachDisk
-
-    -- * Request Lenses
-    , idddRequestId
-    , idddProject
-    , idddZone
-    , idddDeviceName
-    , idddInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.detachDisk@ method which the
--- 'InstancesDetachDisk' request conforms to.
-type InstancesDetachDiskResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "detachDisk" :>
-                       QueryParam "deviceName" Text :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Detaches a disk from an instance.
---
--- /See:/ 'instancesDetachDisk' smart constructor.
-data InstancesDetachDisk =
-  InstancesDetachDisk'
-    { _idddRequestId  :: !(Maybe Text)
-    , _idddProject    :: !Text
-    , _idddZone       :: !Text
-    , _idddDeviceName :: !Text
-    , _idddInstance   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesDetachDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'idddRequestId'
---
--- * 'idddProject'
---
--- * 'idddZone'
---
--- * 'idddDeviceName'
---
--- * 'idddInstance'
-instancesDetachDisk
-    :: Text -- ^ 'idddProject'
-    -> Text -- ^ 'idddZone'
-    -> Text -- ^ 'idddDeviceName'
-    -> Text -- ^ 'idddInstance'
-    -> InstancesDetachDisk
-instancesDetachDisk pIdddProject_ pIdddZone_ pIdddDeviceName_ pIdddInstance_ =
-  InstancesDetachDisk'
-    { _idddRequestId = Nothing
-    , _idddProject = pIdddProject_
-    , _idddZone = pIdddZone_
-    , _idddDeviceName = pIdddDeviceName_
-    , _idddInstance = pIdddInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-idddRequestId :: Lens' InstancesDetachDisk (Maybe Text)
-idddRequestId
-  = lens _idddRequestId
-      (\ s a -> s{_idddRequestId = a})
-
--- | Project ID for this request.
-idddProject :: Lens' InstancesDetachDisk Text
-idddProject
-  = lens _idddProject (\ s a -> s{_idddProject = a})
-
--- | The name of the zone for this request.
-idddZone :: Lens' InstancesDetachDisk Text
-idddZone = lens _idddZone (\ s a -> s{_idddZone = a})
-
--- | The device name of the disk to detach. Make a get() request on the
--- instance to view currently attached disks and device names.
-idddDeviceName :: Lens' InstancesDetachDisk Text
-idddDeviceName
-  = lens _idddDeviceName
-      (\ s a -> s{_idddDeviceName = a})
-
--- | Instance name for this request.
-idddInstance :: Lens' InstancesDetachDisk Text
-idddInstance
-  = lens _idddInstance (\ s a -> s{_idddInstance = a})
-
-instance GoogleRequest InstancesDetachDisk where
-        type Rs InstancesDetachDisk = Operation
-        type Scopes InstancesDetachDisk =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesDetachDisk'{..}
-          = go _idddProject _idddZone _idddInstance
-              (Just _idddDeviceName)
-              _idddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesDetachDiskResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Get.hs b/gen/Network/Google/Resource/Compute/Instances/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Get.hs
+++ /dev/null
@@ -1,115 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Get
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns the specified Instance resource. Gets a list of available
--- instances by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.get@.
-module Network.Google.Resource.Compute.Instances.Get
-    (
-    -- * REST Resource
-      InstancesGetResource
-
-    -- * Creating a Request
-    , instancesGet
-    , InstancesGet
-
-    -- * Request Lenses
-    , igProject
-    , igZone
-    , igInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.get@ method which the
--- 'InstancesGet' request conforms to.
-type InstancesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Instance
-
--- | Returns the specified Instance resource. Gets a list of available
--- instances by making a list() request.
---
--- /See:/ 'instancesGet' smart constructor.
-data InstancesGet =
-  InstancesGet'
-    { _igProject  :: !Text
-    , _igZone     :: !Text
-    , _igInstance :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igProject'
---
--- * 'igZone'
---
--- * 'igInstance'
-instancesGet
-    :: Text -- ^ 'igProject'
-    -> Text -- ^ 'igZone'
-    -> Text -- ^ 'igInstance'
-    -> InstancesGet
-instancesGet pIgProject_ pIgZone_ pIgInstance_ =
-  InstancesGet'
-    {_igProject = pIgProject_, _igZone = pIgZone_, _igInstance = pIgInstance_}
-
-
--- | Project ID for this request.
-igProject :: Lens' InstancesGet Text
-igProject
-  = lens _igProject (\ s a -> s{_igProject = a})
-
--- | The name of the zone for this request.
-igZone :: Lens' InstancesGet Text
-igZone = lens _igZone (\ s a -> s{_igZone = a})
-
--- | Name of the instance resource to return.
-igInstance :: Lens' InstancesGet Text
-igInstance
-  = lens _igInstance (\ s a -> s{_igInstance = a})
-
-instance GoogleRequest InstancesGet where
-        type Rs InstancesGet = Instance
-        type Scopes InstancesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesGet'{..}
-          = go _igProject _igZone _igInstance (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy InstancesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Instances/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/GetIAMPolicy.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.getIamPolicy@.
-module Network.Google.Resource.Compute.Instances.GetIAMPolicy
-    (
-    -- * REST Resource
-      InstancesGetIAMPolicyResource
-
-    -- * Creating a Request
-    , instancesGetIAMPolicy
-    , InstancesGetIAMPolicy
-
-    -- * Request Lenses
-    , igiampProject
-    , igiampZone
-    , igiampResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.getIamPolicy@ method which the
--- 'InstancesGetIAMPolicy' request conforms to.
-type InstancesGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "resource" Text :>
-                     "getIamPolicy" :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'instancesGetIAMPolicy' smart constructor.
-data InstancesGetIAMPolicy =
-  InstancesGetIAMPolicy'
-    { _igiampProject  :: !Text
-    , _igiampZone     :: !Text
-    , _igiampResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igiampProject'
---
--- * 'igiampZone'
---
--- * 'igiampResource'
-instancesGetIAMPolicy
-    :: Text -- ^ 'igiampProject'
-    -> Text -- ^ 'igiampZone'
-    -> Text -- ^ 'igiampResource'
-    -> InstancesGetIAMPolicy
-instancesGetIAMPolicy pIgiampProject_ pIgiampZone_ pIgiampResource_ =
-  InstancesGetIAMPolicy'
-    { _igiampProject = pIgiampProject_
-    , _igiampZone = pIgiampZone_
-    , _igiampResource = pIgiampResource_
-    }
-
-
--- | Project ID for this request.
-igiampProject :: Lens' InstancesGetIAMPolicy Text
-igiampProject
-  = lens _igiampProject
-      (\ s a -> s{_igiampProject = a})
-
--- | The name of the zone for this request.
-igiampZone :: Lens' InstancesGetIAMPolicy Text
-igiampZone
-  = lens _igiampZone (\ s a -> s{_igiampZone = a})
-
--- | Name or id of the resource for this request.
-igiampResource :: Lens' InstancesGetIAMPolicy Text
-igiampResource
-  = lens _igiampResource
-      (\ s a -> s{_igiampResource = a})
-
-instance GoogleRequest InstancesGetIAMPolicy where
-        type Rs InstancesGetIAMPolicy = Policy
-        type Scopes InstancesGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesGetIAMPolicy'{..}
-          = go _igiampProject _igiampZone _igiampResource
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/GetSerialPortOutput.hs b/gen/Network/Google/Resource/Compute/Instances/GetSerialPortOutput.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/GetSerialPortOutput.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.GetSerialPortOutput
--- 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)
---
--- Returns the last 1 MB of serial port output from the specified instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.getSerialPortOutput@.
-module Network.Google.Resource.Compute.Instances.GetSerialPortOutput
-    (
-    -- * REST Resource
-      InstancesGetSerialPortOutputResource
-
-    -- * Creating a Request
-    , instancesGetSerialPortOutput
-    , InstancesGetSerialPortOutput
-
-    -- * Request Lenses
-    , igspoProject
-    , igspoStart
-    , igspoZone
-    , igspoPort
-    , igspoInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.getSerialPortOutput@ method which the
--- 'InstancesGetSerialPortOutput' request conforms to.
-type InstancesGetSerialPortOutputResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "serialPort" :>
-                       QueryParam "start" (Textual Int64) :>
-                         QueryParam "port" (Textual Int32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] SerialPortOutput
-
--- | Returns the last 1 MB of serial port output from the specified instance.
---
--- /See:/ 'instancesGetSerialPortOutput' smart constructor.
-data InstancesGetSerialPortOutput =
-  InstancesGetSerialPortOutput'
-    { _igspoProject  :: !Text
-    , _igspoStart    :: !(Maybe (Textual Int64))
-    , _igspoZone     :: !Text
-    , _igspoPort     :: !(Textual Int32)
-    , _igspoInstance :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesGetSerialPortOutput' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igspoProject'
---
--- * 'igspoStart'
---
--- * 'igspoZone'
---
--- * 'igspoPort'
---
--- * 'igspoInstance'
-instancesGetSerialPortOutput
-    :: Text -- ^ 'igspoProject'
-    -> Text -- ^ 'igspoZone'
-    -> Text -- ^ 'igspoInstance'
-    -> InstancesGetSerialPortOutput
-instancesGetSerialPortOutput pIgspoProject_ pIgspoZone_ pIgspoInstance_ =
-  InstancesGetSerialPortOutput'
-    { _igspoProject = pIgspoProject_
-    , _igspoStart = Nothing
-    , _igspoZone = pIgspoZone_
-    , _igspoPort = 1
-    , _igspoInstance = pIgspoInstance_
-    }
-
-
--- | Project ID for this request.
-igspoProject :: Lens' InstancesGetSerialPortOutput Text
-igspoProject
-  = lens _igspoProject (\ s a -> s{_igspoProject = a})
-
--- | Returns output starting from a specific byte position. Use this to page
--- through output when the output is too large to return in a single
--- request. For the initial request, leave this field unspecified. For
--- subsequent calls, this field should be set to the next value returned in
--- the previous call.
-igspoStart :: Lens' InstancesGetSerialPortOutput (Maybe Int64)
-igspoStart
-  = lens _igspoStart (\ s a -> s{_igspoStart = a}) .
-      mapping _Coerce
-
--- | The name of the zone for this request.
-igspoZone :: Lens' InstancesGetSerialPortOutput Text
-igspoZone
-  = lens _igspoZone (\ s a -> s{_igspoZone = a})
-
--- | Specifies which COM or serial port to retrieve data from.
-igspoPort :: Lens' InstancesGetSerialPortOutput Int32
-igspoPort
-  = lens _igspoPort (\ s a -> s{_igspoPort = a}) .
-      _Coerce
-
--- | Name of the instance scoping this request.
-igspoInstance :: Lens' InstancesGetSerialPortOutput Text
-igspoInstance
-  = lens _igspoInstance
-      (\ s a -> s{_igspoInstance = a})
-
-instance GoogleRequest InstancesGetSerialPortOutput
-         where
-        type Rs InstancesGetSerialPortOutput =
-             SerialPortOutput
-        type Scopes InstancesGetSerialPortOutput =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesGetSerialPortOutput'{..}
-          = go _igspoProject _igspoZone _igspoInstance
-              _igspoStart
-              (Just _igspoPort)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesGetSerialPortOutputResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/GetShieldedInstanceIdentity.hs b/gen/Network/Google/Resource/Compute/Instances/GetShieldedInstanceIdentity.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/GetShieldedInstanceIdentity.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.GetShieldedInstanceIdentity
--- 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)
---
--- Returns the Shielded Instance Identity of an instance
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.getShieldedInstanceIdentity@.
-module Network.Google.Resource.Compute.Instances.GetShieldedInstanceIdentity
-    (
-    -- * REST Resource
-      InstancesGetShieldedInstanceIdentityResource
-
-    -- * Creating a Request
-    , instancesGetShieldedInstanceIdentity
-    , InstancesGetShieldedInstanceIdentity
-
-    -- * Request Lenses
-    , igsiiProject
-    , igsiiZone
-    , igsiiInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.getShieldedInstanceIdentity@ method which the
--- 'InstancesGetShieldedInstanceIdentity' request conforms to.
-type InstancesGetShieldedInstanceIdentityResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "getShieldedInstanceIdentity" :>
-                       QueryParam "alt" AltJSON :>
-                         Get '[JSON] ShieldedInstanceIdentity
-
--- | Returns the Shielded Instance Identity of an instance
---
--- /See:/ 'instancesGetShieldedInstanceIdentity' smart constructor.
-data InstancesGetShieldedInstanceIdentity =
-  InstancesGetShieldedInstanceIdentity'
-    { _igsiiProject  :: !Text
-    , _igsiiZone     :: !Text
-    , _igsiiInstance :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesGetShieldedInstanceIdentity' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igsiiProject'
---
--- * 'igsiiZone'
---
--- * 'igsiiInstance'
-instancesGetShieldedInstanceIdentity
-    :: Text -- ^ 'igsiiProject'
-    -> Text -- ^ 'igsiiZone'
-    -> Text -- ^ 'igsiiInstance'
-    -> InstancesGetShieldedInstanceIdentity
-instancesGetShieldedInstanceIdentity pIgsiiProject_ pIgsiiZone_ pIgsiiInstance_ =
-  InstancesGetShieldedInstanceIdentity'
-    { _igsiiProject = pIgsiiProject_
-    , _igsiiZone = pIgsiiZone_
-    , _igsiiInstance = pIgsiiInstance_
-    }
-
-
--- | Project ID for this request.
-igsiiProject :: Lens' InstancesGetShieldedInstanceIdentity Text
-igsiiProject
-  = lens _igsiiProject (\ s a -> s{_igsiiProject = a})
-
--- | The name of the zone for this request.
-igsiiZone :: Lens' InstancesGetShieldedInstanceIdentity Text
-igsiiZone
-  = lens _igsiiZone (\ s a -> s{_igsiiZone = a})
-
--- | Name or id of the instance scoping this request.
-igsiiInstance :: Lens' InstancesGetShieldedInstanceIdentity Text
-igsiiInstance
-  = lens _igsiiInstance
-      (\ s a -> s{_igsiiInstance = a})
-
-instance GoogleRequest
-           InstancesGetShieldedInstanceIdentity
-         where
-        type Rs InstancesGetShieldedInstanceIdentity =
-             ShieldedInstanceIdentity
-        type Scopes InstancesGetShieldedInstanceIdentity =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          InstancesGetShieldedInstanceIdentity'{..}
-          = go _igsiiProject _igsiiZone _igsiiInstance
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesGetShieldedInstanceIdentityResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Insert.hs b/gen/Network/Google/Resource/Compute/Instances/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Insert.hs
+++ /dev/null
@@ -1,158 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Insert
--- 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 an instance resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.insert@.
-module Network.Google.Resource.Compute.Instances.Insert
-    (
-    -- * REST Resource
-      InstancesInsertResource
-
-    -- * Creating a Request
-    , instancesInsert
-    , InstancesInsert
-
-    -- * Request Lenses
-    , iiiRequestId
-    , iiiProject
-    , iiiZone
-    , iiiPayload
-    , iiiSourceInstanceTemplate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.insert@ method which the
--- 'InstancesInsert' request conforms to.
-type InstancesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "sourceInstanceTemplate" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Instance :> Post '[JSON] Operation
-
--- | Creates an instance resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'instancesInsert' smart constructor.
-data InstancesInsert =
-  InstancesInsert'
-    { _iiiRequestId              :: !(Maybe Text)
-    , _iiiProject                :: !Text
-    , _iiiZone                   :: !Text
-    , _iiiPayload                :: !Instance
-    , _iiiSourceInstanceTemplate :: !(Maybe Text)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iiiRequestId'
---
--- * 'iiiProject'
---
--- * 'iiiZone'
---
--- * 'iiiPayload'
---
--- * 'iiiSourceInstanceTemplate'
-instancesInsert
-    :: Text -- ^ 'iiiProject'
-    -> Text -- ^ 'iiiZone'
-    -> Instance -- ^ 'iiiPayload'
-    -> InstancesInsert
-instancesInsert pIiiProject_ pIiiZone_ pIiiPayload_ =
-  InstancesInsert'
-    { _iiiRequestId = Nothing
-    , _iiiProject = pIiiProject_
-    , _iiiZone = pIiiZone_
-    , _iiiPayload = pIiiPayload_
-    , _iiiSourceInstanceTemplate = Nothing
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iiiRequestId :: Lens' InstancesInsert (Maybe Text)
-iiiRequestId
-  = lens _iiiRequestId (\ s a -> s{_iiiRequestId = a})
-
--- | Project ID for this request.
-iiiProject :: Lens' InstancesInsert Text
-iiiProject
-  = lens _iiiProject (\ s a -> s{_iiiProject = a})
-
--- | The name of the zone for this request.
-iiiZone :: Lens' InstancesInsert Text
-iiiZone = lens _iiiZone (\ s a -> s{_iiiZone = a})
-
--- | Multipart request metadata.
-iiiPayload :: Lens' InstancesInsert Instance
-iiiPayload
-  = lens _iiiPayload (\ s a -> s{_iiiPayload = a})
-
--- | Specifies instance template to create the instance. This field is
--- optional. It can be a full or partial URL. For example, the following
--- are all valid URLs to an instance template: -
--- https:\/\/www.googleapis.com\/compute\/v1\/projects\/project\/global\/instanceTemplates\/instanceTemplate
--- - projects\/project\/global\/instanceTemplates\/instanceTemplate -
--- global\/instanceTemplates\/instanceTemplate
-iiiSourceInstanceTemplate :: Lens' InstancesInsert (Maybe Text)
-iiiSourceInstanceTemplate
-  = lens _iiiSourceInstanceTemplate
-      (\ s a -> s{_iiiSourceInstanceTemplate = a})
-
-instance GoogleRequest InstancesInsert where
-        type Rs InstancesInsert = Operation
-        type Scopes InstancesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesInsert'{..}
-          = go _iiiProject _iiiZone _iiiRequestId
-              _iiiSourceInstanceTemplate
-              (Just AltJSON)
-              _iiiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/List.hs b/gen/Network/Google/Resource/Compute/Instances/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/List.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Retrieves the list of instances contained within the specified zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.list@.
-module Network.Google.Resource.Compute.Instances.List
-    (
-    -- * REST Resource
-      InstancesListResource
-
-    -- * Creating a Request
-    , instancesList
-    , InstancesList
-
-    -- * Request Lenses
-    , il1OrderBy
-    , il1Project
-    , il1Zone
-    , il1Filter
-    , il1PageToken
-    , il1MaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.list@ method which the
--- 'InstancesList' request conforms to.
-type InstancesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] InstanceList
-
--- | Retrieves the list of instances contained within the specified zone.
---
--- /See:/ 'instancesList' smart constructor.
-data InstancesList =
-  InstancesList'
-    { _il1OrderBy    :: !(Maybe Text)
-    , _il1Project    :: !Text
-    , _il1Zone       :: !Text
-    , _il1Filter     :: !(Maybe Text)
-    , _il1PageToken  :: !(Maybe Text)
-    , _il1MaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'il1OrderBy'
---
--- * 'il1Project'
---
--- * 'il1Zone'
---
--- * 'il1Filter'
---
--- * 'il1PageToken'
---
--- * 'il1MaxResults'
-instancesList
-    :: Text -- ^ 'il1Project'
-    -> Text -- ^ 'il1Zone'
-    -> InstancesList
-instancesList pIl1Project_ pIl1Zone_ =
-  InstancesList'
-    { _il1OrderBy = Nothing
-    , _il1Project = pIl1Project_
-    , _il1Zone = pIl1Zone_
-    , _il1Filter = Nothing
-    , _il1PageToken = Nothing
-    , _il1MaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-il1OrderBy :: Lens' InstancesList (Maybe Text)
-il1OrderBy
-  = lens _il1OrderBy (\ s a -> s{_il1OrderBy = a})
-
--- | Project ID for this request.
-il1Project :: Lens' InstancesList Text
-il1Project
-  = lens _il1Project (\ s a -> s{_il1Project = a})
-
--- | The name of the zone for this request.
-il1Zone :: Lens' InstancesList Text
-il1Zone = lens _il1Zone (\ s a -> s{_il1Zone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-il1Filter :: Lens' InstancesList (Maybe Text)
-il1Filter
-  = lens _il1Filter (\ s a -> s{_il1Filter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-il1PageToken :: Lens' InstancesList (Maybe Text)
-il1PageToken
-  = lens _il1PageToken (\ s a -> s{_il1PageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-il1MaxResults :: Lens' InstancesList Word32
-il1MaxResults
-  = lens _il1MaxResults
-      (\ s a -> s{_il1MaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InstancesList where
-        type Rs InstancesList = InstanceList
-        type Scopes InstancesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesList'{..}
-          = go _il1Project _il1Zone _il1OrderBy _il1Filter
-              _il1PageToken
-              (Just _il1MaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy InstancesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/ListReferrers.hs b/gen/Network/Google/Resource/Compute/Instances/ListReferrers.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/ListReferrers.hs
+++ /dev/null
@@ -1,202 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.ListReferrers
--- 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)
---
--- Retrieves the list of referrers to instances contained within the
--- specified zone. For more information, read Viewing Referrers to VM
--- Instances.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.listReferrers@.
-module Network.Google.Resource.Compute.Instances.ListReferrers
-    (
-    -- * REST Resource
-      InstancesListReferrersResource
-
-    -- * Creating a Request
-    , instancesListReferrers
-    , InstancesListReferrers
-
-    -- * Request Lenses
-    , ilrOrderBy
-    , ilrProject
-    , ilrZone
-    , ilrFilter
-    , ilrPageToken
-    , ilrMaxResults
-    , ilrInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.listReferrers@ method which the
--- 'InstancesListReferrers' request conforms to.
-type InstancesListReferrersResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "referrers" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 Get '[JSON] InstanceListReferrers
-
--- | Retrieves the list of referrers to instances contained within the
--- specified zone. For more information, read Viewing Referrers to VM
--- Instances.
---
--- /See:/ 'instancesListReferrers' smart constructor.
-data InstancesListReferrers =
-  InstancesListReferrers'
-    { _ilrOrderBy    :: !(Maybe Text)
-    , _ilrProject    :: !Text
-    , _ilrZone       :: !Text
-    , _ilrFilter     :: !(Maybe Text)
-    , _ilrPageToken  :: !(Maybe Text)
-    , _ilrMaxResults :: !(Textual Word32)
-    , _ilrInstance   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesListReferrers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilrOrderBy'
---
--- * 'ilrProject'
---
--- * 'ilrZone'
---
--- * 'ilrFilter'
---
--- * 'ilrPageToken'
---
--- * 'ilrMaxResults'
---
--- * 'ilrInstance'
-instancesListReferrers
-    :: Text -- ^ 'ilrProject'
-    -> Text -- ^ 'ilrZone'
-    -> Text -- ^ 'ilrInstance'
-    -> InstancesListReferrers
-instancesListReferrers pIlrProject_ pIlrZone_ pIlrInstance_ =
-  InstancesListReferrers'
-    { _ilrOrderBy = Nothing
-    , _ilrProject = pIlrProject_
-    , _ilrZone = pIlrZone_
-    , _ilrFilter = Nothing
-    , _ilrPageToken = Nothing
-    , _ilrMaxResults = 500
-    , _ilrInstance = pIlrInstance_
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ilrOrderBy :: Lens' InstancesListReferrers (Maybe Text)
-ilrOrderBy
-  = lens _ilrOrderBy (\ s a -> s{_ilrOrderBy = a})
-
--- | Project ID for this request.
-ilrProject :: Lens' InstancesListReferrers Text
-ilrProject
-  = lens _ilrProject (\ s a -> s{_ilrProject = a})
-
--- | The name of the zone for this request.
-ilrZone :: Lens' InstancesListReferrers Text
-ilrZone = lens _ilrZone (\ s a -> s{_ilrZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ilrFilter :: Lens' InstancesListReferrers (Maybe Text)
-ilrFilter
-  = lens _ilrFilter (\ s a -> s{_ilrFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ilrPageToken :: Lens' InstancesListReferrers (Maybe Text)
-ilrPageToken
-  = lens _ilrPageToken (\ s a -> s{_ilrPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ilrMaxResults :: Lens' InstancesListReferrers Word32
-ilrMaxResults
-  = lens _ilrMaxResults
-      (\ s a -> s{_ilrMaxResults = a})
-      . _Coerce
-
--- | Name of the target instance scoping this request, or \'-\' if the
--- request should span over all instances in the container.
-ilrInstance :: Lens' InstancesListReferrers Text
-ilrInstance
-  = lens _ilrInstance (\ s a -> s{_ilrInstance = a})
-
-instance GoogleRequest InstancesListReferrers where
-        type Rs InstancesListReferrers =
-             InstanceListReferrers
-        type Scopes InstancesListReferrers =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesListReferrers'{..}
-          = go _ilrProject _ilrZone _ilrInstance _ilrOrderBy
-              _ilrFilter
-              _ilrPageToken
-              (Just _ilrMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesListReferrersResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Reset.hs b/gen/Network/Google/Resource/Compute/Instances/Reset.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Reset.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Reset
--- 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)
---
--- Performs a reset on the instance. This is a hard reset the VM does not
--- do a graceful shutdown. For more information, see Resetting an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.reset@.
-module Network.Google.Resource.Compute.Instances.Reset
-    (
-    -- * REST Resource
-      InstancesResetResource
-
-    -- * Creating a Request
-    , instancesReset
-    , InstancesReset
-
-    -- * Request Lenses
-    , irRequestId
-    , irProject
-    , irZone
-    , irInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.reset@ method which the
--- 'InstancesReset' request conforms to.
-type InstancesResetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "reset" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Performs a reset on the instance. This is a hard reset the VM does not
--- do a graceful shutdown. For more information, see Resetting an instance.
---
--- /See:/ 'instancesReset' smart constructor.
-data InstancesReset =
-  InstancesReset'
-    { _irRequestId :: !(Maybe Text)
-    , _irProject   :: !Text
-    , _irZone      :: !Text
-    , _irInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesReset' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'irRequestId'
---
--- * 'irProject'
---
--- * 'irZone'
---
--- * 'irInstance'
-instancesReset
-    :: Text -- ^ 'irProject'
-    -> Text -- ^ 'irZone'
-    -> Text -- ^ 'irInstance'
-    -> InstancesReset
-instancesReset pIrProject_ pIrZone_ pIrInstance_ =
-  InstancesReset'
-    { _irRequestId = Nothing
-    , _irProject = pIrProject_
-    , _irZone = pIrZone_
-    , _irInstance = pIrInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-irRequestId :: Lens' InstancesReset (Maybe Text)
-irRequestId
-  = lens _irRequestId (\ s a -> s{_irRequestId = a})
-
--- | Project ID for this request.
-irProject :: Lens' InstancesReset Text
-irProject
-  = lens _irProject (\ s a -> s{_irProject = a})
-
--- | The name of the zone for this request.
-irZone :: Lens' InstancesReset Text
-irZone = lens _irZone (\ s a -> s{_irZone = a})
-
--- | Name of the instance scoping this request.
-irInstance :: Lens' InstancesReset Text
-irInstance
-  = lens _irInstance (\ s a -> s{_irInstance = a})
-
-instance GoogleRequest InstancesReset where
-        type Rs InstancesReset = Operation
-        type Scopes InstancesReset =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesReset'{..}
-          = go _irProject _irZone _irInstance _irRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy InstancesResetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetDeletionProtection.hs b/gen/Network/Google/Resource/Compute/Instances/SetDeletionProtection.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetDeletionProtection.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetDeletionProtection
--- 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)
---
--- Sets deletion protection on the instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setDeletionProtection@.
-module Network.Google.Resource.Compute.Instances.SetDeletionProtection
-    (
-    -- * REST Resource
-      InstancesSetDeletionProtectionResource
-
-    -- * Creating a Request
-    , instancesSetDeletionProtection
-    , InstancesSetDeletionProtection
-
-    -- * Request Lenses
-    , isdpRequestId
-    , isdpDeletionProtection
-    , isdpProject
-    , isdpZone
-    , isdpResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setDeletionProtection@ method which the
--- 'InstancesSetDeletionProtection' request conforms to.
-type InstancesSetDeletionProtectionResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "resource" Text :>
-                     "setDeletionProtection" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "deletionProtection" Bool :>
-                           QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Sets deletion protection on the instance.
---
--- /See:/ 'instancesSetDeletionProtection' smart constructor.
-data InstancesSetDeletionProtection =
-  InstancesSetDeletionProtection'
-    { _isdpRequestId          :: !(Maybe Text)
-    , _isdpDeletionProtection :: !Bool
-    , _isdpProject            :: !Text
-    , _isdpZone               :: !Text
-    , _isdpResource           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetDeletionProtection' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isdpRequestId'
---
--- * 'isdpDeletionProtection'
---
--- * 'isdpProject'
---
--- * 'isdpZone'
---
--- * 'isdpResource'
-instancesSetDeletionProtection
-    :: Text -- ^ 'isdpProject'
-    -> Text -- ^ 'isdpZone'
-    -> Text -- ^ 'isdpResource'
-    -> InstancesSetDeletionProtection
-instancesSetDeletionProtection pIsdpProject_ pIsdpZone_ pIsdpResource_ =
-  InstancesSetDeletionProtection'
-    { _isdpRequestId = Nothing
-    , _isdpDeletionProtection = True
-    , _isdpProject = pIsdpProject_
-    , _isdpZone = pIsdpZone_
-    , _isdpResource = pIsdpResource_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-isdpRequestId :: Lens' InstancesSetDeletionProtection (Maybe Text)
-isdpRequestId
-  = lens _isdpRequestId
-      (\ s a -> s{_isdpRequestId = a})
-
--- | Whether the resource should be protected against deletion.
-isdpDeletionProtection :: Lens' InstancesSetDeletionProtection Bool
-isdpDeletionProtection
-  = lens _isdpDeletionProtection
-      (\ s a -> s{_isdpDeletionProtection = a})
-
--- | Project ID for this request.
-isdpProject :: Lens' InstancesSetDeletionProtection Text
-isdpProject
-  = lens _isdpProject (\ s a -> s{_isdpProject = a})
-
--- | The name of the zone for this request.
-isdpZone :: Lens' InstancesSetDeletionProtection Text
-isdpZone = lens _isdpZone (\ s a -> s{_isdpZone = a})
-
--- | Name or id of the resource for this request.
-isdpResource :: Lens' InstancesSetDeletionProtection Text
-isdpResource
-  = lens _isdpResource (\ s a -> s{_isdpResource = a})
-
-instance GoogleRequest InstancesSetDeletionProtection
-         where
-        type Rs InstancesSetDeletionProtection = Operation
-        type Scopes InstancesSetDeletionProtection =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetDeletionProtection'{..}
-          = go _isdpProject _isdpZone _isdpResource
-              _isdpRequestId
-              (Just _isdpDeletionProtection)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesSetDeletionProtectionResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetDiskAutoDelete.hs b/gen/Network/Google/Resource/Compute/Instances/SetDiskAutoDelete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetDiskAutoDelete.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetDiskAutoDelete
--- 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)
---
--- Sets the auto-delete flag for a disk attached to an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setDiskAutoDelete@.
-module Network.Google.Resource.Compute.Instances.SetDiskAutoDelete
-    (
-    -- * REST Resource
-      InstancesSetDiskAutoDeleteResource
-
-    -- * Creating a Request
-    , instancesSetDiskAutoDelete
-    , InstancesSetDiskAutoDelete
-
-    -- * Request Lenses
-    , isdadRequestId
-    , isdadProject
-    , isdadAutoDelete
-    , isdadZone
-    , isdadDeviceName
-    , isdadInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setDiskAutoDelete@ method which the
--- 'InstancesSetDiskAutoDelete' request conforms to.
-type InstancesSetDiskAutoDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setDiskAutoDelete" :>
-                       QueryParam "autoDelete" Bool :>
-                         QueryParam "deviceName" Text :>
-                           QueryParam "requestId" Text :>
-                             QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Sets the auto-delete flag for a disk attached to an instance.
---
--- /See:/ 'instancesSetDiskAutoDelete' smart constructor.
-data InstancesSetDiskAutoDelete =
-  InstancesSetDiskAutoDelete'
-    { _isdadRequestId  :: !(Maybe Text)
-    , _isdadProject    :: !Text
-    , _isdadAutoDelete :: !Bool
-    , _isdadZone       :: !Text
-    , _isdadDeviceName :: !Text
-    , _isdadInstance   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetDiskAutoDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isdadRequestId'
---
--- * 'isdadProject'
---
--- * 'isdadAutoDelete'
---
--- * 'isdadZone'
---
--- * 'isdadDeviceName'
---
--- * 'isdadInstance'
-instancesSetDiskAutoDelete
-    :: Text -- ^ 'isdadProject'
-    -> Bool -- ^ 'isdadAutoDelete'
-    -> Text -- ^ 'isdadZone'
-    -> Text -- ^ 'isdadDeviceName'
-    -> Text -- ^ 'isdadInstance'
-    -> InstancesSetDiskAutoDelete
-instancesSetDiskAutoDelete pIsdadProject_ pIsdadAutoDelete_ pIsdadZone_ pIsdadDeviceName_ pIsdadInstance_ =
-  InstancesSetDiskAutoDelete'
-    { _isdadRequestId = Nothing
-    , _isdadProject = pIsdadProject_
-    , _isdadAutoDelete = pIsdadAutoDelete_
-    , _isdadZone = pIsdadZone_
-    , _isdadDeviceName = pIsdadDeviceName_
-    , _isdadInstance = pIsdadInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-isdadRequestId :: Lens' InstancesSetDiskAutoDelete (Maybe Text)
-isdadRequestId
-  = lens _isdadRequestId
-      (\ s a -> s{_isdadRequestId = a})
-
--- | Project ID for this request.
-isdadProject :: Lens' InstancesSetDiskAutoDelete Text
-isdadProject
-  = lens _isdadProject (\ s a -> s{_isdadProject = a})
-
--- | Whether to auto-delete the disk when the instance is deleted.
-isdadAutoDelete :: Lens' InstancesSetDiskAutoDelete Bool
-isdadAutoDelete
-  = lens _isdadAutoDelete
-      (\ s a -> s{_isdadAutoDelete = a})
-
--- | The name of the zone for this request.
-isdadZone :: Lens' InstancesSetDiskAutoDelete Text
-isdadZone
-  = lens _isdadZone (\ s a -> s{_isdadZone = a})
-
--- | The device name of the disk to modify. Make a get() request on the
--- instance to view currently attached disks and device names.
-isdadDeviceName :: Lens' InstancesSetDiskAutoDelete Text
-isdadDeviceName
-  = lens _isdadDeviceName
-      (\ s a -> s{_isdadDeviceName = a})
-
--- | The instance name for this request.
-isdadInstance :: Lens' InstancesSetDiskAutoDelete Text
-isdadInstance
-  = lens _isdadInstance
-      (\ s a -> s{_isdadInstance = a})
-
-instance GoogleRequest InstancesSetDiskAutoDelete
-         where
-        type Rs InstancesSetDiskAutoDelete = Operation
-        type Scopes InstancesSetDiskAutoDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetDiskAutoDelete'{..}
-          = go _isdadProject _isdadZone _isdadInstance
-              (Just _isdadAutoDelete)
-              (Just _isdadDeviceName)
-              _isdadRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetDiskAutoDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Instances/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetIAMPolicy.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setIamPolicy@.
-module Network.Google.Resource.Compute.Instances.SetIAMPolicy
-    (
-    -- * REST Resource
-      InstancesSetIAMPolicyResource
-
-    -- * Creating a Request
-    , instancesSetIAMPolicy
-    , InstancesSetIAMPolicy
-
-    -- * Request Lenses
-    , isipProject
-    , isipZone
-    , isipPayload
-    , isipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setIamPolicy@ method which the
--- 'InstancesSetIAMPolicy' request conforms to.
-type InstancesSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "resource" Text :>
-                     "setIamPolicy" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] ZoneSetPolicyRequest :>
-                           Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'instancesSetIAMPolicy' smart constructor.
-data InstancesSetIAMPolicy =
-  InstancesSetIAMPolicy'
-    { _isipProject  :: !Text
-    , _isipZone     :: !Text
-    , _isipPayload  :: !ZoneSetPolicyRequest
-    , _isipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isipProject'
---
--- * 'isipZone'
---
--- * 'isipPayload'
---
--- * 'isipResource'
-instancesSetIAMPolicy
-    :: Text -- ^ 'isipProject'
-    -> Text -- ^ 'isipZone'
-    -> ZoneSetPolicyRequest -- ^ 'isipPayload'
-    -> Text -- ^ 'isipResource'
-    -> InstancesSetIAMPolicy
-instancesSetIAMPolicy pIsipProject_ pIsipZone_ pIsipPayload_ pIsipResource_ =
-  InstancesSetIAMPolicy'
-    { _isipProject = pIsipProject_
-    , _isipZone = pIsipZone_
-    , _isipPayload = pIsipPayload_
-    , _isipResource = pIsipResource_
-    }
-
-
--- | Project ID for this request.
-isipProject :: Lens' InstancesSetIAMPolicy Text
-isipProject
-  = lens _isipProject (\ s a -> s{_isipProject = a})
-
--- | The name of the zone for this request.
-isipZone :: Lens' InstancesSetIAMPolicy Text
-isipZone = lens _isipZone (\ s a -> s{_isipZone = a})
-
--- | Multipart request metadata.
-isipPayload :: Lens' InstancesSetIAMPolicy ZoneSetPolicyRequest
-isipPayload
-  = lens _isipPayload (\ s a -> s{_isipPayload = a})
-
--- | Name or id of the resource for this request.
-isipResource :: Lens' InstancesSetIAMPolicy Text
-isipResource
-  = lens _isipResource (\ s a -> s{_isipResource = a})
-
-instance GoogleRequest InstancesSetIAMPolicy where
-        type Rs InstancesSetIAMPolicy = Policy
-        type Scopes InstancesSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetIAMPolicy'{..}
-          = go _isipProject _isipZone _isipResource
-              (Just AltJSON)
-              _isipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetLabels.hs b/gen/Network/Google/Resource/Compute/Instances/SetLabels.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetLabels.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetLabels
--- 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)
---
--- Sets labels on an instance. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setLabels@.
-module Network.Google.Resource.Compute.Instances.SetLabels
-    (
-    -- * REST Resource
-      InstancesSetLabelsResource
-
-    -- * Creating a Request
-    , instancesSetLabels
-    , InstancesSetLabels
-
-    -- * Request Lenses
-    , islRequestId
-    , islProject
-    , islZone
-    , islPayload
-    , islInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setLabels@ method which the
--- 'InstancesSetLabels' request conforms to.
-type InstancesSetLabelsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setLabels" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstancesSetLabelsRequest :>
-                             Post '[JSON] Operation
-
--- | Sets labels on an instance. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ 'instancesSetLabels' smart constructor.
-data InstancesSetLabels =
-  InstancesSetLabels'
-    { _islRequestId :: !(Maybe Text)
-    , _islProject   :: !Text
-    , _islZone      :: !Text
-    , _islPayload   :: !InstancesSetLabelsRequest
-    , _islInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'islRequestId'
---
--- * 'islProject'
---
--- * 'islZone'
---
--- * 'islPayload'
---
--- * 'islInstance'
-instancesSetLabels
-    :: Text -- ^ 'islProject'
-    -> Text -- ^ 'islZone'
-    -> InstancesSetLabelsRequest -- ^ 'islPayload'
-    -> Text -- ^ 'islInstance'
-    -> InstancesSetLabels
-instancesSetLabels pIslProject_ pIslZone_ pIslPayload_ pIslInstance_ =
-  InstancesSetLabels'
-    { _islRequestId = Nothing
-    , _islProject = pIslProject_
-    , _islZone = pIslZone_
-    , _islPayload = pIslPayload_
-    , _islInstance = pIslInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-islRequestId :: Lens' InstancesSetLabels (Maybe Text)
-islRequestId
-  = lens _islRequestId (\ s a -> s{_islRequestId = a})
-
--- | Project ID for this request.
-islProject :: Lens' InstancesSetLabels Text
-islProject
-  = lens _islProject (\ s a -> s{_islProject = a})
-
--- | The name of the zone for this request.
-islZone :: Lens' InstancesSetLabels Text
-islZone = lens _islZone (\ s a -> s{_islZone = a})
-
--- | Multipart request metadata.
-islPayload :: Lens' InstancesSetLabels InstancesSetLabelsRequest
-islPayload
-  = lens _islPayload (\ s a -> s{_islPayload = a})
-
--- | Name of the instance scoping this request.
-islInstance :: Lens' InstancesSetLabels Text
-islInstance
-  = lens _islInstance (\ s a -> s{_islInstance = a})
-
-instance GoogleRequest InstancesSetLabels where
-        type Rs InstancesSetLabels = Operation
-        type Scopes InstancesSetLabels =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetLabels'{..}
-          = go _islProject _islZone _islInstance _islRequestId
-              (Just AltJSON)
-              _islPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetLabelsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetMachineResources.hs b/gen/Network/Google/Resource/Compute/Instances/SetMachineResources.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetMachineResources.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetMachineResources
--- 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)
---
--- Changes the number and\/or type of accelerator for a stopped instance to
--- the values specified in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setMachineResources@.
-module Network.Google.Resource.Compute.Instances.SetMachineResources
-    (
-    -- * REST Resource
-      InstancesSetMachineResourcesResource
-
-    -- * Creating a Request
-    , instancesSetMachineResources
-    , InstancesSetMachineResources
-
-    -- * Request Lenses
-    , ismrRequestId
-    , ismrProject
-    , ismrZone
-    , ismrPayload
-    , ismrInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setMachineResources@ method which the
--- 'InstancesSetMachineResources' request conforms to.
-type InstancesSetMachineResourcesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setMachineResources" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstancesSetMachineResourcesRequest
-                             :> Post '[JSON] Operation
-
--- | Changes the number and\/or type of accelerator for a stopped instance to
--- the values specified in the request.
---
--- /See:/ 'instancesSetMachineResources' smart constructor.
-data InstancesSetMachineResources =
-  InstancesSetMachineResources'
-    { _ismrRequestId :: !(Maybe Text)
-    , _ismrProject   :: !Text
-    , _ismrZone      :: !Text
-    , _ismrPayload   :: !InstancesSetMachineResourcesRequest
-    , _ismrInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMachineResources' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismrRequestId'
---
--- * 'ismrProject'
---
--- * 'ismrZone'
---
--- * 'ismrPayload'
---
--- * 'ismrInstance'
-instancesSetMachineResources
-    :: Text -- ^ 'ismrProject'
-    -> Text -- ^ 'ismrZone'
-    -> InstancesSetMachineResourcesRequest -- ^ 'ismrPayload'
-    -> Text -- ^ 'ismrInstance'
-    -> InstancesSetMachineResources
-instancesSetMachineResources pIsmrProject_ pIsmrZone_ pIsmrPayload_ pIsmrInstance_ =
-  InstancesSetMachineResources'
-    { _ismrRequestId = Nothing
-    , _ismrProject = pIsmrProject_
-    , _ismrZone = pIsmrZone_
-    , _ismrPayload = pIsmrPayload_
-    , _ismrInstance = pIsmrInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ismrRequestId :: Lens' InstancesSetMachineResources (Maybe Text)
-ismrRequestId
-  = lens _ismrRequestId
-      (\ s a -> s{_ismrRequestId = a})
-
--- | Project ID for this request.
-ismrProject :: Lens' InstancesSetMachineResources Text
-ismrProject
-  = lens _ismrProject (\ s a -> s{_ismrProject = a})
-
--- | The name of the zone for this request.
-ismrZone :: Lens' InstancesSetMachineResources Text
-ismrZone = lens _ismrZone (\ s a -> s{_ismrZone = a})
-
--- | Multipart request metadata.
-ismrPayload :: Lens' InstancesSetMachineResources InstancesSetMachineResourcesRequest
-ismrPayload
-  = lens _ismrPayload (\ s a -> s{_ismrPayload = a})
-
--- | Name of the instance scoping this request.
-ismrInstance :: Lens' InstancesSetMachineResources Text
-ismrInstance
-  = lens _ismrInstance (\ s a -> s{_ismrInstance = a})
-
-instance GoogleRequest InstancesSetMachineResources
-         where
-        type Rs InstancesSetMachineResources = Operation
-        type Scopes InstancesSetMachineResources =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetMachineResources'{..}
-          = go _ismrProject _ismrZone _ismrInstance
-              _ismrRequestId
-              (Just AltJSON)
-              _ismrPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetMachineResourcesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetMachineType.hs b/gen/Network/Google/Resource/Compute/Instances/SetMachineType.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetMachineType.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetMachineType
--- 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)
---
--- Changes the machine type for a stopped instance to the machine type
--- specified in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setMachineType@.
-module Network.Google.Resource.Compute.Instances.SetMachineType
-    (
-    -- * REST Resource
-      InstancesSetMachineTypeResource
-
-    -- * Creating a Request
-    , instancesSetMachineType
-    , InstancesSetMachineType
-
-    -- * Request Lenses
-    , ismtRequestId
-    , ismtProject
-    , ismtZone
-    , ismtPayload
-    , ismtInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setMachineType@ method which the
--- 'InstancesSetMachineType' request conforms to.
-type InstancesSetMachineTypeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setMachineType" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstancesSetMachineTypeRequest :>
-                             Post '[JSON] Operation
-
--- | Changes the machine type for a stopped instance to the machine type
--- specified in the request.
---
--- /See:/ 'instancesSetMachineType' smart constructor.
-data InstancesSetMachineType =
-  InstancesSetMachineType'
-    { _ismtRequestId :: !(Maybe Text)
-    , _ismtProject   :: !Text
-    , _ismtZone      :: !Text
-    , _ismtPayload   :: !InstancesSetMachineTypeRequest
-    , _ismtInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMachineType' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismtRequestId'
---
--- * 'ismtProject'
---
--- * 'ismtZone'
---
--- * 'ismtPayload'
---
--- * 'ismtInstance'
-instancesSetMachineType
-    :: Text -- ^ 'ismtProject'
-    -> Text -- ^ 'ismtZone'
-    -> InstancesSetMachineTypeRequest -- ^ 'ismtPayload'
-    -> Text -- ^ 'ismtInstance'
-    -> InstancesSetMachineType
-instancesSetMachineType pIsmtProject_ pIsmtZone_ pIsmtPayload_ pIsmtInstance_ =
-  InstancesSetMachineType'
-    { _ismtRequestId = Nothing
-    , _ismtProject = pIsmtProject_
-    , _ismtZone = pIsmtZone_
-    , _ismtPayload = pIsmtPayload_
-    , _ismtInstance = pIsmtInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ismtRequestId :: Lens' InstancesSetMachineType (Maybe Text)
-ismtRequestId
-  = lens _ismtRequestId
-      (\ s a -> s{_ismtRequestId = a})
-
--- | Project ID for this request.
-ismtProject :: Lens' InstancesSetMachineType Text
-ismtProject
-  = lens _ismtProject (\ s a -> s{_ismtProject = a})
-
--- | The name of the zone for this request.
-ismtZone :: Lens' InstancesSetMachineType Text
-ismtZone = lens _ismtZone (\ s a -> s{_ismtZone = a})
-
--- | Multipart request metadata.
-ismtPayload :: Lens' InstancesSetMachineType InstancesSetMachineTypeRequest
-ismtPayload
-  = lens _ismtPayload (\ s a -> s{_ismtPayload = a})
-
--- | Name of the instance scoping this request.
-ismtInstance :: Lens' InstancesSetMachineType Text
-ismtInstance
-  = lens _ismtInstance (\ s a -> s{_ismtInstance = a})
-
-instance GoogleRequest InstancesSetMachineType where
-        type Rs InstancesSetMachineType = Operation
-        type Scopes InstancesSetMachineType =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetMachineType'{..}
-          = go _ismtProject _ismtZone _ismtInstance
-              _ismtRequestId
-              (Just AltJSON)
-              _ismtPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetMachineTypeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetMetadata.hs b/gen/Network/Google/Resource/Compute/Instances/SetMetadata.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetMetadata.hs
+++ /dev/null
@@ -1,153 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetMetadata
--- 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)
---
--- Sets metadata for the specified instance to the data included in the
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setMetadata@.
-module Network.Google.Resource.Compute.Instances.SetMetadata
-    (
-    -- * REST Resource
-      InstancesSetMetadataResource
-
-    -- * Creating a Request
-    , instancesSetMetadata
-    , InstancesSetMetadata
-
-    -- * Request Lenses
-    , ismRequestId
-    , ismProject
-    , ismZone
-    , ismPayload
-    , ismInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setMetadata@ method which the
--- 'InstancesSetMetadata' request conforms to.
-type InstancesSetMetadataResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setMetadata" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Metadata :> Post '[JSON] Operation
-
--- | Sets metadata for the specified instance to the data included in the
--- request.
---
--- /See:/ 'instancesSetMetadata' smart constructor.
-data InstancesSetMetadata =
-  InstancesSetMetadata'
-    { _ismRequestId :: !(Maybe Text)
-    , _ismProject   :: !Text
-    , _ismZone      :: !Text
-    , _ismPayload   :: !Metadata
-    , _ismInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismRequestId'
---
--- * 'ismProject'
---
--- * 'ismZone'
---
--- * 'ismPayload'
---
--- * 'ismInstance'
-instancesSetMetadata
-    :: Text -- ^ 'ismProject'
-    -> Text -- ^ 'ismZone'
-    -> Metadata -- ^ 'ismPayload'
-    -> Text -- ^ 'ismInstance'
-    -> InstancesSetMetadata
-instancesSetMetadata pIsmProject_ pIsmZone_ pIsmPayload_ pIsmInstance_ =
-  InstancesSetMetadata'
-    { _ismRequestId = Nothing
-    , _ismProject = pIsmProject_
-    , _ismZone = pIsmZone_
-    , _ismPayload = pIsmPayload_
-    , _ismInstance = pIsmInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ismRequestId :: Lens' InstancesSetMetadata (Maybe Text)
-ismRequestId
-  = lens _ismRequestId (\ s a -> s{_ismRequestId = a})
-
--- | Project ID for this request.
-ismProject :: Lens' InstancesSetMetadata Text
-ismProject
-  = lens _ismProject (\ s a -> s{_ismProject = a})
-
--- | The name of the zone for this request.
-ismZone :: Lens' InstancesSetMetadata Text
-ismZone = lens _ismZone (\ s a -> s{_ismZone = a})
-
--- | Multipart request metadata.
-ismPayload :: Lens' InstancesSetMetadata Metadata
-ismPayload
-  = lens _ismPayload (\ s a -> s{_ismPayload = a})
-
--- | Name of the instance scoping this request.
-ismInstance :: Lens' InstancesSetMetadata Text
-ismInstance
-  = lens _ismInstance (\ s a -> s{_ismInstance = a})
-
-instance GoogleRequest InstancesSetMetadata where
-        type Rs InstancesSetMetadata = Operation
-        type Scopes InstancesSetMetadata =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetMetadata'{..}
-          = go _ismProject _ismZone _ismInstance _ismRequestId
-              (Just AltJSON)
-              _ismPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetMetadataResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetMinCPUPlatform.hs b/gen/Network/Google/Resource/Compute/Instances/SetMinCPUPlatform.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetMinCPUPlatform.hs
+++ /dev/null
@@ -1,161 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetMinCPUPlatform
--- 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)
---
--- Changes the minimum CPU platform that this instance should use. This
--- method can only be called on a stopped instance. For more information,
--- read Specifying a Minimum CPU Platform.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setMinCpuPlatform@.
-module Network.Google.Resource.Compute.Instances.SetMinCPUPlatform
-    (
-    -- * REST Resource
-      InstancesSetMinCPUPlatformResource
-
-    -- * Creating a Request
-    , instancesSetMinCPUPlatform
-    , InstancesSetMinCPUPlatform
-
-    -- * Request Lenses
-    , ismcpRequestId
-    , ismcpProject
-    , ismcpZone
-    , ismcpPayload
-    , ismcpInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setMinCpuPlatform@ method which the
--- 'InstancesSetMinCPUPlatform' request conforms to.
-type InstancesSetMinCPUPlatformResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setMinCpuPlatform" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstancesSetMinCPUPlatformRequest :>
-                             Post '[JSON] Operation
-
--- | Changes the minimum CPU platform that this instance should use. This
--- method can only be called on a stopped instance. For more information,
--- read Specifying a Minimum CPU Platform.
---
--- /See:/ 'instancesSetMinCPUPlatform' smart constructor.
-data InstancesSetMinCPUPlatform =
-  InstancesSetMinCPUPlatform'
-    { _ismcpRequestId :: !(Maybe Text)
-    , _ismcpProject   :: !Text
-    , _ismcpZone      :: !Text
-    , _ismcpPayload   :: !InstancesSetMinCPUPlatformRequest
-    , _ismcpInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetMinCPUPlatform' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismcpRequestId'
---
--- * 'ismcpProject'
---
--- * 'ismcpZone'
---
--- * 'ismcpPayload'
---
--- * 'ismcpInstance'
-instancesSetMinCPUPlatform
-    :: Text -- ^ 'ismcpProject'
-    -> Text -- ^ 'ismcpZone'
-    -> InstancesSetMinCPUPlatformRequest -- ^ 'ismcpPayload'
-    -> Text -- ^ 'ismcpInstance'
-    -> InstancesSetMinCPUPlatform
-instancesSetMinCPUPlatform pIsmcpProject_ pIsmcpZone_ pIsmcpPayload_ pIsmcpInstance_ =
-  InstancesSetMinCPUPlatform'
-    { _ismcpRequestId = Nothing
-    , _ismcpProject = pIsmcpProject_
-    , _ismcpZone = pIsmcpZone_
-    , _ismcpPayload = pIsmcpPayload_
-    , _ismcpInstance = pIsmcpInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ismcpRequestId :: Lens' InstancesSetMinCPUPlatform (Maybe Text)
-ismcpRequestId
-  = lens _ismcpRequestId
-      (\ s a -> s{_ismcpRequestId = a})
-
--- | Project ID for this request.
-ismcpProject :: Lens' InstancesSetMinCPUPlatform Text
-ismcpProject
-  = lens _ismcpProject (\ s a -> s{_ismcpProject = a})
-
--- | The name of the zone for this request.
-ismcpZone :: Lens' InstancesSetMinCPUPlatform Text
-ismcpZone
-  = lens _ismcpZone (\ s a -> s{_ismcpZone = a})
-
--- | Multipart request metadata.
-ismcpPayload :: Lens' InstancesSetMinCPUPlatform InstancesSetMinCPUPlatformRequest
-ismcpPayload
-  = lens _ismcpPayload (\ s a -> s{_ismcpPayload = a})
-
--- | Name of the instance scoping this request.
-ismcpInstance :: Lens' InstancesSetMinCPUPlatform Text
-ismcpInstance
-  = lens _ismcpInstance
-      (\ s a -> s{_ismcpInstance = a})
-
-instance GoogleRequest InstancesSetMinCPUPlatform
-         where
-        type Rs InstancesSetMinCPUPlatform = Operation
-        type Scopes InstancesSetMinCPUPlatform =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetMinCPUPlatform'{..}
-          = go _ismcpProject _ismcpZone _ismcpInstance
-              _ismcpRequestId
-              (Just AltJSON)
-              _ismcpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetMinCPUPlatformResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetScheduling.hs b/gen/Network/Google/Resource/Compute/Instances/SetScheduling.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetScheduling.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetScheduling
--- 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)
---
--- Sets an instance\'s scheduling options.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setScheduling@.
-module Network.Google.Resource.Compute.Instances.SetScheduling
-    (
-    -- * REST Resource
-      InstancesSetSchedulingResource
-
-    -- * Creating a Request
-    , instancesSetScheduling
-    , InstancesSetScheduling
-
-    -- * Request Lenses
-    , issRequestId
-    , issProject
-    , issZone
-    , issPayload
-    , issInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setScheduling@ method which the
--- 'InstancesSetScheduling' request conforms to.
-type InstancesSetSchedulingResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setScheduling" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Scheduling :> Post '[JSON] Operation
-
--- | Sets an instance\'s scheduling options.
---
--- /See:/ 'instancesSetScheduling' smart constructor.
-data InstancesSetScheduling =
-  InstancesSetScheduling'
-    { _issRequestId :: !(Maybe Text)
-    , _issProject   :: !Text
-    , _issZone      :: !Text
-    , _issPayload   :: !Scheduling
-    , _issInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetScheduling' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'issRequestId'
---
--- * 'issProject'
---
--- * 'issZone'
---
--- * 'issPayload'
---
--- * 'issInstance'
-instancesSetScheduling
-    :: Text -- ^ 'issProject'
-    -> Text -- ^ 'issZone'
-    -> Scheduling -- ^ 'issPayload'
-    -> Text -- ^ 'issInstance'
-    -> InstancesSetScheduling
-instancesSetScheduling pIssProject_ pIssZone_ pIssPayload_ pIssInstance_ =
-  InstancesSetScheduling'
-    { _issRequestId = Nothing
-    , _issProject = pIssProject_
-    , _issZone = pIssZone_
-    , _issPayload = pIssPayload_
-    , _issInstance = pIssInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-issRequestId :: Lens' InstancesSetScheduling (Maybe Text)
-issRequestId
-  = lens _issRequestId (\ s a -> s{_issRequestId = a})
-
--- | Project ID for this request.
-issProject :: Lens' InstancesSetScheduling Text
-issProject
-  = lens _issProject (\ s a -> s{_issProject = a})
-
--- | The name of the zone for this request.
-issZone :: Lens' InstancesSetScheduling Text
-issZone = lens _issZone (\ s a -> s{_issZone = a})
-
--- | Multipart request metadata.
-issPayload :: Lens' InstancesSetScheduling Scheduling
-issPayload
-  = lens _issPayload (\ s a -> s{_issPayload = a})
-
--- | Instance name for this request.
-issInstance :: Lens' InstancesSetScheduling Text
-issInstance
-  = lens _issInstance (\ s a -> s{_issInstance = a})
-
-instance GoogleRequest InstancesSetScheduling where
-        type Rs InstancesSetScheduling = Operation
-        type Scopes InstancesSetScheduling =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetScheduling'{..}
-          = go _issProject _issZone _issInstance _issRequestId
-              (Just AltJSON)
-              _issPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetSchedulingResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetServiceAccount.hs b/gen/Network/Google/Resource/Compute/Instances/SetServiceAccount.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetServiceAccount.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetServiceAccount
--- 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)
---
--- Sets the service account on the instance. For more information, read
--- Changing the service account and access scopes for an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setServiceAccount@.
-module Network.Google.Resource.Compute.Instances.SetServiceAccount
-    (
-    -- * REST Resource
-      InstancesSetServiceAccountResource
-
-    -- * Creating a Request
-    , instancesSetServiceAccount
-    , InstancesSetServiceAccount
-
-    -- * Request Lenses
-    , issaRequestId
-    , issaProject
-    , issaZone
-    , issaPayload
-    , issaInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setServiceAccount@ method which the
--- 'InstancesSetServiceAccount' request conforms to.
-type InstancesSetServiceAccountResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setServiceAccount" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] InstancesSetServiceAccountRequest :>
-                             Post '[JSON] Operation
-
--- | Sets the service account on the instance. For more information, read
--- Changing the service account and access scopes for an instance.
---
--- /See:/ 'instancesSetServiceAccount' smart constructor.
-data InstancesSetServiceAccount =
-  InstancesSetServiceAccount'
-    { _issaRequestId :: !(Maybe Text)
-    , _issaProject   :: !Text
-    , _issaZone      :: !Text
-    , _issaPayload   :: !InstancesSetServiceAccountRequest
-    , _issaInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetServiceAccount' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'issaRequestId'
---
--- * 'issaProject'
---
--- * 'issaZone'
---
--- * 'issaPayload'
---
--- * 'issaInstance'
-instancesSetServiceAccount
-    :: Text -- ^ 'issaProject'
-    -> Text -- ^ 'issaZone'
-    -> InstancesSetServiceAccountRequest -- ^ 'issaPayload'
-    -> Text -- ^ 'issaInstance'
-    -> InstancesSetServiceAccount
-instancesSetServiceAccount pIssaProject_ pIssaZone_ pIssaPayload_ pIssaInstance_ =
-  InstancesSetServiceAccount'
-    { _issaRequestId = Nothing
-    , _issaProject = pIssaProject_
-    , _issaZone = pIssaZone_
-    , _issaPayload = pIssaPayload_
-    , _issaInstance = pIssaInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-issaRequestId :: Lens' InstancesSetServiceAccount (Maybe Text)
-issaRequestId
-  = lens _issaRequestId
-      (\ s a -> s{_issaRequestId = a})
-
--- | Project ID for this request.
-issaProject :: Lens' InstancesSetServiceAccount Text
-issaProject
-  = lens _issaProject (\ s a -> s{_issaProject = a})
-
--- | The name of the zone for this request.
-issaZone :: Lens' InstancesSetServiceAccount Text
-issaZone = lens _issaZone (\ s a -> s{_issaZone = a})
-
--- | Multipart request metadata.
-issaPayload :: Lens' InstancesSetServiceAccount InstancesSetServiceAccountRequest
-issaPayload
-  = lens _issaPayload (\ s a -> s{_issaPayload = a})
-
--- | Name of the instance resource to start.
-issaInstance :: Lens' InstancesSetServiceAccount Text
-issaInstance
-  = lens _issaInstance (\ s a -> s{_issaInstance = a})
-
-instance GoogleRequest InstancesSetServiceAccount
-         where
-        type Rs InstancesSetServiceAccount = Operation
-        type Scopes InstancesSetServiceAccount =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetServiceAccount'{..}
-          = go _issaProject _issaZone _issaInstance
-              _issaRequestId
-              (Just AltJSON)
-              _issaPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetServiceAccountResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs b/gen/Network/Google/Resource/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetShieldedInstanceIntegrityPolicy.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetShieldedInstanceIntegrityPolicy
--- 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)
---
--- Sets the Shielded Instance integrity policy for an instance. You can
--- only use this method on a running instance. This method supports PATCH
--- semantics and uses the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setShieldedInstanceIntegrityPolicy@.
-module Network.Google.Resource.Compute.Instances.SetShieldedInstanceIntegrityPolicy
-    (
-    -- * REST Resource
-      InstancesSetShieldedInstanceIntegrityPolicyResource
-
-    -- * Creating a Request
-    , instancesSetShieldedInstanceIntegrityPolicy
-    , InstancesSetShieldedInstanceIntegrityPolicy
-
-    -- * Request Lenses
-    , issiipRequestId
-    , issiipProject
-    , issiipZone
-    , issiipPayload
-    , issiipInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setShieldedInstanceIntegrityPolicy@ method which the
--- 'InstancesSetShieldedInstanceIntegrityPolicy' request conforms to.
-type InstancesSetShieldedInstanceIntegrityPolicyResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setShieldedInstanceIntegrityPolicy" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] ShieldedInstanceIntegrityPolicy :>
-                             Patch '[JSON] Operation
-
--- | Sets the Shielded Instance integrity policy for an instance. You can
--- only use this method on a running instance. This method supports PATCH
--- semantics and uses the JSON merge patch format and processing rules.
---
--- /See:/ 'instancesSetShieldedInstanceIntegrityPolicy' smart constructor.
-data InstancesSetShieldedInstanceIntegrityPolicy =
-  InstancesSetShieldedInstanceIntegrityPolicy'
-    { _issiipRequestId :: !(Maybe Text)
-    , _issiipProject   :: !Text
-    , _issiipZone      :: !Text
-    , _issiipPayload   :: !ShieldedInstanceIntegrityPolicy
-    , _issiipInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetShieldedInstanceIntegrityPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'issiipRequestId'
---
--- * 'issiipProject'
---
--- * 'issiipZone'
---
--- * 'issiipPayload'
---
--- * 'issiipInstance'
-instancesSetShieldedInstanceIntegrityPolicy
-    :: Text -- ^ 'issiipProject'
-    -> Text -- ^ 'issiipZone'
-    -> ShieldedInstanceIntegrityPolicy -- ^ 'issiipPayload'
-    -> Text -- ^ 'issiipInstance'
-    -> InstancesSetShieldedInstanceIntegrityPolicy
-instancesSetShieldedInstanceIntegrityPolicy pIssiipProject_ pIssiipZone_ pIssiipPayload_ pIssiipInstance_ =
-  InstancesSetShieldedInstanceIntegrityPolicy'
-    { _issiipRequestId = Nothing
-    , _issiipProject = pIssiipProject_
-    , _issiipZone = pIssiipZone_
-    , _issiipPayload = pIssiipPayload_
-    , _issiipInstance = pIssiipInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-issiipRequestId :: Lens' InstancesSetShieldedInstanceIntegrityPolicy (Maybe Text)
-issiipRequestId
-  = lens _issiipRequestId
-      (\ s a -> s{_issiipRequestId = a})
-
--- | Project ID for this request.
-issiipProject :: Lens' InstancesSetShieldedInstanceIntegrityPolicy Text
-issiipProject
-  = lens _issiipProject
-      (\ s a -> s{_issiipProject = a})
-
--- | The name of the zone for this request.
-issiipZone :: Lens' InstancesSetShieldedInstanceIntegrityPolicy Text
-issiipZone
-  = lens _issiipZone (\ s a -> s{_issiipZone = a})
-
--- | Multipart request metadata.
-issiipPayload :: Lens' InstancesSetShieldedInstanceIntegrityPolicy ShieldedInstanceIntegrityPolicy
-issiipPayload
-  = lens _issiipPayload
-      (\ s a -> s{_issiipPayload = a})
-
--- | Name or id of the instance scoping this request.
-issiipInstance :: Lens' InstancesSetShieldedInstanceIntegrityPolicy Text
-issiipInstance
-  = lens _issiipInstance
-      (\ s a -> s{_issiipInstance = a})
-
-instance GoogleRequest
-           InstancesSetShieldedInstanceIntegrityPolicy
-         where
-        type Rs InstancesSetShieldedInstanceIntegrityPolicy =
-             Operation
-        type Scopes
-               InstancesSetShieldedInstanceIntegrityPolicy
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstancesSetShieldedInstanceIntegrityPolicy'{..}
-          = go _issiipProject _issiipZone _issiipInstance
-              _issiipRequestId
-              (Just AltJSON)
-              _issiipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           InstancesSetShieldedInstanceIntegrityPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SetTags.hs b/gen/Network/Google/Resource/Compute/Instances/SetTags.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SetTags.hs
+++ /dev/null
@@ -1,153 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SetTags
--- 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)
---
--- Sets network tags for the specified instance to the data included in the
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.setTags@.
-module Network.Google.Resource.Compute.Instances.SetTags
-    (
-    -- * REST Resource
-      InstancesSetTagsResource
-
-    -- * Creating a Request
-    , instancesSetTags
-    , InstancesSetTags
-
-    -- * Request Lenses
-    , istRequestId
-    , istProject
-    , istZone
-    , istPayload
-    , istInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.setTags@ method which the
--- 'InstancesSetTags' request conforms to.
-type InstancesSetTagsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "setTags" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Tags :> Post '[JSON] Operation
-
--- | Sets network tags for the specified instance to the data included in the
--- request.
---
--- /See:/ 'instancesSetTags' smart constructor.
-data InstancesSetTags =
-  InstancesSetTags'
-    { _istRequestId :: !(Maybe Text)
-    , _istProject   :: !Text
-    , _istZone      :: !Text
-    , _istPayload   :: !Tags
-    , _istInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSetTags' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'istRequestId'
---
--- * 'istProject'
---
--- * 'istZone'
---
--- * 'istPayload'
---
--- * 'istInstance'
-instancesSetTags
-    :: Text -- ^ 'istProject'
-    -> Text -- ^ 'istZone'
-    -> Tags -- ^ 'istPayload'
-    -> Text -- ^ 'istInstance'
-    -> InstancesSetTags
-instancesSetTags pIstProject_ pIstZone_ pIstPayload_ pIstInstance_ =
-  InstancesSetTags'
-    { _istRequestId = Nothing
-    , _istProject = pIstProject_
-    , _istZone = pIstZone_
-    , _istPayload = pIstPayload_
-    , _istInstance = pIstInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-istRequestId :: Lens' InstancesSetTags (Maybe Text)
-istRequestId
-  = lens _istRequestId (\ s a -> s{_istRequestId = a})
-
--- | Project ID for this request.
-istProject :: Lens' InstancesSetTags Text
-istProject
-  = lens _istProject (\ s a -> s{_istProject = a})
-
--- | The name of the zone for this request.
-istZone :: Lens' InstancesSetTags Text
-istZone = lens _istZone (\ s a -> s{_istZone = a})
-
--- | Multipart request metadata.
-istPayload :: Lens' InstancesSetTags Tags
-istPayload
-  = lens _istPayload (\ s a -> s{_istPayload = a})
-
--- | Name of the instance scoping this request.
-istInstance :: Lens' InstancesSetTags Text
-istInstance
-  = lens _istInstance (\ s a -> s{_istInstance = a})
-
-instance GoogleRequest InstancesSetTags where
-        type Rs InstancesSetTags = Operation
-        type Scopes InstancesSetTags =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSetTags'{..}
-          = go _istProject _istZone _istInstance _istRequestId
-              (Just AltJSON)
-              _istPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesSetTagsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/SimulateMaintenanceEvent.hs b/gen/Network/Google/Resource/Compute/Instances/SimulateMaintenanceEvent.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/SimulateMaintenanceEvent.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.SimulateMaintenanceEvent
--- 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)
---
--- Simulates a maintenance event on the instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.simulateMaintenanceEvent@.
-module Network.Google.Resource.Compute.Instances.SimulateMaintenanceEvent
-    (
-    -- * REST Resource
-      InstancesSimulateMaintenanceEventResource
-
-    -- * Creating a Request
-    , instancesSimulateMaintenanceEvent
-    , InstancesSimulateMaintenanceEvent
-
-    -- * Request Lenses
-    , ismeProject
-    , ismeZone
-    , ismeInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.simulateMaintenanceEvent@ method which the
--- 'InstancesSimulateMaintenanceEvent' request conforms to.
-type InstancesSimulateMaintenanceEventResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "simulateMaintenanceEvent" :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Simulates a maintenance event on the instance.
---
--- /See:/ 'instancesSimulateMaintenanceEvent' smart constructor.
-data InstancesSimulateMaintenanceEvent =
-  InstancesSimulateMaintenanceEvent'
-    { _ismeProject  :: !Text
-    , _ismeZone     :: !Text
-    , _ismeInstance :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesSimulateMaintenanceEvent' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ismeProject'
---
--- * 'ismeZone'
---
--- * 'ismeInstance'
-instancesSimulateMaintenanceEvent
-    :: Text -- ^ 'ismeProject'
-    -> Text -- ^ 'ismeZone'
-    -> Text -- ^ 'ismeInstance'
-    -> InstancesSimulateMaintenanceEvent
-instancesSimulateMaintenanceEvent pIsmeProject_ pIsmeZone_ pIsmeInstance_ =
-  InstancesSimulateMaintenanceEvent'
-    { _ismeProject = pIsmeProject_
-    , _ismeZone = pIsmeZone_
-    , _ismeInstance = pIsmeInstance_
-    }
-
-
--- | Project ID for this request.
-ismeProject :: Lens' InstancesSimulateMaintenanceEvent Text
-ismeProject
-  = lens _ismeProject (\ s a -> s{_ismeProject = a})
-
--- | The name of the zone for this request.
-ismeZone :: Lens' InstancesSimulateMaintenanceEvent Text
-ismeZone = lens _ismeZone (\ s a -> s{_ismeZone = a})
-
--- | Name of the instance scoping this request.
-ismeInstance :: Lens' InstancesSimulateMaintenanceEvent Text
-ismeInstance
-  = lens _ismeInstance (\ s a -> s{_ismeInstance = a})
-
-instance GoogleRequest
-           InstancesSimulateMaintenanceEvent
-         where
-        type Rs InstancesSimulateMaintenanceEvent = Operation
-        type Scopes InstancesSimulateMaintenanceEvent =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesSimulateMaintenanceEvent'{..}
-          = go _ismeProject _ismeZone _ismeInstance
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesSimulateMaintenanceEventResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Start.hs b/gen/Network/Google/Resource/Compute/Instances/Start.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Start.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Start
--- 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)
---
--- Starts an instance that was stopped using the instances().stop method.
--- For more information, see Restart an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.start@.
-module Network.Google.Resource.Compute.Instances.Start
-    (
-    -- * REST Resource
-      InstancesStartResource
-
-    -- * Creating a Request
-    , instancesStart
-    , InstancesStart
-
-    -- * Request Lenses
-    , insnRequestId
-    , insnProject
-    , insnZone
-    , insnInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.start@ method which the
--- 'InstancesStart' request conforms to.
-type InstancesStartResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "start" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Starts an instance that was stopped using the instances().stop method.
--- For more information, see Restart an instance.
---
--- /See:/ 'instancesStart' smart constructor.
-data InstancesStart =
-  InstancesStart'
-    { _insnRequestId :: !(Maybe Text)
-    , _insnProject   :: !Text
-    , _insnZone      :: !Text
-    , _insnInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesStart' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'insnRequestId'
---
--- * 'insnProject'
---
--- * 'insnZone'
---
--- * 'insnInstance'
-instancesStart
-    :: Text -- ^ 'insnProject'
-    -> Text -- ^ 'insnZone'
-    -> Text -- ^ 'insnInstance'
-    -> InstancesStart
-instancesStart pInsnProject_ pInsnZone_ pInsnInstance_ =
-  InstancesStart'
-    { _insnRequestId = Nothing
-    , _insnProject = pInsnProject_
-    , _insnZone = pInsnZone_
-    , _insnInstance = pInsnInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-insnRequestId :: Lens' InstancesStart (Maybe Text)
-insnRequestId
-  = lens _insnRequestId
-      (\ s a -> s{_insnRequestId = a})
-
--- | Project ID for this request.
-insnProject :: Lens' InstancesStart Text
-insnProject
-  = lens _insnProject (\ s a -> s{_insnProject = a})
-
--- | The name of the zone for this request.
-insnZone :: Lens' InstancesStart Text
-insnZone = lens _insnZone (\ s a -> s{_insnZone = a})
-
--- | Name of the instance resource to start.
-insnInstance :: Lens' InstancesStart Text
-insnInstance
-  = lens _insnInstance (\ s a -> s{_insnInstance = a})
-
-instance GoogleRequest InstancesStart where
-        type Rs InstancesStart = Operation
-        type Scopes InstancesStart =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesStart'{..}
-          = go _insnProject _insnZone _insnInstance
-              _insnRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy InstancesStartResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/StartWithEncryptionKey.hs b/gen/Network/Google/Resource/Compute/Instances/StartWithEncryptionKey.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/StartWithEncryptionKey.hs
+++ /dev/null
@@ -1,162 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.StartWithEncryptionKey
--- 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)
---
--- Starts an instance that was stopped using the instances().stop method.
--- For more information, see Restart an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.startWithEncryptionKey@.
-module Network.Google.Resource.Compute.Instances.StartWithEncryptionKey
-    (
-    -- * REST Resource
-      InstancesStartWithEncryptionKeyResource
-
-    -- * Creating a Request
-    , instancesStartWithEncryptionKey
-    , InstancesStartWithEncryptionKey
-
-    -- * Request Lenses
-    , iswekRequestId
-    , iswekProject
-    , iswekZone
-    , iswekPayload
-    , iswekInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.startWithEncryptionKey@ method which the
--- 'InstancesStartWithEncryptionKey' request conforms to.
-type InstancesStartWithEncryptionKeyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "startWithEncryptionKey" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             InstancesStartWithEncryptionKeyRequest
-                             :> Post '[JSON] Operation
-
--- | Starts an instance that was stopped using the instances().stop method.
--- For more information, see Restart an instance.
---
--- /See:/ 'instancesStartWithEncryptionKey' smart constructor.
-data InstancesStartWithEncryptionKey =
-  InstancesStartWithEncryptionKey'
-    { _iswekRequestId :: !(Maybe Text)
-    , _iswekProject   :: !Text
-    , _iswekZone      :: !Text
-    , _iswekPayload   :: !InstancesStartWithEncryptionKeyRequest
-    , _iswekInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesStartWithEncryptionKey' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iswekRequestId'
---
--- * 'iswekProject'
---
--- * 'iswekZone'
---
--- * 'iswekPayload'
---
--- * 'iswekInstance'
-instancesStartWithEncryptionKey
-    :: Text -- ^ 'iswekProject'
-    -> Text -- ^ 'iswekZone'
-    -> InstancesStartWithEncryptionKeyRequest -- ^ 'iswekPayload'
-    -> Text -- ^ 'iswekInstance'
-    -> InstancesStartWithEncryptionKey
-instancesStartWithEncryptionKey pIswekProject_ pIswekZone_ pIswekPayload_ pIswekInstance_ =
-  InstancesStartWithEncryptionKey'
-    { _iswekRequestId = Nothing
-    , _iswekProject = pIswekProject_
-    , _iswekZone = pIswekZone_
-    , _iswekPayload = pIswekPayload_
-    , _iswekInstance = pIswekInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iswekRequestId :: Lens' InstancesStartWithEncryptionKey (Maybe Text)
-iswekRequestId
-  = lens _iswekRequestId
-      (\ s a -> s{_iswekRequestId = a})
-
--- | Project ID for this request.
-iswekProject :: Lens' InstancesStartWithEncryptionKey Text
-iswekProject
-  = lens _iswekProject (\ s a -> s{_iswekProject = a})
-
--- | The name of the zone for this request.
-iswekZone :: Lens' InstancesStartWithEncryptionKey Text
-iswekZone
-  = lens _iswekZone (\ s a -> s{_iswekZone = a})
-
--- | Multipart request metadata.
-iswekPayload :: Lens' InstancesStartWithEncryptionKey InstancesStartWithEncryptionKeyRequest
-iswekPayload
-  = lens _iswekPayload (\ s a -> s{_iswekPayload = a})
-
--- | Name of the instance resource to start.
-iswekInstance :: Lens' InstancesStartWithEncryptionKey Text
-iswekInstance
-  = lens _iswekInstance
-      (\ s a -> s{_iswekInstance = a})
-
-instance GoogleRequest
-           InstancesStartWithEncryptionKey
-         where
-        type Rs InstancesStartWithEncryptionKey = Operation
-        type Scopes InstancesStartWithEncryptionKey =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesStartWithEncryptionKey'{..}
-          = go _iswekProject _iswekZone _iswekInstance
-              _iswekRequestId
-              (Just AltJSON)
-              _iswekPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesStartWithEncryptionKeyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/Stop.hs b/gen/Network/Google/Resource/Compute/Instances/Stop.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/Stop.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.Stop
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Stops a running instance, shutting it down cleanly, and allows you to
--- restart the instance at a later time. Stopped instances do not incur VM
--- usage charges while they are stopped. However, resources that the VM is
--- using, such as persistent disks and static IP addresses, will continue
--- to be charged until they are deleted. For more information, see Stopping
--- an instance.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.stop@.
-module Network.Google.Resource.Compute.Instances.Stop
-    (
-    -- * REST Resource
-      InstancesStopResource
-
-    -- * Creating a Request
-    , instancesStop
-    , InstancesStop
-
-    -- * Request Lenses
-    , isRequestId
-    , isProject
-    , isZone
-    , isInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.stop@ method which the
--- 'InstancesStop' request conforms to.
-type InstancesStopResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "stop" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Stops a running instance, shutting it down cleanly, and allows you to
--- restart the instance at a later time. Stopped instances do not incur VM
--- usage charges while they are stopped. However, resources that the VM is
--- using, such as persistent disks and static IP addresses, will continue
--- to be charged until they are deleted. For more information, see Stopping
--- an instance.
---
--- /See:/ 'instancesStop' smart constructor.
-data InstancesStop =
-  InstancesStop'
-    { _isRequestId :: !(Maybe Text)
-    , _isProject   :: !Text
-    , _isZone      :: !Text
-    , _isInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesStop' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'isRequestId'
---
--- * 'isProject'
---
--- * 'isZone'
---
--- * 'isInstance'
-instancesStop
-    :: Text -- ^ 'isProject'
-    -> Text -- ^ 'isZone'
-    -> Text -- ^ 'isInstance'
-    -> InstancesStop
-instancesStop pIsProject_ pIsZone_ pIsInstance_ =
-  InstancesStop'
-    { _isRequestId = Nothing
-    , _isProject = pIsProject_
-    , _isZone = pIsZone_
-    , _isInstance = pIsInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-isRequestId :: Lens' InstancesStop (Maybe Text)
-isRequestId
-  = lens _isRequestId (\ s a -> s{_isRequestId = a})
-
--- | Project ID for this request.
-isProject :: Lens' InstancesStop Text
-isProject
-  = lens _isProject (\ s a -> s{_isProject = a})
-
--- | The name of the zone for this request.
-isZone :: Lens' InstancesStop Text
-isZone = lens _isZone (\ s a -> s{_isZone = a})
-
--- | Name of the instance resource to stop.
-isInstance :: Lens' InstancesStop Text
-isInstance
-  = lens _isInstance (\ s a -> s{_isInstance = a})
-
-instance GoogleRequest InstancesStop where
-        type Rs InstancesStop = Operation
-        type Scopes InstancesStop =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesStop'{..}
-          = go _isProject _isZone _isInstance _isRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy InstancesStopResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Instances/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/TestIAMPermissions.hs
+++ /dev/null
@@ -1,135 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.testIamPermissions@.
-module Network.Google.Resource.Compute.Instances.TestIAMPermissions
-    (
-    -- * REST Resource
-      InstancesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , instancesTestIAMPermissions
-    , InstancesTestIAMPermissions
-
-    -- * Request Lenses
-    , itipProject
-    , itipZone
-    , itipPayload
-    , itipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.testIamPermissions@ method which the
--- 'InstancesTestIAMPermissions' request conforms to.
-type InstancesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'instancesTestIAMPermissions' smart constructor.
-data InstancesTestIAMPermissions =
-  InstancesTestIAMPermissions'
-    { _itipProject  :: !Text
-    , _itipZone     :: !Text
-    , _itipPayload  :: !TestPermissionsRequest
-    , _itipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'itipProject'
---
--- * 'itipZone'
---
--- * 'itipPayload'
---
--- * 'itipResource'
-instancesTestIAMPermissions
-    :: Text -- ^ 'itipProject'
-    -> Text -- ^ 'itipZone'
-    -> TestPermissionsRequest -- ^ 'itipPayload'
-    -> Text -- ^ 'itipResource'
-    -> InstancesTestIAMPermissions
-instancesTestIAMPermissions pItipProject_ pItipZone_ pItipPayload_ pItipResource_ =
-  InstancesTestIAMPermissions'
-    { _itipProject = pItipProject_
-    , _itipZone = pItipZone_
-    , _itipPayload = pItipPayload_
-    , _itipResource = pItipResource_
-    }
-
-
--- | Project ID for this request.
-itipProject :: Lens' InstancesTestIAMPermissions Text
-itipProject
-  = lens _itipProject (\ s a -> s{_itipProject = a})
-
--- | The name of the zone for this request.
-itipZone :: Lens' InstancesTestIAMPermissions Text
-itipZone = lens _itipZone (\ s a -> s{_itipZone = a})
-
--- | Multipart request metadata.
-itipPayload :: Lens' InstancesTestIAMPermissions TestPermissionsRequest
-itipPayload
-  = lens _itipPayload (\ s a -> s{_itipPayload = a})
-
--- | Name or id of the resource for this request.
-itipResource :: Lens' InstancesTestIAMPermissions Text
-itipResource
-  = lens _itipResource (\ s a -> s{_itipResource = a})
-
-instance GoogleRequest InstancesTestIAMPermissions
-         where
-        type Rs InstancesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes InstancesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InstancesTestIAMPermissions'{..}
-          = go _itipProject _itipZone _itipResource
-              (Just AltJSON)
-              _itipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/UpdateAccessConfig.hs b/gen/Network/Google/Resource/Compute/Instances/UpdateAccessConfig.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/UpdateAccessConfig.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.UpdateAccessConfig
--- 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 access config from an instance\'s network
--- interface with the data included in the request. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.updateAccessConfig@.
-module Network.Google.Resource.Compute.Instances.UpdateAccessConfig
-    (
-    -- * REST Resource
-      InstancesUpdateAccessConfigResource
-
-    -- * Creating a Request
-    , instancesUpdateAccessConfig
-    , InstancesUpdateAccessConfig
-
-    -- * Request Lenses
-    , iuacRequestId
-    , iuacProject
-    , iuacNetworkInterface
-    , iuacZone
-    , iuacPayload
-    , iuacInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.updateAccessConfig@ method which the
--- 'InstancesUpdateAccessConfig' request conforms to.
-type InstancesUpdateAccessConfigResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "updateAccessConfig" :>
-                       QueryParam "networkInterface" Text :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] AccessConfig :>
-                               Post '[JSON] Operation
-
--- | Updates the specified access config from an instance\'s network
--- interface with the data included in the request. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ 'instancesUpdateAccessConfig' smart constructor.
-data InstancesUpdateAccessConfig =
-  InstancesUpdateAccessConfig'
-    { _iuacRequestId        :: !(Maybe Text)
-    , _iuacProject          :: !Text
-    , _iuacNetworkInterface :: !Text
-    , _iuacZone             :: !Text
-    , _iuacPayload          :: !AccessConfig
-    , _iuacInstance         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesUpdateAccessConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iuacRequestId'
---
--- * 'iuacProject'
---
--- * 'iuacNetworkInterface'
---
--- * 'iuacZone'
---
--- * 'iuacPayload'
---
--- * 'iuacInstance'
-instancesUpdateAccessConfig
-    :: Text -- ^ 'iuacProject'
-    -> Text -- ^ 'iuacNetworkInterface'
-    -> Text -- ^ 'iuacZone'
-    -> AccessConfig -- ^ 'iuacPayload'
-    -> Text -- ^ 'iuacInstance'
-    -> InstancesUpdateAccessConfig
-instancesUpdateAccessConfig pIuacProject_ pIuacNetworkInterface_ pIuacZone_ pIuacPayload_ pIuacInstance_ =
-  InstancesUpdateAccessConfig'
-    { _iuacRequestId = Nothing
-    , _iuacProject = pIuacProject_
-    , _iuacNetworkInterface = pIuacNetworkInterface_
-    , _iuacZone = pIuacZone_
-    , _iuacPayload = pIuacPayload_
-    , _iuacInstance = pIuacInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iuacRequestId :: Lens' InstancesUpdateAccessConfig (Maybe Text)
-iuacRequestId
-  = lens _iuacRequestId
-      (\ s a -> s{_iuacRequestId = a})
-
--- | Project ID for this request.
-iuacProject :: Lens' InstancesUpdateAccessConfig Text
-iuacProject
-  = lens _iuacProject (\ s a -> s{_iuacProject = a})
-
--- | The name of the network interface where the access config is attached.
-iuacNetworkInterface :: Lens' InstancesUpdateAccessConfig Text
-iuacNetworkInterface
-  = lens _iuacNetworkInterface
-      (\ s a -> s{_iuacNetworkInterface = a})
-
--- | The name of the zone for this request.
-iuacZone :: Lens' InstancesUpdateAccessConfig Text
-iuacZone = lens _iuacZone (\ s a -> s{_iuacZone = a})
-
--- | Multipart request metadata.
-iuacPayload :: Lens' InstancesUpdateAccessConfig AccessConfig
-iuacPayload
-  = lens _iuacPayload (\ s a -> s{_iuacPayload = a})
-
--- | The instance name for this request.
-iuacInstance :: Lens' InstancesUpdateAccessConfig Text
-iuacInstance
-  = lens _iuacInstance (\ s a -> s{_iuacInstance = a})
-
-instance GoogleRequest InstancesUpdateAccessConfig
-         where
-        type Rs InstancesUpdateAccessConfig = Operation
-        type Scopes InstancesUpdateAccessConfig =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesUpdateAccessConfig'{..}
-          = go _iuacProject _iuacZone _iuacInstance
-              (Just _iuacNetworkInterface)
-              _iuacRequestId
-              (Just AltJSON)
-              _iuacPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InstancesUpdateAccessConfigResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/UpdateNetworkInterface.hs b/gen/Network/Google/Resource/Compute/Instances/UpdateNetworkInterface.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/UpdateNetworkInterface.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.UpdateNetworkInterface
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an instance\'s network interface. This method follows PATCH
--- semantics.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.updateNetworkInterface@.
-module Network.Google.Resource.Compute.Instances.UpdateNetworkInterface
-    (
-    -- * REST Resource
-      InstancesUpdateNetworkInterfaceResource
-
-    -- * Creating a Request
-    , instancesUpdateNetworkInterface
-    , InstancesUpdateNetworkInterface
-
-    -- * Request Lenses
-    , iuniRequestId
-    , iuniProject
-    , iuniNetworkInterface
-    , iuniZone
-    , iuniPayload
-    , iuniInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.updateNetworkInterface@ method which the
--- 'InstancesUpdateNetworkInterface' request conforms to.
-type InstancesUpdateNetworkInterfaceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "updateNetworkInterface" :>
-                       QueryParam "networkInterface" Text :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] NetworkInterface :>
-                               Patch '[JSON] Operation
-
--- | Updates an instance\'s network interface. This method follows PATCH
--- semantics.
---
--- /See:/ 'instancesUpdateNetworkInterface' smart constructor.
-data InstancesUpdateNetworkInterface =
-  InstancesUpdateNetworkInterface'
-    { _iuniRequestId        :: !(Maybe Text)
-    , _iuniProject          :: !Text
-    , _iuniNetworkInterface :: !Text
-    , _iuniZone             :: !Text
-    , _iuniPayload          :: !NetworkInterface
-    , _iuniInstance         :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesUpdateNetworkInterface' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iuniRequestId'
---
--- * 'iuniProject'
---
--- * 'iuniNetworkInterface'
---
--- * 'iuniZone'
---
--- * 'iuniPayload'
---
--- * 'iuniInstance'
-instancesUpdateNetworkInterface
-    :: Text -- ^ 'iuniProject'
-    -> Text -- ^ 'iuniNetworkInterface'
-    -> Text -- ^ 'iuniZone'
-    -> NetworkInterface -- ^ 'iuniPayload'
-    -> Text -- ^ 'iuniInstance'
-    -> InstancesUpdateNetworkInterface
-instancesUpdateNetworkInterface pIuniProject_ pIuniNetworkInterface_ pIuniZone_ pIuniPayload_ pIuniInstance_ =
-  InstancesUpdateNetworkInterface'
-    { _iuniRequestId = Nothing
-    , _iuniProject = pIuniProject_
-    , _iuniNetworkInterface = pIuniNetworkInterface_
-    , _iuniZone = pIuniZone_
-    , _iuniPayload = pIuniPayload_
-    , _iuniInstance = pIuniInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iuniRequestId :: Lens' InstancesUpdateNetworkInterface (Maybe Text)
-iuniRequestId
-  = lens _iuniRequestId
-      (\ s a -> s{_iuniRequestId = a})
-
--- | Project ID for this request.
-iuniProject :: Lens' InstancesUpdateNetworkInterface Text
-iuniProject
-  = lens _iuniProject (\ s a -> s{_iuniProject = a})
-
--- | The name of the network interface to update.
-iuniNetworkInterface :: Lens' InstancesUpdateNetworkInterface Text
-iuniNetworkInterface
-  = lens _iuniNetworkInterface
-      (\ s a -> s{_iuniNetworkInterface = a})
-
--- | The name of the zone for this request.
-iuniZone :: Lens' InstancesUpdateNetworkInterface Text
-iuniZone = lens _iuniZone (\ s a -> s{_iuniZone = a})
-
--- | Multipart request metadata.
-iuniPayload :: Lens' InstancesUpdateNetworkInterface NetworkInterface
-iuniPayload
-  = lens _iuniPayload (\ s a -> s{_iuniPayload = a})
-
--- | The instance name for this request.
-iuniInstance :: Lens' InstancesUpdateNetworkInterface Text
-iuniInstance
-  = lens _iuniInstance (\ s a -> s{_iuniInstance = a})
-
-instance GoogleRequest
-           InstancesUpdateNetworkInterface
-         where
-        type Rs InstancesUpdateNetworkInterface = Operation
-        type Scopes InstancesUpdateNetworkInterface =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InstancesUpdateNetworkInterface'{..}
-          = go _iuniProject _iuniZone _iuniInstance
-              (Just _iuniNetworkInterface)
-              _iuniRequestId
-              (Just AltJSON)
-              _iuniPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesUpdateNetworkInterfaceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Instances/UpdateShieldedInstanceConfig.hs b/gen/Network/Google/Resource/Compute/Instances/UpdateShieldedInstanceConfig.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Instances/UpdateShieldedInstanceConfig.hs
+++ /dev/null
@@ -1,165 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Instances.UpdateShieldedInstanceConfig
--- 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 Shielded Instance config for an instance. You can only use
--- this method on a stopped instance. This method supports PATCH semantics
--- and uses the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.instances.updateShieldedInstanceConfig@.
-module Network.Google.Resource.Compute.Instances.UpdateShieldedInstanceConfig
-    (
-    -- * REST Resource
-      InstancesUpdateShieldedInstanceConfigResource
-
-    -- * Creating a Request
-    , instancesUpdateShieldedInstanceConfig
-    , InstancesUpdateShieldedInstanceConfig
-
-    -- * Request Lenses
-    , iusicRequestId
-    , iusicProject
-    , iusicZone
-    , iusicPayload
-    , iusicInstance
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.instances.updateShieldedInstanceConfig@ method which the
--- 'InstancesUpdateShieldedInstanceConfig' request conforms to.
-type InstancesUpdateShieldedInstanceConfigResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "instances" :>
-                   Capture "instance" Text :>
-                     "updateShieldedInstanceConfig" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] ShieldedInstanceConfig :>
-                             Patch '[JSON] Operation
-
--- | Updates the Shielded Instance config for an instance. You can only use
--- this method on a stopped instance. This method supports PATCH semantics
--- and uses the JSON merge patch format and processing rules.
---
--- /See:/ 'instancesUpdateShieldedInstanceConfig' smart constructor.
-data InstancesUpdateShieldedInstanceConfig =
-  InstancesUpdateShieldedInstanceConfig'
-    { _iusicRequestId :: !(Maybe Text)
-    , _iusicProject   :: !Text
-    , _iusicZone      :: !Text
-    , _iusicPayload   :: !ShieldedInstanceConfig
-    , _iusicInstance  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InstancesUpdateShieldedInstanceConfig' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iusicRequestId'
---
--- * 'iusicProject'
---
--- * 'iusicZone'
---
--- * 'iusicPayload'
---
--- * 'iusicInstance'
-instancesUpdateShieldedInstanceConfig
-    :: Text -- ^ 'iusicProject'
-    -> Text -- ^ 'iusicZone'
-    -> ShieldedInstanceConfig -- ^ 'iusicPayload'
-    -> Text -- ^ 'iusicInstance'
-    -> InstancesUpdateShieldedInstanceConfig
-instancesUpdateShieldedInstanceConfig pIusicProject_ pIusicZone_ pIusicPayload_ pIusicInstance_ =
-  InstancesUpdateShieldedInstanceConfig'
-    { _iusicRequestId = Nothing
-    , _iusicProject = pIusicProject_
-    , _iusicZone = pIusicZone_
-    , _iusicPayload = pIusicPayload_
-    , _iusicInstance = pIusicInstance_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iusicRequestId :: Lens' InstancesUpdateShieldedInstanceConfig (Maybe Text)
-iusicRequestId
-  = lens _iusicRequestId
-      (\ s a -> s{_iusicRequestId = a})
-
--- | Project ID for this request.
-iusicProject :: Lens' InstancesUpdateShieldedInstanceConfig Text
-iusicProject
-  = lens _iusicProject (\ s a -> s{_iusicProject = a})
-
--- | The name of the zone for this request.
-iusicZone :: Lens' InstancesUpdateShieldedInstanceConfig Text
-iusicZone
-  = lens _iusicZone (\ s a -> s{_iusicZone = a})
-
--- | Multipart request metadata.
-iusicPayload :: Lens' InstancesUpdateShieldedInstanceConfig ShieldedInstanceConfig
-iusicPayload
-  = lens _iusicPayload (\ s a -> s{_iusicPayload = a})
-
--- | Name or id of the instance scoping this request.
-iusicInstance :: Lens' InstancesUpdateShieldedInstanceConfig Text
-iusicInstance
-  = lens _iusicInstance
-      (\ s a -> s{_iusicInstance = a})
-
-instance GoogleRequest
-           InstancesUpdateShieldedInstanceConfig
-         where
-        type Rs InstancesUpdateShieldedInstanceConfig =
-             Operation
-        type Scopes InstancesUpdateShieldedInstanceConfig =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          InstancesUpdateShieldedInstanceConfig'{..}
-          = go _iusicProject _iusicZone _iusicInstance
-              _iusicRequestId
-              (Just AltJSON)
-              _iusicPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InstancesUpdateShieldedInstanceConfigResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/AggregatedList.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/AggregatedList.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of interconnect attachments.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.aggregatedList@.
-module Network.Google.Resource.Compute.InterconnectAttachments.AggregatedList
-    (
-    -- * REST Resource
-      InterconnectAttachmentsAggregatedListResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsAggregatedList
-    , InterconnectAttachmentsAggregatedList
-
-    -- * Request Lenses
-    , iaalOrderBy
-    , iaalProject
-    , iaalFilter
-    , iaalPageToken
-    , iaalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.aggregatedList@ method which the
--- 'InterconnectAttachmentsAggregatedList' request conforms to.
-type InterconnectAttachmentsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "interconnectAttachments" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InterconnectAttachmentAggregatedList
-
--- | Retrieves an aggregated list of interconnect attachments.
---
--- /See:/ 'interconnectAttachmentsAggregatedList' smart constructor.
-data InterconnectAttachmentsAggregatedList =
-  InterconnectAttachmentsAggregatedList'
-    { _iaalOrderBy    :: !(Maybe Text)
-    , _iaalProject    :: !Text
-    , _iaalFilter     :: !(Maybe Text)
-    , _iaalPageToken  :: !(Maybe Text)
-    , _iaalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaalOrderBy'
---
--- * 'iaalProject'
---
--- * 'iaalFilter'
---
--- * 'iaalPageToken'
---
--- * 'iaalMaxResults'
-interconnectAttachmentsAggregatedList
-    :: Text -- ^ 'iaalProject'
-    -> InterconnectAttachmentsAggregatedList
-interconnectAttachmentsAggregatedList pIaalProject_ =
-  InterconnectAttachmentsAggregatedList'
-    { _iaalOrderBy = Nothing
-    , _iaalProject = pIaalProject_
-    , _iaalFilter = Nothing
-    , _iaalPageToken = Nothing
-    , _iaalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-iaalOrderBy :: Lens' InterconnectAttachmentsAggregatedList (Maybe Text)
-iaalOrderBy
-  = lens _iaalOrderBy (\ s a -> s{_iaalOrderBy = a})
-
--- | Project ID for this request.
-iaalProject :: Lens' InterconnectAttachmentsAggregatedList Text
-iaalProject
-  = lens _iaalProject (\ s a -> s{_iaalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-iaalFilter :: Lens' InterconnectAttachmentsAggregatedList (Maybe Text)
-iaalFilter
-  = lens _iaalFilter (\ s a -> s{_iaalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-iaalPageToken :: Lens' InterconnectAttachmentsAggregatedList (Maybe Text)
-iaalPageToken
-  = lens _iaalPageToken
-      (\ s a -> s{_iaalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-iaalMaxResults :: Lens' InterconnectAttachmentsAggregatedList Word32
-iaalMaxResults
-  = lens _iaalMaxResults
-      (\ s a -> s{_iaalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           InterconnectAttachmentsAggregatedList
-         where
-        type Rs InterconnectAttachmentsAggregatedList =
-             InterconnectAttachmentAggregatedList
-        type Scopes InterconnectAttachmentsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          InterconnectAttachmentsAggregatedList'{..}
-          = go _iaalProject _iaalOrderBy _iaalFilter
-              _iaalPageToken
-              (Just _iaalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InterconnectAttachmentsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Delete.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Delete.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.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 interconnect attachment.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.delete@.
-module Network.Google.Resource.Compute.InterconnectAttachments.Delete
-    (
-    -- * REST Resource
-      InterconnectAttachmentsDeleteResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsDelete
-    , InterconnectAttachmentsDelete
-
-    -- * Request Lenses
-    , iadRequestId
-    , iadProject
-    , iadRegion
-    , iadInterconnectAttachment
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.delete@ method which the
--- 'InterconnectAttachmentsDelete' request conforms to.
-type InterconnectAttachmentsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "interconnectAttachments" :>
-                   Capture "interconnectAttachment" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified interconnect attachment.
---
--- /See:/ 'interconnectAttachmentsDelete' smart constructor.
-data InterconnectAttachmentsDelete =
-  InterconnectAttachmentsDelete'
-    { _iadRequestId              :: !(Maybe Text)
-    , _iadProject                :: !Text
-    , _iadRegion                 :: !Text
-    , _iadInterconnectAttachment :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iadRequestId'
---
--- * 'iadProject'
---
--- * 'iadRegion'
---
--- * 'iadInterconnectAttachment'
-interconnectAttachmentsDelete
-    :: Text -- ^ 'iadProject'
-    -> Text -- ^ 'iadRegion'
-    -> Text -- ^ 'iadInterconnectAttachment'
-    -> InterconnectAttachmentsDelete
-interconnectAttachmentsDelete pIadProject_ pIadRegion_ pIadInterconnectAttachment_ =
-  InterconnectAttachmentsDelete'
-    { _iadRequestId = Nothing
-    , _iadProject = pIadProject_
-    , _iadRegion = pIadRegion_
-    , _iadInterconnectAttachment = pIadInterconnectAttachment_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iadRequestId :: Lens' InterconnectAttachmentsDelete (Maybe Text)
-iadRequestId
-  = lens _iadRequestId (\ s a -> s{_iadRequestId = a})
-
--- | Project ID for this request.
-iadProject :: Lens' InterconnectAttachmentsDelete Text
-iadProject
-  = lens _iadProject (\ s a -> s{_iadProject = a})
-
--- | Name of the region for this request.
-iadRegion :: Lens' InterconnectAttachmentsDelete Text
-iadRegion
-  = lens _iadRegion (\ s a -> s{_iadRegion = a})
-
--- | Name of the interconnect attachment to delete.
-iadInterconnectAttachment :: Lens' InterconnectAttachmentsDelete Text
-iadInterconnectAttachment
-  = lens _iadInterconnectAttachment
-      (\ s a -> s{_iadInterconnectAttachment = a})
-
-instance GoogleRequest InterconnectAttachmentsDelete
-         where
-        type Rs InterconnectAttachmentsDelete = Operation
-        type Scopes InterconnectAttachmentsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectAttachmentsDelete'{..}
-          = go _iadProject _iadRegion
-              _iadInterconnectAttachment
-              _iadRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InterconnectAttachmentsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Get.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Get.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.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)
---
--- Returns the specified interconnect attachment.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.get@.
-module Network.Google.Resource.Compute.InterconnectAttachments.Get
-    (
-    -- * REST Resource
-      InterconnectAttachmentsGetResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsGet
-    , InterconnectAttachmentsGet
-
-    -- * Request Lenses
-    , iagProject
-    , iagRegion
-    , iagInterconnectAttachment
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.get@ method which the
--- 'InterconnectAttachmentsGet' request conforms to.
-type InterconnectAttachmentsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "interconnectAttachments" :>
-                   Capture "interconnectAttachment" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] InterconnectAttachment
-
--- | Returns the specified interconnect attachment.
---
--- /See:/ 'interconnectAttachmentsGet' smart constructor.
-data InterconnectAttachmentsGet =
-  InterconnectAttachmentsGet'
-    { _iagProject                :: !Text
-    , _iagRegion                 :: !Text
-    , _iagInterconnectAttachment :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iagProject'
---
--- * 'iagRegion'
---
--- * 'iagInterconnectAttachment'
-interconnectAttachmentsGet
-    :: Text -- ^ 'iagProject'
-    -> Text -- ^ 'iagRegion'
-    -> Text -- ^ 'iagInterconnectAttachment'
-    -> InterconnectAttachmentsGet
-interconnectAttachmentsGet pIagProject_ pIagRegion_ pIagInterconnectAttachment_ =
-  InterconnectAttachmentsGet'
-    { _iagProject = pIagProject_
-    , _iagRegion = pIagRegion_
-    , _iagInterconnectAttachment = pIagInterconnectAttachment_
-    }
-
-
--- | Project ID for this request.
-iagProject :: Lens' InterconnectAttachmentsGet Text
-iagProject
-  = lens _iagProject (\ s a -> s{_iagProject = a})
-
--- | Name of the region for this request.
-iagRegion :: Lens' InterconnectAttachmentsGet Text
-iagRegion
-  = lens _iagRegion (\ s a -> s{_iagRegion = a})
-
--- | Name of the interconnect attachment to return.
-iagInterconnectAttachment :: Lens' InterconnectAttachmentsGet Text
-iagInterconnectAttachment
-  = lens _iagInterconnectAttachment
-      (\ s a -> s{_iagInterconnectAttachment = a})
-
-instance GoogleRequest InterconnectAttachmentsGet
-         where
-        type Rs InterconnectAttachmentsGet =
-             InterconnectAttachment
-        type Scopes InterconnectAttachmentsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectAttachmentsGet'{..}
-          = go _iagProject _iagRegion
-              _iagInterconnectAttachment
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectAttachmentsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Insert.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Insert.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.Insert
--- 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 an InterconnectAttachment in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.insert@.
-module Network.Google.Resource.Compute.InterconnectAttachments.Insert
-    (
-    -- * REST Resource
-      InterconnectAttachmentsInsertResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsInsert
-    , InterconnectAttachmentsInsert
-
-    -- * Request Lenses
-    , iaiRequestId
-    , iaiProject
-    , iaiPayload
-    , iaiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.insert@ method which the
--- 'InterconnectAttachmentsInsert' request conforms to.
-type InterconnectAttachmentsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "interconnectAttachments" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] InterconnectAttachment :>
-                         Post '[JSON] Operation
-
--- | Creates an InterconnectAttachment in the specified project using the
--- data included in the request.
---
--- /See:/ 'interconnectAttachmentsInsert' smart constructor.
-data InterconnectAttachmentsInsert =
-  InterconnectAttachmentsInsert'
-    { _iaiRequestId :: !(Maybe Text)
-    , _iaiProject   :: !Text
-    , _iaiPayload   :: !InterconnectAttachment
-    , _iaiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iaiRequestId'
---
--- * 'iaiProject'
---
--- * 'iaiPayload'
---
--- * 'iaiRegion'
-interconnectAttachmentsInsert
-    :: Text -- ^ 'iaiProject'
-    -> InterconnectAttachment -- ^ 'iaiPayload'
-    -> Text -- ^ 'iaiRegion'
-    -> InterconnectAttachmentsInsert
-interconnectAttachmentsInsert pIaiProject_ pIaiPayload_ pIaiRegion_ =
-  InterconnectAttachmentsInsert'
-    { _iaiRequestId = Nothing
-    , _iaiProject = pIaiProject_
-    , _iaiPayload = pIaiPayload_
-    , _iaiRegion = pIaiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iaiRequestId :: Lens' InterconnectAttachmentsInsert (Maybe Text)
-iaiRequestId
-  = lens _iaiRequestId (\ s a -> s{_iaiRequestId = a})
-
--- | Project ID for this request.
-iaiProject :: Lens' InterconnectAttachmentsInsert Text
-iaiProject
-  = lens _iaiProject (\ s a -> s{_iaiProject = a})
-
--- | Multipart request metadata.
-iaiPayload :: Lens' InterconnectAttachmentsInsert InterconnectAttachment
-iaiPayload
-  = lens _iaiPayload (\ s a -> s{_iaiPayload = a})
-
--- | Name of the region for this request.
-iaiRegion :: Lens' InterconnectAttachmentsInsert Text
-iaiRegion
-  = lens _iaiRegion (\ s a -> s{_iaiRegion = a})
-
-instance GoogleRequest InterconnectAttachmentsInsert
-         where
-        type Rs InterconnectAttachmentsInsert = Operation
-        type Scopes InterconnectAttachmentsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectAttachmentsInsert'{..}
-          = go _iaiProject _iaiRegion _iaiRequestId
-              (Just AltJSON)
-              _iaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy InterconnectAttachmentsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/List.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/List.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.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)
---
--- Retrieves the list of interconnect attachments contained within the
--- specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.list@.
-module Network.Google.Resource.Compute.InterconnectAttachments.List
-    (
-    -- * REST Resource
-      InterconnectAttachmentsListResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsList
-    , InterconnectAttachmentsList
-
-    -- * Request Lenses
-    , ialOrderBy
-    , ialProject
-    , ialFilter
-    , ialRegion
-    , ialPageToken
-    , ialMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.list@ method which the
--- 'InterconnectAttachmentsList' request conforms to.
-type InterconnectAttachmentsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "interconnectAttachments" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] InterconnectAttachmentList
-
--- | Retrieves the list of interconnect attachments contained within the
--- specified region.
---
--- /See:/ 'interconnectAttachmentsList' smart constructor.
-data InterconnectAttachmentsList =
-  InterconnectAttachmentsList'
-    { _ialOrderBy    :: !(Maybe Text)
-    , _ialProject    :: !Text
-    , _ialFilter     :: !(Maybe Text)
-    , _ialRegion     :: !Text
-    , _ialPageToken  :: !(Maybe Text)
-    , _ialMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ialOrderBy'
---
--- * 'ialProject'
---
--- * 'ialFilter'
---
--- * 'ialRegion'
---
--- * 'ialPageToken'
---
--- * 'ialMaxResults'
-interconnectAttachmentsList
-    :: Text -- ^ 'ialProject'
-    -> Text -- ^ 'ialRegion'
-    -> InterconnectAttachmentsList
-interconnectAttachmentsList pIalProject_ pIalRegion_ =
-  InterconnectAttachmentsList'
-    { _ialOrderBy = Nothing
-    , _ialProject = pIalProject_
-    , _ialFilter = Nothing
-    , _ialRegion = pIalRegion_
-    , _ialPageToken = Nothing
-    , _ialMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ialOrderBy :: Lens' InterconnectAttachmentsList (Maybe Text)
-ialOrderBy
-  = lens _ialOrderBy (\ s a -> s{_ialOrderBy = a})
-
--- | Project ID for this request.
-ialProject :: Lens' InterconnectAttachmentsList Text
-ialProject
-  = lens _ialProject (\ s a -> s{_ialProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ialFilter :: Lens' InterconnectAttachmentsList (Maybe Text)
-ialFilter
-  = lens _ialFilter (\ s a -> s{_ialFilter = a})
-
--- | Name of the region for this request.
-ialRegion :: Lens' InterconnectAttachmentsList Text
-ialRegion
-  = lens _ialRegion (\ s a -> s{_ialRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ialPageToken :: Lens' InterconnectAttachmentsList (Maybe Text)
-ialPageToken
-  = lens _ialPageToken (\ s a -> s{_ialPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ialMaxResults :: Lens' InterconnectAttachmentsList Word32
-ialMaxResults
-  = lens _ialMaxResults
-      (\ s a -> s{_ialMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InterconnectAttachmentsList
-         where
-        type Rs InterconnectAttachmentsList =
-             InterconnectAttachmentList
-        type Scopes InterconnectAttachmentsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectAttachmentsList'{..}
-          = go _ialProject _ialRegion _ialOrderBy _ialFilter
-              _ialPageToken
-              (Just _ialMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectAttachmentsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Patch.hs b/gen/Network/Google/Resource/Compute/InterconnectAttachments/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectAttachments/Patch.hs
+++ /dev/null
@@ -1,160 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectAttachments.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 interconnect attachment with the data included in
--- the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectAttachments.patch@.
-module Network.Google.Resource.Compute.InterconnectAttachments.Patch
-    (
-    -- * REST Resource
-      InterconnectAttachmentsPatchResource
-
-    -- * Creating a Request
-    , interconnectAttachmentsPatch
-    , InterconnectAttachmentsPatch
-
-    -- * Request Lenses
-    , iapRequestId
-    , iapProject
-    , iapPayload
-    , iapRegion
-    , iapInterconnectAttachment
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectAttachments.patch@ method which the
--- 'InterconnectAttachmentsPatch' request conforms to.
-type InterconnectAttachmentsPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "interconnectAttachments" :>
-                   Capture "interconnectAttachment" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] InterconnectAttachment :>
-                           Patch '[JSON] Operation
-
--- | Updates the specified interconnect attachment with the data included in
--- the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ 'interconnectAttachmentsPatch' smart constructor.
-data InterconnectAttachmentsPatch =
-  InterconnectAttachmentsPatch'
-    { _iapRequestId              :: !(Maybe Text)
-    , _iapProject                :: !Text
-    , _iapPayload                :: !InterconnectAttachment
-    , _iapRegion                 :: !Text
-    , _iapInterconnectAttachment :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectAttachmentsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iapRequestId'
---
--- * 'iapProject'
---
--- * 'iapPayload'
---
--- * 'iapRegion'
---
--- * 'iapInterconnectAttachment'
-interconnectAttachmentsPatch
-    :: Text -- ^ 'iapProject'
-    -> InterconnectAttachment -- ^ 'iapPayload'
-    -> Text -- ^ 'iapRegion'
-    -> Text -- ^ 'iapInterconnectAttachment'
-    -> InterconnectAttachmentsPatch
-interconnectAttachmentsPatch pIapProject_ pIapPayload_ pIapRegion_ pIapInterconnectAttachment_ =
-  InterconnectAttachmentsPatch'
-    { _iapRequestId = Nothing
-    , _iapProject = pIapProject_
-    , _iapPayload = pIapPayload_
-    , _iapRegion = pIapRegion_
-    , _iapInterconnectAttachment = pIapInterconnectAttachment_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-iapRequestId :: Lens' InterconnectAttachmentsPatch (Maybe Text)
-iapRequestId
-  = lens _iapRequestId (\ s a -> s{_iapRequestId = a})
-
--- | Project ID for this request.
-iapProject :: Lens' InterconnectAttachmentsPatch Text
-iapProject
-  = lens _iapProject (\ s a -> s{_iapProject = a})
-
--- | Multipart request metadata.
-iapPayload :: Lens' InterconnectAttachmentsPatch InterconnectAttachment
-iapPayload
-  = lens _iapPayload (\ s a -> s{_iapPayload = a})
-
--- | Name of the region scoping this request.
-iapRegion :: Lens' InterconnectAttachmentsPatch Text
-iapRegion
-  = lens _iapRegion (\ s a -> s{_iapRegion = a})
-
--- | Name of the interconnect attachment to patch.
-iapInterconnectAttachment :: Lens' InterconnectAttachmentsPatch Text
-iapInterconnectAttachment
-  = lens _iapInterconnectAttachment
-      (\ s a -> s{_iapInterconnectAttachment = a})
-
-instance GoogleRequest InterconnectAttachmentsPatch
-         where
-        type Rs InterconnectAttachmentsPatch = Operation
-        type Scopes InterconnectAttachmentsPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectAttachmentsPatch'{..}
-          = go _iapProject _iapRegion
-              _iapInterconnectAttachment
-              _iapRequestId
-              (Just AltJSON)
-              _iapPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectAttachmentsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectLocations/Get.hs b/gen/Network/Google/Resource/Compute/InterconnectLocations/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectLocations/Get.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectLocations.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)
---
--- Returns the details for the specified interconnect location. Gets a list
--- of available interconnect locations by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectLocations.get@.
-module Network.Google.Resource.Compute.InterconnectLocations.Get
-    (
-    -- * REST Resource
-      InterconnectLocationsGetResource
-
-    -- * Creating a Request
-    , interconnectLocationsGet
-    , InterconnectLocationsGet
-
-    -- * Request Lenses
-    , ilgProject
-    , ilgInterconnectLocation
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectLocations.get@ method which the
--- 'InterconnectLocationsGet' request conforms to.
-type InterconnectLocationsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnectLocations" :>
-                 Capture "interconnectLocation" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] InterconnectLocation
-
--- | Returns the details for the specified interconnect location. Gets a list
--- of available interconnect locations by making a list() request.
---
--- /See:/ 'interconnectLocationsGet' smart constructor.
-data InterconnectLocationsGet =
-  InterconnectLocationsGet'
-    { _ilgProject              :: !Text
-    , _ilgInterconnectLocation :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilgProject'
---
--- * 'ilgInterconnectLocation'
-interconnectLocationsGet
-    :: Text -- ^ 'ilgProject'
-    -> Text -- ^ 'ilgInterconnectLocation'
-    -> InterconnectLocationsGet
-interconnectLocationsGet pIlgProject_ pIlgInterconnectLocation_ =
-  InterconnectLocationsGet'
-    { _ilgProject = pIlgProject_
-    , _ilgInterconnectLocation = pIlgInterconnectLocation_
-    }
-
-
--- | Project ID for this request.
-ilgProject :: Lens' InterconnectLocationsGet Text
-ilgProject
-  = lens _ilgProject (\ s a -> s{_ilgProject = a})
-
--- | Name of the interconnect location to return.
-ilgInterconnectLocation :: Lens' InterconnectLocationsGet Text
-ilgInterconnectLocation
-  = lens _ilgInterconnectLocation
-      (\ s a -> s{_ilgInterconnectLocation = a})
-
-instance GoogleRequest InterconnectLocationsGet where
-        type Rs InterconnectLocationsGet =
-             InterconnectLocation
-        type Scopes InterconnectLocationsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectLocationsGet'{..}
-          = go _ilgProject _ilgInterconnectLocation
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectLocationsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/InterconnectLocations/List.hs b/gen/Network/Google/Resource/Compute/InterconnectLocations/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/InterconnectLocations/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.InterconnectLocations.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)
---
--- Retrieves the list of interconnect locations available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnectLocations.list@.
-module Network.Google.Resource.Compute.InterconnectLocations.List
-    (
-    -- * REST Resource
-      InterconnectLocationsListResource
-
-    -- * Creating a Request
-    , interconnectLocationsList
-    , InterconnectLocationsList
-
-    -- * Request Lenses
-    , illOrderBy
-    , illProject
-    , illFilter
-    , illPageToken
-    , illMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnectLocations.list@ method which the
--- 'InterconnectLocationsList' request conforms to.
-type InterconnectLocationsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnectLocations" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InterconnectLocationList
-
--- | Retrieves the list of interconnect locations available to the specified
--- project.
---
--- /See:/ 'interconnectLocationsList' smart constructor.
-data InterconnectLocationsList =
-  InterconnectLocationsList'
-    { _illOrderBy    :: !(Maybe Text)
-    , _illProject    :: !Text
-    , _illFilter     :: !(Maybe Text)
-    , _illPageToken  :: !(Maybe Text)
-    , _illMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectLocationsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'illOrderBy'
---
--- * 'illProject'
---
--- * 'illFilter'
---
--- * 'illPageToken'
---
--- * 'illMaxResults'
-interconnectLocationsList
-    :: Text -- ^ 'illProject'
-    -> InterconnectLocationsList
-interconnectLocationsList pIllProject_ =
-  InterconnectLocationsList'
-    { _illOrderBy = Nothing
-    , _illProject = pIllProject_
-    , _illFilter = Nothing
-    , _illPageToken = Nothing
-    , _illMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-illOrderBy :: Lens' InterconnectLocationsList (Maybe Text)
-illOrderBy
-  = lens _illOrderBy (\ s a -> s{_illOrderBy = a})
-
--- | Project ID for this request.
-illProject :: Lens' InterconnectLocationsList Text
-illProject
-  = lens _illProject (\ s a -> s{_illProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-illFilter :: Lens' InterconnectLocationsList (Maybe Text)
-illFilter
-  = lens _illFilter (\ s a -> s{_illFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-illPageToken :: Lens' InterconnectLocationsList (Maybe Text)
-illPageToken
-  = lens _illPageToken (\ s a -> s{_illPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-illMaxResults :: Lens' InterconnectLocationsList Word32
-illMaxResults
-  = lens _illMaxResults
-      (\ s a -> s{_illMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InterconnectLocationsList
-         where
-        type Rs InterconnectLocationsList =
-             InterconnectLocationList
-        type Scopes InterconnectLocationsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectLocationsList'{..}
-          = go _illProject _illOrderBy _illFilter _illPageToken
-              (Just _illMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectLocationsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/Delete.hs b/gen/Network/Google/Resource/Compute/Interconnects/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/Delete.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.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 interconnect.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.delete@.
-module Network.Google.Resource.Compute.Interconnects.Delete
-    (
-    -- * REST Resource
-      InterconnectsDeleteResource
-
-    -- * Creating a Request
-    , interconnectsDelete
-    , InterconnectsDelete
-
-    -- * Request Lenses
-    , intRequestId
-    , intProject
-    , intInterconnect
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.delete@ method which the
--- 'InterconnectsDelete' request conforms to.
-type InterconnectsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 Capture "interconnect" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified interconnect.
---
--- /See:/ 'interconnectsDelete' smart constructor.
-data InterconnectsDelete =
-  InterconnectsDelete'
-    { _intRequestId    :: !(Maybe Text)
-    , _intProject      :: !Text
-    , _intInterconnect :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'intRequestId'
---
--- * 'intProject'
---
--- * 'intInterconnect'
-interconnectsDelete
-    :: Text -- ^ 'intProject'
-    -> Text -- ^ 'intInterconnect'
-    -> InterconnectsDelete
-interconnectsDelete pIntProject_ pIntInterconnect_ =
-  InterconnectsDelete'
-    { _intRequestId = Nothing
-    , _intProject = pIntProject_
-    , _intInterconnect = pIntInterconnect_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-intRequestId :: Lens' InterconnectsDelete (Maybe Text)
-intRequestId
-  = lens _intRequestId (\ s a -> s{_intRequestId = a})
-
--- | Project ID for this request.
-intProject :: Lens' InterconnectsDelete Text
-intProject
-  = lens _intProject (\ s a -> s{_intProject = a})
-
--- | Name of the interconnect to delete.
-intInterconnect :: Lens' InterconnectsDelete Text
-intInterconnect
-  = lens _intInterconnect
-      (\ s a -> s{_intInterconnect = a})
-
-instance GoogleRequest InterconnectsDelete where
-        type Rs InterconnectsDelete = Operation
-        type Scopes InterconnectsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectsDelete'{..}
-          = go _intProject _intInterconnect _intRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/Get.hs b/gen/Network/Google/Resource/Compute/Interconnects/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/Get.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.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)
---
--- Returns the specified interconnect. Get a list of available
--- interconnects by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.get@.
-module Network.Google.Resource.Compute.Interconnects.Get
-    (
-    -- * REST Resource
-      InterconnectsGetResource
-
-    -- * Creating a Request
-    , interconnectsGet
-    , InterconnectsGet
-
-    -- * Request Lenses
-    , iProject
-    , iInterconnect
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.get@ method which the
--- 'InterconnectsGet' request conforms to.
-type InterconnectsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 Capture "interconnect" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Interconnect
-
--- | Returns the specified interconnect. Get a list of available
--- interconnects by making a list() request.
---
--- /See:/ 'interconnectsGet' smart constructor.
-data InterconnectsGet =
-  InterconnectsGet'
-    { _iProject      :: !Text
-    , _iInterconnect :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'iProject'
---
--- * 'iInterconnect'
-interconnectsGet
-    :: Text -- ^ 'iProject'
-    -> Text -- ^ 'iInterconnect'
-    -> InterconnectsGet
-interconnectsGet pIProject_ pIInterconnect_ =
-  InterconnectsGet' {_iProject = pIProject_, _iInterconnect = pIInterconnect_}
-
-
--- | Project ID for this request.
-iProject :: Lens' InterconnectsGet Text
-iProject = lens _iProject (\ s a -> s{_iProject = a})
-
--- | Name of the interconnect to return.
-iInterconnect :: Lens' InterconnectsGet Text
-iInterconnect
-  = lens _iInterconnect
-      (\ s a -> s{_iInterconnect = a})
-
-instance GoogleRequest InterconnectsGet where
-        type Rs InterconnectsGet = Interconnect
-        type Scopes InterconnectsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectsGet'{..}
-          = go _iProject _iInterconnect (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/GetDiagnostics.hs b/gen/Network/Google/Resource/Compute/Interconnects/GetDiagnostics.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/GetDiagnostics.hs
+++ /dev/null
@@ -1,109 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.GetDiagnostics
--- 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)
---
--- Returns the interconnectDiagnostics for the specified interconnect.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.getDiagnostics@.
-module Network.Google.Resource.Compute.Interconnects.GetDiagnostics
-    (
-    -- * REST Resource
-      InterconnectsGetDiagnosticsResource
-
-    -- * Creating a Request
-    , interconnectsGetDiagnostics
-    , InterconnectsGetDiagnostics
-
-    -- * Request Lenses
-    , igdsProject
-    , igdsInterconnect
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.getDiagnostics@ method which the
--- 'InterconnectsGetDiagnostics' request conforms to.
-type InterconnectsGetDiagnosticsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 Capture "interconnect" Text :>
-                   "getDiagnostics" :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] InterconnectsGetDiagnosticsResponse
-
--- | Returns the interconnectDiagnostics for the specified interconnect.
---
--- /See:/ 'interconnectsGetDiagnostics' smart constructor.
-data InterconnectsGetDiagnostics =
-  InterconnectsGetDiagnostics'
-    { _igdsProject      :: !Text
-    , _igdsInterconnect :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsGetDiagnostics' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'igdsProject'
---
--- * 'igdsInterconnect'
-interconnectsGetDiagnostics
-    :: Text -- ^ 'igdsProject'
-    -> Text -- ^ 'igdsInterconnect'
-    -> InterconnectsGetDiagnostics
-interconnectsGetDiagnostics pIgdsProject_ pIgdsInterconnect_ =
-  InterconnectsGetDiagnostics'
-    {_igdsProject = pIgdsProject_, _igdsInterconnect = pIgdsInterconnect_}
-
-
--- | Project ID for this request.
-igdsProject :: Lens' InterconnectsGetDiagnostics Text
-igdsProject
-  = lens _igdsProject (\ s a -> s{_igdsProject = a})
-
--- | Name of the interconnect resource to query.
-igdsInterconnect :: Lens' InterconnectsGetDiagnostics Text
-igdsInterconnect
-  = lens _igdsInterconnect
-      (\ s a -> s{_igdsInterconnect = a})
-
-instance GoogleRequest InterconnectsGetDiagnostics
-         where
-        type Rs InterconnectsGetDiagnostics =
-             InterconnectsGetDiagnosticsResponse
-        type Scopes InterconnectsGetDiagnostics =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectsGetDiagnostics'{..}
-          = go _igdsProject _igdsInterconnect (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsGetDiagnosticsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/Insert.hs b/gen/Network/Google/Resource/Compute/Interconnects/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/Insert.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.Insert
--- 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 Interconnect in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.insert@.
-module Network.Google.Resource.Compute.Interconnects.Insert
-    (
-    -- * REST Resource
-      InterconnectsInsertResource
-
-    -- * Creating a Request
-    , interconnectsInsert
-    , InterconnectsInsert
-
-    -- * Request Lenses
-    , intnRequestId
-    , intnProject
-    , intnPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.insert@ method which the
--- 'InterconnectsInsert' request conforms to.
-type InterconnectsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Interconnect :>
-                       Post '[JSON] Operation
-
--- | Creates a Interconnect in the specified project using the data included
--- in the request.
---
--- /See:/ 'interconnectsInsert' smart constructor.
-data InterconnectsInsert =
-  InterconnectsInsert'
-    { _intnRequestId :: !(Maybe Text)
-    , _intnProject   :: !Text
-    , _intnPayload   :: !Interconnect
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'intnRequestId'
---
--- * 'intnProject'
---
--- * 'intnPayload'
-interconnectsInsert
-    :: Text -- ^ 'intnProject'
-    -> Interconnect -- ^ 'intnPayload'
-    -> InterconnectsInsert
-interconnectsInsert pIntnProject_ pIntnPayload_ =
-  InterconnectsInsert'
-    { _intnRequestId = Nothing
-    , _intnProject = pIntnProject_
-    , _intnPayload = pIntnPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-intnRequestId :: Lens' InterconnectsInsert (Maybe Text)
-intnRequestId
-  = lens _intnRequestId
-      (\ s a -> s{_intnRequestId = a})
-
--- | Project ID for this request.
-intnProject :: Lens' InterconnectsInsert Text
-intnProject
-  = lens _intnProject (\ s a -> s{_intnProject = a})
-
--- | Multipart request metadata.
-intnPayload :: Lens' InterconnectsInsert Interconnect
-intnPayload
-  = lens _intnPayload (\ s a -> s{_intnPayload = a})
-
-instance GoogleRequest InterconnectsInsert where
-        type Rs InterconnectsInsert = Operation
-        type Scopes InterconnectsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectsInsert'{..}
-          = go _intnProject _intnRequestId (Just AltJSON)
-              _intnPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/List.hs b/gen/Network/Google/Resource/Compute/Interconnects/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/List.hs
+++ /dev/null
@@ -1,168 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.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)
---
--- Retrieves the list of interconnect available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.list@.
-module Network.Google.Resource.Compute.Interconnects.List
-    (
-    -- * REST Resource
-      InterconnectsListResource
-
-    -- * Creating a Request
-    , interconnectsList
-    , InterconnectsList
-
-    -- * Request Lenses
-    , ilOrderBy
-    , ilProject
-    , ilFilter
-    , ilPageToken
-    , ilMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.list@ method which the
--- 'InterconnectsList' request conforms to.
-type InterconnectsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] InterconnectList
-
--- | Retrieves the list of interconnect available to the specified project.
---
--- /See:/ 'interconnectsList' smart constructor.
-data InterconnectsList =
-  InterconnectsList'
-    { _ilOrderBy    :: !(Maybe Text)
-    , _ilProject    :: !Text
-    , _ilFilter     :: !(Maybe Text)
-    , _ilPageToken  :: !(Maybe Text)
-    , _ilMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ilOrderBy'
---
--- * 'ilProject'
---
--- * 'ilFilter'
---
--- * 'ilPageToken'
---
--- * 'ilMaxResults'
-interconnectsList
-    :: Text -- ^ 'ilProject'
-    -> InterconnectsList
-interconnectsList pIlProject_ =
-  InterconnectsList'
-    { _ilOrderBy = Nothing
-    , _ilProject = pIlProject_
-    , _ilFilter = Nothing
-    , _ilPageToken = Nothing
-    , _ilMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ilOrderBy :: Lens' InterconnectsList (Maybe Text)
-ilOrderBy
-  = lens _ilOrderBy (\ s a -> s{_ilOrderBy = a})
-
--- | Project ID for this request.
-ilProject :: Lens' InterconnectsList Text
-ilProject
-  = lens _ilProject (\ s a -> s{_ilProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ilFilter :: Lens' InterconnectsList (Maybe Text)
-ilFilter = lens _ilFilter (\ s a -> s{_ilFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ilPageToken :: Lens' InterconnectsList (Maybe Text)
-ilPageToken
-  = lens _ilPageToken (\ s a -> s{_ilPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ilMaxResults :: Lens' InterconnectsList Word32
-ilMaxResults
-  = lens _ilMaxResults (\ s a -> s{_ilMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest InterconnectsList where
-        type Rs InterconnectsList = InterconnectList
-        type Scopes InterconnectsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient InterconnectsList'{..}
-          = go _ilProject _ilOrderBy _ilFilter _ilPageToken
-              (Just _ilMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Interconnects/Patch.hs b/gen/Network/Google/Resource/Compute/Interconnects/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Interconnects/Patch.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Interconnects.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 interconnect with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.interconnects.patch@.
-module Network.Google.Resource.Compute.Interconnects.Patch
-    (
-    -- * REST Resource
-      InterconnectsPatchResource
-
-    -- * Creating a Request
-    , interconnectsPatch
-    , InterconnectsPatch
-
-    -- * Request Lenses
-    , ipRequestId
-    , ipProject
-    , ipPayload
-    , ipInterconnect
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.interconnects.patch@ method which the
--- 'InterconnectsPatch' request conforms to.
-type InterconnectsPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "interconnects" :>
-                 Capture "interconnect" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Interconnect :>
-                         Patch '[JSON] Operation
-
--- | Updates the specified interconnect with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ 'interconnectsPatch' smart constructor.
-data InterconnectsPatch =
-  InterconnectsPatch'
-    { _ipRequestId    :: !(Maybe Text)
-    , _ipProject      :: !Text
-    , _ipPayload      :: !Interconnect
-    , _ipInterconnect :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'InterconnectsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ipRequestId'
---
--- * 'ipProject'
---
--- * 'ipPayload'
---
--- * 'ipInterconnect'
-interconnectsPatch
-    :: Text -- ^ 'ipProject'
-    -> Interconnect -- ^ 'ipPayload'
-    -> Text -- ^ 'ipInterconnect'
-    -> InterconnectsPatch
-interconnectsPatch pIpProject_ pIpPayload_ pIpInterconnect_ =
-  InterconnectsPatch'
-    { _ipRequestId = Nothing
-    , _ipProject = pIpProject_
-    , _ipPayload = pIpPayload_
-    , _ipInterconnect = pIpInterconnect_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ipRequestId :: Lens' InterconnectsPatch (Maybe Text)
-ipRequestId
-  = lens _ipRequestId (\ s a -> s{_ipRequestId = a})
-
--- | Project ID for this request.
-ipProject :: Lens' InterconnectsPatch Text
-ipProject
-  = lens _ipProject (\ s a -> s{_ipProject = a})
-
--- | Multipart request metadata.
-ipPayload :: Lens' InterconnectsPatch Interconnect
-ipPayload
-  = lens _ipPayload (\ s a -> s{_ipPayload = a})
-
--- | Name of the interconnect to update.
-ipInterconnect :: Lens' InterconnectsPatch Text
-ipInterconnect
-  = lens _ipInterconnect
-      (\ s a -> s{_ipInterconnect = a})
-
-instance GoogleRequest InterconnectsPatch where
-        type Rs InterconnectsPatch = Operation
-        type Scopes InterconnectsPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient InterconnectsPatch'{..}
-          = go _ipProject _ipInterconnect _ipRequestId
-              (Just AltJSON)
-              _ipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy InterconnectsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/LicenseCodes/Get.hs b/gen/Network/Google/Resource/Compute/LicenseCodes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/LicenseCodes/Get.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.LicenseCodes.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)
---
--- Return a specified license code. License codes are mirrored across all
--- projects that have permissions to read the License Code.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenseCodes.get@.
-module Network.Google.Resource.Compute.LicenseCodes.Get
-    (
-    -- * REST Resource
-      LicenseCodesGetResource
-
-    -- * Creating a Request
-    , licenseCodesGet
-    , LicenseCodesGet
-
-    -- * Request Lenses
-    , lcgProject
-    , lcgLicenseCode
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenseCodes.get@ method which the
--- 'LicenseCodesGet' request conforms to.
-type LicenseCodesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenseCodes" :>
-                 Capture "licenseCode" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] LicenseCode
-
--- | Return a specified license code. License codes are mirrored across all
--- projects that have permissions to read the License Code.
---
--- /See:/ 'licenseCodesGet' smart constructor.
-data LicenseCodesGet =
-  LicenseCodesGet'
-    { _lcgProject     :: !Text
-    , _lcgLicenseCode :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicenseCodesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcgProject'
---
--- * 'lcgLicenseCode'
-licenseCodesGet
-    :: Text -- ^ 'lcgProject'
-    -> Text -- ^ 'lcgLicenseCode'
-    -> LicenseCodesGet
-licenseCodesGet pLcgProject_ pLcgLicenseCode_ =
-  LicenseCodesGet'
-    {_lcgProject = pLcgProject_, _lcgLicenseCode = pLcgLicenseCode_}
-
-
--- | Project ID for this request.
-lcgProject :: Lens' LicenseCodesGet Text
-lcgProject
-  = lens _lcgProject (\ s a -> s{_lcgProject = a})
-
--- | Number corresponding to the License code resource to return.
-lcgLicenseCode :: Lens' LicenseCodesGet Text
-lcgLicenseCode
-  = lens _lcgLicenseCode
-      (\ s a -> s{_lcgLicenseCode = a})
-
-instance GoogleRequest LicenseCodesGet where
-        type Rs LicenseCodesGet = LicenseCode
-        type Scopes LicenseCodesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicenseCodesGet'{..}
-          = go _lcgProject _lcgLicenseCode (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy LicenseCodesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/LicenseCodes/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/LicenseCodes/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/LicenseCodes/TestIAMPermissions.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.LicenseCodes.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenseCodes.testIamPermissions@.
-module Network.Google.Resource.Compute.LicenseCodes.TestIAMPermissions
-    (
-    -- * REST Resource
-      LicenseCodesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , licenseCodesTestIAMPermissions
-    , LicenseCodesTestIAMPermissions
-
-    -- * Request Lenses
-    , lctipProject
-    , lctipPayload
-    , lctipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenseCodes.testIamPermissions@ method which the
--- 'LicenseCodesTestIAMPermissions' request conforms to.
-type LicenseCodesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenseCodes" :>
-                 Capture "resource" Text :>
-                   "testIamPermissions" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TestPermissionsRequest :>
-                         Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'licenseCodesTestIAMPermissions' smart constructor.
-data LicenseCodesTestIAMPermissions =
-  LicenseCodesTestIAMPermissions'
-    { _lctipProject  :: !Text
-    , _lctipPayload  :: !TestPermissionsRequest
-    , _lctipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicenseCodesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lctipProject'
---
--- * 'lctipPayload'
---
--- * 'lctipResource'
-licenseCodesTestIAMPermissions
-    :: Text -- ^ 'lctipProject'
-    -> TestPermissionsRequest -- ^ 'lctipPayload'
-    -> Text -- ^ 'lctipResource'
-    -> LicenseCodesTestIAMPermissions
-licenseCodesTestIAMPermissions pLctipProject_ pLctipPayload_ pLctipResource_ =
-  LicenseCodesTestIAMPermissions'
-    { _lctipProject = pLctipProject_
-    , _lctipPayload = pLctipPayload_
-    , _lctipResource = pLctipResource_
-    }
-
-
--- | Project ID for this request.
-lctipProject :: Lens' LicenseCodesTestIAMPermissions Text
-lctipProject
-  = lens _lctipProject (\ s a -> s{_lctipProject = a})
-
--- | Multipart request metadata.
-lctipPayload :: Lens' LicenseCodesTestIAMPermissions TestPermissionsRequest
-lctipPayload
-  = lens _lctipPayload (\ s a -> s{_lctipPayload = a})
-
--- | Name or id of the resource for this request.
-lctipResource :: Lens' LicenseCodesTestIAMPermissions Text
-lctipResource
-  = lens _lctipResource
-      (\ s a -> s{_lctipResource = a})
-
-instance GoogleRequest LicenseCodesTestIAMPermissions
-         where
-        type Rs LicenseCodesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes LicenseCodesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicenseCodesTestIAMPermissions'{..}
-          = go _lctipProject _lctipResource (Just AltJSON)
-              _lctipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy LicenseCodesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/Delete.hs b/gen/Network/Google/Resource/Compute/Licenses/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/Delete.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.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 license.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.delete@.
-module Network.Google.Resource.Compute.Licenses.Delete
-    (
-    -- * REST Resource
-      LicensesDeleteResource
-
-    -- * Creating a Request
-    , licensesDelete
-    , LicensesDelete
-
-    -- * Request Lenses
-    , ldRequestId
-    , ldProject
-    , ldLicense
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.delete@ method which the
--- 'LicensesDelete' request conforms to.
-type LicensesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 Capture "license" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified license.
---
--- /See:/ 'licensesDelete' smart constructor.
-data LicensesDelete =
-  LicensesDelete'
-    { _ldRequestId :: !(Maybe Text)
-    , _ldProject   :: !Text
-    , _ldLicense   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ldRequestId'
---
--- * 'ldProject'
---
--- * 'ldLicense'
-licensesDelete
-    :: Text -- ^ 'ldProject'
-    -> Text -- ^ 'ldLicense'
-    -> LicensesDelete
-licensesDelete pLdProject_ pLdLicense_ =
-  LicensesDelete'
-    {_ldRequestId = Nothing, _ldProject = pLdProject_, _ldLicense = pLdLicense_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ldRequestId :: Lens' LicensesDelete (Maybe Text)
-ldRequestId
-  = lens _ldRequestId (\ s a -> s{_ldRequestId = a})
-
--- | Project ID for this request.
-ldProject :: Lens' LicensesDelete Text
-ldProject
-  = lens _ldProject (\ s a -> s{_ldProject = a})
-
--- | Name of the license resource to delete.
-ldLicense :: Lens' LicensesDelete Text
-ldLicense
-  = lens _ldLicense (\ s a -> s{_ldLicense = a})
-
-instance GoogleRequest LicensesDelete where
-        type Rs LicensesDelete = Operation
-        type Scopes LicensesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient LicensesDelete'{..}
-          = go _ldProject _ldLicense _ldRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy LicensesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/Get.hs b/gen/Network/Google/Resource/Compute/Licenses/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/Get.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.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)
---
--- Returns the specified License resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.get@.
-module Network.Google.Resource.Compute.Licenses.Get
-    (
-    -- * REST Resource
-      LicensesGetResource
-
-    -- * Creating a Request
-    , licensesGet
-    , LicensesGet
-
-    -- * Request Lenses
-    , lgProject
-    , lgLicense
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.get@ method which the
--- 'LicensesGet' request conforms to.
-type LicensesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 Capture "license" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] License
-
--- | Returns the specified License resource.
---
--- /See:/ 'licensesGet' smart constructor.
-data LicensesGet =
-  LicensesGet'
-    { _lgProject :: !Text
-    , _lgLicense :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lgProject'
---
--- * 'lgLicense'
-licensesGet
-    :: Text -- ^ 'lgProject'
-    -> Text -- ^ 'lgLicense'
-    -> LicensesGet
-licensesGet pLgProject_ pLgLicense_ =
-  LicensesGet' {_lgProject = pLgProject_, _lgLicense = pLgLicense_}
-
-
--- | Project ID for this request.
-lgProject :: Lens' LicensesGet Text
-lgProject
-  = lens _lgProject (\ s a -> s{_lgProject = a})
-
--- | Name of the License resource to return.
-lgLicense :: Lens' LicensesGet Text
-lgLicense
-  = lens _lgLicense (\ s a -> s{_lgLicense = a})
-
-instance GoogleRequest LicensesGet where
-        type Rs LicensesGet = License
-        type Scopes LicensesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicensesGet'{..}
-          = go _lgProject _lgLicense (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy LicensesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Licenses/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/GetIAMPolicy.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.getIamPolicy@.
-module Network.Google.Resource.Compute.Licenses.GetIAMPolicy
-    (
-    -- * REST Resource
-      LicensesGetIAMPolicyResource
-
-    -- * Creating a Request
-    , licensesGetIAMPolicy
-    , LicensesGetIAMPolicy
-
-    -- * Request Lenses
-    , lgipProject
-    , lgipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.getIamPolicy@ method which the
--- 'LicensesGetIAMPolicy' request conforms to.
-type LicensesGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 Capture "resource" Text :>
-                   "getIamPolicy" :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'licensesGetIAMPolicy' smart constructor.
-data LicensesGetIAMPolicy =
-  LicensesGetIAMPolicy'
-    { _lgipProject  :: !Text
-    , _lgipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lgipProject'
---
--- * 'lgipResource'
-licensesGetIAMPolicy
-    :: Text -- ^ 'lgipProject'
-    -> Text -- ^ 'lgipResource'
-    -> LicensesGetIAMPolicy
-licensesGetIAMPolicy pLgipProject_ pLgipResource_ =
-  LicensesGetIAMPolicy'
-    {_lgipProject = pLgipProject_, _lgipResource = pLgipResource_}
-
-
--- | Project ID for this request.
-lgipProject :: Lens' LicensesGetIAMPolicy Text
-lgipProject
-  = lens _lgipProject (\ s a -> s{_lgipProject = a})
-
--- | Name or id of the resource for this request.
-lgipResource :: Lens' LicensesGetIAMPolicy Text
-lgipResource
-  = lens _lgipResource (\ s a -> s{_lgipResource = a})
-
-instance GoogleRequest LicensesGetIAMPolicy where
-        type Rs LicensesGetIAMPolicy = Policy
-        type Scopes LicensesGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicensesGetIAMPolicy'{..}
-          = go _lgipProject _lgipResource (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy LicensesGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/Insert.hs b/gen/Network/Google/Resource/Compute/Licenses/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/Insert.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.Insert
--- 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)
---
--- Create a License resource in the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.insert@.
-module Network.Google.Resource.Compute.Licenses.Insert
-    (
-    -- * REST Resource
-      LicensesInsertResource
-
-    -- * Creating a Request
-    , licensesInsert
-    , LicensesInsert
-
-    -- * Request Lenses
-    , liRequestId
-    , liProject
-    , liPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.insert@ method which the
--- 'LicensesInsert' request conforms to.
-type LicensesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] License :> Post '[JSON] Operation
-
--- | Create a License resource in the specified project.
---
--- /See:/ 'licensesInsert' smart constructor.
-data LicensesInsert =
-  LicensesInsert'
-    { _liRequestId :: !(Maybe Text)
-    , _liProject   :: !Text
-    , _liPayload   :: !License
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'liRequestId'
---
--- * 'liProject'
---
--- * 'liPayload'
-licensesInsert
-    :: Text -- ^ 'liProject'
-    -> License -- ^ 'liPayload'
-    -> LicensesInsert
-licensesInsert pLiProject_ pLiPayload_ =
-  LicensesInsert'
-    {_liRequestId = Nothing, _liProject = pLiProject_, _liPayload = pLiPayload_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-liRequestId :: Lens' LicensesInsert (Maybe Text)
-liRequestId
-  = lens _liRequestId (\ s a -> s{_liRequestId = a})
-
--- | Project ID for this request.
-liProject :: Lens' LicensesInsert Text
-liProject
-  = lens _liProject (\ s a -> s{_liProject = a})
-
--- | Multipart request metadata.
-liPayload :: Lens' LicensesInsert License
-liPayload
-  = lens _liPayload (\ s a -> s{_liPayload = a})
-
-instance GoogleRequest LicensesInsert where
-        type Rs LicensesInsert = Operation
-        type Scopes LicensesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/devstorage.full_control",
-               "https://www.googleapis.com/auth/devstorage.read_only",
-               "https://www.googleapis.com/auth/devstorage.read_write"]
-        requestClient LicensesInsert'{..}
-          = go _liProject _liRequestId (Just AltJSON)
-              _liPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy LicensesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/List.hs b/gen/Network/Google/Resource/Compute/Licenses/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/List.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.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)
---
--- Retrieves the list of licenses available in the specified project. This
--- method does not get any licenses that belong to other projects,
--- including licenses attached to publicly-available images, like Debian 9.
--- If you want to get a list of publicly-available licenses, use this
--- method to make a request to the respective image project, such as
--- debian-cloud or windows-cloud.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.list@.
-module Network.Google.Resource.Compute.Licenses.List
-    (
-    -- * REST Resource
-      LicensesListResource
-
-    -- * Creating a Request
-    , licensesList
-    , LicensesList
-
-    -- * Request Lenses
-    , llOrderBy
-    , llProject
-    , llFilter
-    , llPageToken
-    , llMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.list@ method which the
--- 'LicensesList' request conforms to.
-type LicensesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] LicensesListResponse
-
--- | Retrieves the list of licenses available in the specified project. This
--- method does not get any licenses that belong to other projects,
--- including licenses attached to publicly-available images, like Debian 9.
--- If you want to get a list of publicly-available licenses, use this
--- method to make a request to the respective image project, such as
--- debian-cloud or windows-cloud.
---
--- /See:/ 'licensesList' smart constructor.
-data LicensesList =
-  LicensesList'
-    { _llOrderBy    :: !(Maybe Text)
-    , _llProject    :: !Text
-    , _llFilter     :: !(Maybe Text)
-    , _llPageToken  :: !(Maybe Text)
-    , _llMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'llOrderBy'
---
--- * 'llProject'
---
--- * 'llFilter'
---
--- * 'llPageToken'
---
--- * 'llMaxResults'
-licensesList
-    :: Text -- ^ 'llProject'
-    -> LicensesList
-licensesList pLlProject_ =
-  LicensesList'
-    { _llOrderBy = Nothing
-    , _llProject = pLlProject_
-    , _llFilter = Nothing
-    , _llPageToken = Nothing
-    , _llMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-llOrderBy :: Lens' LicensesList (Maybe Text)
-llOrderBy
-  = lens _llOrderBy (\ s a -> s{_llOrderBy = a})
-
--- | Project ID for this request.
-llProject :: Lens' LicensesList Text
-llProject
-  = lens _llProject (\ s a -> s{_llProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-llFilter :: Lens' LicensesList (Maybe Text)
-llFilter = lens _llFilter (\ s a -> s{_llFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-llPageToken :: Lens' LicensesList (Maybe Text)
-llPageToken
-  = lens _llPageToken (\ s a -> s{_llPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-llMaxResults :: Lens' LicensesList Word32
-llMaxResults
-  = lens _llMaxResults (\ s a -> s{_llMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest LicensesList where
-        type Rs LicensesList = LicensesListResponse
-        type Scopes LicensesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicensesList'{..}
-          = go _llProject _llOrderBy _llFilter _llPageToken
-              (Just _llMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy LicensesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Licenses/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/SetIAMPolicy.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.setIamPolicy@.
-module Network.Google.Resource.Compute.Licenses.SetIAMPolicy
-    (
-    -- * REST Resource
-      LicensesSetIAMPolicyResource
-
-    -- * Creating a Request
-    , licensesSetIAMPolicy
-    , LicensesSetIAMPolicy
-
-    -- * Request Lenses
-    , lsipProject
-    , lsipPayload
-    , lsipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.setIamPolicy@ method which the
--- 'LicensesSetIAMPolicy' request conforms to.
-type LicensesSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 Capture "resource" Text :>
-                   "setIamPolicy" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetPolicyRequest :>
-                         Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'licensesSetIAMPolicy' smart constructor.
-data LicensesSetIAMPolicy =
-  LicensesSetIAMPolicy'
-    { _lsipProject  :: !Text
-    , _lsipPayload  :: !GlobalSetPolicyRequest
-    , _lsipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lsipProject'
---
--- * 'lsipPayload'
---
--- * 'lsipResource'
-licensesSetIAMPolicy
-    :: Text -- ^ 'lsipProject'
-    -> GlobalSetPolicyRequest -- ^ 'lsipPayload'
-    -> Text -- ^ 'lsipResource'
-    -> LicensesSetIAMPolicy
-licensesSetIAMPolicy pLsipProject_ pLsipPayload_ pLsipResource_ =
-  LicensesSetIAMPolicy'
-    { _lsipProject = pLsipProject_
-    , _lsipPayload = pLsipPayload_
-    , _lsipResource = pLsipResource_
-    }
-
-
--- | Project ID for this request.
-lsipProject :: Lens' LicensesSetIAMPolicy Text
-lsipProject
-  = lens _lsipProject (\ s a -> s{_lsipProject = a})
-
--- | Multipart request metadata.
-lsipPayload :: Lens' LicensesSetIAMPolicy GlobalSetPolicyRequest
-lsipPayload
-  = lens _lsipPayload (\ s a -> s{_lsipPayload = a})
-
--- | Name or id of the resource for this request.
-lsipResource :: Lens' LicensesSetIAMPolicy Text
-lsipResource
-  = lens _lsipResource (\ s a -> s{_lsipResource = a})
-
-instance GoogleRequest LicensesSetIAMPolicy where
-        type Rs LicensesSetIAMPolicy = Policy
-        type Scopes LicensesSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient LicensesSetIAMPolicy'{..}
-          = go _lsipProject _lsipResource (Just AltJSON)
-              _lsipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy LicensesSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Licenses/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Licenses/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Licenses/TestIAMPermissions.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Licenses.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.licenses.testIamPermissions@.
-module Network.Google.Resource.Compute.Licenses.TestIAMPermissions
-    (
-    -- * REST Resource
-      LicensesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , licensesTestIAMPermissions
-    , LicensesTestIAMPermissions
-
-    -- * Request Lenses
-    , ltipProject
-    , ltipPayload
-    , ltipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.licenses.testIamPermissions@ method which the
--- 'LicensesTestIAMPermissions' request conforms to.
-type LicensesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "licenses" :>
-                 Capture "resource" Text :>
-                   "testIamPermissions" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TestPermissionsRequest :>
-                         Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'licensesTestIAMPermissions' smart constructor.
-data LicensesTestIAMPermissions =
-  LicensesTestIAMPermissions'
-    { _ltipProject  :: !Text
-    , _ltipPayload  :: !TestPermissionsRequest
-    , _ltipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'LicensesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ltipProject'
---
--- * 'ltipPayload'
---
--- * 'ltipResource'
-licensesTestIAMPermissions
-    :: Text -- ^ 'ltipProject'
-    -> TestPermissionsRequest -- ^ 'ltipPayload'
-    -> Text -- ^ 'ltipResource'
-    -> LicensesTestIAMPermissions
-licensesTestIAMPermissions pLtipProject_ pLtipPayload_ pLtipResource_ =
-  LicensesTestIAMPermissions'
-    { _ltipProject = pLtipProject_
-    , _ltipPayload = pLtipPayload_
-    , _ltipResource = pLtipResource_
-    }
-
-
--- | Project ID for this request.
-ltipProject :: Lens' LicensesTestIAMPermissions Text
-ltipProject
-  = lens _ltipProject (\ s a -> s{_ltipProject = a})
-
--- | Multipart request metadata.
-ltipPayload :: Lens' LicensesTestIAMPermissions TestPermissionsRequest
-ltipPayload
-  = lens _ltipPayload (\ s a -> s{_ltipPayload = a})
-
--- | Name or id of the resource for this request.
-ltipResource :: Lens' LicensesTestIAMPermissions Text
-ltipResource
-  = lens _ltipResource (\ s a -> s{_ltipResource = a})
-
-instance GoogleRequest LicensesTestIAMPermissions
-         where
-        type Rs LicensesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes LicensesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient LicensesTestIAMPermissions'{..}
-          = go _ltipProject _ltipResource (Just AltJSON)
-              _ltipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy LicensesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/MachineTypes/AggregatedList.hs b/gen/Network/Google/Resource/Compute/MachineTypes/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/MachineTypes/AggregatedList.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.MachineTypes.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of machine types.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.aggregatedList@.
-module Network.Google.Resource.Compute.MachineTypes.AggregatedList
-    (
-    -- * REST Resource
-      MachineTypesAggregatedListResource
-
-    -- * Creating a Request
-    , machineTypesAggregatedList
-    , MachineTypesAggregatedList
-
-    -- * Request Lenses
-    , mtalOrderBy
-    , mtalProject
-    , mtalFilter
-    , mtalPageToken
-    , mtalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.machineTypes.aggregatedList@ method which the
--- 'MachineTypesAggregatedList' request conforms to.
-type MachineTypesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "machineTypes" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] MachineTypeAggregatedList
-
--- | Retrieves an aggregated list of machine types.
---
--- /See:/ 'machineTypesAggregatedList' smart constructor.
-data MachineTypesAggregatedList =
-  MachineTypesAggregatedList'
-    { _mtalOrderBy    :: !(Maybe Text)
-    , _mtalProject    :: !Text
-    , _mtalFilter     :: !(Maybe Text)
-    , _mtalPageToken  :: !(Maybe Text)
-    , _mtalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtalOrderBy'
---
--- * 'mtalProject'
---
--- * 'mtalFilter'
---
--- * 'mtalPageToken'
---
--- * 'mtalMaxResults'
-machineTypesAggregatedList
-    :: Text -- ^ 'mtalProject'
-    -> MachineTypesAggregatedList
-machineTypesAggregatedList pMtalProject_ =
-  MachineTypesAggregatedList'
-    { _mtalOrderBy = Nothing
-    , _mtalProject = pMtalProject_
-    , _mtalFilter = Nothing
-    , _mtalPageToken = Nothing
-    , _mtalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-mtalOrderBy :: Lens' MachineTypesAggregatedList (Maybe Text)
-mtalOrderBy
-  = lens _mtalOrderBy (\ s a -> s{_mtalOrderBy = a})
-
--- | Project ID for this request.
-mtalProject :: Lens' MachineTypesAggregatedList Text
-mtalProject
-  = lens _mtalProject (\ s a -> s{_mtalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-mtalFilter :: Lens' MachineTypesAggregatedList (Maybe Text)
-mtalFilter
-  = lens _mtalFilter (\ s a -> s{_mtalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-mtalPageToken :: Lens' MachineTypesAggregatedList (Maybe Text)
-mtalPageToken
-  = lens _mtalPageToken
-      (\ s a -> s{_mtalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-mtalMaxResults :: Lens' MachineTypesAggregatedList Word32
-mtalMaxResults
-  = lens _mtalMaxResults
-      (\ s a -> s{_mtalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest MachineTypesAggregatedList
-         where
-        type Rs MachineTypesAggregatedList =
-             MachineTypeAggregatedList
-        type Scopes MachineTypesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient MachineTypesAggregatedList'{..}
-          = go _mtalProject _mtalOrderBy _mtalFilter
-              _mtalPageToken
-              (Just _mtalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy MachineTypesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/MachineTypes/Get.hs b/gen/Network/Google/Resource/Compute/MachineTypes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/MachineTypes/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.MachineTypes.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)
---
--- Returns the specified machine type. Gets a list of available machine
--- types by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.get@.
-module Network.Google.Resource.Compute.MachineTypes.Get
-    (
-    -- * REST Resource
-      MachineTypesGetResource
-
-    -- * Creating a Request
-    , machineTypesGet
-    , MachineTypesGet
-
-    -- * Request Lenses
-    , mtgProject
-    , mtgZone
-    , mtgMachineType
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.machineTypes.get@ method which the
--- 'MachineTypesGet' request conforms to.
-type MachineTypesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "machineTypes" :>
-                   Capture "machineType" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] MachineType
-
--- | Returns the specified machine type. Gets a list of available machine
--- types by making a list() request.
---
--- /See:/ 'machineTypesGet' smart constructor.
-data MachineTypesGet =
-  MachineTypesGet'
-    { _mtgProject     :: !Text
-    , _mtgZone        :: !Text
-    , _mtgMachineType :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtgProject'
---
--- * 'mtgZone'
---
--- * 'mtgMachineType'
-machineTypesGet
-    :: Text -- ^ 'mtgProject'
-    -> Text -- ^ 'mtgZone'
-    -> Text -- ^ 'mtgMachineType'
-    -> MachineTypesGet
-machineTypesGet pMtgProject_ pMtgZone_ pMtgMachineType_ =
-  MachineTypesGet'
-    { _mtgProject = pMtgProject_
-    , _mtgZone = pMtgZone_
-    , _mtgMachineType = pMtgMachineType_
-    }
-
-
--- | Project ID for this request.
-mtgProject :: Lens' MachineTypesGet Text
-mtgProject
-  = lens _mtgProject (\ s a -> s{_mtgProject = a})
-
--- | The name of the zone for this request.
-mtgZone :: Lens' MachineTypesGet Text
-mtgZone = lens _mtgZone (\ s a -> s{_mtgZone = a})
-
--- | Name of the machine type to return.
-mtgMachineType :: Lens' MachineTypesGet Text
-mtgMachineType
-  = lens _mtgMachineType
-      (\ s a -> s{_mtgMachineType = a})
-
-instance GoogleRequest MachineTypesGet where
-        type Rs MachineTypesGet = MachineType
-        type Scopes MachineTypesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient MachineTypesGet'{..}
-          = go _mtgProject _mtgZone _mtgMachineType
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy MachineTypesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/MachineTypes/List.hs b/gen/Network/Google/Resource/Compute/MachineTypes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/MachineTypes/List.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.MachineTypes.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)
---
--- Retrieves a list of machine types available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.machineTypes.list@.
-module Network.Google.Resource.Compute.MachineTypes.List
-    (
-    -- * REST Resource
-      MachineTypesListResource
-
-    -- * Creating a Request
-    , machineTypesList
-    , MachineTypesList
-
-    -- * Request Lenses
-    , mtlOrderBy
-    , mtlProject
-    , mtlZone
-    , mtlFilter
-    , mtlPageToken
-    , mtlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.machineTypes.list@ method which the
--- 'MachineTypesList' request conforms to.
-type MachineTypesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "machineTypes" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] MachineTypeList
-
--- | Retrieves a list of machine types available to the specified project.
---
--- /See:/ 'machineTypesList' smart constructor.
-data MachineTypesList =
-  MachineTypesList'
-    { _mtlOrderBy    :: !(Maybe Text)
-    , _mtlProject    :: !Text
-    , _mtlZone       :: !Text
-    , _mtlFilter     :: !(Maybe Text)
-    , _mtlPageToken  :: !(Maybe Text)
-    , _mtlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'MachineTypesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'mtlOrderBy'
---
--- * 'mtlProject'
---
--- * 'mtlZone'
---
--- * 'mtlFilter'
---
--- * 'mtlPageToken'
---
--- * 'mtlMaxResults'
-machineTypesList
-    :: Text -- ^ 'mtlProject'
-    -> Text -- ^ 'mtlZone'
-    -> MachineTypesList
-machineTypesList pMtlProject_ pMtlZone_ =
-  MachineTypesList'
-    { _mtlOrderBy = Nothing
-    , _mtlProject = pMtlProject_
-    , _mtlZone = pMtlZone_
-    , _mtlFilter = Nothing
-    , _mtlPageToken = Nothing
-    , _mtlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-mtlOrderBy :: Lens' MachineTypesList (Maybe Text)
-mtlOrderBy
-  = lens _mtlOrderBy (\ s a -> s{_mtlOrderBy = a})
-
--- | Project ID for this request.
-mtlProject :: Lens' MachineTypesList Text
-mtlProject
-  = lens _mtlProject (\ s a -> s{_mtlProject = a})
-
--- | The name of the zone for this request.
-mtlZone :: Lens' MachineTypesList Text
-mtlZone = lens _mtlZone (\ s a -> s{_mtlZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-mtlFilter :: Lens' MachineTypesList (Maybe Text)
-mtlFilter
-  = lens _mtlFilter (\ s a -> s{_mtlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-mtlPageToken :: Lens' MachineTypesList (Maybe Text)
-mtlPageToken
-  = lens _mtlPageToken (\ s a -> s{_mtlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-mtlMaxResults :: Lens' MachineTypesList Word32
-mtlMaxResults
-  = lens _mtlMaxResults
-      (\ s a -> s{_mtlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest MachineTypesList where
-        type Rs MachineTypesList = MachineTypeList
-        type Scopes MachineTypesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient MachineTypesList'{..}
-          = go _mtlProject _mtlZone _mtlOrderBy _mtlFilter
-              _mtlPageToken
-              (Just _mtlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy MachineTypesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AggregatedList.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AggregatedList.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.AggregatedList
--- 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)
---
--- Retrieves the list of network endpoint groups and sorts them by zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.aggregatedList@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.AggregatedList
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsAggregatedListResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsAggregatedList
-    , NetworkEndpointGroupsAggregatedList
-
-    -- * Request Lenses
-    , negalOrderBy
-    , negalProject
-    , negalFilter
-    , negalPageToken
-    , negalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.aggregatedList@ method which the
--- 'NetworkEndpointGroupsAggregatedList' request conforms to.
-type NetworkEndpointGroupsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "networkEndpointGroups" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] NetworkEndpointGroupAggregatedList
-
--- | Retrieves the list of network endpoint groups and sorts them by zone.
---
--- /See:/ 'networkEndpointGroupsAggregatedList' smart constructor.
-data NetworkEndpointGroupsAggregatedList =
-  NetworkEndpointGroupsAggregatedList'
-    { _negalOrderBy    :: !(Maybe Text)
-    , _negalProject    :: !Text
-    , _negalFilter     :: !(Maybe Text)
-    , _negalPageToken  :: !(Maybe Text)
-    , _negalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negalOrderBy'
---
--- * 'negalProject'
---
--- * 'negalFilter'
---
--- * 'negalPageToken'
---
--- * 'negalMaxResults'
-networkEndpointGroupsAggregatedList
-    :: Text -- ^ 'negalProject'
-    -> NetworkEndpointGroupsAggregatedList
-networkEndpointGroupsAggregatedList pNegalProject_ =
-  NetworkEndpointGroupsAggregatedList'
-    { _negalOrderBy = Nothing
-    , _negalProject = pNegalProject_
-    , _negalFilter = Nothing
-    , _negalPageToken = Nothing
-    , _negalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-negalOrderBy :: Lens' NetworkEndpointGroupsAggregatedList (Maybe Text)
-negalOrderBy
-  = lens _negalOrderBy (\ s a -> s{_negalOrderBy = a})
-
--- | Project ID for this request.
-negalProject :: Lens' NetworkEndpointGroupsAggregatedList Text
-negalProject
-  = lens _negalProject (\ s a -> s{_negalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-negalFilter :: Lens' NetworkEndpointGroupsAggregatedList (Maybe Text)
-negalFilter
-  = lens _negalFilter (\ s a -> s{_negalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-negalPageToken :: Lens' NetworkEndpointGroupsAggregatedList (Maybe Text)
-negalPageToken
-  = lens _negalPageToken
-      (\ s a -> s{_negalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-negalMaxResults :: Lens' NetworkEndpointGroupsAggregatedList Word32
-negalMaxResults
-  = lens _negalMaxResults
-      (\ s a -> s{_negalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           NetworkEndpointGroupsAggregatedList
-         where
-        type Rs NetworkEndpointGroupsAggregatedList =
-             NetworkEndpointGroupAggregatedList
-        type Scopes NetworkEndpointGroupsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          NetworkEndpointGroupsAggregatedList'{..}
-          = go _negalProject _negalOrderBy _negalFilter
-              _negalPageToken
-              (Just _negalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy NetworkEndpointGroupsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/AttachNetworkEndpoints.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
--- 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)
---
--- Attach a list of network endpoints to the specified network endpoint
--- group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.attachNetworkEndpoints@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsAttachNetworkEndpointsResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsAttachNetworkEndpoints
-    , NetworkEndpointGroupsAttachNetworkEndpoints
-
-    -- * Request Lenses
-    , neganeRequestId
-    , neganeProject
-    , neganeZone
-    , neganePayload
-    , neganeNetworkEndpointGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.attachNetworkEndpoints@ method which the
--- 'NetworkEndpointGroupsAttachNetworkEndpoints' request conforms to.
-type NetworkEndpointGroupsAttachNetworkEndpointsResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "networkEndpointGroup" Text :>
-                     "attachNetworkEndpoints" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             NetworkEndpointGroupsAttachEndpointsRequest
-                             :> Post '[JSON] Operation
-
--- | Attach a list of network endpoints to the specified network endpoint
--- group.
---
--- /See:/ 'networkEndpointGroupsAttachNetworkEndpoints' smart constructor.
-data NetworkEndpointGroupsAttachNetworkEndpoints =
-  NetworkEndpointGroupsAttachNetworkEndpoints'
-    { _neganeRequestId            :: !(Maybe Text)
-    , _neganeProject              :: !Text
-    , _neganeZone                 :: !Text
-    , _neganePayload              :: !NetworkEndpointGroupsAttachEndpointsRequest
-    , _neganeNetworkEndpointGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsAttachNetworkEndpoints' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neganeRequestId'
---
--- * 'neganeProject'
---
--- * 'neganeZone'
---
--- * 'neganePayload'
---
--- * 'neganeNetworkEndpointGroup'
-networkEndpointGroupsAttachNetworkEndpoints
-    :: Text -- ^ 'neganeProject'
-    -> Text -- ^ 'neganeZone'
-    -> NetworkEndpointGroupsAttachEndpointsRequest -- ^ 'neganePayload'
-    -> Text -- ^ 'neganeNetworkEndpointGroup'
-    -> NetworkEndpointGroupsAttachNetworkEndpoints
-networkEndpointGroupsAttachNetworkEndpoints pNeganeProject_ pNeganeZone_ pNeganePayload_ pNeganeNetworkEndpointGroup_ =
-  NetworkEndpointGroupsAttachNetworkEndpoints'
-    { _neganeRequestId = Nothing
-    , _neganeProject = pNeganeProject_
-    , _neganeZone = pNeganeZone_
-    , _neganePayload = pNeganePayload_
-    , _neganeNetworkEndpointGroup = pNeganeNetworkEndpointGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-neganeRequestId :: Lens' NetworkEndpointGroupsAttachNetworkEndpoints (Maybe Text)
-neganeRequestId
-  = lens _neganeRequestId
-      (\ s a -> s{_neganeRequestId = a})
-
--- | Project ID for this request.
-neganeProject :: Lens' NetworkEndpointGroupsAttachNetworkEndpoints Text
-neganeProject
-  = lens _neganeProject
-      (\ s a -> s{_neganeProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-neganeZone :: Lens' NetworkEndpointGroupsAttachNetworkEndpoints Text
-neganeZone
-  = lens _neganeZone (\ s a -> s{_neganeZone = a})
-
--- | Multipart request metadata.
-neganePayload :: Lens' NetworkEndpointGroupsAttachNetworkEndpoints NetworkEndpointGroupsAttachEndpointsRequest
-neganePayload
-  = lens _neganePayload
-      (\ s a -> s{_neganePayload = a})
-
--- | The name of the network endpoint group where you are attaching network
--- endpoints to. It should comply with RFC1035.
-neganeNetworkEndpointGroup :: Lens' NetworkEndpointGroupsAttachNetworkEndpoints Text
-neganeNetworkEndpointGroup
-  = lens _neganeNetworkEndpointGroup
-      (\ s a -> s{_neganeNetworkEndpointGroup = a})
-
-instance GoogleRequest
-           NetworkEndpointGroupsAttachNetworkEndpoints
-         where
-        type Rs NetworkEndpointGroupsAttachNetworkEndpoints =
-             Operation
-        type Scopes
-               NetworkEndpointGroupsAttachNetworkEndpoints
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          NetworkEndpointGroupsAttachNetworkEndpoints'{..}
-          = go _neganeProject _neganeZone
-              _neganeNetworkEndpointGroup
-              _neganeRequestId
-              (Just AltJSON)
-              _neganePayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           NetworkEndpointGroupsAttachNetworkEndpointsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Delete.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Delete.hs
+++ /dev/null
@@ -1,149 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.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 network endpoint group. The network endpoints in
--- the NEG and the VM instances they belong to are not terminated when the
--- NEG is deleted. Note that the NEG cannot be deleted if there are backend
--- services referencing it.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.delete@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.Delete
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsDeleteResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsDelete
-    , NetworkEndpointGroupsDelete
-
-    -- * Request Lenses
-    , negdRequestId
-    , negdProject
-    , negdZone
-    , negdNetworkEndpointGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.delete@ method which the
--- 'NetworkEndpointGroupsDelete' request conforms to.
-type NetworkEndpointGroupsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "networkEndpointGroup" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified network endpoint group. The network endpoints in
--- the NEG and the VM instances they belong to are not terminated when the
--- NEG is deleted. Note that the NEG cannot be deleted if there are backend
--- services referencing it.
---
--- /See:/ 'networkEndpointGroupsDelete' smart constructor.
-data NetworkEndpointGroupsDelete =
-  NetworkEndpointGroupsDelete'
-    { _negdRequestId            :: !(Maybe Text)
-    , _negdProject              :: !Text
-    , _negdZone                 :: !Text
-    , _negdNetworkEndpointGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negdRequestId'
---
--- * 'negdProject'
---
--- * 'negdZone'
---
--- * 'negdNetworkEndpointGroup'
-networkEndpointGroupsDelete
-    :: Text -- ^ 'negdProject'
-    -> Text -- ^ 'negdZone'
-    -> Text -- ^ 'negdNetworkEndpointGroup'
-    -> NetworkEndpointGroupsDelete
-networkEndpointGroupsDelete pNegdProject_ pNegdZone_ pNegdNetworkEndpointGroup_ =
-  NetworkEndpointGroupsDelete'
-    { _negdRequestId = Nothing
-    , _negdProject = pNegdProject_
-    , _negdZone = pNegdZone_
-    , _negdNetworkEndpointGroup = pNegdNetworkEndpointGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-negdRequestId :: Lens' NetworkEndpointGroupsDelete (Maybe Text)
-negdRequestId
-  = lens _negdRequestId
-      (\ s a -> s{_negdRequestId = a})
-
--- | Project ID for this request.
-negdProject :: Lens' NetworkEndpointGroupsDelete Text
-negdProject
-  = lens _negdProject (\ s a -> s{_negdProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-negdZone :: Lens' NetworkEndpointGroupsDelete Text
-negdZone = lens _negdZone (\ s a -> s{_negdZone = a})
-
--- | The name of the network endpoint group to delete. It should comply with
--- RFC1035.
-negdNetworkEndpointGroup :: Lens' NetworkEndpointGroupsDelete Text
-negdNetworkEndpointGroup
-  = lens _negdNetworkEndpointGroup
-      (\ s a -> s{_negdNetworkEndpointGroup = a})
-
-instance GoogleRequest NetworkEndpointGroupsDelete
-         where
-        type Rs NetworkEndpointGroupsDelete = Operation
-        type Scopes NetworkEndpointGroupsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworkEndpointGroupsDelete'{..}
-          = go _negdProject _negdZone _negdNetworkEndpointGroup
-              _negdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworkEndpointGroupsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/DetachNetworkEndpoints.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
--- 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)
---
--- Detach a list of network endpoints from the specified network endpoint
--- group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.detachNetworkEndpoints@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsDetachNetworkEndpointsResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsDetachNetworkEndpoints
-    , NetworkEndpointGroupsDetachNetworkEndpoints
-
-    -- * Request Lenses
-    , negdneRequestId
-    , negdneProject
-    , negdneZone
-    , negdnePayload
-    , negdneNetworkEndpointGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.detachNetworkEndpoints@ method which the
--- 'NetworkEndpointGroupsDetachNetworkEndpoints' request conforms to.
-type NetworkEndpointGroupsDetachNetworkEndpointsResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "networkEndpointGroup" Text :>
-                     "detachNetworkEndpoints" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             NetworkEndpointGroupsDetachEndpointsRequest
-                             :> Post '[JSON] Operation
-
--- | Detach a list of network endpoints from the specified network endpoint
--- group.
---
--- /See:/ 'networkEndpointGroupsDetachNetworkEndpoints' smart constructor.
-data NetworkEndpointGroupsDetachNetworkEndpoints =
-  NetworkEndpointGroupsDetachNetworkEndpoints'
-    { _negdneRequestId            :: !(Maybe Text)
-    , _negdneProject              :: !Text
-    , _negdneZone                 :: !Text
-    , _negdnePayload              :: !NetworkEndpointGroupsDetachEndpointsRequest
-    , _negdneNetworkEndpointGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsDetachNetworkEndpoints' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negdneRequestId'
---
--- * 'negdneProject'
---
--- * 'negdneZone'
---
--- * 'negdnePayload'
---
--- * 'negdneNetworkEndpointGroup'
-networkEndpointGroupsDetachNetworkEndpoints
-    :: Text -- ^ 'negdneProject'
-    -> Text -- ^ 'negdneZone'
-    -> NetworkEndpointGroupsDetachEndpointsRequest -- ^ 'negdnePayload'
-    -> Text -- ^ 'negdneNetworkEndpointGroup'
-    -> NetworkEndpointGroupsDetachNetworkEndpoints
-networkEndpointGroupsDetachNetworkEndpoints pNegdneProject_ pNegdneZone_ pNegdnePayload_ pNegdneNetworkEndpointGroup_ =
-  NetworkEndpointGroupsDetachNetworkEndpoints'
-    { _negdneRequestId = Nothing
-    , _negdneProject = pNegdneProject_
-    , _negdneZone = pNegdneZone_
-    , _negdnePayload = pNegdnePayload_
-    , _negdneNetworkEndpointGroup = pNegdneNetworkEndpointGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-negdneRequestId :: Lens' NetworkEndpointGroupsDetachNetworkEndpoints (Maybe Text)
-negdneRequestId
-  = lens _negdneRequestId
-      (\ s a -> s{_negdneRequestId = a})
-
--- | Project ID for this request.
-negdneProject :: Lens' NetworkEndpointGroupsDetachNetworkEndpoints Text
-negdneProject
-  = lens _negdneProject
-      (\ s a -> s{_negdneProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-negdneZone :: Lens' NetworkEndpointGroupsDetachNetworkEndpoints Text
-negdneZone
-  = lens _negdneZone (\ s a -> s{_negdneZone = a})
-
--- | Multipart request metadata.
-negdnePayload :: Lens' NetworkEndpointGroupsDetachNetworkEndpoints NetworkEndpointGroupsDetachEndpointsRequest
-negdnePayload
-  = lens _negdnePayload
-      (\ s a -> s{_negdnePayload = a})
-
--- | The name of the network endpoint group where you are removing network
--- endpoints. It should comply with RFC1035.
-negdneNetworkEndpointGroup :: Lens' NetworkEndpointGroupsDetachNetworkEndpoints Text
-negdneNetworkEndpointGroup
-  = lens _negdneNetworkEndpointGroup
-      (\ s a -> s{_negdneNetworkEndpointGroup = a})
-
-instance GoogleRequest
-           NetworkEndpointGroupsDetachNetworkEndpoints
-         where
-        type Rs NetworkEndpointGroupsDetachNetworkEndpoints =
-             Operation
-        type Scopes
-               NetworkEndpointGroupsDetachNetworkEndpoints
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          NetworkEndpointGroupsDetachNetworkEndpoints'{..}
-          = go _negdneProject _negdneZone
-              _negdneNetworkEndpointGroup
-              _negdneRequestId
-              (Just AltJSON)
-              _negdnePayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           NetworkEndpointGroupsDetachNetworkEndpointsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Get.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Get.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.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)
---
--- Returns the specified network endpoint group. Gets a list of available
--- network endpoint groups by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.get@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.Get
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsGetResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsGet
-    , NetworkEndpointGroupsGet
-
-    -- * Request Lenses
-    , neggProject
-    , neggZone
-    , neggNetworkEndpointGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.get@ method which the
--- 'NetworkEndpointGroupsGet' request conforms to.
-type NetworkEndpointGroupsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "networkEndpointGroup" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] NetworkEndpointGroup
-
--- | Returns the specified network endpoint group. Gets a list of available
--- network endpoint groups by making a list() request.
---
--- /See:/ 'networkEndpointGroupsGet' smart constructor.
-data NetworkEndpointGroupsGet =
-  NetworkEndpointGroupsGet'
-    { _neggProject              :: !Text
-    , _neggZone                 :: !Text
-    , _neggNetworkEndpointGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neggProject'
---
--- * 'neggZone'
---
--- * 'neggNetworkEndpointGroup'
-networkEndpointGroupsGet
-    :: Text -- ^ 'neggProject'
-    -> Text -- ^ 'neggZone'
-    -> Text -- ^ 'neggNetworkEndpointGroup'
-    -> NetworkEndpointGroupsGet
-networkEndpointGroupsGet pNeggProject_ pNeggZone_ pNeggNetworkEndpointGroup_ =
-  NetworkEndpointGroupsGet'
-    { _neggProject = pNeggProject_
-    , _neggZone = pNeggZone_
-    , _neggNetworkEndpointGroup = pNeggNetworkEndpointGroup_
-    }
-
-
--- | Project ID for this request.
-neggProject :: Lens' NetworkEndpointGroupsGet Text
-neggProject
-  = lens _neggProject (\ s a -> s{_neggProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-neggZone :: Lens' NetworkEndpointGroupsGet Text
-neggZone = lens _neggZone (\ s a -> s{_neggZone = a})
-
--- | The name of the network endpoint group. It should comply with RFC1035.
-neggNetworkEndpointGroup :: Lens' NetworkEndpointGroupsGet Text
-neggNetworkEndpointGroup
-  = lens _neggNetworkEndpointGroup
-      (\ s a -> s{_neggNetworkEndpointGroup = a})
-
-instance GoogleRequest NetworkEndpointGroupsGet where
-        type Rs NetworkEndpointGroupsGet =
-             NetworkEndpointGroup
-        type Scopes NetworkEndpointGroupsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NetworkEndpointGroupsGet'{..}
-          = go _neggProject _neggZone _neggNetworkEndpointGroup
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworkEndpointGroupsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Insert.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/Insert.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.Insert
--- 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 network endpoint group in the specified project using the
--- parameters that are included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.insert@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.Insert
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsInsertResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsInsert
-    , NetworkEndpointGroupsInsert
-
-    -- * Request Lenses
-    , negiRequestId
-    , negiProject
-    , negiZone
-    , negiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.insert@ method which the
--- 'NetworkEndpointGroupsInsert' request conforms to.
-type NetworkEndpointGroupsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] NetworkEndpointGroup :>
-                         Post '[JSON] Operation
-
--- | Creates a network endpoint group in the specified project using the
--- parameters that are included in the request.
---
--- /See:/ 'networkEndpointGroupsInsert' smart constructor.
-data NetworkEndpointGroupsInsert =
-  NetworkEndpointGroupsInsert'
-    { _negiRequestId :: !(Maybe Text)
-    , _negiProject   :: !Text
-    , _negiZone      :: !Text
-    , _negiPayload   :: !NetworkEndpointGroup
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negiRequestId'
---
--- * 'negiProject'
---
--- * 'negiZone'
---
--- * 'negiPayload'
-networkEndpointGroupsInsert
-    :: Text -- ^ 'negiProject'
-    -> Text -- ^ 'negiZone'
-    -> NetworkEndpointGroup -- ^ 'negiPayload'
-    -> NetworkEndpointGroupsInsert
-networkEndpointGroupsInsert pNegiProject_ pNegiZone_ pNegiPayload_ =
-  NetworkEndpointGroupsInsert'
-    { _negiRequestId = Nothing
-    , _negiProject = pNegiProject_
-    , _negiZone = pNegiZone_
-    , _negiPayload = pNegiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-negiRequestId :: Lens' NetworkEndpointGroupsInsert (Maybe Text)
-negiRequestId
-  = lens _negiRequestId
-      (\ s a -> s{_negiRequestId = a})
-
--- | Project ID for this request.
-negiProject :: Lens' NetworkEndpointGroupsInsert Text
-negiProject
-  = lens _negiProject (\ s a -> s{_negiProject = a})
-
--- | The name of the zone where you want to create the network endpoint
--- group. It should comply with RFC1035.
-negiZone :: Lens' NetworkEndpointGroupsInsert Text
-negiZone = lens _negiZone (\ s a -> s{_negiZone = a})
-
--- | Multipart request metadata.
-negiPayload :: Lens' NetworkEndpointGroupsInsert NetworkEndpointGroup
-negiPayload
-  = lens _negiPayload (\ s a -> s{_negiPayload = a})
-
-instance GoogleRequest NetworkEndpointGroupsInsert
-         where
-        type Rs NetworkEndpointGroupsInsert = Operation
-        type Scopes NetworkEndpointGroupsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworkEndpointGroupsInsert'{..}
-          = go _negiProject _negiZone _negiRequestId
-              (Just AltJSON)
-              _negiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworkEndpointGroupsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/List.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/List.hs
+++ /dev/null
@@ -1,188 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.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)
---
--- Retrieves the list of network endpoint groups that are located in the
--- specified project and zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.list@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.List
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsListResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsList
-    , NetworkEndpointGroupsList
-
-    -- * Request Lenses
-    , neglOrderBy
-    , neglProject
-    , neglZone
-    , neglFilter
-    , neglPageToken
-    , neglMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.list@ method which the
--- 'NetworkEndpointGroupsList' request conforms to.
-type NetworkEndpointGroupsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] NetworkEndpointGroupList
-
--- | Retrieves the list of network endpoint groups that are located in the
--- specified project and zone.
---
--- /See:/ 'networkEndpointGroupsList' smart constructor.
-data NetworkEndpointGroupsList =
-  NetworkEndpointGroupsList'
-    { _neglOrderBy    :: !(Maybe Text)
-    , _neglProject    :: !Text
-    , _neglZone       :: !Text
-    , _neglFilter     :: !(Maybe Text)
-    , _neglPageToken  :: !(Maybe Text)
-    , _neglMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglOrderBy'
---
--- * 'neglProject'
---
--- * 'neglZone'
---
--- * 'neglFilter'
---
--- * 'neglPageToken'
---
--- * 'neglMaxResults'
-networkEndpointGroupsList
-    :: Text -- ^ 'neglProject'
-    -> Text -- ^ 'neglZone'
-    -> NetworkEndpointGroupsList
-networkEndpointGroupsList pNeglProject_ pNeglZone_ =
-  NetworkEndpointGroupsList'
-    { _neglOrderBy = Nothing
-    , _neglProject = pNeglProject_
-    , _neglZone = pNeglZone_
-    , _neglFilter = Nothing
-    , _neglPageToken = Nothing
-    , _neglMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-neglOrderBy :: Lens' NetworkEndpointGroupsList (Maybe Text)
-neglOrderBy
-  = lens _neglOrderBy (\ s a -> s{_neglOrderBy = a})
-
--- | Project ID for this request.
-neglProject :: Lens' NetworkEndpointGroupsList Text
-neglProject
-  = lens _neglProject (\ s a -> s{_neglProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-neglZone :: Lens' NetworkEndpointGroupsList Text
-neglZone = lens _neglZone (\ s a -> s{_neglZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-neglFilter :: Lens' NetworkEndpointGroupsList (Maybe Text)
-neglFilter
-  = lens _neglFilter (\ s a -> s{_neglFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-neglPageToken :: Lens' NetworkEndpointGroupsList (Maybe Text)
-neglPageToken
-  = lens _neglPageToken
-      (\ s a -> s{_neglPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-neglMaxResults :: Lens' NetworkEndpointGroupsList Word32
-neglMaxResults
-  = lens _neglMaxResults
-      (\ s a -> s{_neglMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NetworkEndpointGroupsList
-         where
-        type Rs NetworkEndpointGroupsList =
-             NetworkEndpointGroupList
-        type Scopes NetworkEndpointGroupsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NetworkEndpointGroupsList'{..}
-          = go _neglProject _neglZone _neglOrderBy _neglFilter
-              _neglPageToken
-              (Just _neglMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworkEndpointGroupsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/ListNetworkEndpoints.hs
+++ /dev/null
@@ -1,231 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.ListNetworkEndpoints
--- 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 network endpoints in the specified network endpoint group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.listNetworkEndpoints@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.ListNetworkEndpoints
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsListNetworkEndpointsResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsListNetworkEndpoints'
-    , NetworkEndpointGroupsListNetworkEndpoints'
-
-    -- * Request Lenses
-    , neglneOrderBy
-    , neglneProject
-    , neglneZone
-    , neglnePayload
-    , neglneNetworkEndpointGroup
-    , neglneFilter
-    , neglnePageToken
-    , neglneMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.listNetworkEndpoints@ method which the
--- 'NetworkEndpointGroupsListNetworkEndpoints'' request conforms to.
-type NetworkEndpointGroupsListNetworkEndpointsResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "networkEndpointGroup" Text :>
-                     "listNetworkEndpoints" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 ReqBody '[JSON]
-                                   NetworkEndpointGroupsListEndpointsRequest
-                                   :>
-                                   Post '[JSON]
-                                     NetworkEndpointGroupsListNetworkEndpoints
-
--- | Lists the network endpoints in the specified network endpoint group.
---
--- /See:/ 'networkEndpointGroupsListNetworkEndpoints'' smart constructor.
-data NetworkEndpointGroupsListNetworkEndpoints' =
-  NetworkEndpointGroupsListNetworkEndpoints''
-    { _neglneOrderBy              :: !(Maybe Text)
-    , _neglneProject              :: !Text
-    , _neglneZone                 :: !Text
-    , _neglnePayload              :: !NetworkEndpointGroupsListEndpointsRequest
-    , _neglneNetworkEndpointGroup :: !Text
-    , _neglneFilter               :: !(Maybe Text)
-    , _neglnePageToken            :: !(Maybe Text)
-    , _neglneMaxResults           :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsListNetworkEndpoints'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'neglneOrderBy'
---
--- * 'neglneProject'
---
--- * 'neglneZone'
---
--- * 'neglnePayload'
---
--- * 'neglneNetworkEndpointGroup'
---
--- * 'neglneFilter'
---
--- * 'neglnePageToken'
---
--- * 'neglneMaxResults'
-networkEndpointGroupsListNetworkEndpoints'
-    :: Text -- ^ 'neglneProject'
-    -> Text -- ^ 'neglneZone'
-    -> NetworkEndpointGroupsListEndpointsRequest -- ^ 'neglnePayload'
-    -> Text -- ^ 'neglneNetworkEndpointGroup'
-    -> NetworkEndpointGroupsListNetworkEndpoints'
-networkEndpointGroupsListNetworkEndpoints' pNeglneProject_ pNeglneZone_ pNeglnePayload_ pNeglneNetworkEndpointGroup_ =
-  NetworkEndpointGroupsListNetworkEndpoints''
-    { _neglneOrderBy = Nothing
-    , _neglneProject = pNeglneProject_
-    , _neglneZone = pNeglneZone_
-    , _neglnePayload = pNeglnePayload_
-    , _neglneNetworkEndpointGroup = pNeglneNetworkEndpointGroup_
-    , _neglneFilter = Nothing
-    , _neglnePageToken = Nothing
-    , _neglneMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-neglneOrderBy :: Lens' NetworkEndpointGroupsListNetworkEndpoints' (Maybe Text)
-neglneOrderBy
-  = lens _neglneOrderBy
-      (\ s a -> s{_neglneOrderBy = a})
-
--- | Project ID for this request.
-neglneProject :: Lens' NetworkEndpointGroupsListNetworkEndpoints' Text
-neglneProject
-  = lens _neglneProject
-      (\ s a -> s{_neglneProject = a})
-
--- | The name of the zone where the network endpoint group is located. It
--- should comply with RFC1035.
-neglneZone :: Lens' NetworkEndpointGroupsListNetworkEndpoints' Text
-neglneZone
-  = lens _neglneZone (\ s a -> s{_neglneZone = a})
-
--- | Multipart request metadata.
-neglnePayload :: Lens' NetworkEndpointGroupsListNetworkEndpoints' NetworkEndpointGroupsListEndpointsRequest
-neglnePayload
-  = lens _neglnePayload
-      (\ s a -> s{_neglnePayload = a})
-
--- | The name of the network endpoint group from which you want to generate a
--- list of included network endpoints. It should comply with RFC1035.
-neglneNetworkEndpointGroup :: Lens' NetworkEndpointGroupsListNetworkEndpoints' Text
-neglneNetworkEndpointGroup
-  = lens _neglneNetworkEndpointGroup
-      (\ s a -> s{_neglneNetworkEndpointGroup = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-neglneFilter :: Lens' NetworkEndpointGroupsListNetworkEndpoints' (Maybe Text)
-neglneFilter
-  = lens _neglneFilter (\ s a -> s{_neglneFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-neglnePageToken :: Lens' NetworkEndpointGroupsListNetworkEndpoints' (Maybe Text)
-neglnePageToken
-  = lens _neglnePageToken
-      (\ s a -> s{_neglnePageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-neglneMaxResults :: Lens' NetworkEndpointGroupsListNetworkEndpoints' Word32
-neglneMaxResults
-  = lens _neglneMaxResults
-      (\ s a -> s{_neglneMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           NetworkEndpointGroupsListNetworkEndpoints'
-         where
-        type Rs NetworkEndpointGroupsListNetworkEndpoints' =
-             NetworkEndpointGroupsListNetworkEndpoints
-        type Scopes
-               NetworkEndpointGroupsListNetworkEndpoints'
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          NetworkEndpointGroupsListNetworkEndpoints''{..}
-          = go _neglneProject _neglneZone
-              _neglneNetworkEndpointGroup
-              _neglneOrderBy
-              _neglneFilter
-              _neglnePageToken
-              (Just _neglneMaxResults)
-              (Just AltJSON)
-              _neglnePayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           NetworkEndpointGroupsListNetworkEndpointsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NetworkEndpointGroups/TestIAMPermissions.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NetworkEndpointGroups.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networkEndpointGroups.testIamPermissions@.
-module Network.Google.Resource.Compute.NetworkEndpointGroups.TestIAMPermissions
-    (
-    -- * REST Resource
-      NetworkEndpointGroupsTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , networkEndpointGroupsTestIAMPermissions
-    , NetworkEndpointGroupsTestIAMPermissions
-
-    -- * Request Lenses
-    , negtipProject
-    , negtipZone
-    , negtipPayload
-    , negtipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networkEndpointGroups.testIamPermissions@ method which the
--- 'NetworkEndpointGroupsTestIAMPermissions' request conforms to.
-type NetworkEndpointGroupsTestIAMPermissionsResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "networkEndpointGroups" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'networkEndpointGroupsTestIAMPermissions' smart constructor.
-data NetworkEndpointGroupsTestIAMPermissions =
-  NetworkEndpointGroupsTestIAMPermissions'
-    { _negtipProject  :: !Text
-    , _negtipZone     :: !Text
-    , _negtipPayload  :: !TestPermissionsRequest
-    , _negtipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworkEndpointGroupsTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'negtipProject'
---
--- * 'negtipZone'
---
--- * 'negtipPayload'
---
--- * 'negtipResource'
-networkEndpointGroupsTestIAMPermissions
-    :: Text -- ^ 'negtipProject'
-    -> Text -- ^ 'negtipZone'
-    -> TestPermissionsRequest -- ^ 'negtipPayload'
-    -> Text -- ^ 'negtipResource'
-    -> NetworkEndpointGroupsTestIAMPermissions
-networkEndpointGroupsTestIAMPermissions pNegtipProject_ pNegtipZone_ pNegtipPayload_ pNegtipResource_ =
-  NetworkEndpointGroupsTestIAMPermissions'
-    { _negtipProject = pNegtipProject_
-    , _negtipZone = pNegtipZone_
-    , _negtipPayload = pNegtipPayload_
-    , _negtipResource = pNegtipResource_
-    }
-
-
--- | Project ID for this request.
-negtipProject :: Lens' NetworkEndpointGroupsTestIAMPermissions Text
-negtipProject
-  = lens _negtipProject
-      (\ s a -> s{_negtipProject = a})
-
--- | The name of the zone for this request.
-negtipZone :: Lens' NetworkEndpointGroupsTestIAMPermissions Text
-negtipZone
-  = lens _negtipZone (\ s a -> s{_negtipZone = a})
-
--- | Multipart request metadata.
-negtipPayload :: Lens' NetworkEndpointGroupsTestIAMPermissions TestPermissionsRequest
-negtipPayload
-  = lens _negtipPayload
-      (\ s a -> s{_negtipPayload = a})
-
--- | Name or id of the resource for this request.
-negtipResource :: Lens' NetworkEndpointGroupsTestIAMPermissions Text
-negtipResource
-  = lens _negtipResource
-      (\ s a -> s{_negtipResource = a})
-
-instance GoogleRequest
-           NetworkEndpointGroupsTestIAMPermissions
-         where
-        type Rs NetworkEndpointGroupsTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes NetworkEndpointGroupsTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          NetworkEndpointGroupsTestIAMPermissions'{..}
-          = go _negtipProject _negtipZone _negtipResource
-              (Just AltJSON)
-              _negtipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           NetworkEndpointGroupsTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/AddPeering.hs b/gen/Network/Google/Resource/Compute/Networks/AddPeering.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/AddPeering.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.AddPeering
--- 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)
---
--- Adds a peering to the specified network.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.addPeering@.
-module Network.Google.Resource.Compute.Networks.AddPeering
-    (
-    -- * REST Resource
-      NetworksAddPeeringResource
-
-    -- * Creating a Request
-    , networksAddPeering
-    , NetworksAddPeering
-
-    -- * Request Lenses
-    , napRequestId
-    , napProject
-    , napNetwork
-    , napPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.addPeering@ method which the
--- 'NetworksAddPeering' request conforms to.
-type NetworksAddPeeringResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   "addPeering" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] NetworksAddPeeringRequest :>
-                           Post '[JSON] Operation
-
--- | Adds a peering to the specified network.
---
--- /See:/ 'networksAddPeering' smart constructor.
-data NetworksAddPeering =
-  NetworksAddPeering'
-    { _napRequestId :: !(Maybe Text)
-    , _napProject   :: !Text
-    , _napNetwork   :: !Text
-    , _napPayload   :: !NetworksAddPeeringRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksAddPeering' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'napRequestId'
---
--- * 'napProject'
---
--- * 'napNetwork'
---
--- * 'napPayload'
-networksAddPeering
-    :: Text -- ^ 'napProject'
-    -> Text -- ^ 'napNetwork'
-    -> NetworksAddPeeringRequest -- ^ 'napPayload'
-    -> NetworksAddPeering
-networksAddPeering pNapProject_ pNapNetwork_ pNapPayload_ =
-  NetworksAddPeering'
-    { _napRequestId = Nothing
-    , _napProject = pNapProject_
-    , _napNetwork = pNapNetwork_
-    , _napPayload = pNapPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-napRequestId :: Lens' NetworksAddPeering (Maybe Text)
-napRequestId
-  = lens _napRequestId (\ s a -> s{_napRequestId = a})
-
--- | Project ID for this request.
-napProject :: Lens' NetworksAddPeering Text
-napProject
-  = lens _napProject (\ s a -> s{_napProject = a})
-
--- | Name of the network resource to add peering to.
-napNetwork :: Lens' NetworksAddPeering Text
-napNetwork
-  = lens _napNetwork (\ s a -> s{_napNetwork = a})
-
--- | Multipart request metadata.
-napPayload :: Lens' NetworksAddPeering NetworksAddPeeringRequest
-napPayload
-  = lens _napPayload (\ s a -> s{_napPayload = a})
-
-instance GoogleRequest NetworksAddPeering where
-        type Rs NetworksAddPeering = Operation
-        type Scopes NetworksAddPeering =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksAddPeering'{..}
-          = go _napProject _napNetwork _napRequestId
-              (Just AltJSON)
-              _napPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworksAddPeeringResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/Delete.hs b/gen/Network/Google/Resource/Compute/Networks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/Delete.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.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 network.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.delete@.
-module Network.Google.Resource.Compute.Networks.Delete
-    (
-    -- * REST Resource
-      NetworksDeleteResource
-
-    -- * Creating a Request
-    , networksDelete
-    , NetworksDelete
-
-    -- * Request Lenses
-    , ndRequestId
-    , ndProject
-    , ndNetwork
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.delete@ method which the
--- 'NetworksDelete' request conforms to.
-type NetworksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified network.
---
--- /See:/ 'networksDelete' smart constructor.
-data NetworksDelete =
-  NetworksDelete'
-    { _ndRequestId :: !(Maybe Text)
-    , _ndProject   :: !Text
-    , _ndNetwork   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ndRequestId'
---
--- * 'ndProject'
---
--- * 'ndNetwork'
-networksDelete
-    :: Text -- ^ 'ndProject'
-    -> Text -- ^ 'ndNetwork'
-    -> NetworksDelete
-networksDelete pNdProject_ pNdNetwork_ =
-  NetworksDelete'
-    {_ndRequestId = Nothing, _ndProject = pNdProject_, _ndNetwork = pNdNetwork_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ndRequestId :: Lens' NetworksDelete (Maybe Text)
-ndRequestId
-  = lens _ndRequestId (\ s a -> s{_ndRequestId = a})
-
--- | Project ID for this request.
-ndProject :: Lens' NetworksDelete Text
-ndProject
-  = lens _ndProject (\ s a -> s{_ndProject = a})
-
--- | Name of the network to delete.
-ndNetwork :: Lens' NetworksDelete Text
-ndNetwork
-  = lens _ndNetwork (\ s a -> s{_ndNetwork = a})
-
-instance GoogleRequest NetworksDelete where
-        type Rs NetworksDelete = Operation
-        type Scopes NetworksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksDelete'{..}
-          = go _ndProject _ndNetwork _ndRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NetworksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/Get.hs b/gen/Network/Google/Resource/Compute/Networks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/Get.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.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)
---
--- Returns the specified network. Gets a list of available networks by
--- making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.get@.
-module Network.Google.Resource.Compute.Networks.Get
-    (
-    -- * REST Resource
-      NetworksGetResource
-
-    -- * Creating a Request
-    , networksGet
-    , NetworksGet
-
-    -- * Request Lenses
-    , ngProject
-    , ngNetwork
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.get@ method which the
--- 'NetworksGet' request conforms to.
-type NetworksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Network
-
--- | Returns the specified network. Gets a list of available networks by
--- making a list() request.
---
--- /See:/ 'networksGet' smart constructor.
-data NetworksGet =
-  NetworksGet'
-    { _ngProject :: !Text
-    , _ngNetwork :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngProject'
---
--- * 'ngNetwork'
-networksGet
-    :: Text -- ^ 'ngProject'
-    -> Text -- ^ 'ngNetwork'
-    -> NetworksGet
-networksGet pNgProject_ pNgNetwork_ =
-  NetworksGet' {_ngProject = pNgProject_, _ngNetwork = pNgNetwork_}
-
-
--- | Project ID for this request.
-ngProject :: Lens' NetworksGet Text
-ngProject
-  = lens _ngProject (\ s a -> s{_ngProject = a})
-
--- | Name of the network to return.
-ngNetwork :: Lens' NetworksGet Text
-ngNetwork
-  = lens _ngNetwork (\ s a -> s{_ngNetwork = a})
-
-instance GoogleRequest NetworksGet where
-        type Rs NetworksGet = Network
-        type Scopes NetworksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NetworksGet'{..}
-          = go _ngProject _ngNetwork (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NetworksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/Insert.hs b/gen/Network/Google/Resource/Compute/Networks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/Insert.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.Insert
--- 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 network in the specified project using the data included in
--- the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.insert@.
-module Network.Google.Resource.Compute.Networks.Insert
-    (
-    -- * REST Resource
-      NetworksInsertResource
-
-    -- * Creating a Request
-    , networksInsert
-    , NetworksInsert
-
-    -- * Request Lenses
-    , niRequestId
-    , niProject
-    , niPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.insert@ method which the
--- 'NetworksInsert' request conforms to.
-type NetworksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Network :> Post '[JSON] Operation
-
--- | Creates a network in the specified project using the data included in
--- the request.
---
--- /See:/ 'networksInsert' smart constructor.
-data NetworksInsert =
-  NetworksInsert'
-    { _niRequestId :: !(Maybe Text)
-    , _niProject   :: !Text
-    , _niPayload   :: !Network
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'niRequestId'
---
--- * 'niProject'
---
--- * 'niPayload'
-networksInsert
-    :: Text -- ^ 'niProject'
-    -> Network -- ^ 'niPayload'
-    -> NetworksInsert
-networksInsert pNiProject_ pNiPayload_ =
-  NetworksInsert'
-    {_niRequestId = Nothing, _niProject = pNiProject_, _niPayload = pNiPayload_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-niRequestId :: Lens' NetworksInsert (Maybe Text)
-niRequestId
-  = lens _niRequestId (\ s a -> s{_niRequestId = a})
-
--- | Project ID for this request.
-niProject :: Lens' NetworksInsert Text
-niProject
-  = lens _niProject (\ s a -> s{_niProject = a})
-
--- | Multipart request metadata.
-niPayload :: Lens' NetworksInsert Network
-niPayload
-  = lens _niPayload (\ s a -> s{_niPayload = a})
-
-instance GoogleRequest NetworksInsert where
-        type Rs NetworksInsert = Operation
-        type Scopes NetworksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksInsert'{..}
-          = go _niProject _niRequestId (Just AltJSON)
-              _niPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NetworksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/List.hs b/gen/Network/Google/Resource/Compute/Networks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/List.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.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)
---
--- Retrieves the list of networks available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.list@.
-module Network.Google.Resource.Compute.Networks.List
-    (
-    -- * REST Resource
-      NetworksListResource
-
-    -- * Creating a Request
-    , networksList
-    , NetworksList
-
-    -- * Request Lenses
-    , nlOrderBy
-    , nlProject
-    , nlFilter
-    , nlPageToken
-    , nlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.list@ method which the
--- 'NetworksList' request conforms to.
-type NetworksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] NetworkList
-
--- | Retrieves the list of networks available to the specified project.
---
--- /See:/ 'networksList' smart constructor.
-data NetworksList =
-  NetworksList'
-    { _nlOrderBy    :: !(Maybe Text)
-    , _nlProject    :: !Text
-    , _nlFilter     :: !(Maybe Text)
-    , _nlPageToken  :: !(Maybe Text)
-    , _nlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nlOrderBy'
---
--- * 'nlProject'
---
--- * 'nlFilter'
---
--- * 'nlPageToken'
---
--- * 'nlMaxResults'
-networksList
-    :: Text -- ^ 'nlProject'
-    -> NetworksList
-networksList pNlProject_ =
-  NetworksList'
-    { _nlOrderBy = Nothing
-    , _nlProject = pNlProject_
-    , _nlFilter = Nothing
-    , _nlPageToken = Nothing
-    , _nlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-nlOrderBy :: Lens' NetworksList (Maybe Text)
-nlOrderBy
-  = lens _nlOrderBy (\ s a -> s{_nlOrderBy = a})
-
--- | Project ID for this request.
-nlProject :: Lens' NetworksList Text
-nlProject
-  = lens _nlProject (\ s a -> s{_nlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-nlFilter :: Lens' NetworksList (Maybe Text)
-nlFilter = lens _nlFilter (\ s a -> s{_nlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-nlPageToken :: Lens' NetworksList (Maybe Text)
-nlPageToken
-  = lens _nlPageToken (\ s a -> s{_nlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-nlMaxResults :: Lens' NetworksList Word32
-nlMaxResults
-  = lens _nlMaxResults (\ s a -> s{_nlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NetworksList where
-        type Rs NetworksList = NetworkList
-        type Scopes NetworksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NetworksList'{..}
-          = go _nlProject _nlOrderBy _nlFilter _nlPageToken
-              (Just _nlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NetworksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/Patch.hs b/gen/Network/Google/Resource/Compute/Networks/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/Patch.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.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)
---
--- Patches the specified network with the data included in the request.
--- Only the following fields can be modified: routingConfig.routingMode.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.patch@.
-module Network.Google.Resource.Compute.Networks.Patch
-    (
-    -- * REST Resource
-      NetworksPatchResource
-
-    -- * Creating a Request
-    , networksPatch
-    , NetworksPatch
-
-    -- * Request Lenses
-    , npRequestId
-    , npProject
-    , npNetwork
-    , npPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.patch@ method which the
--- 'NetworksPatch' request conforms to.
-type NetworksPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Network :> Patch '[JSON] Operation
-
--- | Patches the specified network with the data included in the request.
--- Only the following fields can be modified: routingConfig.routingMode.
---
--- /See:/ 'networksPatch' smart constructor.
-data NetworksPatch =
-  NetworksPatch'
-    { _npRequestId :: !(Maybe Text)
-    , _npProject   :: !Text
-    , _npNetwork   :: !Text
-    , _npPayload   :: !Network
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'npRequestId'
---
--- * 'npProject'
---
--- * 'npNetwork'
---
--- * 'npPayload'
-networksPatch
-    :: Text -- ^ 'npProject'
-    -> Text -- ^ 'npNetwork'
-    -> Network -- ^ 'npPayload'
-    -> NetworksPatch
-networksPatch pNpProject_ pNpNetwork_ pNpPayload_ =
-  NetworksPatch'
-    { _npRequestId = Nothing
-    , _npProject = pNpProject_
-    , _npNetwork = pNpNetwork_
-    , _npPayload = pNpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-npRequestId :: Lens' NetworksPatch (Maybe Text)
-npRequestId
-  = lens _npRequestId (\ s a -> s{_npRequestId = a})
-
--- | Project ID for this request.
-npProject :: Lens' NetworksPatch Text
-npProject
-  = lens _npProject (\ s a -> s{_npProject = a})
-
--- | Name of the network to update.
-npNetwork :: Lens' NetworksPatch Text
-npNetwork
-  = lens _npNetwork (\ s a -> s{_npNetwork = a})
-
--- | Multipart request metadata.
-npPayload :: Lens' NetworksPatch Network
-npPayload
-  = lens _npPayload (\ s a -> s{_npPayload = a})
-
-instance GoogleRequest NetworksPatch where
-        type Rs NetworksPatch = Operation
-        type Scopes NetworksPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksPatch'{..}
-          = go _npProject _npNetwork _npRequestId
-              (Just AltJSON)
-              _npPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NetworksPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/RemovePeering.hs b/gen/Network/Google/Resource/Compute/Networks/RemovePeering.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/RemovePeering.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.RemovePeering
--- 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)
---
--- Removes a peering from the specified network.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.removePeering@.
-module Network.Google.Resource.Compute.Networks.RemovePeering
-    (
-    -- * REST Resource
-      NetworksRemovePeeringResource
-
-    -- * Creating a Request
-    , networksRemovePeering
-    , NetworksRemovePeering
-
-    -- * Request Lenses
-    , nrpRequestId
-    , nrpProject
-    , nrpNetwork
-    , nrpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.removePeering@ method which the
--- 'NetworksRemovePeering' request conforms to.
-type NetworksRemovePeeringResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   "removePeering" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] NetworksRemovePeeringRequest :>
-                           Post '[JSON] Operation
-
--- | Removes a peering from the specified network.
---
--- /See:/ 'networksRemovePeering' smart constructor.
-data NetworksRemovePeering =
-  NetworksRemovePeering'
-    { _nrpRequestId :: !(Maybe Text)
-    , _nrpProject   :: !Text
-    , _nrpNetwork   :: !Text
-    , _nrpPayload   :: !NetworksRemovePeeringRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksRemovePeering' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nrpRequestId'
---
--- * 'nrpProject'
---
--- * 'nrpNetwork'
---
--- * 'nrpPayload'
-networksRemovePeering
-    :: Text -- ^ 'nrpProject'
-    -> Text -- ^ 'nrpNetwork'
-    -> NetworksRemovePeeringRequest -- ^ 'nrpPayload'
-    -> NetworksRemovePeering
-networksRemovePeering pNrpProject_ pNrpNetwork_ pNrpPayload_ =
-  NetworksRemovePeering'
-    { _nrpRequestId = Nothing
-    , _nrpProject = pNrpProject_
-    , _nrpNetwork = pNrpNetwork_
-    , _nrpPayload = pNrpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-nrpRequestId :: Lens' NetworksRemovePeering (Maybe Text)
-nrpRequestId
-  = lens _nrpRequestId (\ s a -> s{_nrpRequestId = a})
-
--- | Project ID for this request.
-nrpProject :: Lens' NetworksRemovePeering Text
-nrpProject
-  = lens _nrpProject (\ s a -> s{_nrpProject = a})
-
--- | Name of the network resource to remove peering from.
-nrpNetwork :: Lens' NetworksRemovePeering Text
-nrpNetwork
-  = lens _nrpNetwork (\ s a -> s{_nrpNetwork = a})
-
--- | Multipart request metadata.
-nrpPayload :: Lens' NetworksRemovePeering NetworksRemovePeeringRequest
-nrpPayload
-  = lens _nrpPayload (\ s a -> s{_nrpPayload = a})
-
-instance GoogleRequest NetworksRemovePeering where
-        type Rs NetworksRemovePeering = Operation
-        type Scopes NetworksRemovePeering =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksRemovePeering'{..}
-          = go _nrpProject _nrpNetwork _nrpRequestId
-              (Just AltJSON)
-              _nrpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworksRemovePeeringResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Networks/SwitchToCustomMode.hs b/gen/Network/Google/Resource/Compute/Networks/SwitchToCustomMode.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Networks/SwitchToCustomMode.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Networks.SwitchToCustomMode
--- 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)
---
--- Switches the network mode from auto subnet mode to custom subnet mode.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.networks.switchToCustomMode@.
-module Network.Google.Resource.Compute.Networks.SwitchToCustomMode
-    (
-    -- * REST Resource
-      NetworksSwitchToCustomModeResource
-
-    -- * Creating a Request
-    , networksSwitchToCustomMode
-    , NetworksSwitchToCustomMode
-
-    -- * Request Lenses
-    , nstcmRequestId
-    , nstcmProject
-    , nstcmNetwork
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.networks.switchToCustomMode@ method which the
--- 'NetworksSwitchToCustomMode' request conforms to.
-type NetworksSwitchToCustomModeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "networks" :>
-                 Capture "network" Text :>
-                   "switchToCustomMode" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Switches the network mode from auto subnet mode to custom subnet mode.
---
--- /See:/ 'networksSwitchToCustomMode' smart constructor.
-data NetworksSwitchToCustomMode =
-  NetworksSwitchToCustomMode'
-    { _nstcmRequestId :: !(Maybe Text)
-    , _nstcmProject   :: !Text
-    , _nstcmNetwork   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NetworksSwitchToCustomMode' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nstcmRequestId'
---
--- * 'nstcmProject'
---
--- * 'nstcmNetwork'
-networksSwitchToCustomMode
-    :: Text -- ^ 'nstcmProject'
-    -> Text -- ^ 'nstcmNetwork'
-    -> NetworksSwitchToCustomMode
-networksSwitchToCustomMode pNstcmProject_ pNstcmNetwork_ =
-  NetworksSwitchToCustomMode'
-    { _nstcmRequestId = Nothing
-    , _nstcmProject = pNstcmProject_
-    , _nstcmNetwork = pNstcmNetwork_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-nstcmRequestId :: Lens' NetworksSwitchToCustomMode (Maybe Text)
-nstcmRequestId
-  = lens _nstcmRequestId
-      (\ s a -> s{_nstcmRequestId = a})
-
--- | Project ID for this request.
-nstcmProject :: Lens' NetworksSwitchToCustomMode Text
-nstcmProject
-  = lens _nstcmProject (\ s a -> s{_nstcmProject = a})
-
--- | Name of the network to be updated.
-nstcmNetwork :: Lens' NetworksSwitchToCustomMode Text
-nstcmNetwork
-  = lens _nstcmNetwork (\ s a -> s{_nstcmNetwork = a})
-
-instance GoogleRequest NetworksSwitchToCustomMode
-         where
-        type Rs NetworksSwitchToCustomMode = Operation
-        type Scopes NetworksSwitchToCustomMode =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NetworksSwitchToCustomMode'{..}
-          = go _nstcmProject _nstcmNetwork _nstcmRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NetworksSwitchToCustomModeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/AddNodes.hs b/gen/Network/Google/Resource/Compute/NodeGroups/AddNodes.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/AddNodes.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.AddNodes
--- 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)
---
--- Adds specified number of nodes to the node group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.addNodes@.
-module Network.Google.Resource.Compute.NodeGroups.AddNodes
-    (
-    -- * REST Resource
-      NodeGroupsAddNodesResource
-
-    -- * Creating a Request
-    , nodeGroupsAddNodes
-    , NodeGroupsAddNodes
-
-    -- * Request Lenses
-    , nganRequestId
-    , nganNodeGroup
-    , nganProject
-    , nganZone
-    , nganPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.addNodes@ method which the
--- 'NodeGroupsAddNodes' request conforms to.
-type NodeGroupsAddNodesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     "addNodes" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] NodeGroupsAddNodesRequest :>
-                             Post '[JSON] Operation
-
--- | Adds specified number of nodes to the node group.
---
--- /See:/ 'nodeGroupsAddNodes' smart constructor.
-data NodeGroupsAddNodes =
-  NodeGroupsAddNodes'
-    { _nganRequestId :: !(Maybe Text)
-    , _nganNodeGroup :: !Text
-    , _nganProject   :: !Text
-    , _nganZone      :: !Text
-    , _nganPayload   :: !NodeGroupsAddNodesRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsAddNodes' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nganRequestId'
---
--- * 'nganNodeGroup'
---
--- * 'nganProject'
---
--- * 'nganZone'
---
--- * 'nganPayload'
-nodeGroupsAddNodes
-    :: Text -- ^ 'nganNodeGroup'
-    -> Text -- ^ 'nganProject'
-    -> Text -- ^ 'nganZone'
-    -> NodeGroupsAddNodesRequest -- ^ 'nganPayload'
-    -> NodeGroupsAddNodes
-nodeGroupsAddNodes pNganNodeGroup_ pNganProject_ pNganZone_ pNganPayload_ =
-  NodeGroupsAddNodes'
-    { _nganRequestId = Nothing
-    , _nganNodeGroup = pNganNodeGroup_
-    , _nganProject = pNganProject_
-    , _nganZone = pNganZone_
-    , _nganPayload = pNganPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-nganRequestId :: Lens' NodeGroupsAddNodes (Maybe Text)
-nganRequestId
-  = lens _nganRequestId
-      (\ s a -> s{_nganRequestId = a})
-
--- | Name of the NodeGroup resource.
-nganNodeGroup :: Lens' NodeGroupsAddNodes Text
-nganNodeGroup
-  = lens _nganNodeGroup
-      (\ s a -> s{_nganNodeGroup = a})
-
--- | Project ID for this request.
-nganProject :: Lens' NodeGroupsAddNodes Text
-nganProject
-  = lens _nganProject (\ s a -> s{_nganProject = a})
-
--- | The name of the zone for this request.
-nganZone :: Lens' NodeGroupsAddNodes Text
-nganZone = lens _nganZone (\ s a -> s{_nganZone = a})
-
--- | Multipart request metadata.
-nganPayload :: Lens' NodeGroupsAddNodes NodeGroupsAddNodesRequest
-nganPayload
-  = lens _nganPayload (\ s a -> s{_nganPayload = a})
-
-instance GoogleRequest NodeGroupsAddNodes where
-        type Rs NodeGroupsAddNodes = Operation
-        type Scopes NodeGroupsAddNodes =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsAddNodes'{..}
-          = go _nganProject _nganZone _nganNodeGroup
-              _nganRequestId
-              (Just AltJSON)
-              _nganPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsAddNodesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/AggregatedList.hs b/gen/Network/Google/Resource/Compute/NodeGroups/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of node groups. Note: use
--- nodeGroups.listNodes for more details about each group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.aggregatedList@.
-module Network.Google.Resource.Compute.NodeGroups.AggregatedList
-    (
-    -- * REST Resource
-      NodeGroupsAggregatedListResource
-
-    -- * Creating a Request
-    , nodeGroupsAggregatedList
-    , NodeGroupsAggregatedList
-
-    -- * Request Lenses
-    , ngalOrderBy
-    , ngalProject
-    , ngalFilter
-    , ngalPageToken
-    , ngalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.aggregatedList@ method which the
--- 'NodeGroupsAggregatedList' request conforms to.
-type NodeGroupsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "nodeGroups" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] NodeGroupAggregatedList
-
--- | Retrieves an aggregated list of node groups. Note: use
--- nodeGroups.listNodes for more details about each group.
---
--- /See:/ 'nodeGroupsAggregatedList' smart constructor.
-data NodeGroupsAggregatedList =
-  NodeGroupsAggregatedList'
-    { _ngalOrderBy    :: !(Maybe Text)
-    , _ngalProject    :: !Text
-    , _ngalFilter     :: !(Maybe Text)
-    , _ngalPageToken  :: !(Maybe Text)
-    , _ngalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngalOrderBy'
---
--- * 'ngalProject'
---
--- * 'ngalFilter'
---
--- * 'ngalPageToken'
---
--- * 'ngalMaxResults'
-nodeGroupsAggregatedList
-    :: Text -- ^ 'ngalProject'
-    -> NodeGroupsAggregatedList
-nodeGroupsAggregatedList pNgalProject_ =
-  NodeGroupsAggregatedList'
-    { _ngalOrderBy = Nothing
-    , _ngalProject = pNgalProject_
-    , _ngalFilter = Nothing
-    , _ngalPageToken = Nothing
-    , _ngalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ngalOrderBy :: Lens' NodeGroupsAggregatedList (Maybe Text)
-ngalOrderBy
-  = lens _ngalOrderBy (\ s a -> s{_ngalOrderBy = a})
-
--- | Project ID for this request.
-ngalProject :: Lens' NodeGroupsAggregatedList Text
-ngalProject
-  = lens _ngalProject (\ s a -> s{_ngalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ngalFilter :: Lens' NodeGroupsAggregatedList (Maybe Text)
-ngalFilter
-  = lens _ngalFilter (\ s a -> s{_ngalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ngalPageToken :: Lens' NodeGroupsAggregatedList (Maybe Text)
-ngalPageToken
-  = lens _ngalPageToken
-      (\ s a -> s{_ngalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ngalMaxResults :: Lens' NodeGroupsAggregatedList Word32
-ngalMaxResults
-  = lens _ngalMaxResults
-      (\ s a -> s{_ngalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeGroupsAggregatedList where
-        type Rs NodeGroupsAggregatedList =
-             NodeGroupAggregatedList
-        type Scopes NodeGroupsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsAggregatedList'{..}
-          = go _ngalProject _ngalOrderBy _ngalFilter
-              _ngalPageToken
-              (Just _ngalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/Delete.hs b/gen/Network/Google/Resource/Compute/NodeGroups/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/Delete.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.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 NodeGroup resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.delete@.
-module Network.Google.Resource.Compute.NodeGroups.Delete
-    (
-    -- * REST Resource
-      NodeGroupsDeleteResource
-
-    -- * Creating a Request
-    , nodeGroupsDelete
-    , NodeGroupsDelete
-
-    -- * Request Lenses
-    , ngdRequestId
-    , ngdNodeGroup
-    , ngdProject
-    , ngdZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.delete@ method which the
--- 'NodeGroupsDelete' request conforms to.
-type NodeGroupsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified NodeGroup resource.
---
--- /See:/ 'nodeGroupsDelete' smart constructor.
-data NodeGroupsDelete =
-  NodeGroupsDelete'
-    { _ngdRequestId :: !(Maybe Text)
-    , _ngdNodeGroup :: !Text
-    , _ngdProject   :: !Text
-    , _ngdZone      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngdRequestId'
---
--- * 'ngdNodeGroup'
---
--- * 'ngdProject'
---
--- * 'ngdZone'
-nodeGroupsDelete
-    :: Text -- ^ 'ngdNodeGroup'
-    -> Text -- ^ 'ngdProject'
-    -> Text -- ^ 'ngdZone'
-    -> NodeGroupsDelete
-nodeGroupsDelete pNgdNodeGroup_ pNgdProject_ pNgdZone_ =
-  NodeGroupsDelete'
-    { _ngdRequestId = Nothing
-    , _ngdNodeGroup = pNgdNodeGroup_
-    , _ngdProject = pNgdProject_
-    , _ngdZone = pNgdZone_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ngdRequestId :: Lens' NodeGroupsDelete (Maybe Text)
-ngdRequestId
-  = lens _ngdRequestId (\ s a -> s{_ngdRequestId = a})
-
--- | Name of the NodeGroup resource to delete.
-ngdNodeGroup :: Lens' NodeGroupsDelete Text
-ngdNodeGroup
-  = lens _ngdNodeGroup (\ s a -> s{_ngdNodeGroup = a})
-
--- | Project ID for this request.
-ngdProject :: Lens' NodeGroupsDelete Text
-ngdProject
-  = lens _ngdProject (\ s a -> s{_ngdProject = a})
-
--- | The name of the zone for this request.
-ngdZone :: Lens' NodeGroupsDelete Text
-ngdZone = lens _ngdZone (\ s a -> s{_ngdZone = a})
-
-instance GoogleRequest NodeGroupsDelete where
-        type Rs NodeGroupsDelete = Operation
-        type Scopes NodeGroupsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsDelete'{..}
-          = go _ngdProject _ngdZone _ngdNodeGroup _ngdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/DeleteNodes.hs b/gen/Network/Google/Resource/Compute/NodeGroups/DeleteNodes.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/DeleteNodes.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.DeleteNodes
--- 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 specified nodes from the node group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.deleteNodes@.
-module Network.Google.Resource.Compute.NodeGroups.DeleteNodes
-    (
-    -- * REST Resource
-      NodeGroupsDeleteNodesResource
-
-    -- * Creating a Request
-    , nodeGroupsDeleteNodes
-    , NodeGroupsDeleteNodes
-
-    -- * Request Lenses
-    , ngdnRequestId
-    , ngdnNodeGroup
-    , ngdnProject
-    , ngdnZone
-    , ngdnPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.deleteNodes@ method which the
--- 'NodeGroupsDeleteNodes' request conforms to.
-type NodeGroupsDeleteNodesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     "deleteNodes" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] NodeGroupsDeleteNodesRequest :>
-                             Post '[JSON] Operation
-
--- | Deletes specified nodes from the node group.
---
--- /See:/ 'nodeGroupsDeleteNodes' smart constructor.
-data NodeGroupsDeleteNodes =
-  NodeGroupsDeleteNodes'
-    { _ngdnRequestId :: !(Maybe Text)
-    , _ngdnNodeGroup :: !Text
-    , _ngdnProject   :: !Text
-    , _ngdnZone      :: !Text
-    , _ngdnPayload   :: !NodeGroupsDeleteNodesRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsDeleteNodes' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngdnRequestId'
---
--- * 'ngdnNodeGroup'
---
--- * 'ngdnProject'
---
--- * 'ngdnZone'
---
--- * 'ngdnPayload'
-nodeGroupsDeleteNodes
-    :: Text -- ^ 'ngdnNodeGroup'
-    -> Text -- ^ 'ngdnProject'
-    -> Text -- ^ 'ngdnZone'
-    -> NodeGroupsDeleteNodesRequest -- ^ 'ngdnPayload'
-    -> NodeGroupsDeleteNodes
-nodeGroupsDeleteNodes pNgdnNodeGroup_ pNgdnProject_ pNgdnZone_ pNgdnPayload_ =
-  NodeGroupsDeleteNodes'
-    { _ngdnRequestId = Nothing
-    , _ngdnNodeGroup = pNgdnNodeGroup_
-    , _ngdnProject = pNgdnProject_
-    , _ngdnZone = pNgdnZone_
-    , _ngdnPayload = pNgdnPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ngdnRequestId :: Lens' NodeGroupsDeleteNodes (Maybe Text)
-ngdnRequestId
-  = lens _ngdnRequestId
-      (\ s a -> s{_ngdnRequestId = a})
-
--- | Name of the NodeGroup resource to delete.
-ngdnNodeGroup :: Lens' NodeGroupsDeleteNodes Text
-ngdnNodeGroup
-  = lens _ngdnNodeGroup
-      (\ s a -> s{_ngdnNodeGroup = a})
-
--- | Project ID for this request.
-ngdnProject :: Lens' NodeGroupsDeleteNodes Text
-ngdnProject
-  = lens _ngdnProject (\ s a -> s{_ngdnProject = a})
-
--- | The name of the zone for this request.
-ngdnZone :: Lens' NodeGroupsDeleteNodes Text
-ngdnZone = lens _ngdnZone (\ s a -> s{_ngdnZone = a})
-
--- | Multipart request metadata.
-ngdnPayload :: Lens' NodeGroupsDeleteNodes NodeGroupsDeleteNodesRequest
-ngdnPayload
-  = lens _ngdnPayload (\ s a -> s{_ngdnPayload = a})
-
-instance GoogleRequest NodeGroupsDeleteNodes where
-        type Rs NodeGroupsDeleteNodes = Operation
-        type Scopes NodeGroupsDeleteNodes =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsDeleteNodes'{..}
-          = go _ngdnProject _ngdnZone _ngdnNodeGroup
-              _ngdnRequestId
-              (Just AltJSON)
-              _ngdnPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsDeleteNodesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/Get.hs b/gen/Network/Google/Resource/Compute/NodeGroups/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.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)
---
--- Returns the specified NodeGroup. Get a list of available NodeGroups by
--- making a list() request. Note: the \"nodes\" field should not be used.
--- Use nodeGroups.listNodes instead.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.get@.
-module Network.Google.Resource.Compute.NodeGroups.Get
-    (
-    -- * REST Resource
-      NodeGroupsGetResource
-
-    -- * Creating a Request
-    , nodeGroupsGet
-    , NodeGroupsGet
-
-    -- * Request Lenses
-    , nggNodeGroup
-    , nggProject
-    , nggZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.get@ method which the
--- 'NodeGroupsGet' request conforms to.
-type NodeGroupsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] NodeGroup
-
--- | Returns the specified NodeGroup. Get a list of available NodeGroups by
--- making a list() request. Note: the \"nodes\" field should not be used.
--- Use nodeGroups.listNodes instead.
---
--- /See:/ 'nodeGroupsGet' smart constructor.
-data NodeGroupsGet =
-  NodeGroupsGet'
-    { _nggNodeGroup :: !Text
-    , _nggProject   :: !Text
-    , _nggZone      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nggNodeGroup'
---
--- * 'nggProject'
---
--- * 'nggZone'
-nodeGroupsGet
-    :: Text -- ^ 'nggNodeGroup'
-    -> Text -- ^ 'nggProject'
-    -> Text -- ^ 'nggZone'
-    -> NodeGroupsGet
-nodeGroupsGet pNggNodeGroup_ pNggProject_ pNggZone_ =
-  NodeGroupsGet'
-    { _nggNodeGroup = pNggNodeGroup_
-    , _nggProject = pNggProject_
-    , _nggZone = pNggZone_
-    }
-
-
--- | Name of the node group to return.
-nggNodeGroup :: Lens' NodeGroupsGet Text
-nggNodeGroup
-  = lens _nggNodeGroup (\ s a -> s{_nggNodeGroup = a})
-
--- | Project ID for this request.
-nggProject :: Lens' NodeGroupsGet Text
-nggProject
-  = lens _nggProject (\ s a -> s{_nggProject = a})
-
--- | The name of the zone for this request.
-nggZone :: Lens' NodeGroupsGet Text
-nggZone = lens _nggZone (\ s a -> s{_nggZone = a})
-
-instance GoogleRequest NodeGroupsGet where
-        type Rs NodeGroupsGet = NodeGroup
-        type Scopes NodeGroupsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsGet'{..}
-          = go _nggProject _nggZone _nggNodeGroup
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NodeGroupsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/NodeGroups/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/GetIAMPolicy.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.getIamPolicy@.
-module Network.Google.Resource.Compute.NodeGroups.GetIAMPolicy
-    (
-    -- * REST Resource
-      NodeGroupsGetIAMPolicyResource
-
-    -- * Creating a Request
-    , nodeGroupsGetIAMPolicy
-    , NodeGroupsGetIAMPolicy
-
-    -- * Request Lenses
-    , nggipProject
-    , nggipZone
-    , nggipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.getIamPolicy@ method which the
--- 'NodeGroupsGetIAMPolicy' request conforms to.
-type NodeGroupsGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "resource" Text :>
-                     "getIamPolicy" :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'nodeGroupsGetIAMPolicy' smart constructor.
-data NodeGroupsGetIAMPolicy =
-  NodeGroupsGetIAMPolicy'
-    { _nggipProject  :: !Text
-    , _nggipZone     :: !Text
-    , _nggipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nggipProject'
---
--- * 'nggipZone'
---
--- * 'nggipResource'
-nodeGroupsGetIAMPolicy
-    :: Text -- ^ 'nggipProject'
-    -> Text -- ^ 'nggipZone'
-    -> Text -- ^ 'nggipResource'
-    -> NodeGroupsGetIAMPolicy
-nodeGroupsGetIAMPolicy pNggipProject_ pNggipZone_ pNggipResource_ =
-  NodeGroupsGetIAMPolicy'
-    { _nggipProject = pNggipProject_
-    , _nggipZone = pNggipZone_
-    , _nggipResource = pNggipResource_
-    }
-
-
--- | Project ID for this request.
-nggipProject :: Lens' NodeGroupsGetIAMPolicy Text
-nggipProject
-  = lens _nggipProject (\ s a -> s{_nggipProject = a})
-
--- | The name of the zone for this request.
-nggipZone :: Lens' NodeGroupsGetIAMPolicy Text
-nggipZone
-  = lens _nggipZone (\ s a -> s{_nggipZone = a})
-
--- | Name or id of the resource for this request.
-nggipResource :: Lens' NodeGroupsGetIAMPolicy Text
-nggipResource
-  = lens _nggipResource
-      (\ s a -> s{_nggipResource = a})
-
-instance GoogleRequest NodeGroupsGetIAMPolicy where
-        type Rs NodeGroupsGetIAMPolicy = Policy
-        type Scopes NodeGroupsGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsGetIAMPolicy'{..}
-          = go _nggipProject _nggipZone _nggipResource
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/Insert.hs b/gen/Network/Google/Resource/Compute/NodeGroups/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/Insert.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.Insert
--- 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 NodeGroup resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.insert@.
-module Network.Google.Resource.Compute.NodeGroups.Insert
-    (
-    -- * REST Resource
-      NodeGroupsInsertResource
-
-    -- * Creating a Request
-    , nodeGroupsInsert
-    , NodeGroupsInsert
-
-    -- * Request Lenses
-    , ngiRequestId
-    , ngiProject
-    , ngiInitialNodeCount
-    , ngiZone
-    , ngiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.insert@ method which the
--- 'NodeGroupsInsert' request conforms to.
-type NodeGroupsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   QueryParam "initialNodeCount" (Textual Int32) :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] NodeGroup :> Post '[JSON] Operation
-
--- | Creates a NodeGroup resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'nodeGroupsInsert' smart constructor.
-data NodeGroupsInsert =
-  NodeGroupsInsert'
-    { _ngiRequestId        :: !(Maybe Text)
-    , _ngiProject          :: !Text
-    , _ngiInitialNodeCount :: !(Textual Int32)
-    , _ngiZone             :: !Text
-    , _ngiPayload          :: !NodeGroup
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngiRequestId'
---
--- * 'ngiProject'
---
--- * 'ngiInitialNodeCount'
---
--- * 'ngiZone'
---
--- * 'ngiPayload'
-nodeGroupsInsert
-    :: Text -- ^ 'ngiProject'
-    -> Int32 -- ^ 'ngiInitialNodeCount'
-    -> Text -- ^ 'ngiZone'
-    -> NodeGroup -- ^ 'ngiPayload'
-    -> NodeGroupsInsert
-nodeGroupsInsert pNgiProject_ pNgiInitialNodeCount_ pNgiZone_ pNgiPayload_ =
-  NodeGroupsInsert'
-    { _ngiRequestId = Nothing
-    , _ngiProject = pNgiProject_
-    , _ngiInitialNodeCount = _Coerce # pNgiInitialNodeCount_
-    , _ngiZone = pNgiZone_
-    , _ngiPayload = pNgiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ngiRequestId :: Lens' NodeGroupsInsert (Maybe Text)
-ngiRequestId
-  = lens _ngiRequestId (\ s a -> s{_ngiRequestId = a})
-
--- | Project ID for this request.
-ngiProject :: Lens' NodeGroupsInsert Text
-ngiProject
-  = lens _ngiProject (\ s a -> s{_ngiProject = a})
-
--- | Initial count of nodes in the node group.
-ngiInitialNodeCount :: Lens' NodeGroupsInsert Int32
-ngiInitialNodeCount
-  = lens _ngiInitialNodeCount
-      (\ s a -> s{_ngiInitialNodeCount = a})
-      . _Coerce
-
--- | The name of the zone for this request.
-ngiZone :: Lens' NodeGroupsInsert Text
-ngiZone = lens _ngiZone (\ s a -> s{_ngiZone = a})
-
--- | Multipart request metadata.
-ngiPayload :: Lens' NodeGroupsInsert NodeGroup
-ngiPayload
-  = lens _ngiPayload (\ s a -> s{_ngiPayload = a})
-
-instance GoogleRequest NodeGroupsInsert where
-        type Rs NodeGroupsInsert = Operation
-        type Scopes NodeGroupsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsInsert'{..}
-          = go _ngiProject _ngiZone (Just _ngiInitialNodeCount)
-              _ngiRequestId
-              (Just AltJSON)
-              _ngiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/List.hs b/gen/Network/Google/Resource/Compute/NodeGroups/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/List.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.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)
---
--- Retrieves a list of node groups available to the specified project.
--- Note: use nodeGroups.listNodes for more details about each group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.list@.
-module Network.Google.Resource.Compute.NodeGroups.List
-    (
-    -- * REST Resource
-      NodeGroupsListResource
-
-    -- * Creating a Request
-    , nodeGroupsList
-    , NodeGroupsList
-
-    -- * Request Lenses
-    , nglOrderBy
-    , nglProject
-    , nglZone
-    , nglFilter
-    , nglPageToken
-    , nglMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.list@ method which the
--- 'NodeGroupsList' request conforms to.
-type NodeGroupsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] NodeGroupList
-
--- | Retrieves a list of node groups available to the specified project.
--- Note: use nodeGroups.listNodes for more details about each group.
---
--- /See:/ 'nodeGroupsList' smart constructor.
-data NodeGroupsList =
-  NodeGroupsList'
-    { _nglOrderBy    :: !(Maybe Text)
-    , _nglProject    :: !Text
-    , _nglZone       :: !Text
-    , _nglFilter     :: !(Maybe Text)
-    , _nglPageToken  :: !(Maybe Text)
-    , _nglMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglOrderBy'
---
--- * 'nglProject'
---
--- * 'nglZone'
---
--- * 'nglFilter'
---
--- * 'nglPageToken'
---
--- * 'nglMaxResults'
-nodeGroupsList
-    :: Text -- ^ 'nglProject'
-    -> Text -- ^ 'nglZone'
-    -> NodeGroupsList
-nodeGroupsList pNglProject_ pNglZone_ =
-  NodeGroupsList'
-    { _nglOrderBy = Nothing
-    , _nglProject = pNglProject_
-    , _nglZone = pNglZone_
-    , _nglFilter = Nothing
-    , _nglPageToken = Nothing
-    , _nglMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-nglOrderBy :: Lens' NodeGroupsList (Maybe Text)
-nglOrderBy
-  = lens _nglOrderBy (\ s a -> s{_nglOrderBy = a})
-
--- | Project ID for this request.
-nglProject :: Lens' NodeGroupsList Text
-nglProject
-  = lens _nglProject (\ s a -> s{_nglProject = a})
-
--- | The name of the zone for this request.
-nglZone :: Lens' NodeGroupsList Text
-nglZone = lens _nglZone (\ s a -> s{_nglZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-nglFilter :: Lens' NodeGroupsList (Maybe Text)
-nglFilter
-  = lens _nglFilter (\ s a -> s{_nglFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-nglPageToken :: Lens' NodeGroupsList (Maybe Text)
-nglPageToken
-  = lens _nglPageToken (\ s a -> s{_nglPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-nglMaxResults :: Lens' NodeGroupsList Word32
-nglMaxResults
-  = lens _nglMaxResults
-      (\ s a -> s{_nglMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeGroupsList where
-        type Rs NodeGroupsList = NodeGroupList
-        type Scopes NodeGroupsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsList'{..}
-          = go _nglProject _nglZone _nglOrderBy _nglFilter
-              _nglPageToken
-              (Just _nglMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NodeGroupsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/ListNodes.hs b/gen/Network/Google/Resource/Compute/NodeGroups/ListNodes.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/ListNodes.hs
+++ /dev/null
@@ -1,199 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.ListNodes
--- 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 nodes in the node group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.listNodes@.
-module Network.Google.Resource.Compute.NodeGroups.ListNodes
-    (
-    -- * REST Resource
-      NodeGroupsListNodesResource
-
-    -- * Creating a Request
-    , nodeGroupsListNodes'
-    , NodeGroupsListNodes'
-
-    -- * Request Lenses
-    , nglnNodeGroup
-    , nglnOrderBy
-    , nglnProject
-    , nglnZone
-    , nglnFilter
-    , nglnPageToken
-    , nglnMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.listNodes@ method which the
--- 'NodeGroupsListNodes'' request conforms to.
-type NodeGroupsListNodesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     "listNodes" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 Post '[JSON] NodeGroupsListNodes
-
--- | Lists nodes in the node group.
---
--- /See:/ 'nodeGroupsListNodes'' smart constructor.
-data NodeGroupsListNodes' =
-  NodeGroupsListNodes''
-    { _nglnNodeGroup  :: !Text
-    , _nglnOrderBy    :: !(Maybe Text)
-    , _nglnProject    :: !Text
-    , _nglnZone       :: !Text
-    , _nglnFilter     :: !(Maybe Text)
-    , _nglnPageToken  :: !(Maybe Text)
-    , _nglnMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsListNodes'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nglnNodeGroup'
---
--- * 'nglnOrderBy'
---
--- * 'nglnProject'
---
--- * 'nglnZone'
---
--- * 'nglnFilter'
---
--- * 'nglnPageToken'
---
--- * 'nglnMaxResults'
-nodeGroupsListNodes'
-    :: Text -- ^ 'nglnNodeGroup'
-    -> Text -- ^ 'nglnProject'
-    -> Text -- ^ 'nglnZone'
-    -> NodeGroupsListNodes'
-nodeGroupsListNodes' pNglnNodeGroup_ pNglnProject_ pNglnZone_ =
-  NodeGroupsListNodes''
-    { _nglnNodeGroup = pNglnNodeGroup_
-    , _nglnOrderBy = Nothing
-    , _nglnProject = pNglnProject_
-    , _nglnZone = pNglnZone_
-    , _nglnFilter = Nothing
-    , _nglnPageToken = Nothing
-    , _nglnMaxResults = 500
-    }
-
-
--- | Name of the NodeGroup resource whose nodes you want to list.
-nglnNodeGroup :: Lens' NodeGroupsListNodes' Text
-nglnNodeGroup
-  = lens _nglnNodeGroup
-      (\ s a -> s{_nglnNodeGroup = a})
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-nglnOrderBy :: Lens' NodeGroupsListNodes' (Maybe Text)
-nglnOrderBy
-  = lens _nglnOrderBy (\ s a -> s{_nglnOrderBy = a})
-
--- | Project ID for this request.
-nglnProject :: Lens' NodeGroupsListNodes' Text
-nglnProject
-  = lens _nglnProject (\ s a -> s{_nglnProject = a})
-
--- | The name of the zone for this request.
-nglnZone :: Lens' NodeGroupsListNodes' Text
-nglnZone = lens _nglnZone (\ s a -> s{_nglnZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-nglnFilter :: Lens' NodeGroupsListNodes' (Maybe Text)
-nglnFilter
-  = lens _nglnFilter (\ s a -> s{_nglnFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-nglnPageToken :: Lens' NodeGroupsListNodes' (Maybe Text)
-nglnPageToken
-  = lens _nglnPageToken
-      (\ s a -> s{_nglnPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-nglnMaxResults :: Lens' NodeGroupsListNodes' Word32
-nglnMaxResults
-  = lens _nglnMaxResults
-      (\ s a -> s{_nglnMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeGroupsListNodes' where
-        type Rs NodeGroupsListNodes' = NodeGroupsListNodes
-        type Scopes NodeGroupsListNodes' =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsListNodes''{..}
-          = go _nglnProject _nglnZone _nglnNodeGroup
-              _nglnOrderBy
-              _nglnFilter
-              _nglnPageToken
-              (Just _nglnMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsListNodesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/NodeGroups/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/SetIAMPolicy.hs
+++ /dev/null
@@ -1,136 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.setIamPolicy@.
-module Network.Google.Resource.Compute.NodeGroups.SetIAMPolicy
-    (
-    -- * REST Resource
-      NodeGroupsSetIAMPolicyResource
-
-    -- * Creating a Request
-    , nodeGroupsSetIAMPolicy
-    , NodeGroupsSetIAMPolicy
-
-    -- * Request Lenses
-    , ngsipProject
-    , ngsipZone
-    , ngsipPayload
-    , ngsipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.setIamPolicy@ method which the
--- 'NodeGroupsSetIAMPolicy' request conforms to.
-type NodeGroupsSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "resource" Text :>
-                     "setIamPolicy" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] ZoneSetPolicyRequest :>
-                           Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'nodeGroupsSetIAMPolicy' smart constructor.
-data NodeGroupsSetIAMPolicy =
-  NodeGroupsSetIAMPolicy'
-    { _ngsipProject  :: !Text
-    , _ngsipZone     :: !Text
-    , _ngsipPayload  :: !ZoneSetPolicyRequest
-    , _ngsipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngsipProject'
---
--- * 'ngsipZone'
---
--- * 'ngsipPayload'
---
--- * 'ngsipResource'
-nodeGroupsSetIAMPolicy
-    :: Text -- ^ 'ngsipProject'
-    -> Text -- ^ 'ngsipZone'
-    -> ZoneSetPolicyRequest -- ^ 'ngsipPayload'
-    -> Text -- ^ 'ngsipResource'
-    -> NodeGroupsSetIAMPolicy
-nodeGroupsSetIAMPolicy pNgsipProject_ pNgsipZone_ pNgsipPayload_ pNgsipResource_ =
-  NodeGroupsSetIAMPolicy'
-    { _ngsipProject = pNgsipProject_
-    , _ngsipZone = pNgsipZone_
-    , _ngsipPayload = pNgsipPayload_
-    , _ngsipResource = pNgsipResource_
-    }
-
-
--- | Project ID for this request.
-ngsipProject :: Lens' NodeGroupsSetIAMPolicy Text
-ngsipProject
-  = lens _ngsipProject (\ s a -> s{_ngsipProject = a})
-
--- | The name of the zone for this request.
-ngsipZone :: Lens' NodeGroupsSetIAMPolicy Text
-ngsipZone
-  = lens _ngsipZone (\ s a -> s{_ngsipZone = a})
-
--- | Multipart request metadata.
-ngsipPayload :: Lens' NodeGroupsSetIAMPolicy ZoneSetPolicyRequest
-ngsipPayload
-  = lens _ngsipPayload (\ s a -> s{_ngsipPayload = a})
-
--- | Name or id of the resource for this request.
-ngsipResource :: Lens' NodeGroupsSetIAMPolicy Text
-ngsipResource
-  = lens _ngsipResource
-      (\ s a -> s{_ngsipResource = a})
-
-instance GoogleRequest NodeGroupsSetIAMPolicy where
-        type Rs NodeGroupsSetIAMPolicy = Policy
-        type Scopes NodeGroupsSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsSetIAMPolicy'{..}
-          = go _ngsipProject _ngsipZone _ngsipResource
-              (Just AltJSON)
-              _ngsipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/SetNodeTemplate.hs b/gen/Network/Google/Resource/Compute/NodeGroups/SetNodeTemplate.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/SetNodeTemplate.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.SetNodeTemplate
--- 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 node template of the node group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.setNodeTemplate@.
-module Network.Google.Resource.Compute.NodeGroups.SetNodeTemplate
-    (
-    -- * REST Resource
-      NodeGroupsSetNodeTemplateResource
-
-    -- * Creating a Request
-    , nodeGroupsSetNodeTemplate
-    , NodeGroupsSetNodeTemplate
-
-    -- * Request Lenses
-    , ngsntRequestId
-    , ngsntNodeGroup
-    , ngsntProject
-    , ngsntZone
-    , ngsntPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.setNodeTemplate@ method which the
--- 'NodeGroupsSetNodeTemplate' request conforms to.
-type NodeGroupsSetNodeTemplateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "nodeGroup" Text :>
-                     "setNodeTemplate" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] NodeGroupsSetNodeTemplateRequest :>
-                             Post '[JSON] Operation
-
--- | Updates the node template of the node group.
---
--- /See:/ 'nodeGroupsSetNodeTemplate' smart constructor.
-data NodeGroupsSetNodeTemplate =
-  NodeGroupsSetNodeTemplate'
-    { _ngsntRequestId :: !(Maybe Text)
-    , _ngsntNodeGroup :: !Text
-    , _ngsntProject   :: !Text
-    , _ngsntZone      :: !Text
-    , _ngsntPayload   :: !NodeGroupsSetNodeTemplateRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsSetNodeTemplate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngsntRequestId'
---
--- * 'ngsntNodeGroup'
---
--- * 'ngsntProject'
---
--- * 'ngsntZone'
---
--- * 'ngsntPayload'
-nodeGroupsSetNodeTemplate
-    :: Text -- ^ 'ngsntNodeGroup'
-    -> Text -- ^ 'ngsntProject'
-    -> Text -- ^ 'ngsntZone'
-    -> NodeGroupsSetNodeTemplateRequest -- ^ 'ngsntPayload'
-    -> NodeGroupsSetNodeTemplate
-nodeGroupsSetNodeTemplate pNgsntNodeGroup_ pNgsntProject_ pNgsntZone_ pNgsntPayload_ =
-  NodeGroupsSetNodeTemplate'
-    { _ngsntRequestId = Nothing
-    , _ngsntNodeGroup = pNgsntNodeGroup_
-    , _ngsntProject = pNgsntProject_
-    , _ngsntZone = pNgsntZone_
-    , _ngsntPayload = pNgsntPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ngsntRequestId :: Lens' NodeGroupsSetNodeTemplate (Maybe Text)
-ngsntRequestId
-  = lens _ngsntRequestId
-      (\ s a -> s{_ngsntRequestId = a})
-
--- | Name of the NodeGroup resource to update.
-ngsntNodeGroup :: Lens' NodeGroupsSetNodeTemplate Text
-ngsntNodeGroup
-  = lens _ngsntNodeGroup
-      (\ s a -> s{_ngsntNodeGroup = a})
-
--- | Project ID for this request.
-ngsntProject :: Lens' NodeGroupsSetNodeTemplate Text
-ngsntProject
-  = lens _ngsntProject (\ s a -> s{_ngsntProject = a})
-
--- | The name of the zone for this request.
-ngsntZone :: Lens' NodeGroupsSetNodeTemplate Text
-ngsntZone
-  = lens _ngsntZone (\ s a -> s{_ngsntZone = a})
-
--- | Multipart request metadata.
-ngsntPayload :: Lens' NodeGroupsSetNodeTemplate NodeGroupsSetNodeTemplateRequest
-ngsntPayload
-  = lens _ngsntPayload (\ s a -> s{_ngsntPayload = a})
-
-instance GoogleRequest NodeGroupsSetNodeTemplate
-         where
-        type Rs NodeGroupsSetNodeTemplate = Operation
-        type Scopes NodeGroupsSetNodeTemplate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeGroupsSetNodeTemplate'{..}
-          = go _ngsntProject _ngsntZone _ngsntNodeGroup
-              _ngsntRequestId
-              (Just AltJSON)
-              _ngsntPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsSetNodeTemplateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeGroups/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/NodeGroups/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeGroups/TestIAMPermissions.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeGroups.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeGroups.testIamPermissions@.
-module Network.Google.Resource.Compute.NodeGroups.TestIAMPermissions
-    (
-    -- * REST Resource
-      NodeGroupsTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , nodeGroupsTestIAMPermissions
-    , NodeGroupsTestIAMPermissions
-
-    -- * Request Lenses
-    , ngtipProject
-    , ngtipZone
-    , ngtipPayload
-    , ngtipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeGroups.testIamPermissions@ method which the
--- 'NodeGroupsTestIAMPermissions' request conforms to.
-type NodeGroupsTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeGroups" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'nodeGroupsTestIAMPermissions' smart constructor.
-data NodeGroupsTestIAMPermissions =
-  NodeGroupsTestIAMPermissions'
-    { _ngtipProject  :: !Text
-    , _ngtipZone     :: !Text
-    , _ngtipPayload  :: !TestPermissionsRequest
-    , _ngtipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeGroupsTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ngtipProject'
---
--- * 'ngtipZone'
---
--- * 'ngtipPayload'
---
--- * 'ngtipResource'
-nodeGroupsTestIAMPermissions
-    :: Text -- ^ 'ngtipProject'
-    -> Text -- ^ 'ngtipZone'
-    -> TestPermissionsRequest -- ^ 'ngtipPayload'
-    -> Text -- ^ 'ngtipResource'
-    -> NodeGroupsTestIAMPermissions
-nodeGroupsTestIAMPermissions pNgtipProject_ pNgtipZone_ pNgtipPayload_ pNgtipResource_ =
-  NodeGroupsTestIAMPermissions'
-    { _ngtipProject = pNgtipProject_
-    , _ngtipZone = pNgtipZone_
-    , _ngtipPayload = pNgtipPayload_
-    , _ngtipResource = pNgtipResource_
-    }
-
-
--- | Project ID for this request.
-ngtipProject :: Lens' NodeGroupsTestIAMPermissions Text
-ngtipProject
-  = lens _ngtipProject (\ s a -> s{_ngtipProject = a})
-
--- | The name of the zone for this request.
-ngtipZone :: Lens' NodeGroupsTestIAMPermissions Text
-ngtipZone
-  = lens _ngtipZone (\ s a -> s{_ngtipZone = a})
-
--- | Multipart request metadata.
-ngtipPayload :: Lens' NodeGroupsTestIAMPermissions TestPermissionsRequest
-ngtipPayload
-  = lens _ngtipPayload (\ s a -> s{_ngtipPayload = a})
-
--- | Name or id of the resource for this request.
-ngtipResource :: Lens' NodeGroupsTestIAMPermissions Text
-ngtipResource
-  = lens _ngtipResource
-      (\ s a -> s{_ngtipResource = a})
-
-instance GoogleRequest NodeGroupsTestIAMPermissions
-         where
-        type Rs NodeGroupsTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes NodeGroupsTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeGroupsTestIAMPermissions'{..}
-          = go _ngtipProject _ngtipZone _ngtipResource
-              (Just AltJSON)
-              _ngtipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeGroupsTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/AggregatedList.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/AggregatedList.hs
+++ /dev/null
@@ -1,168 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of node templates.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.aggregatedList@.
-module Network.Google.Resource.Compute.NodeTemplates.AggregatedList
-    (
-    -- * REST Resource
-      NodeTemplatesAggregatedListResource
-
-    -- * Creating a Request
-    , nodeTemplatesAggregatedList
-    , NodeTemplatesAggregatedList
-
-    -- * Request Lenses
-    , nOrderBy
-    , nProject
-    , nFilter
-    , nPageToken
-    , nMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.aggregatedList@ method which the
--- 'NodeTemplatesAggregatedList' request conforms to.
-type NodeTemplatesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "nodeTemplates" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] NodeTemplateAggregatedList
-
--- | Retrieves an aggregated list of node templates.
---
--- /See:/ 'nodeTemplatesAggregatedList' smart constructor.
-data NodeTemplatesAggregatedList =
-  NodeTemplatesAggregatedList'
-    { _nOrderBy    :: !(Maybe Text)
-    , _nProject    :: !Text
-    , _nFilter     :: !(Maybe Text)
-    , _nPageToken  :: !(Maybe Text)
-    , _nMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nOrderBy'
---
--- * 'nProject'
---
--- * 'nFilter'
---
--- * 'nPageToken'
---
--- * 'nMaxResults'
-nodeTemplatesAggregatedList
-    :: Text -- ^ 'nProject'
-    -> NodeTemplatesAggregatedList
-nodeTemplatesAggregatedList pNProject_ =
-  NodeTemplatesAggregatedList'
-    { _nOrderBy = Nothing
-    , _nProject = pNProject_
-    , _nFilter = Nothing
-    , _nPageToken = Nothing
-    , _nMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-nOrderBy :: Lens' NodeTemplatesAggregatedList (Maybe Text)
-nOrderBy = lens _nOrderBy (\ s a -> s{_nOrderBy = a})
-
--- | Project ID for this request.
-nProject :: Lens' NodeTemplatesAggregatedList Text
-nProject = lens _nProject (\ s a -> s{_nProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-nFilter :: Lens' NodeTemplatesAggregatedList (Maybe Text)
-nFilter = lens _nFilter (\ s a -> s{_nFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-nPageToken :: Lens' NodeTemplatesAggregatedList (Maybe Text)
-nPageToken
-  = lens _nPageToken (\ s a -> s{_nPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-nMaxResults :: Lens' NodeTemplatesAggregatedList Word32
-nMaxResults
-  = lens _nMaxResults (\ s a -> s{_nMaxResults = a}) .
-      _Coerce
-
-instance GoogleRequest NodeTemplatesAggregatedList
-         where
-        type Rs NodeTemplatesAggregatedList =
-             NodeTemplateAggregatedList
-        type Scopes NodeTemplatesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTemplatesAggregatedList'{..}
-          = go _nProject _nOrderBy _nFilter _nPageToken
-              (Just _nMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/Delete.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/Delete.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.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 NodeTemplate resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.delete@.
-module Network.Google.Resource.Compute.NodeTemplates.Delete
-    (
-    -- * REST Resource
-      NodeTemplatesDeleteResource
-
-    -- * Creating a Request
-    , nodeTemplatesDelete
-    , NodeTemplatesDelete
-
-    -- * Request Lenses
-    , ntdRequestId
-    , ntdProject
-    , ntdNodeTemplate
-    , ntdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.delete@ method which the
--- 'NodeTemplatesDelete' request conforms to.
-type NodeTemplatesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   Capture "nodeTemplate" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified NodeTemplate resource.
---
--- /See:/ 'nodeTemplatesDelete' smart constructor.
-data NodeTemplatesDelete =
-  NodeTemplatesDelete'
-    { _ntdRequestId    :: !(Maybe Text)
-    , _ntdProject      :: !Text
-    , _ntdNodeTemplate :: !Text
-    , _ntdRegion       :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntdRequestId'
---
--- * 'ntdProject'
---
--- * 'ntdNodeTemplate'
---
--- * 'ntdRegion'
-nodeTemplatesDelete
-    :: Text -- ^ 'ntdProject'
-    -> Text -- ^ 'ntdNodeTemplate'
-    -> Text -- ^ 'ntdRegion'
-    -> NodeTemplatesDelete
-nodeTemplatesDelete pNtdProject_ pNtdNodeTemplate_ pNtdRegion_ =
-  NodeTemplatesDelete'
-    { _ntdRequestId = Nothing
-    , _ntdProject = pNtdProject_
-    , _ntdNodeTemplate = pNtdNodeTemplate_
-    , _ntdRegion = pNtdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ntdRequestId :: Lens' NodeTemplatesDelete (Maybe Text)
-ntdRequestId
-  = lens _ntdRequestId (\ s a -> s{_ntdRequestId = a})
-
--- | Project ID for this request.
-ntdProject :: Lens' NodeTemplatesDelete Text
-ntdProject
-  = lens _ntdProject (\ s a -> s{_ntdProject = a})
-
--- | Name of the NodeTemplate resource to delete.
-ntdNodeTemplate :: Lens' NodeTemplatesDelete Text
-ntdNodeTemplate
-  = lens _ntdNodeTemplate
-      (\ s a -> s{_ntdNodeTemplate = a})
-
--- | The name of the region for this request.
-ntdRegion :: Lens' NodeTemplatesDelete Text
-ntdRegion
-  = lens _ntdRegion (\ s a -> s{_ntdRegion = a})
-
-instance GoogleRequest NodeTemplatesDelete where
-        type Rs NodeTemplatesDelete = Operation
-        type Scopes NodeTemplatesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeTemplatesDelete'{..}
-          = go _ntdProject _ntdRegion _ntdNodeTemplate
-              _ntdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/Get.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/Get.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.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)
---
--- Returns the specified node template. Gets a list of available node
--- templates by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.get@.
-module Network.Google.Resource.Compute.NodeTemplates.Get
-    (
-    -- * REST Resource
-      NodeTemplatesGetResource
-
-    -- * Creating a Request
-    , nodeTemplatesGet
-    , NodeTemplatesGet
-
-    -- * Request Lenses
-    , nodProject
-    , nodNodeTemplate
-    , nodRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.get@ method which the
--- 'NodeTemplatesGet' request conforms to.
-type NodeTemplatesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   Capture "nodeTemplate" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] NodeTemplate
-
--- | Returns the specified node template. Gets a list of available node
--- templates by making a list() request.
---
--- /See:/ 'nodeTemplatesGet' smart constructor.
-data NodeTemplatesGet =
-  NodeTemplatesGet'
-    { _nodProject      :: !Text
-    , _nodNodeTemplate :: !Text
-    , _nodRegion       :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nodProject'
---
--- * 'nodNodeTemplate'
---
--- * 'nodRegion'
-nodeTemplatesGet
-    :: Text -- ^ 'nodProject'
-    -> Text -- ^ 'nodNodeTemplate'
-    -> Text -- ^ 'nodRegion'
-    -> NodeTemplatesGet
-nodeTemplatesGet pNodProject_ pNodNodeTemplate_ pNodRegion_ =
-  NodeTemplatesGet'
-    { _nodProject = pNodProject_
-    , _nodNodeTemplate = pNodNodeTemplate_
-    , _nodRegion = pNodRegion_
-    }
-
-
--- | Project ID for this request.
-nodProject :: Lens' NodeTemplatesGet Text
-nodProject
-  = lens _nodProject (\ s a -> s{_nodProject = a})
-
--- | Name of the node template to return.
-nodNodeTemplate :: Lens' NodeTemplatesGet Text
-nodNodeTemplate
-  = lens _nodNodeTemplate
-      (\ s a -> s{_nodNodeTemplate = a})
-
--- | The name of the region for this request.
-nodRegion :: Lens' NodeTemplatesGet Text
-nodRegion
-  = lens _nodRegion (\ s a -> s{_nodRegion = a})
-
-instance GoogleRequest NodeTemplatesGet where
-        type Rs NodeTemplatesGet = NodeTemplate
-        type Scopes NodeTemplatesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTemplatesGet'{..}
-          = go _nodProject _nodRegion _nodNodeTemplate
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/GetIAMPolicy.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.getIamPolicy@.
-module Network.Google.Resource.Compute.NodeTemplates.GetIAMPolicy
-    (
-    -- * REST Resource
-      NodeTemplatesGetIAMPolicyResource
-
-    -- * Creating a Request
-    , nodeTemplatesGetIAMPolicy
-    , NodeTemplatesGetIAMPolicy
-
-    -- * Request Lenses
-    , ntgipProject
-    , ntgipResource
-    , ntgipRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.getIamPolicy@ method which the
--- 'NodeTemplatesGetIAMPolicy' request conforms to.
-type NodeTemplatesGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   Capture "resource" Text :>
-                     "getIamPolicy" :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'nodeTemplatesGetIAMPolicy' smart constructor.
-data NodeTemplatesGetIAMPolicy =
-  NodeTemplatesGetIAMPolicy'
-    { _ntgipProject  :: !Text
-    , _ntgipResource :: !Text
-    , _ntgipRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntgipProject'
---
--- * 'ntgipResource'
---
--- * 'ntgipRegion'
-nodeTemplatesGetIAMPolicy
-    :: Text -- ^ 'ntgipProject'
-    -> Text -- ^ 'ntgipResource'
-    -> Text -- ^ 'ntgipRegion'
-    -> NodeTemplatesGetIAMPolicy
-nodeTemplatesGetIAMPolicy pNtgipProject_ pNtgipResource_ pNtgipRegion_ =
-  NodeTemplatesGetIAMPolicy'
-    { _ntgipProject = pNtgipProject_
-    , _ntgipResource = pNtgipResource_
-    , _ntgipRegion = pNtgipRegion_
-    }
-
-
--- | Project ID for this request.
-ntgipProject :: Lens' NodeTemplatesGetIAMPolicy Text
-ntgipProject
-  = lens _ntgipProject (\ s a -> s{_ntgipProject = a})
-
--- | Name or id of the resource for this request.
-ntgipResource :: Lens' NodeTemplatesGetIAMPolicy Text
-ntgipResource
-  = lens _ntgipResource
-      (\ s a -> s{_ntgipResource = a})
-
--- | The name of the region for this request.
-ntgipRegion :: Lens' NodeTemplatesGetIAMPolicy Text
-ntgipRegion
-  = lens _ntgipRegion (\ s a -> s{_ntgipRegion = a})
-
-instance GoogleRequest NodeTemplatesGetIAMPolicy
-         where
-        type Rs NodeTemplatesGetIAMPolicy = Policy
-        type Scopes NodeTemplatesGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTemplatesGetIAMPolicy'{..}
-          = go _ntgipProject _ntgipRegion _ntgipResource
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/Insert.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/Insert.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.Insert
--- 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 NodeTemplate resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.insert@.
-module Network.Google.Resource.Compute.NodeTemplates.Insert
-    (
-    -- * REST Resource
-      NodeTemplatesInsertResource
-
-    -- * Creating a Request
-    , nodeTemplatesInsert
-    , NodeTemplatesInsert
-
-    -- * Request Lenses
-    , ntiRequestId
-    , ntiProject
-    , ntiPayload
-    , ntiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.insert@ method which the
--- 'NodeTemplatesInsert' request conforms to.
-type NodeTemplatesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] NodeTemplate :>
-                         Post '[JSON] Operation
-
--- | Creates a NodeTemplate resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'nodeTemplatesInsert' smart constructor.
-data NodeTemplatesInsert =
-  NodeTemplatesInsert'
-    { _ntiRequestId :: !(Maybe Text)
-    , _ntiProject   :: !Text
-    , _ntiPayload   :: !NodeTemplate
-    , _ntiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntiRequestId'
---
--- * 'ntiProject'
---
--- * 'ntiPayload'
---
--- * 'ntiRegion'
-nodeTemplatesInsert
-    :: Text -- ^ 'ntiProject'
-    -> NodeTemplate -- ^ 'ntiPayload'
-    -> Text -- ^ 'ntiRegion'
-    -> NodeTemplatesInsert
-nodeTemplatesInsert pNtiProject_ pNtiPayload_ pNtiRegion_ =
-  NodeTemplatesInsert'
-    { _ntiRequestId = Nothing
-    , _ntiProject = pNtiProject_
-    , _ntiPayload = pNtiPayload_
-    , _ntiRegion = pNtiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ntiRequestId :: Lens' NodeTemplatesInsert (Maybe Text)
-ntiRequestId
-  = lens _ntiRequestId (\ s a -> s{_ntiRequestId = a})
-
--- | Project ID for this request.
-ntiProject :: Lens' NodeTemplatesInsert Text
-ntiProject
-  = lens _ntiProject (\ s a -> s{_ntiProject = a})
-
--- | Multipart request metadata.
-ntiPayload :: Lens' NodeTemplatesInsert NodeTemplate
-ntiPayload
-  = lens _ntiPayload (\ s a -> s{_ntiPayload = a})
-
--- | The name of the region for this request.
-ntiRegion :: Lens' NodeTemplatesInsert Text
-ntiRegion
-  = lens _ntiRegion (\ s a -> s{_ntiRegion = a})
-
-instance GoogleRequest NodeTemplatesInsert where
-        type Rs NodeTemplatesInsert = Operation
-        type Scopes NodeTemplatesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeTemplatesInsert'{..}
-          = go _ntiProject _ntiRegion _ntiRequestId
-              (Just AltJSON)
-              _ntiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/List.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/List.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.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)
---
--- Retrieves a list of node templates available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.list@.
-module Network.Google.Resource.Compute.NodeTemplates.List
-    (
-    -- * REST Resource
-      NodeTemplatesListResource
-
-    -- * Creating a Request
-    , nodeTemplatesList
-    , NodeTemplatesList
-
-    -- * Request Lenses
-    , ntlOrderBy
-    , ntlProject
-    , ntlFilter
-    , ntlRegion
-    , ntlPageToken
-    , ntlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.list@ method which the
--- 'NodeTemplatesList' request conforms to.
-type NodeTemplatesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] NodeTemplateList
-
--- | Retrieves a list of node templates available to the specified project.
---
--- /See:/ 'nodeTemplatesList' smart constructor.
-data NodeTemplatesList =
-  NodeTemplatesList'
-    { _ntlOrderBy    :: !(Maybe Text)
-    , _ntlProject    :: !Text
-    , _ntlFilter     :: !(Maybe Text)
-    , _ntlRegion     :: !Text
-    , _ntlPageToken  :: !(Maybe Text)
-    , _ntlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntlOrderBy'
---
--- * 'ntlProject'
---
--- * 'ntlFilter'
---
--- * 'ntlRegion'
---
--- * 'ntlPageToken'
---
--- * 'ntlMaxResults'
-nodeTemplatesList
-    :: Text -- ^ 'ntlProject'
-    -> Text -- ^ 'ntlRegion'
-    -> NodeTemplatesList
-nodeTemplatesList pNtlProject_ pNtlRegion_ =
-  NodeTemplatesList'
-    { _ntlOrderBy = Nothing
-    , _ntlProject = pNtlProject_
-    , _ntlFilter = Nothing
-    , _ntlRegion = pNtlRegion_
-    , _ntlPageToken = Nothing
-    , _ntlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ntlOrderBy :: Lens' NodeTemplatesList (Maybe Text)
-ntlOrderBy
-  = lens _ntlOrderBy (\ s a -> s{_ntlOrderBy = a})
-
--- | Project ID for this request.
-ntlProject :: Lens' NodeTemplatesList Text
-ntlProject
-  = lens _ntlProject (\ s a -> s{_ntlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ntlFilter :: Lens' NodeTemplatesList (Maybe Text)
-ntlFilter
-  = lens _ntlFilter (\ s a -> s{_ntlFilter = a})
-
--- | The name of the region for this request.
-ntlRegion :: Lens' NodeTemplatesList Text
-ntlRegion
-  = lens _ntlRegion (\ s a -> s{_ntlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ntlPageToken :: Lens' NodeTemplatesList (Maybe Text)
-ntlPageToken
-  = lens _ntlPageToken (\ s a -> s{_ntlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ntlMaxResults :: Lens' NodeTemplatesList Word32
-ntlMaxResults
-  = lens _ntlMaxResults
-      (\ s a -> s{_ntlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeTemplatesList where
-        type Rs NodeTemplatesList = NodeTemplateList
-        type Scopes NodeTemplatesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTemplatesList'{..}
-          = go _ntlProject _ntlRegion _ntlOrderBy _ntlFilter
-              _ntlPageToken
-              (Just _ntlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/SetIAMPolicy.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.setIamPolicy@.
-module Network.Google.Resource.Compute.NodeTemplates.SetIAMPolicy
-    (
-    -- * REST Resource
-      NodeTemplatesSetIAMPolicyResource
-
-    -- * Creating a Request
-    , nodeTemplatesSetIAMPolicy
-    , NodeTemplatesSetIAMPolicy
-
-    -- * Request Lenses
-    , ntsipProject
-    , ntsipPayload
-    , ntsipResource
-    , ntsipRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.setIamPolicy@ method which the
--- 'NodeTemplatesSetIAMPolicy' request conforms to.
-type NodeTemplatesSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   Capture "resource" Text :>
-                     "setIamPolicy" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] RegionSetPolicyRequest :>
-                           Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'nodeTemplatesSetIAMPolicy' smart constructor.
-data NodeTemplatesSetIAMPolicy =
-  NodeTemplatesSetIAMPolicy'
-    { _ntsipProject  :: !Text
-    , _ntsipPayload  :: !RegionSetPolicyRequest
-    , _ntsipResource :: !Text
-    , _ntsipRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntsipProject'
---
--- * 'ntsipPayload'
---
--- * 'ntsipResource'
---
--- * 'ntsipRegion'
-nodeTemplatesSetIAMPolicy
-    :: Text -- ^ 'ntsipProject'
-    -> RegionSetPolicyRequest -- ^ 'ntsipPayload'
-    -> Text -- ^ 'ntsipResource'
-    -> Text -- ^ 'ntsipRegion'
-    -> NodeTemplatesSetIAMPolicy
-nodeTemplatesSetIAMPolicy pNtsipProject_ pNtsipPayload_ pNtsipResource_ pNtsipRegion_ =
-  NodeTemplatesSetIAMPolicy'
-    { _ntsipProject = pNtsipProject_
-    , _ntsipPayload = pNtsipPayload_
-    , _ntsipResource = pNtsipResource_
-    , _ntsipRegion = pNtsipRegion_
-    }
-
-
--- | Project ID for this request.
-ntsipProject :: Lens' NodeTemplatesSetIAMPolicy Text
-ntsipProject
-  = lens _ntsipProject (\ s a -> s{_ntsipProject = a})
-
--- | Multipart request metadata.
-ntsipPayload :: Lens' NodeTemplatesSetIAMPolicy RegionSetPolicyRequest
-ntsipPayload
-  = lens _ntsipPayload (\ s a -> s{_ntsipPayload = a})
-
--- | Name or id of the resource for this request.
-ntsipResource :: Lens' NodeTemplatesSetIAMPolicy Text
-ntsipResource
-  = lens _ntsipResource
-      (\ s a -> s{_ntsipResource = a})
-
--- | The name of the region for this request.
-ntsipRegion :: Lens' NodeTemplatesSetIAMPolicy Text
-ntsipRegion
-  = lens _ntsipRegion (\ s a -> s{_ntsipRegion = a})
-
-instance GoogleRequest NodeTemplatesSetIAMPolicy
-         where
-        type Rs NodeTemplatesSetIAMPolicy = Policy
-        type Scopes NodeTemplatesSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient NodeTemplatesSetIAMPolicy'{..}
-          = go _ntsipProject _ntsipRegion _ntsipResource
-              (Just AltJSON)
-              _ntsipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTemplatesSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTemplates/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/NodeTemplates/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTemplates/TestIAMPermissions.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTemplates.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTemplates.testIamPermissions@.
-module Network.Google.Resource.Compute.NodeTemplates.TestIAMPermissions
-    (
-    -- * REST Resource
-      NodeTemplatesTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , nodeTemplatesTestIAMPermissions
-    , NodeTemplatesTestIAMPermissions
-
-    -- * Request Lenses
-    , nttipProject
-    , nttipPayload
-    , nttipResource
-    , nttipRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTemplates.testIamPermissions@ method which the
--- 'NodeTemplatesTestIAMPermissions' request conforms to.
-type NodeTemplatesTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "nodeTemplates" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'nodeTemplatesTestIAMPermissions' smart constructor.
-data NodeTemplatesTestIAMPermissions =
-  NodeTemplatesTestIAMPermissions'
-    { _nttipProject  :: !Text
-    , _nttipPayload  :: !TestPermissionsRequest
-    , _nttipResource :: !Text
-    , _nttipRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTemplatesTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'nttipProject'
---
--- * 'nttipPayload'
---
--- * 'nttipResource'
---
--- * 'nttipRegion'
-nodeTemplatesTestIAMPermissions
-    :: Text -- ^ 'nttipProject'
-    -> TestPermissionsRequest -- ^ 'nttipPayload'
-    -> Text -- ^ 'nttipResource'
-    -> Text -- ^ 'nttipRegion'
-    -> NodeTemplatesTestIAMPermissions
-nodeTemplatesTestIAMPermissions pNttipProject_ pNttipPayload_ pNttipResource_ pNttipRegion_ =
-  NodeTemplatesTestIAMPermissions'
-    { _nttipProject = pNttipProject_
-    , _nttipPayload = pNttipPayload_
-    , _nttipResource = pNttipResource_
-    , _nttipRegion = pNttipRegion_
-    }
-
-
--- | Project ID for this request.
-nttipProject :: Lens' NodeTemplatesTestIAMPermissions Text
-nttipProject
-  = lens _nttipProject (\ s a -> s{_nttipProject = a})
-
--- | Multipart request metadata.
-nttipPayload :: Lens' NodeTemplatesTestIAMPermissions TestPermissionsRequest
-nttipPayload
-  = lens _nttipPayload (\ s a -> s{_nttipPayload = a})
-
--- | Name or id of the resource for this request.
-nttipResource :: Lens' NodeTemplatesTestIAMPermissions Text
-nttipResource
-  = lens _nttipResource
-      (\ s a -> s{_nttipResource = a})
-
--- | The name of the region for this request.
-nttipRegion :: Lens' NodeTemplatesTestIAMPermissions Text
-nttipRegion
-  = lens _nttipRegion (\ s a -> s{_nttipRegion = a})
-
-instance GoogleRequest
-           NodeTemplatesTestIAMPermissions
-         where
-        type Rs NodeTemplatesTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes NodeTemplatesTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTemplatesTestIAMPermissions'{..}
-          = go _nttipProject _nttipRegion _nttipResource
-              (Just AltJSON)
-              _nttipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy NodeTemplatesTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTypes/AggregatedList.hs b/gen/Network/Google/Resource/Compute/NodeTypes/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTypes/AggregatedList.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTypes.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of node types.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTypes.aggregatedList@.
-module Network.Google.Resource.Compute.NodeTypes.AggregatedList
-    (
-    -- * REST Resource
-      NodeTypesAggregatedListResource
-
-    -- * Creating a Request
-    , nodeTypesAggregatedList
-    , NodeTypesAggregatedList
-
-    -- * Request Lenses
-    , ntalOrderBy
-    , ntalProject
-    , ntalFilter
-    , ntalPageToken
-    , ntalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTypes.aggregatedList@ method which the
--- 'NodeTypesAggregatedList' request conforms to.
-type NodeTypesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "nodeTypes" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] NodeTypeAggregatedList
-
--- | Retrieves an aggregated list of node types.
---
--- /See:/ 'nodeTypesAggregatedList' smart constructor.
-data NodeTypesAggregatedList =
-  NodeTypesAggregatedList'
-    { _ntalOrderBy    :: !(Maybe Text)
-    , _ntalProject    :: !Text
-    , _ntalFilter     :: !(Maybe Text)
-    , _ntalPageToken  :: !(Maybe Text)
-    , _ntalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntalOrderBy'
---
--- * 'ntalProject'
---
--- * 'ntalFilter'
---
--- * 'ntalPageToken'
---
--- * 'ntalMaxResults'
-nodeTypesAggregatedList
-    :: Text -- ^ 'ntalProject'
-    -> NodeTypesAggregatedList
-nodeTypesAggregatedList pNtalProject_ =
-  NodeTypesAggregatedList'
-    { _ntalOrderBy = Nothing
-    , _ntalProject = pNtalProject_
-    , _ntalFilter = Nothing
-    , _ntalPageToken = Nothing
-    , _ntalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ntalOrderBy :: Lens' NodeTypesAggregatedList (Maybe Text)
-ntalOrderBy
-  = lens _ntalOrderBy (\ s a -> s{_ntalOrderBy = a})
-
--- | Project ID for this request.
-ntalProject :: Lens' NodeTypesAggregatedList Text
-ntalProject
-  = lens _ntalProject (\ s a -> s{_ntalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ntalFilter :: Lens' NodeTypesAggregatedList (Maybe Text)
-ntalFilter
-  = lens _ntalFilter (\ s a -> s{_ntalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ntalPageToken :: Lens' NodeTypesAggregatedList (Maybe Text)
-ntalPageToken
-  = lens _ntalPageToken
-      (\ s a -> s{_ntalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ntalMaxResults :: Lens' NodeTypesAggregatedList Word32
-ntalMaxResults
-  = lens _ntalMaxResults
-      (\ s a -> s{_ntalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeTypesAggregatedList where
-        type Rs NodeTypesAggregatedList =
-             NodeTypeAggregatedList
-        type Scopes NodeTypesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTypesAggregatedList'{..}
-          = go _ntalProject _ntalOrderBy _ntalFilter
-              _ntalPageToken
-              (Just _ntalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy NodeTypesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTypes/Get.hs b/gen/Network/Google/Resource/Compute/NodeTypes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTypes/Get.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTypes.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)
---
--- Returns the specified node type. Gets a list of available node types by
--- making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTypes.get@.
-module Network.Google.Resource.Compute.NodeTypes.Get
-    (
-    -- * REST Resource
-      NodeTypesGetResource
-
-    -- * Creating a Request
-    , nodeTypesGet
-    , NodeTypesGet
-
-    -- * Request Lenses
-    , ntgProject
-    , ntgZone
-    , ntgNodeType
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTypes.get@ method which the
--- 'NodeTypesGet' request conforms to.
-type NodeTypesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeTypes" :>
-                   Capture "nodeType" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] NodeType
-
--- | Returns the specified node type. Gets a list of available node types by
--- making a list() request.
---
--- /See:/ 'nodeTypesGet' smart constructor.
-data NodeTypesGet =
-  NodeTypesGet'
-    { _ntgProject  :: !Text
-    , _ntgZone     :: !Text
-    , _ntgNodeType :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntgProject'
---
--- * 'ntgZone'
---
--- * 'ntgNodeType'
-nodeTypesGet
-    :: Text -- ^ 'ntgProject'
-    -> Text -- ^ 'ntgZone'
-    -> Text -- ^ 'ntgNodeType'
-    -> NodeTypesGet
-nodeTypesGet pNtgProject_ pNtgZone_ pNtgNodeType_ =
-  NodeTypesGet'
-    { _ntgProject = pNtgProject_
-    , _ntgZone = pNtgZone_
-    , _ntgNodeType = pNtgNodeType_
-    }
-
-
--- | Project ID for this request.
-ntgProject :: Lens' NodeTypesGet Text
-ntgProject
-  = lens _ntgProject (\ s a -> s{_ntgProject = a})
-
--- | The name of the zone for this request.
-ntgZone :: Lens' NodeTypesGet Text
-ntgZone = lens _ntgZone (\ s a -> s{_ntgZone = a})
-
--- | Name of the node type to return.
-ntgNodeType :: Lens' NodeTypesGet Text
-ntgNodeType
-  = lens _ntgNodeType (\ s a -> s{_ntgNodeType = a})
-
-instance GoogleRequest NodeTypesGet where
-        type Rs NodeTypesGet = NodeType
-        type Scopes NodeTypesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTypesGet'{..}
-          = go _ntgProject _ntgZone _ntgNodeType (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NodeTypesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/NodeTypes/List.hs b/gen/Network/Google/Resource/Compute/NodeTypes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/NodeTypes/List.hs
+++ /dev/null
@@ -1,181 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.NodeTypes.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)
---
--- Retrieves a list of node types available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.nodeTypes.list@.
-module Network.Google.Resource.Compute.NodeTypes.List
-    (
-    -- * REST Resource
-      NodeTypesListResource
-
-    -- * Creating a Request
-    , nodeTypesList
-    , NodeTypesList
-
-    -- * Request Lenses
-    , ntltOrderBy
-    , ntltProject
-    , ntltZone
-    , ntltFilter
-    , ntltPageToken
-    , ntltMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.nodeTypes.list@ method which the
--- 'NodeTypesList' request conforms to.
-type NodeTypesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "nodeTypes" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] NodeTypeList
-
--- | Retrieves a list of node types available to the specified project.
---
--- /See:/ 'nodeTypesList' smart constructor.
-data NodeTypesList =
-  NodeTypesList'
-    { _ntltOrderBy    :: !(Maybe Text)
-    , _ntltProject    :: !Text
-    , _ntltZone       :: !Text
-    , _ntltFilter     :: !(Maybe Text)
-    , _ntltPageToken  :: !(Maybe Text)
-    , _ntltMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'NodeTypesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ntltOrderBy'
---
--- * 'ntltProject'
---
--- * 'ntltZone'
---
--- * 'ntltFilter'
---
--- * 'ntltPageToken'
---
--- * 'ntltMaxResults'
-nodeTypesList
-    :: Text -- ^ 'ntltProject'
-    -> Text -- ^ 'ntltZone'
-    -> NodeTypesList
-nodeTypesList pNtltProject_ pNtltZone_ =
-  NodeTypesList'
-    { _ntltOrderBy = Nothing
-    , _ntltProject = pNtltProject_
-    , _ntltZone = pNtltZone_
-    , _ntltFilter = Nothing
-    , _ntltPageToken = Nothing
-    , _ntltMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ntltOrderBy :: Lens' NodeTypesList (Maybe Text)
-ntltOrderBy
-  = lens _ntltOrderBy (\ s a -> s{_ntltOrderBy = a})
-
--- | Project ID for this request.
-ntltProject :: Lens' NodeTypesList Text
-ntltProject
-  = lens _ntltProject (\ s a -> s{_ntltProject = a})
-
--- | The name of the zone for this request.
-ntltZone :: Lens' NodeTypesList Text
-ntltZone = lens _ntltZone (\ s a -> s{_ntltZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ntltFilter :: Lens' NodeTypesList (Maybe Text)
-ntltFilter
-  = lens _ntltFilter (\ s a -> s{_ntltFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ntltPageToken :: Lens' NodeTypesList (Maybe Text)
-ntltPageToken
-  = lens _ntltPageToken
-      (\ s a -> s{_ntltPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ntltMaxResults :: Lens' NodeTypesList Word32
-ntltMaxResults
-  = lens _ntltMaxResults
-      (\ s a -> s{_ntltMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest NodeTypesList where
-        type Rs NodeTypesList = NodeTypeList
-        type Scopes NodeTypesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient NodeTypesList'{..}
-          = go _ntltProject _ntltZone _ntltOrderBy _ntltFilter
-              _ntltPageToken
-              (Just _ntltMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy NodeTypesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/DisableXpnHost.hs b/gen/Network/Google/Resource/Compute/Projects/DisableXpnHost.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/DisableXpnHost.hs
+++ /dev/null
@@ -1,111 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.DisableXpnHost
--- 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)
---
--- Disable this project as a shared VPC host project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.disableXpnHost@.
-module Network.Google.Resource.Compute.Projects.DisableXpnHost
-    (
-    -- * REST Resource
-      ProjectsDisableXpnHostResource
-
-    -- * Creating a Request
-    , projectsDisableXpnHost
-    , ProjectsDisableXpnHost
-
-    -- * Request Lenses
-    , pdxhRequestId
-    , pdxhProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.disableXpnHost@ method which the
--- 'ProjectsDisableXpnHost' request conforms to.
-type ProjectsDisableXpnHostResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "disableXpnHost" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Disable this project as a shared VPC host project.
---
--- /See:/ 'projectsDisableXpnHost' smart constructor.
-data ProjectsDisableXpnHost =
-  ProjectsDisableXpnHost'
-    { _pdxhRequestId :: !(Maybe Text)
-    , _pdxhProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsDisableXpnHost' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pdxhRequestId'
---
--- * 'pdxhProject'
-projectsDisableXpnHost
-    :: Text -- ^ 'pdxhProject'
-    -> ProjectsDisableXpnHost
-projectsDisableXpnHost pPdxhProject_ =
-  ProjectsDisableXpnHost'
-    {_pdxhRequestId = Nothing, _pdxhProject = pPdxhProject_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pdxhRequestId :: Lens' ProjectsDisableXpnHost (Maybe Text)
-pdxhRequestId
-  = lens _pdxhRequestId
-      (\ s a -> s{_pdxhRequestId = a})
-
--- | Project ID for this request.
-pdxhProject :: Lens' ProjectsDisableXpnHost Text
-pdxhProject
-  = lens _pdxhProject (\ s a -> s{_pdxhProject = a})
-
-instance GoogleRequest ProjectsDisableXpnHost where
-        type Rs ProjectsDisableXpnHost = Operation
-        type Scopes ProjectsDisableXpnHost =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsDisableXpnHost'{..}
-          = go _pdxhProject _pdxhRequestId (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsDisableXpnHostResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/DisableXpnResource.hs b/gen/Network/Google/Resource/Compute/Projects/DisableXpnResource.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/DisableXpnResource.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.DisableXpnResource
--- 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)
---
--- Disable a serivce resource (a.k.a service project) associated with this
--- host project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.disableXpnResource@.
-module Network.Google.Resource.Compute.Projects.DisableXpnResource
-    (
-    -- * REST Resource
-      ProjectsDisableXpnResourceResource
-
-    -- * Creating a Request
-    , projectsDisableXpnResource
-    , ProjectsDisableXpnResource
-
-    -- * Request Lenses
-    , pdxrRequestId
-    , pdxrProject
-    , pdxrPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.disableXpnResource@ method which the
--- 'ProjectsDisableXpnResource' request conforms to.
-type ProjectsDisableXpnResourceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "disableXpnResource" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ProjectsDisableXpnResourceRequest :>
-                     Post '[JSON] Operation
-
--- | Disable a serivce resource (a.k.a service project) associated with this
--- host project.
---
--- /See:/ 'projectsDisableXpnResource' smart constructor.
-data ProjectsDisableXpnResource =
-  ProjectsDisableXpnResource'
-    { _pdxrRequestId :: !(Maybe Text)
-    , _pdxrProject   :: !Text
-    , _pdxrPayload   :: !ProjectsDisableXpnResourceRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsDisableXpnResource' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pdxrRequestId'
---
--- * 'pdxrProject'
---
--- * 'pdxrPayload'
-projectsDisableXpnResource
-    :: Text -- ^ 'pdxrProject'
-    -> ProjectsDisableXpnResourceRequest -- ^ 'pdxrPayload'
-    -> ProjectsDisableXpnResource
-projectsDisableXpnResource pPdxrProject_ pPdxrPayload_ =
-  ProjectsDisableXpnResource'
-    { _pdxrRequestId = Nothing
-    , _pdxrProject = pPdxrProject_
-    , _pdxrPayload = pPdxrPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pdxrRequestId :: Lens' ProjectsDisableXpnResource (Maybe Text)
-pdxrRequestId
-  = lens _pdxrRequestId
-      (\ s a -> s{_pdxrRequestId = a})
-
--- | Project ID for this request.
-pdxrProject :: Lens' ProjectsDisableXpnResource Text
-pdxrProject
-  = lens _pdxrProject (\ s a -> s{_pdxrProject = a})
-
--- | Multipart request metadata.
-pdxrPayload :: Lens' ProjectsDisableXpnResource ProjectsDisableXpnResourceRequest
-pdxrPayload
-  = lens _pdxrPayload (\ s a -> s{_pdxrPayload = a})
-
-instance GoogleRequest ProjectsDisableXpnResource
-         where
-        type Rs ProjectsDisableXpnResource = Operation
-        type Scopes ProjectsDisableXpnResource =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsDisableXpnResource'{..}
-          = go _pdxrProject _pdxrRequestId (Just AltJSON)
-              _pdxrPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsDisableXpnResourceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/EnableXpnHost.hs b/gen/Network/Google/Resource/Compute/Projects/EnableXpnHost.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/EnableXpnHost.hs
+++ /dev/null
@@ -1,111 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.EnableXpnHost
--- 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)
---
--- Enable this project as a shared VPC host project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.enableXpnHost@.
-module Network.Google.Resource.Compute.Projects.EnableXpnHost
-    (
-    -- * REST Resource
-      ProjectsEnableXpnHostResource
-
-    -- * Creating a Request
-    , projectsEnableXpnHost
-    , ProjectsEnableXpnHost
-
-    -- * Request Lenses
-    , pexhRequestId
-    , pexhProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.enableXpnHost@ method which the
--- 'ProjectsEnableXpnHost' request conforms to.
-type ProjectsEnableXpnHostResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "enableXpnHost" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Enable this project as a shared VPC host project.
---
--- /See:/ 'projectsEnableXpnHost' smart constructor.
-data ProjectsEnableXpnHost =
-  ProjectsEnableXpnHost'
-    { _pexhRequestId :: !(Maybe Text)
-    , _pexhProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsEnableXpnHost' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pexhRequestId'
---
--- * 'pexhProject'
-projectsEnableXpnHost
-    :: Text -- ^ 'pexhProject'
-    -> ProjectsEnableXpnHost
-projectsEnableXpnHost pPexhProject_ =
-  ProjectsEnableXpnHost'
-    {_pexhRequestId = Nothing, _pexhProject = pPexhProject_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pexhRequestId :: Lens' ProjectsEnableXpnHost (Maybe Text)
-pexhRequestId
-  = lens _pexhRequestId
-      (\ s a -> s{_pexhRequestId = a})
-
--- | Project ID for this request.
-pexhProject :: Lens' ProjectsEnableXpnHost Text
-pexhProject
-  = lens _pexhProject (\ s a -> s{_pexhProject = a})
-
-instance GoogleRequest ProjectsEnableXpnHost where
-        type Rs ProjectsEnableXpnHost = Operation
-        type Scopes ProjectsEnableXpnHost =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsEnableXpnHost'{..}
-          = go _pexhProject _pexhRequestId (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsEnableXpnHostResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/EnableXpnResource.hs b/gen/Network/Google/Resource/Compute/Projects/EnableXpnResource.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/EnableXpnResource.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.EnableXpnResource
--- 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)
---
--- Enable service resource (a.k.a service project) for a host project, so
--- that subnets in the host project can be used by instances in the service
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.enableXpnResource@.
-module Network.Google.Resource.Compute.Projects.EnableXpnResource
-    (
-    -- * REST Resource
-      ProjectsEnableXpnResourceResource
-
-    -- * Creating a Request
-    , projectsEnableXpnResource
-    , ProjectsEnableXpnResource
-
-    -- * Request Lenses
-    , pexrRequestId
-    , pexrProject
-    , pexrPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.enableXpnResource@ method which the
--- 'ProjectsEnableXpnResource' request conforms to.
-type ProjectsEnableXpnResourceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "enableXpnResource" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ProjectsEnableXpnResourceRequest :>
-                     Post '[JSON] Operation
-
--- | Enable service resource (a.k.a service project) for a host project, so
--- that subnets in the host project can be used by instances in the service
--- project.
---
--- /See:/ 'projectsEnableXpnResource' smart constructor.
-data ProjectsEnableXpnResource =
-  ProjectsEnableXpnResource'
-    { _pexrRequestId :: !(Maybe Text)
-    , _pexrProject   :: !Text
-    , _pexrPayload   :: !ProjectsEnableXpnResourceRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsEnableXpnResource' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pexrRequestId'
---
--- * 'pexrProject'
---
--- * 'pexrPayload'
-projectsEnableXpnResource
-    :: Text -- ^ 'pexrProject'
-    -> ProjectsEnableXpnResourceRequest -- ^ 'pexrPayload'
-    -> ProjectsEnableXpnResource
-projectsEnableXpnResource pPexrProject_ pPexrPayload_ =
-  ProjectsEnableXpnResource'
-    { _pexrRequestId = Nothing
-    , _pexrProject = pPexrProject_
-    , _pexrPayload = pPexrPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pexrRequestId :: Lens' ProjectsEnableXpnResource (Maybe Text)
-pexrRequestId
-  = lens _pexrRequestId
-      (\ s a -> s{_pexrRequestId = a})
-
--- | Project ID for this request.
-pexrProject :: Lens' ProjectsEnableXpnResource Text
-pexrProject
-  = lens _pexrProject (\ s a -> s{_pexrProject = a})
-
--- | Multipart request metadata.
-pexrPayload :: Lens' ProjectsEnableXpnResource ProjectsEnableXpnResourceRequest
-pexrPayload
-  = lens _pexrPayload (\ s a -> s{_pexrPayload = a})
-
-instance GoogleRequest ProjectsEnableXpnResource
-         where
-        type Rs ProjectsEnableXpnResource = Operation
-        type Scopes ProjectsEnableXpnResource =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsEnableXpnResource'{..}
-          = go _pexrProject _pexrRequestId (Just AltJSON)
-              _pexrPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsEnableXpnResourceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/Get.hs b/gen/Network/Google/Resource/Compute/Projects/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/Get.hs
+++ /dev/null
@@ -1,87 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.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)
---
--- Returns the specified Project resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.get@.
-module Network.Google.Resource.Compute.Projects.Get
-    (
-    -- * REST Resource
-      ProjectsGetResource
-
-    -- * Creating a Request
-    , projectsGet
-    , ProjectsGet
-
-    -- * Request Lenses
-    , pgProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.get@ method which the
--- 'ProjectsGet' request conforms to.
-type ProjectsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             QueryParam "alt" AltJSON :> Get '[JSON] Project
-
--- | Returns the specified Project resource.
---
--- /See:/ 'projectsGet' smart constructor.
-newtype ProjectsGet =
-  ProjectsGet'
-    { _pgProject :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgProject'
-projectsGet
-    :: Text -- ^ 'pgProject'
-    -> ProjectsGet
-projectsGet pPgProject_ = ProjectsGet' {_pgProject = pPgProject_}
-
-
--- | Project ID for this request.
-pgProject :: Lens' ProjectsGet Text
-pgProject
-  = lens _pgProject (\ s a -> s{_pgProject = a})
-
-instance GoogleRequest ProjectsGet where
-        type Rs ProjectsGet = Project
-        type Scopes ProjectsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ProjectsGet'{..}
-          = go _pgProject (Just AltJSON) computeService
-          where go
-                  = buildClient (Proxy :: Proxy ProjectsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/GetXpnHost.hs b/gen/Network/Google/Resource/Compute/Projects/GetXpnHost.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/GetXpnHost.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.GetXpnHost
--- 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 shared VPC host project that this project links to. May be
--- empty if no link exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.getXpnHost@.
-module Network.Google.Resource.Compute.Projects.GetXpnHost
-    (
-    -- * REST Resource
-      ProjectsGetXpnHostResource
-
-    -- * Creating a Request
-    , projectsGetXpnHost
-    , ProjectsGetXpnHost
-
-    -- * Request Lenses
-    , pgxhProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.getXpnHost@ method which the
--- 'ProjectsGetXpnHost' request conforms to.
-type ProjectsGetXpnHostResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "getXpnHost" :>
-               QueryParam "alt" AltJSON :> Get '[JSON] Project
-
--- | Gets the shared VPC host project that this project links to. May be
--- empty if no link exists.
---
--- /See:/ 'projectsGetXpnHost' smart constructor.
-newtype ProjectsGetXpnHost =
-  ProjectsGetXpnHost'
-    { _pgxhProject :: Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsGetXpnHost' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgxhProject'
-projectsGetXpnHost
-    :: Text -- ^ 'pgxhProject'
-    -> ProjectsGetXpnHost
-projectsGetXpnHost pPgxhProject_ =
-  ProjectsGetXpnHost' {_pgxhProject = pPgxhProject_}
-
-
--- | Project ID for this request.
-pgxhProject :: Lens' ProjectsGetXpnHost Text
-pgxhProject
-  = lens _pgxhProject (\ s a -> s{_pgxhProject = a})
-
-instance GoogleRequest ProjectsGetXpnHost where
-        type Rs ProjectsGetXpnHost = Project
-        type Scopes ProjectsGetXpnHost =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsGetXpnHost'{..}
-          = go _pgxhProject (Just AltJSON) computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsGetXpnHostResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/GetXpnResources.hs b/gen/Network/Google/Resource/Compute/Projects/GetXpnResources.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/GetXpnResources.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.GetXpnResources
--- 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 service resources (a.k.a service project) associated with this host
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.getXpnResources@.
-module Network.Google.Resource.Compute.Projects.GetXpnResources
-    (
-    -- * REST Resource
-      ProjectsGetXpnResourcesResource
-
-    -- * Creating a Request
-    , projectsGetXpnResources'
-    , ProjectsGetXpnResources'
-
-    -- * Request Lenses
-    , pgxrProject
-    , pgxrOrderBy
-    , pgxrFilter
-    , pgxrPageToken
-    , pgxrMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.getXpnResources@ method which the
--- 'ProjectsGetXpnResources'' request conforms to.
-type ProjectsGetXpnResourcesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "getXpnResources" :>
-               QueryParam "order_by" Text :>
-                 QueryParam "filter" Text :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Word32) :>
-                       QueryParam "alt" AltJSON :>
-                         Get '[JSON] ProjectsGetXpnResources
-
--- | Gets service resources (a.k.a service project) associated with this host
--- project.
---
--- /See:/ 'projectsGetXpnResources'' smart constructor.
-data ProjectsGetXpnResources' =
-  ProjectsGetXpnResources''
-    { _pgxrProject    :: !Text
-    , _pgxrOrderBy    :: !(Maybe Text)
-    , _pgxrFilter     :: !(Maybe Text)
-    , _pgxrPageToken  :: !(Maybe Text)
-    , _pgxrMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsGetXpnResources'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pgxrProject'
---
--- * 'pgxrOrderBy'
---
--- * 'pgxrFilter'
---
--- * 'pgxrPageToken'
---
--- * 'pgxrMaxResults'
-projectsGetXpnResources'
-    :: Text -- ^ 'pgxrProject'
-    -> ProjectsGetXpnResources'
-projectsGetXpnResources' pPgxrProject_ =
-  ProjectsGetXpnResources''
-    { _pgxrProject = pPgxrProject_
-    , _pgxrOrderBy = Nothing
-    , _pgxrFilter = Nothing
-    , _pgxrPageToken = Nothing
-    , _pgxrMaxResults = 500
-    }
-
-
--- | Project ID for this request.
-pgxrProject :: Lens' ProjectsGetXpnResources' Text
-pgxrProject
-  = lens _pgxrProject (\ s a -> s{_pgxrProject = a})
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-pgxrOrderBy :: Lens' ProjectsGetXpnResources' (Maybe Text)
-pgxrOrderBy
-  = lens _pgxrOrderBy (\ s a -> s{_pgxrOrderBy = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-pgxrFilter :: Lens' ProjectsGetXpnResources' (Maybe Text)
-pgxrFilter
-  = lens _pgxrFilter (\ s a -> s{_pgxrFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-pgxrPageToken :: Lens' ProjectsGetXpnResources' (Maybe Text)
-pgxrPageToken
-  = lens _pgxrPageToken
-      (\ s a -> s{_pgxrPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-pgxrMaxResults :: Lens' ProjectsGetXpnResources' Word32
-pgxrMaxResults
-  = lens _pgxrMaxResults
-      (\ s a -> s{_pgxrMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ProjectsGetXpnResources' where
-        type Rs ProjectsGetXpnResources' =
-             ProjectsGetXpnResources
-        type Scopes ProjectsGetXpnResources' =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsGetXpnResources''{..}
-          = go _pgxrProject _pgxrOrderBy _pgxrFilter
-              _pgxrPageToken
-              (Just _pgxrMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsGetXpnResourcesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/ListXpnHosts.hs b/gen/Network/Google/Resource/Compute/Projects/ListXpnHosts.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/ListXpnHosts.hs
+++ /dev/null
@@ -1,185 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.ListXpnHosts
--- 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 shared VPC host projects visible to the user in an
--- organization.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.listXpnHosts@.
-module Network.Google.Resource.Compute.Projects.ListXpnHosts
-    (
-    -- * REST Resource
-      ProjectsListXpnHostsResource
-
-    -- * Creating a Request
-    , projectsListXpnHosts
-    , ProjectsListXpnHosts
-
-    -- * Request Lenses
-    , plxhProject
-    , plxhPayload
-    , plxhOrderBy
-    , plxhFilter
-    , plxhPageToken
-    , plxhMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.listXpnHosts@ method which the
--- 'ProjectsListXpnHosts' request conforms to.
-type ProjectsListXpnHostsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "listXpnHosts" :>
-               QueryParam "order_by" Text :>
-                 QueryParam "filter" Text :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Word32) :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] ProjectsListXpnHostsRequest :>
-                           Post '[JSON] XpnHostList
-
--- | Lists all shared VPC host projects visible to the user in an
--- organization.
---
--- /See:/ 'projectsListXpnHosts' smart constructor.
-data ProjectsListXpnHosts =
-  ProjectsListXpnHosts'
-    { _plxhProject    :: !Text
-    , _plxhPayload    :: !ProjectsListXpnHostsRequest
-    , _plxhOrderBy    :: !(Maybe Text)
-    , _plxhFilter     :: !(Maybe Text)
-    , _plxhPageToken  :: !(Maybe Text)
-    , _plxhMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsListXpnHosts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'plxhProject'
---
--- * 'plxhPayload'
---
--- * 'plxhOrderBy'
---
--- * 'plxhFilter'
---
--- * 'plxhPageToken'
---
--- * 'plxhMaxResults'
-projectsListXpnHosts
-    :: Text -- ^ 'plxhProject'
-    -> ProjectsListXpnHostsRequest -- ^ 'plxhPayload'
-    -> ProjectsListXpnHosts
-projectsListXpnHosts pPlxhProject_ pPlxhPayload_ =
-  ProjectsListXpnHosts'
-    { _plxhProject = pPlxhProject_
-    , _plxhPayload = pPlxhPayload_
-    , _plxhOrderBy = Nothing
-    , _plxhFilter = Nothing
-    , _plxhPageToken = Nothing
-    , _plxhMaxResults = 500
-    }
-
-
--- | Project ID for this request.
-plxhProject :: Lens' ProjectsListXpnHosts Text
-plxhProject
-  = lens _plxhProject (\ s a -> s{_plxhProject = a})
-
--- | Multipart request metadata.
-plxhPayload :: Lens' ProjectsListXpnHosts ProjectsListXpnHostsRequest
-plxhPayload
-  = lens _plxhPayload (\ s a -> s{_plxhPayload = a})
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-plxhOrderBy :: Lens' ProjectsListXpnHosts (Maybe Text)
-plxhOrderBy
-  = lens _plxhOrderBy (\ s a -> s{_plxhOrderBy = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-plxhFilter :: Lens' ProjectsListXpnHosts (Maybe Text)
-plxhFilter
-  = lens _plxhFilter (\ s a -> s{_plxhFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-plxhPageToken :: Lens' ProjectsListXpnHosts (Maybe Text)
-plxhPageToken
-  = lens _plxhPageToken
-      (\ s a -> s{_plxhPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-plxhMaxResults :: Lens' ProjectsListXpnHosts Word32
-plxhMaxResults
-  = lens _plxhMaxResults
-      (\ s a -> s{_plxhMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ProjectsListXpnHosts where
-        type Rs ProjectsListXpnHosts = XpnHostList
-        type Scopes ProjectsListXpnHosts =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsListXpnHosts'{..}
-          = go _plxhProject _plxhOrderBy _plxhFilter
-              _plxhPageToken
-              (Just _plxhMaxResults)
-              (Just AltJSON)
-              _plxhPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsListXpnHostsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/MoveDisk.hs b/gen/Network/Google/Resource/Compute/Projects/MoveDisk.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/MoveDisk.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.MoveDisk
--- 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)
---
--- Moves a persistent disk from one zone to another.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.moveDisk@.
-module Network.Google.Resource.Compute.Projects.MoveDisk
-    (
-    -- * REST Resource
-      ProjectsMoveDiskResource
-
-    -- * Creating a Request
-    , projectsMoveDisk
-    , ProjectsMoveDisk
-
-    -- * Request Lenses
-    , pmdRequestId
-    , pmdProject
-    , pmdPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.moveDisk@ method which the
--- 'ProjectsMoveDisk' request conforms to.
-type ProjectsMoveDiskResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "moveDisk" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] DiskMoveRequest :>
-                     Post '[JSON] Operation
-
--- | Moves a persistent disk from one zone to another.
---
--- /See:/ 'projectsMoveDisk' smart constructor.
-data ProjectsMoveDisk =
-  ProjectsMoveDisk'
-    { _pmdRequestId :: !(Maybe Text)
-    , _pmdProject   :: !Text
-    , _pmdPayload   :: !DiskMoveRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsMoveDisk' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pmdRequestId'
---
--- * 'pmdProject'
---
--- * 'pmdPayload'
-projectsMoveDisk
-    :: Text -- ^ 'pmdProject'
-    -> DiskMoveRequest -- ^ 'pmdPayload'
-    -> ProjectsMoveDisk
-projectsMoveDisk pPmdProject_ pPmdPayload_ =
-  ProjectsMoveDisk'
-    { _pmdRequestId = Nothing
-    , _pmdProject = pPmdProject_
-    , _pmdPayload = pPmdPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pmdRequestId :: Lens' ProjectsMoveDisk (Maybe Text)
-pmdRequestId
-  = lens _pmdRequestId (\ s a -> s{_pmdRequestId = a})
-
--- | Project ID for this request.
-pmdProject :: Lens' ProjectsMoveDisk Text
-pmdProject
-  = lens _pmdProject (\ s a -> s{_pmdProject = a})
-
--- | Multipart request metadata.
-pmdPayload :: Lens' ProjectsMoveDisk DiskMoveRequest
-pmdPayload
-  = lens _pmdPayload (\ s a -> s{_pmdPayload = a})
-
-instance GoogleRequest ProjectsMoveDisk where
-        type Rs ProjectsMoveDisk = Operation
-        type Scopes ProjectsMoveDisk =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsMoveDisk'{..}
-          = go _pmdProject _pmdRequestId (Just AltJSON)
-              _pmdPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsMoveDiskResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/MoveInstance.hs b/gen/Network/Google/Resource/Compute/Projects/MoveInstance.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/MoveInstance.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.MoveInstance
--- 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)
---
--- Moves an instance and its attached persistent disks from one zone to
--- another.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.moveInstance@.
-module Network.Google.Resource.Compute.Projects.MoveInstance
-    (
-    -- * REST Resource
-      ProjectsMoveInstanceResource
-
-    -- * Creating a Request
-    , projectsMoveInstance
-    , ProjectsMoveInstance
-
-    -- * Request Lenses
-    , pmiRequestId
-    , pmiProject
-    , pmiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.moveInstance@ method which the
--- 'ProjectsMoveInstance' request conforms to.
-type ProjectsMoveInstanceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "moveInstance" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] InstanceMoveRequest :>
-                     Post '[JSON] Operation
-
--- | Moves an instance and its attached persistent disks from one zone to
--- another.
---
--- /See:/ 'projectsMoveInstance' smart constructor.
-data ProjectsMoveInstance =
-  ProjectsMoveInstance'
-    { _pmiRequestId :: !(Maybe Text)
-    , _pmiProject   :: !Text
-    , _pmiPayload   :: !InstanceMoveRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsMoveInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pmiRequestId'
---
--- * 'pmiProject'
---
--- * 'pmiPayload'
-projectsMoveInstance
-    :: Text -- ^ 'pmiProject'
-    -> InstanceMoveRequest -- ^ 'pmiPayload'
-    -> ProjectsMoveInstance
-projectsMoveInstance pPmiProject_ pPmiPayload_ =
-  ProjectsMoveInstance'
-    { _pmiRequestId = Nothing
-    , _pmiProject = pPmiProject_
-    , _pmiPayload = pPmiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pmiRequestId :: Lens' ProjectsMoveInstance (Maybe Text)
-pmiRequestId
-  = lens _pmiRequestId (\ s a -> s{_pmiRequestId = a})
-
--- | Project ID for this request.
-pmiProject :: Lens' ProjectsMoveInstance Text
-pmiProject
-  = lens _pmiProject (\ s a -> s{_pmiProject = a})
-
--- | Multipart request metadata.
-pmiPayload :: Lens' ProjectsMoveInstance InstanceMoveRequest
-pmiPayload
-  = lens _pmiPayload (\ s a -> s{_pmiPayload = a})
-
-instance GoogleRequest ProjectsMoveInstance where
-        type Rs ProjectsMoveInstance = Operation
-        type Scopes ProjectsMoveInstance =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsMoveInstance'{..}
-          = go _pmiProject _pmiRequestId (Just AltJSON)
-              _pmiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsMoveInstanceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/SetCommonInstanceMetadata.hs b/gen/Network/Google/Resource/Compute/Projects/SetCommonInstanceMetadata.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/SetCommonInstanceMetadata.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata
--- 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)
---
--- Sets metadata common to all instances within the specified project using
--- the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.setCommonInstanceMetadata@.
-module Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata
-    (
-    -- * REST Resource
-      ProjectsSetCommonInstanceMetadataResource
-
-    -- * Creating a Request
-    , projectsSetCommonInstanceMetadata
-    , ProjectsSetCommonInstanceMetadata
-
-    -- * Request Lenses
-    , pscimRequestId
-    , pscimProject
-    , pscimPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.setCommonInstanceMetadata@ method which the
--- 'ProjectsSetCommonInstanceMetadata' request conforms to.
-type ProjectsSetCommonInstanceMetadataResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "setCommonInstanceMetadata" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] Metadata :> Post '[JSON] Operation
-
--- | Sets metadata common to all instances within the specified project using
--- the data included in the request.
---
--- /See:/ 'projectsSetCommonInstanceMetadata' smart constructor.
-data ProjectsSetCommonInstanceMetadata =
-  ProjectsSetCommonInstanceMetadata'
-    { _pscimRequestId :: !(Maybe Text)
-    , _pscimProject   :: !Text
-    , _pscimPayload   :: !Metadata
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsSetCommonInstanceMetadata' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'pscimRequestId'
---
--- * 'pscimProject'
---
--- * 'pscimPayload'
-projectsSetCommonInstanceMetadata
-    :: Text -- ^ 'pscimProject'
-    -> Metadata -- ^ 'pscimPayload'
-    -> ProjectsSetCommonInstanceMetadata
-projectsSetCommonInstanceMetadata pPscimProject_ pPscimPayload_ =
-  ProjectsSetCommonInstanceMetadata'
-    { _pscimRequestId = Nothing
-    , _pscimProject = pPscimProject_
-    , _pscimPayload = pPscimPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-pscimRequestId :: Lens' ProjectsSetCommonInstanceMetadata (Maybe Text)
-pscimRequestId
-  = lens _pscimRequestId
-      (\ s a -> s{_pscimRequestId = a})
-
--- | Project ID for this request.
-pscimProject :: Lens' ProjectsSetCommonInstanceMetadata Text
-pscimProject
-  = lens _pscimProject (\ s a -> s{_pscimProject = a})
-
--- | Multipart request metadata.
-pscimPayload :: Lens' ProjectsSetCommonInstanceMetadata Metadata
-pscimPayload
-  = lens _pscimPayload (\ s a -> s{_pscimPayload = a})
-
-instance GoogleRequest
-           ProjectsSetCommonInstanceMetadata
-         where
-        type Rs ProjectsSetCommonInstanceMetadata = Operation
-        type Scopes ProjectsSetCommonInstanceMetadata =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsSetCommonInstanceMetadata'{..}
-          = go _pscimProject _pscimRequestId (Just AltJSON)
-              _pscimPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy ProjectsSetCommonInstanceMetadataResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/SetDefaultNetworkTier.hs b/gen/Network/Google/Resource/Compute/Projects/SetDefaultNetworkTier.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/SetDefaultNetworkTier.hs
+++ /dev/null
@@ -1,133 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.SetDefaultNetworkTier
--- 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)
---
--- Sets the default network tier of the project. The default network tier
--- is used when an address\/forwardingRule\/instance is created without
--- specifying the network tier field.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.setDefaultNetworkTier@.
-module Network.Google.Resource.Compute.Projects.SetDefaultNetworkTier
-    (
-    -- * REST Resource
-      ProjectsSetDefaultNetworkTierResource
-
-    -- * Creating a Request
-    , projectsSetDefaultNetworkTier
-    , ProjectsSetDefaultNetworkTier
-
-    -- * Request Lenses
-    , psdntRequestId
-    , psdntProject
-    , psdntPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.setDefaultNetworkTier@ method which the
--- 'ProjectsSetDefaultNetworkTier' request conforms to.
-type ProjectsSetDefaultNetworkTierResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "setDefaultNetworkTier" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] ProjectsSetDefaultNetworkTierRequest
-                     :> Post '[JSON] Operation
-
--- | Sets the default network tier of the project. The default network tier
--- is used when an address\/forwardingRule\/instance is created without
--- specifying the network tier field.
---
--- /See:/ 'projectsSetDefaultNetworkTier' smart constructor.
-data ProjectsSetDefaultNetworkTier =
-  ProjectsSetDefaultNetworkTier'
-    { _psdntRequestId :: !(Maybe Text)
-    , _psdntProject   :: !Text
-    , _psdntPayload   :: !ProjectsSetDefaultNetworkTierRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsSetDefaultNetworkTier' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psdntRequestId'
---
--- * 'psdntProject'
---
--- * 'psdntPayload'
-projectsSetDefaultNetworkTier
-    :: Text -- ^ 'psdntProject'
-    -> ProjectsSetDefaultNetworkTierRequest -- ^ 'psdntPayload'
-    -> ProjectsSetDefaultNetworkTier
-projectsSetDefaultNetworkTier pPsdntProject_ pPsdntPayload_ =
-  ProjectsSetDefaultNetworkTier'
-    { _psdntRequestId = Nothing
-    , _psdntProject = pPsdntProject_
-    , _psdntPayload = pPsdntPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-psdntRequestId :: Lens' ProjectsSetDefaultNetworkTier (Maybe Text)
-psdntRequestId
-  = lens _psdntRequestId
-      (\ s a -> s{_psdntRequestId = a})
-
--- | Project ID for this request.
-psdntProject :: Lens' ProjectsSetDefaultNetworkTier Text
-psdntProject
-  = lens _psdntProject (\ s a -> s{_psdntProject = a})
-
--- | Multipart request metadata.
-psdntPayload :: Lens' ProjectsSetDefaultNetworkTier ProjectsSetDefaultNetworkTierRequest
-psdntPayload
-  = lens _psdntPayload (\ s a -> s{_psdntPayload = a})
-
-instance GoogleRequest ProjectsSetDefaultNetworkTier
-         where
-        type Rs ProjectsSetDefaultNetworkTier = Operation
-        type Scopes ProjectsSetDefaultNetworkTier =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ProjectsSetDefaultNetworkTier'{..}
-          = go _psdntProject _psdntRequestId (Just AltJSON)
-              _psdntPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy ProjectsSetDefaultNetworkTierResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Projects/SetUsageExportBucket.hs b/gen/Network/Google/Resource/Compute/Projects/SetUsageExportBucket.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Projects/SetUsageExportBucket.hs
+++ /dev/null
@@ -1,135 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Projects.SetUsageExportBucket
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Enables the usage export feature and sets the usage export bucket where
--- reports are stored. If you provide an empty request body using this
--- method, the usage export feature will be disabled.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.projects.setUsageExportBucket@.
-module Network.Google.Resource.Compute.Projects.SetUsageExportBucket
-    (
-    -- * REST Resource
-      ProjectsSetUsageExportBucketResource
-
-    -- * Creating a Request
-    , projectsSetUsageExportBucket
-    , ProjectsSetUsageExportBucket
-
-    -- * Request Lenses
-    , psuebRequestId
-    , psuebProject
-    , psuebPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.projects.setUsageExportBucket@ method which the
--- 'ProjectsSetUsageExportBucket' request conforms to.
-type ProjectsSetUsageExportBucketResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "setUsageExportBucket" :>
-               QueryParam "requestId" Text :>
-                 QueryParam "alt" AltJSON :>
-                   ReqBody '[JSON] UsageExportLocation :>
-                     Post '[JSON] Operation
-
--- | Enables the usage export feature and sets the usage export bucket where
--- reports are stored. If you provide an empty request body using this
--- method, the usage export feature will be disabled.
---
--- /See:/ 'projectsSetUsageExportBucket' smart constructor.
-data ProjectsSetUsageExportBucket =
-  ProjectsSetUsageExportBucket'
-    { _psuebRequestId :: !(Maybe Text)
-    , _psuebProject   :: !Text
-    , _psuebPayload   :: !UsageExportLocation
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ProjectsSetUsageExportBucket' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'psuebRequestId'
---
--- * 'psuebProject'
---
--- * 'psuebPayload'
-projectsSetUsageExportBucket
-    :: Text -- ^ 'psuebProject'
-    -> UsageExportLocation -- ^ 'psuebPayload'
-    -> ProjectsSetUsageExportBucket
-projectsSetUsageExportBucket pPsuebProject_ pPsuebPayload_ =
-  ProjectsSetUsageExportBucket'
-    { _psuebRequestId = Nothing
-    , _psuebProject = pPsuebProject_
-    , _psuebPayload = pPsuebPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-psuebRequestId :: Lens' ProjectsSetUsageExportBucket (Maybe Text)
-psuebRequestId
-  = lens _psuebRequestId
-      (\ s a -> s{_psuebRequestId = a})
-
--- | Project ID for this request.
-psuebProject :: Lens' ProjectsSetUsageExportBucket Text
-psuebProject
-  = lens _psuebProject (\ s a -> s{_psuebProject = a})
-
--- | Multipart request metadata.
-psuebPayload :: Lens' ProjectsSetUsageExportBucket UsageExportLocation
-psuebPayload
-  = lens _psuebPayload (\ s a -> s{_psuebPayload = a})
-
-instance GoogleRequest ProjectsSetUsageExportBucket
-         where
-        type Rs ProjectsSetUsageExportBucket = Operation
-        type Scopes ProjectsSetUsageExportBucket =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/devstorage.full_control",
-               "https://www.googleapis.com/auth/devstorage.read_only",
-               "https://www.googleapis.com/auth/devstorage.read_write"]
-        requestClient ProjectsSetUsageExportBucket'{..}
-          = go _psuebProject _psuebRequestId (Just AltJSON)
-              _psuebPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ProjectsSetUsageExportBucketResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Delete.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Delete.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.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 autoscaler.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.delete@.
-module Network.Google.Resource.Compute.RegionAutoscalers.Delete
-    (
-    -- * REST Resource
-      RegionAutoscalersDeleteResource
-
-    -- * Creating a Request
-    , regionAutoscalersDelete
-    , RegionAutoscalersDelete
-
-    -- * Request Lenses
-    , radRequestId
-    , radProject
-    , radAutoscaler
-    , radRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.delete@ method which the
--- 'RegionAutoscalersDelete' request conforms to.
-type RegionAutoscalersDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   Capture "autoscaler" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified autoscaler.
---
--- /See:/ 'regionAutoscalersDelete' smart constructor.
-data RegionAutoscalersDelete =
-  RegionAutoscalersDelete'
-    { _radRequestId  :: !(Maybe Text)
-    , _radProject    :: !Text
-    , _radAutoscaler :: !Text
-    , _radRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'radRequestId'
---
--- * 'radProject'
---
--- * 'radAutoscaler'
---
--- * 'radRegion'
-regionAutoscalersDelete
-    :: Text -- ^ 'radProject'
-    -> Text -- ^ 'radAutoscaler'
-    -> Text -- ^ 'radRegion'
-    -> RegionAutoscalersDelete
-regionAutoscalersDelete pRadProject_ pRadAutoscaler_ pRadRegion_ =
-  RegionAutoscalersDelete'
-    { _radRequestId = Nothing
-    , _radProject = pRadProject_
-    , _radAutoscaler = pRadAutoscaler_
-    , _radRegion = pRadRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-radRequestId :: Lens' RegionAutoscalersDelete (Maybe Text)
-radRequestId
-  = lens _radRequestId (\ s a -> s{_radRequestId = a})
-
--- | Project ID for this request.
-radProject :: Lens' RegionAutoscalersDelete Text
-radProject
-  = lens _radProject (\ s a -> s{_radProject = a})
-
--- | Name of the autoscaler to delete.
-radAutoscaler :: Lens' RegionAutoscalersDelete Text
-radAutoscaler
-  = lens _radAutoscaler
-      (\ s a -> s{_radAutoscaler = a})
-
--- | Name of the region scoping this request.
-radRegion :: Lens' RegionAutoscalersDelete Text
-radRegion
-  = lens _radRegion (\ s a -> s{_radRegion = a})
-
-instance GoogleRequest RegionAutoscalersDelete where
-        type Rs RegionAutoscalersDelete = Operation
-        type Scopes RegionAutoscalersDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionAutoscalersDelete'{..}
-          = go _radProject _radRegion _radAutoscaler
-              _radRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Get.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Get.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.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)
---
--- Returns the specified autoscaler.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.get@.
-module Network.Google.Resource.Compute.RegionAutoscalers.Get
-    (
-    -- * REST Resource
-      RegionAutoscalersGetResource
-
-    -- * Creating a Request
-    , regionAutoscalersGet
-    , RegionAutoscalersGet
-
-    -- * Request Lenses
-    , ragProject
-    , ragAutoscaler
-    , ragRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.get@ method which the
--- 'RegionAutoscalersGet' request conforms to.
-type RegionAutoscalersGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   Capture "autoscaler" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Autoscaler
-
--- | Returns the specified autoscaler.
---
--- /See:/ 'regionAutoscalersGet' smart constructor.
-data RegionAutoscalersGet =
-  RegionAutoscalersGet'
-    { _ragProject    :: !Text
-    , _ragAutoscaler :: !Text
-    , _ragRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ragProject'
---
--- * 'ragAutoscaler'
---
--- * 'ragRegion'
-regionAutoscalersGet
-    :: Text -- ^ 'ragProject'
-    -> Text -- ^ 'ragAutoscaler'
-    -> Text -- ^ 'ragRegion'
-    -> RegionAutoscalersGet
-regionAutoscalersGet pRagProject_ pRagAutoscaler_ pRagRegion_ =
-  RegionAutoscalersGet'
-    { _ragProject = pRagProject_
-    , _ragAutoscaler = pRagAutoscaler_
-    , _ragRegion = pRagRegion_
-    }
-
-
--- | Project ID for this request.
-ragProject :: Lens' RegionAutoscalersGet Text
-ragProject
-  = lens _ragProject (\ s a -> s{_ragProject = a})
-
--- | Name of the autoscaler to return.
-ragAutoscaler :: Lens' RegionAutoscalersGet Text
-ragAutoscaler
-  = lens _ragAutoscaler
-      (\ s a -> s{_ragAutoscaler = a})
-
--- | Name of the region scoping this request.
-ragRegion :: Lens' RegionAutoscalersGet Text
-ragRegion
-  = lens _ragRegion (\ s a -> s{_ragRegion = a})
-
-instance GoogleRequest RegionAutoscalersGet where
-        type Rs RegionAutoscalersGet = Autoscaler
-        type Scopes RegionAutoscalersGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionAutoscalersGet'{..}
-          = go _ragProject _ragRegion _ragAutoscaler
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Insert.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.Insert
--- 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 an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.insert@.
-module Network.Google.Resource.Compute.RegionAutoscalers.Insert
-    (
-    -- * REST Resource
-      RegionAutoscalersInsertResource
-
-    -- * Creating a Request
-    , regionAutoscalersInsert
-    , RegionAutoscalersInsert
-
-    -- * Request Lenses
-    , raiRequestId
-    , raiProject
-    , raiPayload
-    , raiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.insert@ method which the
--- 'RegionAutoscalersInsert' request conforms to.
-type RegionAutoscalersInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Autoscaler :> Post '[JSON] Operation
-
--- | Creates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ 'regionAutoscalersInsert' smart constructor.
-data RegionAutoscalersInsert =
-  RegionAutoscalersInsert'
-    { _raiRequestId :: !(Maybe Text)
-    , _raiProject   :: !Text
-    , _raiPayload   :: !Autoscaler
-    , _raiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'raiRequestId'
---
--- * 'raiProject'
---
--- * 'raiPayload'
---
--- * 'raiRegion'
-regionAutoscalersInsert
-    :: Text -- ^ 'raiProject'
-    -> Autoscaler -- ^ 'raiPayload'
-    -> Text -- ^ 'raiRegion'
-    -> RegionAutoscalersInsert
-regionAutoscalersInsert pRaiProject_ pRaiPayload_ pRaiRegion_ =
-  RegionAutoscalersInsert'
-    { _raiRequestId = Nothing
-    , _raiProject = pRaiProject_
-    , _raiPayload = pRaiPayload_
-    , _raiRegion = pRaiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-raiRequestId :: Lens' RegionAutoscalersInsert (Maybe Text)
-raiRequestId
-  = lens _raiRequestId (\ s a -> s{_raiRequestId = a})
-
--- | Project ID for this request.
-raiProject :: Lens' RegionAutoscalersInsert Text
-raiProject
-  = lens _raiProject (\ s a -> s{_raiProject = a})
-
--- | Multipart request metadata.
-raiPayload :: Lens' RegionAutoscalersInsert Autoscaler
-raiPayload
-  = lens _raiPayload (\ s a -> s{_raiPayload = a})
-
--- | Name of the region scoping this request.
-raiRegion :: Lens' RegionAutoscalersInsert Text
-raiRegion
-  = lens _raiRegion (\ s a -> s{_raiRegion = a})
-
-instance GoogleRequest RegionAutoscalersInsert where
-        type Rs RegionAutoscalersInsert = Operation
-        type Scopes RegionAutoscalersInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionAutoscalersInsert'{..}
-          = go _raiProject _raiRegion _raiRequestId
-              (Just AltJSON)
-              _raiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/List.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/List.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.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)
---
--- Retrieves a list of autoscalers contained within the specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.list@.
-module Network.Google.Resource.Compute.RegionAutoscalers.List
-    (
-    -- * REST Resource
-      RegionAutoscalersListResource
-
-    -- * Creating a Request
-    , regionAutoscalersList
-    , RegionAutoscalersList
-
-    -- * Request Lenses
-    , ralOrderBy
-    , ralProject
-    , ralFilter
-    , ralRegion
-    , ralPageToken
-    , ralMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.list@ method which the
--- 'RegionAutoscalersList' request conforms to.
-type RegionAutoscalersListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] RegionAutoscalerList
-
--- | Retrieves a list of autoscalers contained within the specified region.
---
--- /See:/ 'regionAutoscalersList' smart constructor.
-data RegionAutoscalersList =
-  RegionAutoscalersList'
-    { _ralOrderBy    :: !(Maybe Text)
-    , _ralProject    :: !Text
-    , _ralFilter     :: !(Maybe Text)
-    , _ralRegion     :: !Text
-    , _ralPageToken  :: !(Maybe Text)
-    , _ralMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ralOrderBy'
---
--- * 'ralProject'
---
--- * 'ralFilter'
---
--- * 'ralRegion'
---
--- * 'ralPageToken'
---
--- * 'ralMaxResults'
-regionAutoscalersList
-    :: Text -- ^ 'ralProject'
-    -> Text -- ^ 'ralRegion'
-    -> RegionAutoscalersList
-regionAutoscalersList pRalProject_ pRalRegion_ =
-  RegionAutoscalersList'
-    { _ralOrderBy = Nothing
-    , _ralProject = pRalProject_
-    , _ralFilter = Nothing
-    , _ralRegion = pRalRegion_
-    , _ralPageToken = Nothing
-    , _ralMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ralOrderBy :: Lens' RegionAutoscalersList (Maybe Text)
-ralOrderBy
-  = lens _ralOrderBy (\ s a -> s{_ralOrderBy = a})
-
--- | Project ID for this request.
-ralProject :: Lens' RegionAutoscalersList Text
-ralProject
-  = lens _ralProject (\ s a -> s{_ralProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ralFilter :: Lens' RegionAutoscalersList (Maybe Text)
-ralFilter
-  = lens _ralFilter (\ s a -> s{_ralFilter = a})
-
--- | Name of the region scoping this request.
-ralRegion :: Lens' RegionAutoscalersList Text
-ralRegion
-  = lens _ralRegion (\ s a -> s{_ralRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ralPageToken :: Lens' RegionAutoscalersList (Maybe Text)
-ralPageToken
-  = lens _ralPageToken (\ s a -> s{_ralPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ralMaxResults :: Lens' RegionAutoscalersList Word32
-ralMaxResults
-  = lens _ralMaxResults
-      (\ s a -> s{_ralMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionAutoscalersList where
-        type Rs RegionAutoscalersList = RegionAutoscalerList
-        type Scopes RegionAutoscalersList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionAutoscalersList'{..}
-          = go _ralProject _ralRegion _ralOrderBy _ralFilter
-              _ralPageToken
-              (Just _ralMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Patch.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Patch.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.Patch
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an autoscaler in the specified project using the data included
--- in the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.patch@.
-module Network.Google.Resource.Compute.RegionAutoscalers.Patch
-    (
-    -- * REST Resource
-      RegionAutoscalersPatchResource
-
-    -- * Creating a Request
-    , regionAutoscalersPatch
-    , RegionAutoscalersPatch
-
-    -- * Request Lenses
-    , rapRequestId
-    , rapProject
-    , rapPayload
-    , rapAutoscaler
-    , rapRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.patch@ method which the
--- 'RegionAutoscalersPatch' request conforms to.
-type RegionAutoscalersPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "autoscaler" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Autoscaler :> Patch '[JSON] Operation
-
--- | Updates an autoscaler in the specified project using the data included
--- in the request. This method supports PATCH semantics and uses the JSON
--- merge patch format and processing rules.
---
--- /See:/ 'regionAutoscalersPatch' smart constructor.
-data RegionAutoscalersPatch =
-  RegionAutoscalersPatch'
-    { _rapRequestId  :: !(Maybe Text)
-    , _rapProject    :: !Text
-    , _rapPayload    :: !Autoscaler
-    , _rapAutoscaler :: !(Maybe Text)
-    , _rapRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rapRequestId'
---
--- * 'rapProject'
---
--- * 'rapPayload'
---
--- * 'rapAutoscaler'
---
--- * 'rapRegion'
-regionAutoscalersPatch
-    :: Text -- ^ 'rapProject'
-    -> Autoscaler -- ^ 'rapPayload'
-    -> Text -- ^ 'rapRegion'
-    -> RegionAutoscalersPatch
-regionAutoscalersPatch pRapProject_ pRapPayload_ pRapRegion_ =
-  RegionAutoscalersPatch'
-    { _rapRequestId = Nothing
-    , _rapProject = pRapProject_
-    , _rapPayload = pRapPayload_
-    , _rapAutoscaler = Nothing
-    , _rapRegion = pRapRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rapRequestId :: Lens' RegionAutoscalersPatch (Maybe Text)
-rapRequestId
-  = lens _rapRequestId (\ s a -> s{_rapRequestId = a})
-
--- | Project ID for this request.
-rapProject :: Lens' RegionAutoscalersPatch Text
-rapProject
-  = lens _rapProject (\ s a -> s{_rapProject = a})
-
--- | Multipart request metadata.
-rapPayload :: Lens' RegionAutoscalersPatch Autoscaler
-rapPayload
-  = lens _rapPayload (\ s a -> s{_rapPayload = a})
-
--- | Name of the autoscaler to patch.
-rapAutoscaler :: Lens' RegionAutoscalersPatch (Maybe Text)
-rapAutoscaler
-  = lens _rapAutoscaler
-      (\ s a -> s{_rapAutoscaler = a})
-
--- | Name of the region scoping this request.
-rapRegion :: Lens' RegionAutoscalersPatch Text
-rapRegion
-  = lens _rapRegion (\ s a -> s{_rapRegion = a})
-
-instance GoogleRequest RegionAutoscalersPatch where
-        type Rs RegionAutoscalersPatch = Operation
-        type Scopes RegionAutoscalersPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionAutoscalersPatch'{..}
-          = go _rapProject _rapRegion _rapRequestId
-              _rapAutoscaler
-              (Just AltJSON)
-              _rapPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Update.hs b/gen/Network/Google/Resource/Compute/RegionAutoscalers/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionAutoscalers/Update.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionAutoscalers.Update
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionAutoscalers.update@.
-module Network.Google.Resource.Compute.RegionAutoscalers.Update
-    (
-    -- * REST Resource
-      RegionAutoscalersUpdateResource
-
-    -- * Creating a Request
-    , regionAutoscalersUpdate
-    , RegionAutoscalersUpdate
-
-    -- * Request Lenses
-    , rauRequestId
-    , rauProject
-    , rauPayload
-    , rauAutoscaler
-    , rauRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionAutoscalers.update@ method which the
--- 'RegionAutoscalersUpdate' request conforms to.
-type RegionAutoscalersUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "autoscalers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "autoscaler" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Autoscaler :> Put '[JSON] Operation
-
--- | Updates an autoscaler in the specified project using the data included
--- in the request.
---
--- /See:/ 'regionAutoscalersUpdate' smart constructor.
-data RegionAutoscalersUpdate =
-  RegionAutoscalersUpdate'
-    { _rauRequestId  :: !(Maybe Text)
-    , _rauProject    :: !Text
-    , _rauPayload    :: !Autoscaler
-    , _rauAutoscaler :: !(Maybe Text)
-    , _rauRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionAutoscalersUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rauRequestId'
---
--- * 'rauProject'
---
--- * 'rauPayload'
---
--- * 'rauAutoscaler'
---
--- * 'rauRegion'
-regionAutoscalersUpdate
-    :: Text -- ^ 'rauProject'
-    -> Autoscaler -- ^ 'rauPayload'
-    -> Text -- ^ 'rauRegion'
-    -> RegionAutoscalersUpdate
-regionAutoscalersUpdate pRauProject_ pRauPayload_ pRauRegion_ =
-  RegionAutoscalersUpdate'
-    { _rauRequestId = Nothing
-    , _rauProject = pRauProject_
-    , _rauPayload = pRauPayload_
-    , _rauAutoscaler = Nothing
-    , _rauRegion = pRauRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rauRequestId :: Lens' RegionAutoscalersUpdate (Maybe Text)
-rauRequestId
-  = lens _rauRequestId (\ s a -> s{_rauRequestId = a})
-
--- | Project ID for this request.
-rauProject :: Lens' RegionAutoscalersUpdate Text
-rauProject
-  = lens _rauProject (\ s a -> s{_rauProject = a})
-
--- | Multipart request metadata.
-rauPayload :: Lens' RegionAutoscalersUpdate Autoscaler
-rauPayload
-  = lens _rauPayload (\ s a -> s{_rauPayload = a})
-
--- | Name of the autoscaler to update.
-rauAutoscaler :: Lens' RegionAutoscalersUpdate (Maybe Text)
-rauAutoscaler
-  = lens _rauAutoscaler
-      (\ s a -> s{_rauAutoscaler = a})
-
--- | Name of the region scoping this request.
-rauRegion :: Lens' RegionAutoscalersUpdate Text
-rauRegion
-  = lens _rauRegion (\ s a -> s{_rauRegion = a})
-
-instance GoogleRequest RegionAutoscalersUpdate where
-        type Rs RegionAutoscalersUpdate = Operation
-        type Scopes RegionAutoscalersUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionAutoscalersUpdate'{..}
-          = go _rauProject _rauRegion _rauRequestId
-              _rauAutoscaler
-              (Just AltJSON)
-              _rauPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionAutoscalersUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/Delete.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/Delete.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.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 regional BackendService resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.delete@.
-module Network.Google.Resource.Compute.RegionBackendServices.Delete
-    (
-    -- * REST Resource
-      RegionBackendServicesDeleteResource
-
-    -- * Creating a Request
-    , regionBackendServicesDelete
-    , RegionBackendServicesDelete
-
-    -- * Request Lenses
-    , rbsdRequestId
-    , rbsdProject
-    , rbsdRegion
-    , rbsdBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.delete@ method which the
--- 'RegionBackendServicesDelete' request conforms to.
-type RegionBackendServicesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   Capture "backendService" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified regional BackendService resource.
---
--- /See:/ 'regionBackendServicesDelete' smart constructor.
-data RegionBackendServicesDelete =
-  RegionBackendServicesDelete'
-    { _rbsdRequestId      :: !(Maybe Text)
-    , _rbsdProject        :: !Text
-    , _rbsdRegion         :: !Text
-    , _rbsdBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbsdRequestId'
---
--- * 'rbsdProject'
---
--- * 'rbsdRegion'
---
--- * 'rbsdBackendService'
-regionBackendServicesDelete
-    :: Text -- ^ 'rbsdProject'
-    -> Text -- ^ 'rbsdRegion'
-    -> Text -- ^ 'rbsdBackendService'
-    -> RegionBackendServicesDelete
-regionBackendServicesDelete pRbsdProject_ pRbsdRegion_ pRbsdBackendService_ =
-  RegionBackendServicesDelete'
-    { _rbsdRequestId = Nothing
-    , _rbsdProject = pRbsdProject_
-    , _rbsdRegion = pRbsdRegion_
-    , _rbsdBackendService = pRbsdBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rbsdRequestId :: Lens' RegionBackendServicesDelete (Maybe Text)
-rbsdRequestId
-  = lens _rbsdRequestId
-      (\ s a -> s{_rbsdRequestId = a})
-
--- | Project ID for this request.
-rbsdProject :: Lens' RegionBackendServicesDelete Text
-rbsdProject
-  = lens _rbsdProject (\ s a -> s{_rbsdProject = a})
-
--- | Name of the region scoping this request.
-rbsdRegion :: Lens' RegionBackendServicesDelete Text
-rbsdRegion
-  = lens _rbsdRegion (\ s a -> s{_rbsdRegion = a})
-
--- | Name of the BackendService resource to delete.
-rbsdBackendService :: Lens' RegionBackendServicesDelete Text
-rbsdBackendService
-  = lens _rbsdBackendService
-      (\ s a -> s{_rbsdBackendService = a})
-
-instance GoogleRequest RegionBackendServicesDelete
-         where
-        type Rs RegionBackendServicesDelete = Operation
-        type Scopes RegionBackendServicesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionBackendServicesDelete'{..}
-          = go _rbsdProject _rbsdRegion _rbsdBackendService
-              _rbsdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/Get.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.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)
---
--- Returns the specified regional BackendService resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.get@.
-module Network.Google.Resource.Compute.RegionBackendServices.Get
-    (
-    -- * REST Resource
-      RegionBackendServicesGetResource
-
-    -- * Creating a Request
-    , regionBackendServicesGet
-    , RegionBackendServicesGet
-
-    -- * Request Lenses
-    , rbsgProject
-    , rbsgRegion
-    , rbsgBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.get@ method which the
--- 'RegionBackendServicesGet' request conforms to.
-type RegionBackendServicesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   Capture "backendService" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] BackendService
-
--- | Returns the specified regional BackendService resource.
---
--- /See:/ 'regionBackendServicesGet' smart constructor.
-data RegionBackendServicesGet =
-  RegionBackendServicesGet'
-    { _rbsgProject        :: !Text
-    , _rbsgRegion         :: !Text
-    , _rbsgBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbsgProject'
---
--- * 'rbsgRegion'
---
--- * 'rbsgBackendService'
-regionBackendServicesGet
-    :: Text -- ^ 'rbsgProject'
-    -> Text -- ^ 'rbsgRegion'
-    -> Text -- ^ 'rbsgBackendService'
-    -> RegionBackendServicesGet
-regionBackendServicesGet pRbsgProject_ pRbsgRegion_ pRbsgBackendService_ =
-  RegionBackendServicesGet'
-    { _rbsgProject = pRbsgProject_
-    , _rbsgRegion = pRbsgRegion_
-    , _rbsgBackendService = pRbsgBackendService_
-    }
-
-
--- | Project ID for this request.
-rbsgProject :: Lens' RegionBackendServicesGet Text
-rbsgProject
-  = lens _rbsgProject (\ s a -> s{_rbsgProject = a})
-
--- | Name of the region scoping this request.
-rbsgRegion :: Lens' RegionBackendServicesGet Text
-rbsgRegion
-  = lens _rbsgRegion (\ s a -> s{_rbsgRegion = a})
-
--- | Name of the BackendService resource to return.
-rbsgBackendService :: Lens' RegionBackendServicesGet Text
-rbsgBackendService
-  = lens _rbsgBackendService
-      (\ s a -> s{_rbsgBackendService = a})
-
-instance GoogleRequest RegionBackendServicesGet where
-        type Rs RegionBackendServicesGet = BackendService
-        type Scopes RegionBackendServicesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionBackendServicesGet'{..}
-          = go _rbsgProject _rbsgRegion _rbsgBackendService
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/GetHealth.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/GetHealth.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/GetHealth.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.GetHealth
--- 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 most recent health check results for this regional
--- BackendService.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.getHealth@.
-module Network.Google.Resource.Compute.RegionBackendServices.GetHealth
-    (
-    -- * REST Resource
-      RegionBackendServicesGetHealthResource
-
-    -- * Creating a Request
-    , regionBackendServicesGetHealth
-    , RegionBackendServicesGetHealth
-
-    -- * Request Lenses
-    , rbsghProject
-    , rbsghPayload
-    , rbsghRegion
-    , rbsghBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.getHealth@ method which the
--- 'RegionBackendServicesGetHealth' request conforms to.
-type RegionBackendServicesGetHealthResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   Capture "backendService" Text :>
-                     "getHealth" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] ResourceGroupReference :>
-                           Post '[JSON] BackendServiceGroupHealth
-
--- | Gets the most recent health check results for this regional
--- BackendService.
---
--- /See:/ 'regionBackendServicesGetHealth' smart constructor.
-data RegionBackendServicesGetHealth =
-  RegionBackendServicesGetHealth'
-    { _rbsghProject        :: !Text
-    , _rbsghPayload        :: !ResourceGroupReference
-    , _rbsghRegion         :: !Text
-    , _rbsghBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesGetHealth' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbsghProject'
---
--- * 'rbsghPayload'
---
--- * 'rbsghRegion'
---
--- * 'rbsghBackendService'
-regionBackendServicesGetHealth
-    :: Text -- ^ 'rbsghProject'
-    -> ResourceGroupReference -- ^ 'rbsghPayload'
-    -> Text -- ^ 'rbsghRegion'
-    -> Text -- ^ 'rbsghBackendService'
-    -> RegionBackendServicesGetHealth
-regionBackendServicesGetHealth pRbsghProject_ pRbsghPayload_ pRbsghRegion_ pRbsghBackendService_ =
-  RegionBackendServicesGetHealth'
-    { _rbsghProject = pRbsghProject_
-    , _rbsghPayload = pRbsghPayload_
-    , _rbsghRegion = pRbsghRegion_
-    , _rbsghBackendService = pRbsghBackendService_
-    }
-
-
-rbsghProject :: Lens' RegionBackendServicesGetHealth Text
-rbsghProject
-  = lens _rbsghProject (\ s a -> s{_rbsghProject = a})
-
--- | Multipart request metadata.
-rbsghPayload :: Lens' RegionBackendServicesGetHealth ResourceGroupReference
-rbsghPayload
-  = lens _rbsghPayload (\ s a -> s{_rbsghPayload = a})
-
--- | Name of the region scoping this request.
-rbsghRegion :: Lens' RegionBackendServicesGetHealth Text
-rbsghRegion
-  = lens _rbsghRegion (\ s a -> s{_rbsghRegion = a})
-
--- | Name of the BackendService resource for which to get health.
-rbsghBackendService :: Lens' RegionBackendServicesGetHealth Text
-rbsghBackendService
-  = lens _rbsghBackendService
-      (\ s a -> s{_rbsghBackendService = a})
-
-instance GoogleRequest RegionBackendServicesGetHealth
-         where
-        type Rs RegionBackendServicesGetHealth =
-             BackendServiceGroupHealth
-        type Scopes RegionBackendServicesGetHealth =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionBackendServicesGetHealth'{..}
-          = go _rbsghProject _rbsghRegion _rbsghBackendService
-              (Just AltJSON)
-              _rbsghPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionBackendServicesGetHealthResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/Insert.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/Insert.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.Insert
--- 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 regional BackendService resource in the specified project
--- using the data included in the request. There are several restrictions
--- and guidelines to keep in mind when creating a regional backend service.
--- Read Restrictions and Guidelines for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.insert@.
-module Network.Google.Resource.Compute.RegionBackendServices.Insert
-    (
-    -- * REST Resource
-      RegionBackendServicesInsertResource
-
-    -- * Creating a Request
-    , regionBackendServicesInsert
-    , RegionBackendServicesInsert
-
-    -- * Request Lenses
-    , rbsiRequestId
-    , rbsiProject
-    , rbsiPayload
-    , rbsiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.insert@ method which the
--- 'RegionBackendServicesInsert' request conforms to.
-type RegionBackendServicesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] BackendService :>
-                         Post '[JSON] Operation
-
--- | Creates a regional BackendService resource in the specified project
--- using the data included in the request. There are several restrictions
--- and guidelines to keep in mind when creating a regional backend service.
--- Read Restrictions and Guidelines for more information.
---
--- /See:/ 'regionBackendServicesInsert' smart constructor.
-data RegionBackendServicesInsert =
-  RegionBackendServicesInsert'
-    { _rbsiRequestId :: !(Maybe Text)
-    , _rbsiProject   :: !Text
-    , _rbsiPayload   :: !BackendService
-    , _rbsiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbsiRequestId'
---
--- * 'rbsiProject'
---
--- * 'rbsiPayload'
---
--- * 'rbsiRegion'
-regionBackendServicesInsert
-    :: Text -- ^ 'rbsiProject'
-    -> BackendService -- ^ 'rbsiPayload'
-    -> Text -- ^ 'rbsiRegion'
-    -> RegionBackendServicesInsert
-regionBackendServicesInsert pRbsiProject_ pRbsiPayload_ pRbsiRegion_ =
-  RegionBackendServicesInsert'
-    { _rbsiRequestId = Nothing
-    , _rbsiProject = pRbsiProject_
-    , _rbsiPayload = pRbsiPayload_
-    , _rbsiRegion = pRbsiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rbsiRequestId :: Lens' RegionBackendServicesInsert (Maybe Text)
-rbsiRequestId
-  = lens _rbsiRequestId
-      (\ s a -> s{_rbsiRequestId = a})
-
--- | Project ID for this request.
-rbsiProject :: Lens' RegionBackendServicesInsert Text
-rbsiProject
-  = lens _rbsiProject (\ s a -> s{_rbsiProject = a})
-
--- | Multipart request metadata.
-rbsiPayload :: Lens' RegionBackendServicesInsert BackendService
-rbsiPayload
-  = lens _rbsiPayload (\ s a -> s{_rbsiPayload = a})
-
--- | Name of the region scoping this request.
-rbsiRegion :: Lens' RegionBackendServicesInsert Text
-rbsiRegion
-  = lens _rbsiRegion (\ s a -> s{_rbsiRegion = a})
-
-instance GoogleRequest RegionBackendServicesInsert
-         where
-        type Rs RegionBackendServicesInsert = Operation
-        type Scopes RegionBackendServicesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionBackendServicesInsert'{..}
-          = go _rbsiProject _rbsiRegion _rbsiRequestId
-              (Just AltJSON)
-              _rbsiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/List.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/List.hs
+++ /dev/null
@@ -1,189 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.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)
---
--- Retrieves the list of regional BackendService resources available to the
--- specified project in the given region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.list@.
-module Network.Google.Resource.Compute.RegionBackendServices.List
-    (
-    -- * REST Resource
-      RegionBackendServicesListResource
-
-    -- * Creating a Request
-    , regionBackendServicesList
-    , RegionBackendServicesList
-
-    -- * Request Lenses
-    , rbslOrderBy
-    , rbslProject
-    , rbslFilter
-    , rbslRegion
-    , rbslPageToken
-    , rbslMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.list@ method which the
--- 'RegionBackendServicesList' request conforms to.
-type RegionBackendServicesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] BackendServiceList
-
--- | Retrieves the list of regional BackendService resources available to the
--- specified project in the given region.
---
--- /See:/ 'regionBackendServicesList' smart constructor.
-data RegionBackendServicesList =
-  RegionBackendServicesList'
-    { _rbslOrderBy    :: !(Maybe Text)
-    , _rbslProject    :: !Text
-    , _rbslFilter     :: !(Maybe Text)
-    , _rbslRegion     :: !Text
-    , _rbslPageToken  :: !(Maybe Text)
-    , _rbslMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbslOrderBy'
---
--- * 'rbslProject'
---
--- * 'rbslFilter'
---
--- * 'rbslRegion'
---
--- * 'rbslPageToken'
---
--- * 'rbslMaxResults'
-regionBackendServicesList
-    :: Text -- ^ 'rbslProject'
-    -> Text -- ^ 'rbslRegion'
-    -> RegionBackendServicesList
-regionBackendServicesList pRbslProject_ pRbslRegion_ =
-  RegionBackendServicesList'
-    { _rbslOrderBy = Nothing
-    , _rbslProject = pRbslProject_
-    , _rbslFilter = Nothing
-    , _rbslRegion = pRbslRegion_
-    , _rbslPageToken = Nothing
-    , _rbslMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rbslOrderBy :: Lens' RegionBackendServicesList (Maybe Text)
-rbslOrderBy
-  = lens _rbslOrderBy (\ s a -> s{_rbslOrderBy = a})
-
--- | Project ID for this request.
-rbslProject :: Lens' RegionBackendServicesList Text
-rbslProject
-  = lens _rbslProject (\ s a -> s{_rbslProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rbslFilter :: Lens' RegionBackendServicesList (Maybe Text)
-rbslFilter
-  = lens _rbslFilter (\ s a -> s{_rbslFilter = a})
-
--- | Name of the region scoping this request.
-rbslRegion :: Lens' RegionBackendServicesList Text
-rbslRegion
-  = lens _rbslRegion (\ s a -> s{_rbslRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rbslPageToken :: Lens' RegionBackendServicesList (Maybe Text)
-rbslPageToken
-  = lens _rbslPageToken
-      (\ s a -> s{_rbslPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rbslMaxResults :: Lens' RegionBackendServicesList Word32
-rbslMaxResults
-  = lens _rbslMaxResults
-      (\ s a -> s{_rbslMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionBackendServicesList
-         where
-        type Rs RegionBackendServicesList =
-             BackendServiceList
-        type Scopes RegionBackendServicesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionBackendServicesList'{..}
-          = go _rbslProject _rbslRegion _rbslOrderBy
-              _rbslFilter
-              _rbslPageToken
-              (Just _rbslMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/Patch.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/Patch.hs
+++ /dev/null
@@ -1,164 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.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 regional BackendService resource with the data
--- included in the request. There are several restrictions and guidelines
--- to keep in mind when updating a backend service. Read Restrictions and
--- Guidelines for more information. This method supports PATCH semantics
--- and uses the JSON merge patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.patch@.
-module Network.Google.Resource.Compute.RegionBackendServices.Patch
-    (
-    -- * REST Resource
-      RegionBackendServicesPatchResource
-
-    -- * Creating a Request
-    , regionBackendServicesPatch
-    , RegionBackendServicesPatch
-
-    -- * Request Lenses
-    , rbspRequestId
-    , rbspProject
-    , rbspPayload
-    , rbspRegion
-    , rbspBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.patch@ method which the
--- 'RegionBackendServicesPatch' request conforms to.
-type RegionBackendServicesPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   Capture "backendService" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] BackendService :>
-                           Patch '[JSON] Operation
-
--- | Updates the specified regional BackendService resource with the data
--- included in the request. There are several restrictions and guidelines
--- to keep in mind when updating a backend service. Read Restrictions and
--- Guidelines for more information. This method supports PATCH semantics
--- and uses the JSON merge patch format and processing rules.
---
--- /See:/ 'regionBackendServicesPatch' smart constructor.
-data RegionBackendServicesPatch =
-  RegionBackendServicesPatch'
-    { _rbspRequestId      :: !(Maybe Text)
-    , _rbspProject        :: !Text
-    , _rbspPayload        :: !BackendService
-    , _rbspRegion         :: !Text
-    , _rbspBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbspRequestId'
---
--- * 'rbspProject'
---
--- * 'rbspPayload'
---
--- * 'rbspRegion'
---
--- * 'rbspBackendService'
-regionBackendServicesPatch
-    :: Text -- ^ 'rbspProject'
-    -> BackendService -- ^ 'rbspPayload'
-    -> Text -- ^ 'rbspRegion'
-    -> Text -- ^ 'rbspBackendService'
-    -> RegionBackendServicesPatch
-regionBackendServicesPatch pRbspProject_ pRbspPayload_ pRbspRegion_ pRbspBackendService_ =
-  RegionBackendServicesPatch'
-    { _rbspRequestId = Nothing
-    , _rbspProject = pRbspProject_
-    , _rbspPayload = pRbspPayload_
-    , _rbspRegion = pRbspRegion_
-    , _rbspBackendService = pRbspBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rbspRequestId :: Lens' RegionBackendServicesPatch (Maybe Text)
-rbspRequestId
-  = lens _rbspRequestId
-      (\ s a -> s{_rbspRequestId = a})
-
--- | Project ID for this request.
-rbspProject :: Lens' RegionBackendServicesPatch Text
-rbspProject
-  = lens _rbspProject (\ s a -> s{_rbspProject = a})
-
--- | Multipart request metadata.
-rbspPayload :: Lens' RegionBackendServicesPatch BackendService
-rbspPayload
-  = lens _rbspPayload (\ s a -> s{_rbspPayload = a})
-
--- | Name of the region scoping this request.
-rbspRegion :: Lens' RegionBackendServicesPatch Text
-rbspRegion
-  = lens _rbspRegion (\ s a -> s{_rbspRegion = a})
-
--- | Name of the BackendService resource to patch.
-rbspBackendService :: Lens' RegionBackendServicesPatch Text
-rbspBackendService
-  = lens _rbspBackendService
-      (\ s a -> s{_rbspBackendService = a})
-
-instance GoogleRequest RegionBackendServicesPatch
-         where
-        type Rs RegionBackendServicesPatch = Operation
-        type Scopes RegionBackendServicesPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionBackendServicesPatch'{..}
-          = go _rbspProject _rbspRegion _rbspBackendService
-              _rbspRequestId
-              (Just AltJSON)
-              _rbspPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionBackendServices/Update.hs b/gen/Network/Google/Resource/Compute/RegionBackendServices/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionBackendServices/Update.hs
+++ /dev/null
@@ -1,162 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionBackendServices.Update
--- 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 regional BackendService resource with the data
--- included in the request. There are several restrictions and guidelines
--- to keep in mind when updating a backend service. Read Restrictions and
--- Guidelines for more information.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionBackendServices.update@.
-module Network.Google.Resource.Compute.RegionBackendServices.Update
-    (
-    -- * REST Resource
-      RegionBackendServicesUpdateResource
-
-    -- * Creating a Request
-    , regionBackendServicesUpdate
-    , RegionBackendServicesUpdate
-
-    -- * Request Lenses
-    , rbsuRequestId
-    , rbsuProject
-    , rbsuPayload
-    , rbsuRegion
-    , rbsuBackendService
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionBackendServices.update@ method which the
--- 'RegionBackendServicesUpdate' request conforms to.
-type RegionBackendServicesUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "backendServices" :>
-                   Capture "backendService" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] BackendService :>
-                           Put '[JSON] Operation
-
--- | Updates the specified regional BackendService resource with the data
--- included in the request. There are several restrictions and guidelines
--- to keep in mind when updating a backend service. Read Restrictions and
--- Guidelines for more information.
---
--- /See:/ 'regionBackendServicesUpdate' smart constructor.
-data RegionBackendServicesUpdate =
-  RegionBackendServicesUpdate'
-    { _rbsuRequestId      :: !(Maybe Text)
-    , _rbsuProject        :: !Text
-    , _rbsuPayload        :: !BackendService
-    , _rbsuRegion         :: !Text
-    , _rbsuBackendService :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionBackendServicesUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbsuRequestId'
---
--- * 'rbsuProject'
---
--- * 'rbsuPayload'
---
--- * 'rbsuRegion'
---
--- * 'rbsuBackendService'
-regionBackendServicesUpdate
-    :: Text -- ^ 'rbsuProject'
-    -> BackendService -- ^ 'rbsuPayload'
-    -> Text -- ^ 'rbsuRegion'
-    -> Text -- ^ 'rbsuBackendService'
-    -> RegionBackendServicesUpdate
-regionBackendServicesUpdate pRbsuProject_ pRbsuPayload_ pRbsuRegion_ pRbsuBackendService_ =
-  RegionBackendServicesUpdate'
-    { _rbsuRequestId = Nothing
-    , _rbsuProject = pRbsuProject_
-    , _rbsuPayload = pRbsuPayload_
-    , _rbsuRegion = pRbsuRegion_
-    , _rbsuBackendService = pRbsuBackendService_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rbsuRequestId :: Lens' RegionBackendServicesUpdate (Maybe Text)
-rbsuRequestId
-  = lens _rbsuRequestId
-      (\ s a -> s{_rbsuRequestId = a})
-
--- | Project ID for this request.
-rbsuProject :: Lens' RegionBackendServicesUpdate Text
-rbsuProject
-  = lens _rbsuProject (\ s a -> s{_rbsuProject = a})
-
--- | Multipart request metadata.
-rbsuPayload :: Lens' RegionBackendServicesUpdate BackendService
-rbsuPayload
-  = lens _rbsuPayload (\ s a -> s{_rbsuPayload = a})
-
--- | Name of the region scoping this request.
-rbsuRegion :: Lens' RegionBackendServicesUpdate Text
-rbsuRegion
-  = lens _rbsuRegion (\ s a -> s{_rbsuRegion = a})
-
--- | Name of the BackendService resource to update.
-rbsuBackendService :: Lens' RegionBackendServicesUpdate Text
-rbsuBackendService
-  = lens _rbsuBackendService
-      (\ s a -> s{_rbsuBackendService = a})
-
-instance GoogleRequest RegionBackendServicesUpdate
-         where
-        type Rs RegionBackendServicesUpdate = Operation
-        type Scopes RegionBackendServicesUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionBackendServicesUpdate'{..}
-          = go _rbsuProject _rbsuRegion _rbsuBackendService
-              _rbsuRequestId
-              (Just AltJSON)
-              _rbsuPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionBackendServicesUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionCommitments/AggregatedList.hs b/gen/Network/Google/Resource/Compute/RegionCommitments/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionCommitments/AggregatedList.hs
+++ /dev/null
@@ -1,176 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionCommitments.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of commitments.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionCommitments.aggregatedList@.
-module Network.Google.Resource.Compute.RegionCommitments.AggregatedList
-    (
-    -- * REST Resource
-      RegionCommitmentsAggregatedListResource
-
-    -- * Creating a Request
-    , regionCommitmentsAggregatedList
-    , RegionCommitmentsAggregatedList
-
-    -- * Request Lenses
-    , rcalOrderBy
-    , rcalProject
-    , rcalFilter
-    , rcalPageToken
-    , rcalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionCommitments.aggregatedList@ method which the
--- 'RegionCommitmentsAggregatedList' request conforms to.
-type RegionCommitmentsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "commitments" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] CommitmentAggregatedList
-
--- | Retrieves an aggregated list of commitments.
---
--- /See:/ 'regionCommitmentsAggregatedList' smart constructor.
-data RegionCommitmentsAggregatedList =
-  RegionCommitmentsAggregatedList'
-    { _rcalOrderBy    :: !(Maybe Text)
-    , _rcalProject    :: !Text
-    , _rcalFilter     :: !(Maybe Text)
-    , _rcalPageToken  :: !(Maybe Text)
-    , _rcalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionCommitmentsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcalOrderBy'
---
--- * 'rcalProject'
---
--- * 'rcalFilter'
---
--- * 'rcalPageToken'
---
--- * 'rcalMaxResults'
-regionCommitmentsAggregatedList
-    :: Text -- ^ 'rcalProject'
-    -> RegionCommitmentsAggregatedList
-regionCommitmentsAggregatedList pRcalProject_ =
-  RegionCommitmentsAggregatedList'
-    { _rcalOrderBy = Nothing
-    , _rcalProject = pRcalProject_
-    , _rcalFilter = Nothing
-    , _rcalPageToken = Nothing
-    , _rcalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rcalOrderBy :: Lens' RegionCommitmentsAggregatedList (Maybe Text)
-rcalOrderBy
-  = lens _rcalOrderBy (\ s a -> s{_rcalOrderBy = a})
-
--- | Project ID for this request.
-rcalProject :: Lens' RegionCommitmentsAggregatedList Text
-rcalProject
-  = lens _rcalProject (\ s a -> s{_rcalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rcalFilter :: Lens' RegionCommitmentsAggregatedList (Maybe Text)
-rcalFilter
-  = lens _rcalFilter (\ s a -> s{_rcalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rcalPageToken :: Lens' RegionCommitmentsAggregatedList (Maybe Text)
-rcalPageToken
-  = lens _rcalPageToken
-      (\ s a -> s{_rcalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rcalMaxResults :: Lens' RegionCommitmentsAggregatedList Word32
-rcalMaxResults
-  = lens _rcalMaxResults
-      (\ s a -> s{_rcalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           RegionCommitmentsAggregatedList
-         where
-        type Rs RegionCommitmentsAggregatedList =
-             CommitmentAggregatedList
-        type Scopes RegionCommitmentsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionCommitmentsAggregatedList'{..}
-          = go _rcalProject _rcalOrderBy _rcalFilter
-              _rcalPageToken
-              (Just _rcalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionCommitmentsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionCommitments/Get.hs b/gen/Network/Google/Resource/Compute/RegionCommitments/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionCommitments/Get.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionCommitments.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)
---
--- Returns the specified commitment resource. Gets a list of available
--- commitments by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionCommitments.get@.
-module Network.Google.Resource.Compute.RegionCommitments.Get
-    (
-    -- * REST Resource
-      RegionCommitmentsGetResource
-
-    -- * Creating a Request
-    , regionCommitmentsGet
-    , RegionCommitmentsGet
-
-    -- * Request Lenses
-    , rcgProject
-    , rcgRegion
-    , rcgCommitment
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionCommitments.get@ method which the
--- 'RegionCommitmentsGet' request conforms to.
-type RegionCommitmentsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "commitments" :>
-                   Capture "commitment" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Commitment
-
--- | Returns the specified commitment resource. Gets a list of available
--- commitments by making a list() request.
---
--- /See:/ 'regionCommitmentsGet' smart constructor.
-data RegionCommitmentsGet =
-  RegionCommitmentsGet'
-    { _rcgProject    :: !Text
-    , _rcgRegion     :: !Text
-    , _rcgCommitment :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionCommitmentsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rcgProject'
---
--- * 'rcgRegion'
---
--- * 'rcgCommitment'
-regionCommitmentsGet
-    :: Text -- ^ 'rcgProject'
-    -> Text -- ^ 'rcgRegion'
-    -> Text -- ^ 'rcgCommitment'
-    -> RegionCommitmentsGet
-regionCommitmentsGet pRcgProject_ pRcgRegion_ pRcgCommitment_ =
-  RegionCommitmentsGet'
-    { _rcgProject = pRcgProject_
-    , _rcgRegion = pRcgRegion_
-    , _rcgCommitment = pRcgCommitment_
-    }
-
-
--- | Project ID for this request.
-rcgProject :: Lens' RegionCommitmentsGet Text
-rcgProject
-  = lens _rcgProject (\ s a -> s{_rcgProject = a})
-
--- | Name of the region for this request.
-rcgRegion :: Lens' RegionCommitmentsGet Text
-rcgRegion
-  = lens _rcgRegion (\ s a -> s{_rcgRegion = a})
-
--- | Name of the commitment to return.
-rcgCommitment :: Lens' RegionCommitmentsGet Text
-rcgCommitment
-  = lens _rcgCommitment
-      (\ s a -> s{_rcgCommitment = a})
-
-instance GoogleRequest RegionCommitmentsGet where
-        type Rs RegionCommitmentsGet = Commitment
-        type Scopes RegionCommitmentsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionCommitmentsGet'{..}
-          = go _rcgProject _rcgRegion _rcgCommitment
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionCommitmentsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionCommitments/Insert.hs b/gen/Network/Google/Resource/Compute/RegionCommitments/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionCommitments/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionCommitments.Insert
--- 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 commitment in the specified project using the data included in
--- the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionCommitments.insert@.
-module Network.Google.Resource.Compute.RegionCommitments.Insert
-    (
-    -- * REST Resource
-      RegionCommitmentsInsertResource
-
-    -- * Creating a Request
-    , regionCommitmentsInsert
-    , RegionCommitmentsInsert
-
-    -- * Request Lenses
-    , rciRequestId
-    , rciProject
-    , rciPayload
-    , rciRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionCommitments.insert@ method which the
--- 'RegionCommitmentsInsert' request conforms to.
-type RegionCommitmentsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "commitments" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Commitment :> Post '[JSON] Operation
-
--- | Creates a commitment in the specified project using the data included in
--- the request.
---
--- /See:/ 'regionCommitmentsInsert' smart constructor.
-data RegionCommitmentsInsert =
-  RegionCommitmentsInsert'
-    { _rciRequestId :: !(Maybe Text)
-    , _rciProject   :: !Text
-    , _rciPayload   :: !Commitment
-    , _rciRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionCommitmentsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rciRequestId'
---
--- * 'rciProject'
---
--- * 'rciPayload'
---
--- * 'rciRegion'
-regionCommitmentsInsert
-    :: Text -- ^ 'rciProject'
-    -> Commitment -- ^ 'rciPayload'
-    -> Text -- ^ 'rciRegion'
-    -> RegionCommitmentsInsert
-regionCommitmentsInsert pRciProject_ pRciPayload_ pRciRegion_ =
-  RegionCommitmentsInsert'
-    { _rciRequestId = Nothing
-    , _rciProject = pRciProject_
-    , _rciPayload = pRciPayload_
-    , _rciRegion = pRciRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rciRequestId :: Lens' RegionCommitmentsInsert (Maybe Text)
-rciRequestId
-  = lens _rciRequestId (\ s a -> s{_rciRequestId = a})
-
--- | Project ID for this request.
-rciProject :: Lens' RegionCommitmentsInsert Text
-rciProject
-  = lens _rciProject (\ s a -> s{_rciProject = a})
-
--- | Multipart request metadata.
-rciPayload :: Lens' RegionCommitmentsInsert Commitment
-rciPayload
-  = lens _rciPayload (\ s a -> s{_rciPayload = a})
-
--- | Name of the region for this request.
-rciRegion :: Lens' RegionCommitmentsInsert Text
-rciRegion
-  = lens _rciRegion (\ s a -> s{_rciRegion = a})
-
-instance GoogleRequest RegionCommitmentsInsert where
-        type Rs RegionCommitmentsInsert = Operation
-        type Scopes RegionCommitmentsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionCommitmentsInsert'{..}
-          = go _rciProject _rciRegion _rciRequestId
-              (Just AltJSON)
-              _rciPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionCommitmentsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionCommitments/List.hs b/gen/Network/Google/Resource/Compute/RegionCommitments/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionCommitments/List.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionCommitments.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)
---
--- Retrieves a list of commitments contained within the specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionCommitments.list@.
-module Network.Google.Resource.Compute.RegionCommitments.List
-    (
-    -- * REST Resource
-      RegionCommitmentsListResource
-
-    -- * Creating a Request
-    , regionCommitmentsList
-    , RegionCommitmentsList
-
-    -- * Request Lenses
-    , rclOrderBy
-    , rclProject
-    , rclFilter
-    , rclRegion
-    , rclPageToken
-    , rclMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionCommitments.list@ method which the
--- 'RegionCommitmentsList' request conforms to.
-type RegionCommitmentsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "commitments" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] CommitmentList
-
--- | Retrieves a list of commitments contained within the specified region.
---
--- /See:/ 'regionCommitmentsList' smart constructor.
-data RegionCommitmentsList =
-  RegionCommitmentsList'
-    { _rclOrderBy    :: !(Maybe Text)
-    , _rclProject    :: !Text
-    , _rclFilter     :: !(Maybe Text)
-    , _rclRegion     :: !Text
-    , _rclPageToken  :: !(Maybe Text)
-    , _rclMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionCommitmentsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rclOrderBy'
---
--- * 'rclProject'
---
--- * 'rclFilter'
---
--- * 'rclRegion'
---
--- * 'rclPageToken'
---
--- * 'rclMaxResults'
-regionCommitmentsList
-    :: Text -- ^ 'rclProject'
-    -> Text -- ^ 'rclRegion'
-    -> RegionCommitmentsList
-regionCommitmentsList pRclProject_ pRclRegion_ =
-  RegionCommitmentsList'
-    { _rclOrderBy = Nothing
-    , _rclProject = pRclProject_
-    , _rclFilter = Nothing
-    , _rclRegion = pRclRegion_
-    , _rclPageToken = Nothing
-    , _rclMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rclOrderBy :: Lens' RegionCommitmentsList (Maybe Text)
-rclOrderBy
-  = lens _rclOrderBy (\ s a -> s{_rclOrderBy = a})
-
--- | Project ID for this request.
-rclProject :: Lens' RegionCommitmentsList Text
-rclProject
-  = lens _rclProject (\ s a -> s{_rclProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rclFilter :: Lens' RegionCommitmentsList (Maybe Text)
-rclFilter
-  = lens _rclFilter (\ s a -> s{_rclFilter = a})
-
--- | Name of the region for this request.
-rclRegion :: Lens' RegionCommitmentsList Text
-rclRegion
-  = lens _rclRegion (\ s a -> s{_rclRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rclPageToken :: Lens' RegionCommitmentsList (Maybe Text)
-rclPageToken
-  = lens _rclPageToken (\ s a -> s{_rclPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rclMaxResults :: Lens' RegionCommitmentsList Word32
-rclMaxResults
-  = lens _rclMaxResults
-      (\ s a -> s{_rclMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionCommitmentsList where
-        type Rs RegionCommitmentsList = CommitmentList
-        type Scopes RegionCommitmentsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionCommitmentsList'{..}
-          = go _rclProject _rclRegion _rclOrderBy _rclFilter
-              _rclPageToken
-              (Just _rclMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionCommitmentsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDiskTypes/Get.hs b/gen/Network/Google/Resource/Compute/RegionDiskTypes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDiskTypes/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDiskTypes.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)
---
--- Returns the specified regional disk type. Gets a list of available disk
--- types by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDiskTypes.get@.
-module Network.Google.Resource.Compute.RegionDiskTypes.Get
-    (
-    -- * REST Resource
-      RegionDiskTypesGetResource
-
-    -- * Creating a Request
-    , regionDiskTypesGet
-    , RegionDiskTypesGet
-
-    -- * Request Lenses
-    , rdtgProject
-    , rdtgDiskType
-    , rdtgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDiskTypes.get@ method which the
--- 'RegionDiskTypesGet' request conforms to.
-type RegionDiskTypesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "diskTypes" :>
-                   Capture "diskType" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] DiskType
-
--- | Returns the specified regional disk type. Gets a list of available disk
--- types by making a list() request.
---
--- /See:/ 'regionDiskTypesGet' smart constructor.
-data RegionDiskTypesGet =
-  RegionDiskTypesGet'
-    { _rdtgProject  :: !Text
-    , _rdtgDiskType :: !Text
-    , _rdtgRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDiskTypesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtgProject'
---
--- * 'rdtgDiskType'
---
--- * 'rdtgRegion'
-regionDiskTypesGet
-    :: Text -- ^ 'rdtgProject'
-    -> Text -- ^ 'rdtgDiskType'
-    -> Text -- ^ 'rdtgRegion'
-    -> RegionDiskTypesGet
-regionDiskTypesGet pRdtgProject_ pRdtgDiskType_ pRdtgRegion_ =
-  RegionDiskTypesGet'
-    { _rdtgProject = pRdtgProject_
-    , _rdtgDiskType = pRdtgDiskType_
-    , _rdtgRegion = pRdtgRegion_
-    }
-
-
--- | Project ID for this request.
-rdtgProject :: Lens' RegionDiskTypesGet Text
-rdtgProject
-  = lens _rdtgProject (\ s a -> s{_rdtgProject = a})
-
--- | Name of the disk type to return.
-rdtgDiskType :: Lens' RegionDiskTypesGet Text
-rdtgDiskType
-  = lens _rdtgDiskType (\ s a -> s{_rdtgDiskType = a})
-
--- | The name of the region for this request.
-rdtgRegion :: Lens' RegionDiskTypesGet Text
-rdtgRegion
-  = lens _rdtgRegion (\ s a -> s{_rdtgRegion = a})
-
-instance GoogleRequest RegionDiskTypesGet where
-        type Rs RegionDiskTypesGet = DiskType
-        type Scopes RegionDiskTypesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionDiskTypesGet'{..}
-          = go _rdtgProject _rdtgRegion _rdtgDiskType
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDiskTypesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDiskTypes/List.hs b/gen/Network/Google/Resource/Compute/RegionDiskTypes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDiskTypes/List.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDiskTypes.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)
---
--- Retrieves a list of regional disk types available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDiskTypes.list@.
-module Network.Google.Resource.Compute.RegionDiskTypes.List
-    (
-    -- * REST Resource
-      RegionDiskTypesListResource
-
-    -- * Creating a Request
-    , regionDiskTypesList
-    , RegionDiskTypesList
-
-    -- * Request Lenses
-    , rdtlOrderBy
-    , rdtlProject
-    , rdtlFilter
-    , rdtlRegion
-    , rdtlPageToken
-    , rdtlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDiskTypes.list@ method which the
--- 'RegionDiskTypesList' request conforms to.
-type RegionDiskTypesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "diskTypes" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] RegionDiskTypeList
-
--- | Retrieves a list of regional disk types available to the specified
--- project.
---
--- /See:/ 'regionDiskTypesList' smart constructor.
-data RegionDiskTypesList =
-  RegionDiskTypesList'
-    { _rdtlOrderBy    :: !(Maybe Text)
-    , _rdtlProject    :: !Text
-    , _rdtlFilter     :: !(Maybe Text)
-    , _rdtlRegion     :: !Text
-    , _rdtlPageToken  :: !(Maybe Text)
-    , _rdtlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDiskTypesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtlOrderBy'
---
--- * 'rdtlProject'
---
--- * 'rdtlFilter'
---
--- * 'rdtlRegion'
---
--- * 'rdtlPageToken'
---
--- * 'rdtlMaxResults'
-regionDiskTypesList
-    :: Text -- ^ 'rdtlProject'
-    -> Text -- ^ 'rdtlRegion'
-    -> RegionDiskTypesList
-regionDiskTypesList pRdtlProject_ pRdtlRegion_ =
-  RegionDiskTypesList'
-    { _rdtlOrderBy = Nothing
-    , _rdtlProject = pRdtlProject_
-    , _rdtlFilter = Nothing
-    , _rdtlRegion = pRdtlRegion_
-    , _rdtlPageToken = Nothing
-    , _rdtlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rdtlOrderBy :: Lens' RegionDiskTypesList (Maybe Text)
-rdtlOrderBy
-  = lens _rdtlOrderBy (\ s a -> s{_rdtlOrderBy = a})
-
--- | Project ID for this request.
-rdtlProject :: Lens' RegionDiskTypesList Text
-rdtlProject
-  = lens _rdtlProject (\ s a -> s{_rdtlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rdtlFilter :: Lens' RegionDiskTypesList (Maybe Text)
-rdtlFilter
-  = lens _rdtlFilter (\ s a -> s{_rdtlFilter = a})
-
--- | The name of the region for this request.
-rdtlRegion :: Lens' RegionDiskTypesList Text
-rdtlRegion
-  = lens _rdtlRegion (\ s a -> s{_rdtlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rdtlPageToken :: Lens' RegionDiskTypesList (Maybe Text)
-rdtlPageToken
-  = lens _rdtlPageToken
-      (\ s a -> s{_rdtlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rdtlMaxResults :: Lens' RegionDiskTypesList Word32
-rdtlMaxResults
-  = lens _rdtlMaxResults
-      (\ s a -> s{_rdtlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionDiskTypesList where
-        type Rs RegionDiskTypesList = RegionDiskTypeList
-        type Scopes RegionDiskTypesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionDiskTypesList'{..}
-          = go _rdtlProject _rdtlRegion _rdtlOrderBy
-              _rdtlFilter
-              _rdtlPageToken
-              (Just _rdtlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDiskTypesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/CreateSnapshot.hs b/gen/Network/Google/Resource/Compute/RegionDisks/CreateSnapshot.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/CreateSnapshot.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.CreateSnapshot
--- 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 snapshot of this regional disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.createSnapshot@.
-module Network.Google.Resource.Compute.RegionDisks.CreateSnapshot
-    (
-    -- * REST Resource
-      RegionDisksCreateSnapshotResource
-
-    -- * Creating a Request
-    , regionDisksCreateSnapshot
-    , RegionDisksCreateSnapshot
-
-    -- * Request Lenses
-    , rdcsRequestId
-    , rdcsProject
-    , rdcsDisk
-    , rdcsPayload
-    , rdcsRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.createSnapshot@ method which the
--- 'RegionDisksCreateSnapshot' request conforms to.
-type RegionDisksCreateSnapshotResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     "createSnapshot" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] Snapshot :> Post '[JSON] Operation
-
--- | Creates a snapshot of this regional disk.
---
--- /See:/ 'regionDisksCreateSnapshot' smart constructor.
-data RegionDisksCreateSnapshot =
-  RegionDisksCreateSnapshot'
-    { _rdcsRequestId :: !(Maybe Text)
-    , _rdcsProject   :: !Text
-    , _rdcsDisk      :: !Text
-    , _rdcsPayload   :: !Snapshot
-    , _rdcsRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksCreateSnapshot' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdcsRequestId'
---
--- * 'rdcsProject'
---
--- * 'rdcsDisk'
---
--- * 'rdcsPayload'
---
--- * 'rdcsRegion'
-regionDisksCreateSnapshot
-    :: Text -- ^ 'rdcsProject'
-    -> Text -- ^ 'rdcsDisk'
-    -> Snapshot -- ^ 'rdcsPayload'
-    -> Text -- ^ 'rdcsRegion'
-    -> RegionDisksCreateSnapshot
-regionDisksCreateSnapshot pRdcsProject_ pRdcsDisk_ pRdcsPayload_ pRdcsRegion_ =
-  RegionDisksCreateSnapshot'
-    { _rdcsRequestId = Nothing
-    , _rdcsProject = pRdcsProject_
-    , _rdcsDisk = pRdcsDisk_
-    , _rdcsPayload = pRdcsPayload_
-    , _rdcsRegion = pRdcsRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rdcsRequestId :: Lens' RegionDisksCreateSnapshot (Maybe Text)
-rdcsRequestId
-  = lens _rdcsRequestId
-      (\ s a -> s{_rdcsRequestId = a})
-
--- | Project ID for this request.
-rdcsProject :: Lens' RegionDisksCreateSnapshot Text
-rdcsProject
-  = lens _rdcsProject (\ s a -> s{_rdcsProject = a})
-
--- | Name of the regional persistent disk to snapshot.
-rdcsDisk :: Lens' RegionDisksCreateSnapshot Text
-rdcsDisk = lens _rdcsDisk (\ s a -> s{_rdcsDisk = a})
-
--- | Multipart request metadata.
-rdcsPayload :: Lens' RegionDisksCreateSnapshot Snapshot
-rdcsPayload
-  = lens _rdcsPayload (\ s a -> s{_rdcsPayload = a})
-
--- | Name of the region for this request.
-rdcsRegion :: Lens' RegionDisksCreateSnapshot Text
-rdcsRegion
-  = lens _rdcsRegion (\ s a -> s{_rdcsRegion = a})
-
-instance GoogleRequest RegionDisksCreateSnapshot
-         where
-        type Rs RegionDisksCreateSnapshot = Operation
-        type Scopes RegionDisksCreateSnapshot =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionDisksCreateSnapshot'{..}
-          = go _rdcsProject _rdcsRegion _rdcsDisk
-              _rdcsRequestId
-              (Just AltJSON)
-              _rdcsPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksCreateSnapshotResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/Delete.hs b/gen/Network/Google/Resource/Compute/RegionDisks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/Delete.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.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 regional persistent disk. Deleting a regional disk
--- removes all the replicas of its data permanently and is irreversible.
--- However, deleting a disk does not delete any snapshots previously made
--- from the disk. You must separately delete snapshots.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.delete@.
-module Network.Google.Resource.Compute.RegionDisks.Delete
-    (
-    -- * REST Resource
-      RegionDisksDeleteResource
-
-    -- * Creating a Request
-    , regionDisksDelete
-    , RegionDisksDelete
-
-    -- * Request Lenses
-    , rddRequestId
-    , rddProject
-    , rddDisk
-    , rddRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.delete@ method which the
--- 'RegionDisksDelete' request conforms to.
-type RegionDisksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified regional persistent disk. Deleting a regional disk
--- removes all the replicas of its data permanently and is irreversible.
--- However, deleting a disk does not delete any snapshots previously made
--- from the disk. You must separately delete snapshots.
---
--- /See:/ 'regionDisksDelete' smart constructor.
-data RegionDisksDelete =
-  RegionDisksDelete'
-    { _rddRequestId :: !(Maybe Text)
-    , _rddProject   :: !Text
-    , _rddDisk      :: !Text
-    , _rddRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rddRequestId'
---
--- * 'rddProject'
---
--- * 'rddDisk'
---
--- * 'rddRegion'
-regionDisksDelete
-    :: Text -- ^ 'rddProject'
-    -> Text -- ^ 'rddDisk'
-    -> Text -- ^ 'rddRegion'
-    -> RegionDisksDelete
-regionDisksDelete pRddProject_ pRddDisk_ pRddRegion_ =
-  RegionDisksDelete'
-    { _rddRequestId = Nothing
-    , _rddProject = pRddProject_
-    , _rddDisk = pRddDisk_
-    , _rddRegion = pRddRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rddRequestId :: Lens' RegionDisksDelete (Maybe Text)
-rddRequestId
-  = lens _rddRequestId (\ s a -> s{_rddRequestId = a})
-
--- | Project ID for this request.
-rddProject :: Lens' RegionDisksDelete Text
-rddProject
-  = lens _rddProject (\ s a -> s{_rddProject = a})
-
--- | Name of the regional persistent disk to delete.
-rddDisk :: Lens' RegionDisksDelete Text
-rddDisk = lens _rddDisk (\ s a -> s{_rddDisk = a})
-
--- | Name of the region for this request.
-rddRegion :: Lens' RegionDisksDelete Text
-rddRegion
-  = lens _rddRegion (\ s a -> s{_rddRegion = a})
-
-instance GoogleRequest RegionDisksDelete where
-        type Rs RegionDisksDelete = Operation
-        type Scopes RegionDisksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionDisksDelete'{..}
-          = go _rddProject _rddRegion _rddDisk _rddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/Get.hs b/gen/Network/Google/Resource/Compute/RegionDisks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/Get.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.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)
---
--- Returns a specified regional persistent disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.get@.
-module Network.Google.Resource.Compute.RegionDisks.Get
-    (
-    -- * REST Resource
-      RegionDisksGetResource
-
-    -- * Creating a Request
-    , regionDisksGet
-    , RegionDisksGet
-
-    -- * Request Lenses
-    , rdgProject
-    , rdgDisk
-    , rdgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.get@ method which the
--- 'RegionDisksGet' request conforms to.
-type RegionDisksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Disk
-
--- | Returns a specified regional persistent disk.
---
--- /See:/ 'regionDisksGet' smart constructor.
-data RegionDisksGet =
-  RegionDisksGet'
-    { _rdgProject :: !Text
-    , _rdgDisk    :: !Text
-    , _rdgRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdgProject'
---
--- * 'rdgDisk'
---
--- * 'rdgRegion'
-regionDisksGet
-    :: Text -- ^ 'rdgProject'
-    -> Text -- ^ 'rdgDisk'
-    -> Text -- ^ 'rdgRegion'
-    -> RegionDisksGet
-regionDisksGet pRdgProject_ pRdgDisk_ pRdgRegion_ =
-  RegionDisksGet'
-    {_rdgProject = pRdgProject_, _rdgDisk = pRdgDisk_, _rdgRegion = pRdgRegion_}
-
-
--- | Project ID for this request.
-rdgProject :: Lens' RegionDisksGet Text
-rdgProject
-  = lens _rdgProject (\ s a -> s{_rdgProject = a})
-
--- | Name of the regional persistent disk to return.
-rdgDisk :: Lens' RegionDisksGet Text
-rdgDisk = lens _rdgDisk (\ s a -> s{_rdgDisk = a})
-
--- | Name of the region for this request.
-rdgRegion :: Lens' RegionDisksGet Text
-rdgRegion
-  = lens _rdgRegion (\ s a -> s{_rdgRegion = a})
-
-instance GoogleRequest RegionDisksGet where
-        type Rs RegionDisksGet = Disk
-        type Scopes RegionDisksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionDisksGet'{..}
-          = go _rdgProject _rdgRegion _rdgDisk (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RegionDisksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/Insert.hs b/gen/Network/Google/Resource/Compute/RegionDisks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/Insert.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.Insert
--- 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 persistent regional disk in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.insert@.
-module Network.Google.Resource.Compute.RegionDisks.Insert
-    (
-    -- * REST Resource
-      RegionDisksInsertResource
-
-    -- * Creating a Request
-    , regionDisksInsert
-    , RegionDisksInsert
-
-    -- * Request Lenses
-    , rdiRequestId
-    , rdiSourceImage
-    , rdiProject
-    , rdiPayload
-    , rdiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.insert@ method which the
--- 'RegionDisksInsert' request conforms to.
-type RegionDisksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "sourceImage" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Disk :> Post '[JSON] Operation
-
--- | Creates a persistent regional disk in the specified project using the
--- data included in the request.
---
--- /See:/ 'regionDisksInsert' smart constructor.
-data RegionDisksInsert =
-  RegionDisksInsert'
-    { _rdiRequestId   :: !(Maybe Text)
-    , _rdiSourceImage :: !(Maybe Text)
-    , _rdiProject     :: !Text
-    , _rdiPayload     :: !Disk
-    , _rdiRegion      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdiRequestId'
---
--- * 'rdiSourceImage'
---
--- * 'rdiProject'
---
--- * 'rdiPayload'
---
--- * 'rdiRegion'
-regionDisksInsert
-    :: Text -- ^ 'rdiProject'
-    -> Disk -- ^ 'rdiPayload'
-    -> Text -- ^ 'rdiRegion'
-    -> RegionDisksInsert
-regionDisksInsert pRdiProject_ pRdiPayload_ pRdiRegion_ =
-  RegionDisksInsert'
-    { _rdiRequestId = Nothing
-    , _rdiSourceImage = Nothing
-    , _rdiProject = pRdiProject_
-    , _rdiPayload = pRdiPayload_
-    , _rdiRegion = pRdiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rdiRequestId :: Lens' RegionDisksInsert (Maybe Text)
-rdiRequestId
-  = lens _rdiRequestId (\ s a -> s{_rdiRequestId = a})
-
--- | Optional. Source image to restore onto a disk.
-rdiSourceImage :: Lens' RegionDisksInsert (Maybe Text)
-rdiSourceImage
-  = lens _rdiSourceImage
-      (\ s a -> s{_rdiSourceImage = a})
-
--- | Project ID for this request.
-rdiProject :: Lens' RegionDisksInsert Text
-rdiProject
-  = lens _rdiProject (\ s a -> s{_rdiProject = a})
-
--- | Multipart request metadata.
-rdiPayload :: Lens' RegionDisksInsert Disk
-rdiPayload
-  = lens _rdiPayload (\ s a -> s{_rdiPayload = a})
-
--- | Name of the region for this request.
-rdiRegion :: Lens' RegionDisksInsert Text
-rdiRegion
-  = lens _rdiRegion (\ s a -> s{_rdiRegion = a})
-
-instance GoogleRequest RegionDisksInsert where
-        type Rs RegionDisksInsert = Operation
-        type Scopes RegionDisksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionDisksInsert'{..}
-          = go _rdiProject _rdiRegion _rdiRequestId
-              _rdiSourceImage
-              (Just AltJSON)
-              _rdiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/List.hs b/gen/Network/Google/Resource/Compute/RegionDisks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/List.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.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)
---
--- Retrieves the list of persistent disks contained within the specified
--- region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.list@.
-module Network.Google.Resource.Compute.RegionDisks.List
-    (
-    -- * REST Resource
-      RegionDisksListResource
-
-    -- * Creating a Request
-    , regionDisksList
-    , RegionDisksList
-
-    -- * Request Lenses
-    , rdlOrderBy
-    , rdlProject
-    , rdlFilter
-    , rdlRegion
-    , rdlPageToken
-    , rdlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.list@ method which the
--- 'RegionDisksList' request conforms to.
-type RegionDisksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] DiskList
-
--- | Retrieves the list of persistent disks contained within the specified
--- region.
---
--- /See:/ 'regionDisksList' smart constructor.
-data RegionDisksList =
-  RegionDisksList'
-    { _rdlOrderBy    :: !(Maybe Text)
-    , _rdlProject    :: !Text
-    , _rdlFilter     :: !(Maybe Text)
-    , _rdlRegion     :: !Text
-    , _rdlPageToken  :: !(Maybe Text)
-    , _rdlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdlOrderBy'
---
--- * 'rdlProject'
---
--- * 'rdlFilter'
---
--- * 'rdlRegion'
---
--- * 'rdlPageToken'
---
--- * 'rdlMaxResults'
-regionDisksList
-    :: Text -- ^ 'rdlProject'
-    -> Text -- ^ 'rdlRegion'
-    -> RegionDisksList
-regionDisksList pRdlProject_ pRdlRegion_ =
-  RegionDisksList'
-    { _rdlOrderBy = Nothing
-    , _rdlProject = pRdlProject_
-    , _rdlFilter = Nothing
-    , _rdlRegion = pRdlRegion_
-    , _rdlPageToken = Nothing
-    , _rdlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rdlOrderBy :: Lens' RegionDisksList (Maybe Text)
-rdlOrderBy
-  = lens _rdlOrderBy (\ s a -> s{_rdlOrderBy = a})
-
--- | Project ID for this request.
-rdlProject :: Lens' RegionDisksList Text
-rdlProject
-  = lens _rdlProject (\ s a -> s{_rdlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rdlFilter :: Lens' RegionDisksList (Maybe Text)
-rdlFilter
-  = lens _rdlFilter (\ s a -> s{_rdlFilter = a})
-
--- | Name of the region for this request.
-rdlRegion :: Lens' RegionDisksList Text
-rdlRegion
-  = lens _rdlRegion (\ s a -> s{_rdlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rdlPageToken :: Lens' RegionDisksList (Maybe Text)
-rdlPageToken
-  = lens _rdlPageToken (\ s a -> s{_rdlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rdlMaxResults :: Lens' RegionDisksList Word32
-rdlMaxResults
-  = lens _rdlMaxResults
-      (\ s a -> s{_rdlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionDisksList where
-        type Rs RegionDisksList = DiskList
-        type Scopes RegionDisksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionDisksList'{..}
-          = go _rdlProject _rdlRegion _rdlOrderBy _rdlFilter
-              _rdlPageToken
-              (Just _rdlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/Resize.hs b/gen/Network/Google/Resource/Compute/RegionDisks/Resize.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/Resize.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.Resize
--- 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)
---
--- Resizes the specified regional persistent disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.resize@.
-module Network.Google.Resource.Compute.RegionDisks.Resize
-    (
-    -- * REST Resource
-      RegionDisksResizeResource
-
-    -- * Creating a Request
-    , regionDisksResize
-    , RegionDisksResize
-
-    -- * Request Lenses
-    , rdrRequestId
-    , rdrProject
-    , rdrDisk
-    , rdrPayload
-    , rdrRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.resize@ method which the
--- 'RegionDisksResize' request conforms to.
-type RegionDisksResizeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "disk" Text :>
-                     "resize" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] RegionDisksResizeRequest :>
-                             Post '[JSON] Operation
-
--- | Resizes the specified regional persistent disk.
---
--- /See:/ 'regionDisksResize' smart constructor.
-data RegionDisksResize =
-  RegionDisksResize'
-    { _rdrRequestId :: !(Maybe Text)
-    , _rdrProject   :: !Text
-    , _rdrDisk      :: !Text
-    , _rdrPayload   :: !RegionDisksResizeRequest
-    , _rdrRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksResize' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdrRequestId'
---
--- * 'rdrProject'
---
--- * 'rdrDisk'
---
--- * 'rdrPayload'
---
--- * 'rdrRegion'
-regionDisksResize
-    :: Text -- ^ 'rdrProject'
-    -> Text -- ^ 'rdrDisk'
-    -> RegionDisksResizeRequest -- ^ 'rdrPayload'
-    -> Text -- ^ 'rdrRegion'
-    -> RegionDisksResize
-regionDisksResize pRdrProject_ pRdrDisk_ pRdrPayload_ pRdrRegion_ =
-  RegionDisksResize'
-    { _rdrRequestId = Nothing
-    , _rdrProject = pRdrProject_
-    , _rdrDisk = pRdrDisk_
-    , _rdrPayload = pRdrPayload_
-    , _rdrRegion = pRdrRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rdrRequestId :: Lens' RegionDisksResize (Maybe Text)
-rdrRequestId
-  = lens _rdrRequestId (\ s a -> s{_rdrRequestId = a})
-
--- | The project ID for this request.
-rdrProject :: Lens' RegionDisksResize Text
-rdrProject
-  = lens _rdrProject (\ s a -> s{_rdrProject = a})
-
--- | Name of the regional persistent disk.
-rdrDisk :: Lens' RegionDisksResize Text
-rdrDisk = lens _rdrDisk (\ s a -> s{_rdrDisk = a})
-
--- | Multipart request metadata.
-rdrPayload :: Lens' RegionDisksResize RegionDisksResizeRequest
-rdrPayload
-  = lens _rdrPayload (\ s a -> s{_rdrPayload = a})
-
--- | Name of the region for this request.
-rdrRegion :: Lens' RegionDisksResize Text
-rdrRegion
-  = lens _rdrRegion (\ s a -> s{_rdrRegion = a})
-
-instance GoogleRequest RegionDisksResize where
-        type Rs RegionDisksResize = Operation
-        type Scopes RegionDisksResize =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionDisksResize'{..}
-          = go _rdrProject _rdrRegion _rdrDisk _rdrRequestId
-              (Just AltJSON)
-              _rdrPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksResizeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/SetLabels.hs b/gen/Network/Google/Resource/Compute/RegionDisks/SetLabels.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/SetLabels.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.SetLabels
--- 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)
---
--- Sets the labels on the target regional disk.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.setLabels@.
-module Network.Google.Resource.Compute.RegionDisks.SetLabels
-    (
-    -- * REST Resource
-      RegionDisksSetLabelsResource
-
-    -- * Creating a Request
-    , regionDisksSetLabels
-    , RegionDisksSetLabels
-
-    -- * Request Lenses
-    , rdslRequestId
-    , rdslProject
-    , rdslPayload
-    , rdslResource
-    , rdslRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.setLabels@ method which the
--- 'RegionDisksSetLabels' request conforms to.
-type RegionDisksSetLabelsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "setLabels" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] RegionSetLabelsRequest :>
-                             Post '[JSON] Operation
-
--- | Sets the labels on the target regional disk.
---
--- /See:/ 'regionDisksSetLabels' smart constructor.
-data RegionDisksSetLabels =
-  RegionDisksSetLabels'
-    { _rdslRequestId :: !(Maybe Text)
-    , _rdslProject   :: !Text
-    , _rdslPayload   :: !RegionSetLabelsRequest
-    , _rdslResource  :: !Text
-    , _rdslRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksSetLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdslRequestId'
---
--- * 'rdslProject'
---
--- * 'rdslPayload'
---
--- * 'rdslResource'
---
--- * 'rdslRegion'
-regionDisksSetLabels
-    :: Text -- ^ 'rdslProject'
-    -> RegionSetLabelsRequest -- ^ 'rdslPayload'
-    -> Text -- ^ 'rdslResource'
-    -> Text -- ^ 'rdslRegion'
-    -> RegionDisksSetLabels
-regionDisksSetLabels pRdslProject_ pRdslPayload_ pRdslResource_ pRdslRegion_ =
-  RegionDisksSetLabels'
-    { _rdslRequestId = Nothing
-    , _rdslProject = pRdslProject_
-    , _rdslPayload = pRdslPayload_
-    , _rdslResource = pRdslResource_
-    , _rdslRegion = pRdslRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rdslRequestId :: Lens' RegionDisksSetLabels (Maybe Text)
-rdslRequestId
-  = lens _rdslRequestId
-      (\ s a -> s{_rdslRequestId = a})
-
--- | Project ID for this request.
-rdslProject :: Lens' RegionDisksSetLabels Text
-rdslProject
-  = lens _rdslProject (\ s a -> s{_rdslProject = a})
-
--- | Multipart request metadata.
-rdslPayload :: Lens' RegionDisksSetLabels RegionSetLabelsRequest
-rdslPayload
-  = lens _rdslPayload (\ s a -> s{_rdslPayload = a})
-
--- | Name or id of the resource for this request.
-rdslResource :: Lens' RegionDisksSetLabels Text
-rdslResource
-  = lens _rdslResource (\ s a -> s{_rdslResource = a})
-
--- | The region for this request.
-rdslRegion :: Lens' RegionDisksSetLabels Text
-rdslRegion
-  = lens _rdslRegion (\ s a -> s{_rdslRegion = a})
-
-instance GoogleRequest RegionDisksSetLabels where
-        type Rs RegionDisksSetLabels = Operation
-        type Scopes RegionDisksSetLabels =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionDisksSetLabels'{..}
-          = go _rdslProject _rdslRegion _rdslResource
-              _rdslRequestId
-              (Just AltJSON)
-              _rdslPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionDisksSetLabelsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionDisks/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/RegionDisks/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionDisks/TestIAMPermissions.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionDisks.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionDisks.testIamPermissions@.
-module Network.Google.Resource.Compute.RegionDisks.TestIAMPermissions
-    (
-    -- * REST Resource
-      RegionDisksTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , regionDisksTestIAMPermissions
-    , RegionDisksTestIAMPermissions
-
-    -- * Request Lenses
-    , rdtipProject
-    , rdtipPayload
-    , rdtipResource
-    , rdtipRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionDisks.testIamPermissions@ method which the
--- 'RegionDisksTestIAMPermissions' request conforms to.
-type RegionDisksTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "disks" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'regionDisksTestIAMPermissions' smart constructor.
-data RegionDisksTestIAMPermissions =
-  RegionDisksTestIAMPermissions'
-    { _rdtipProject  :: !Text
-    , _rdtipPayload  :: !TestPermissionsRequest
-    , _rdtipResource :: !Text
-    , _rdtipRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionDisksTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdtipProject'
---
--- * 'rdtipPayload'
---
--- * 'rdtipResource'
---
--- * 'rdtipRegion'
-regionDisksTestIAMPermissions
-    :: Text -- ^ 'rdtipProject'
-    -> TestPermissionsRequest -- ^ 'rdtipPayload'
-    -> Text -- ^ 'rdtipResource'
-    -> Text -- ^ 'rdtipRegion'
-    -> RegionDisksTestIAMPermissions
-regionDisksTestIAMPermissions pRdtipProject_ pRdtipPayload_ pRdtipResource_ pRdtipRegion_ =
-  RegionDisksTestIAMPermissions'
-    { _rdtipProject = pRdtipProject_
-    , _rdtipPayload = pRdtipPayload_
-    , _rdtipResource = pRdtipResource_
-    , _rdtipRegion = pRdtipRegion_
-    }
-
-
--- | Project ID for this request.
-rdtipProject :: Lens' RegionDisksTestIAMPermissions Text
-rdtipProject
-  = lens _rdtipProject (\ s a -> s{_rdtipProject = a})
-
--- | Multipart request metadata.
-rdtipPayload :: Lens' RegionDisksTestIAMPermissions TestPermissionsRequest
-rdtipPayload
-  = lens _rdtipPayload (\ s a -> s{_rdtipPayload = a})
-
--- | Name or id of the resource for this request.
-rdtipResource :: Lens' RegionDisksTestIAMPermissions Text
-rdtipResource
-  = lens _rdtipResource
-      (\ s a -> s{_rdtipResource = a})
-
--- | The name of the region for this request.
-rdtipRegion :: Lens' RegionDisksTestIAMPermissions Text
-rdtipRegion
-  = lens _rdtipRegion (\ s a -> s{_rdtipRegion = a})
-
-instance GoogleRequest RegionDisksTestIAMPermissions
-         where
-        type Rs RegionDisksTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes RegionDisksTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionDisksTestIAMPermissions'{..}
-          = go _rdtipProject _rdtipRegion _rdtipResource
-              (Just AltJSON)
-              _rdtipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionDisksTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/AbandonInstances.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/AbandonInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/AbandonInstances.hs
+++ /dev/null
@@ -1,193 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.AbandonInstances
--- 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)
---
--- Flags the specified instances to be immediately removed from the managed
--- instance group. Abandoning an instance does not delete the instance, but
--- it does remove the instance from any target pools that are applied by
--- the managed instance group. This method reduces the targetSize of the
--- managed instance group by the number of instances that you abandon. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances have not yet been removed from the group. You must separately
--- verify the status of the abandoning action with the listmanagedinstances
--- method. If the group is part of a backend service that has enabled
--- connection draining, it can take up to 60 seconds after the connection
--- draining duration has elapsed before the VM instance is removed or
--- deleted. You can specify a maximum of 1000 instances with this method
--- per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.abandonInstances@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.AbandonInstances
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersAbandonInstancesResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersAbandonInstances
-    , RegionInstanceGroupManagersAbandonInstances
-
-    -- * Request Lenses
-    , rigmaiRequestId
-    , rigmaiProject
-    , rigmaiInstanceGroupManager
-    , rigmaiPayload
-    , rigmaiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.abandonInstances@ method which the
--- 'RegionInstanceGroupManagersAbandonInstances' request conforms to.
-type RegionInstanceGroupManagersAbandonInstancesResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "abandonInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupManagersAbandonInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances to be immediately removed from the managed
--- instance group. Abandoning an instance does not delete the instance, but
--- it does remove the instance from any target pools that are applied by
--- the managed instance group. This method reduces the targetSize of the
--- managed instance group by the number of instances that you abandon. This
--- operation is marked as DONE when the action is scheduled even if the
--- instances have not yet been removed from the group. You must separately
--- verify the status of the abandoning action with the listmanagedinstances
--- method. If the group is part of a backend service that has enabled
--- connection draining, it can take up to 60 seconds after the connection
--- draining duration has elapsed before the VM instance is removed or
--- deleted. You can specify a maximum of 1000 instances with this method
--- per request.
---
--- /See:/ 'regionInstanceGroupManagersAbandonInstances' smart constructor.
-data RegionInstanceGroupManagersAbandonInstances =
-  RegionInstanceGroupManagersAbandonInstances'
-    { _rigmaiRequestId            :: !(Maybe Text)
-    , _rigmaiProject              :: !Text
-    , _rigmaiInstanceGroupManager :: !Text
-    , _rigmaiPayload              :: !RegionInstanceGroupManagersAbandonInstancesRequest
-    , _rigmaiRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersAbandonInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmaiRequestId'
---
--- * 'rigmaiProject'
---
--- * 'rigmaiInstanceGroupManager'
---
--- * 'rigmaiPayload'
---
--- * 'rigmaiRegion'
-regionInstanceGroupManagersAbandonInstances
-    :: Text -- ^ 'rigmaiProject'
-    -> Text -- ^ 'rigmaiInstanceGroupManager'
-    -> RegionInstanceGroupManagersAbandonInstancesRequest -- ^ 'rigmaiPayload'
-    -> Text -- ^ 'rigmaiRegion'
-    -> RegionInstanceGroupManagersAbandonInstances
-regionInstanceGroupManagersAbandonInstances pRigmaiProject_ pRigmaiInstanceGroupManager_ pRigmaiPayload_ pRigmaiRegion_ =
-  RegionInstanceGroupManagersAbandonInstances'
-    { _rigmaiRequestId = Nothing
-    , _rigmaiProject = pRigmaiProject_
-    , _rigmaiInstanceGroupManager = pRigmaiInstanceGroupManager_
-    , _rigmaiPayload = pRigmaiPayload_
-    , _rigmaiRegion = pRigmaiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmaiRequestId :: Lens' RegionInstanceGroupManagersAbandonInstances (Maybe Text)
-rigmaiRequestId
-  = lens _rigmaiRequestId
-      (\ s a -> s{_rigmaiRequestId = a})
-
--- | Project ID for this request.
-rigmaiProject :: Lens' RegionInstanceGroupManagersAbandonInstances Text
-rigmaiProject
-  = lens _rigmaiProject
-      (\ s a -> s{_rigmaiProject = a})
-
--- | Name of the managed instance group.
-rigmaiInstanceGroupManager :: Lens' RegionInstanceGroupManagersAbandonInstances Text
-rigmaiInstanceGroupManager
-  = lens _rigmaiInstanceGroupManager
-      (\ s a -> s{_rigmaiInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmaiPayload :: Lens' RegionInstanceGroupManagersAbandonInstances RegionInstanceGroupManagersAbandonInstancesRequest
-rigmaiPayload
-  = lens _rigmaiPayload
-      (\ s a -> s{_rigmaiPayload = a})
-
--- | Name of the region scoping this request.
-rigmaiRegion :: Lens' RegionInstanceGroupManagersAbandonInstances Text
-rigmaiRegion
-  = lens _rigmaiRegion (\ s a -> s{_rigmaiRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersAbandonInstances
-         where
-        type Rs RegionInstanceGroupManagersAbandonInstances =
-             Operation
-        type Scopes
-               RegionInstanceGroupManagersAbandonInstances
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          RegionInstanceGroupManagersAbandonInstances'{..}
-          = go _rigmaiProject _rigmaiRegion
-              _rigmaiInstanceGroupManager
-              _rigmaiRequestId
-              (Just AltJSON)
-              _rigmaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersAbandonInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Delete.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Delete.hs
+++ /dev/null
@@ -1,147 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.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 managed instance group and all of the instances in
--- that group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.delete@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Delete
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersDeleteResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersDelete
-    , RegionInstanceGroupManagersDelete
-
-    -- * Request Lenses
-    , rigmdRequestId
-    , rigmdProject
-    , rigmdInstanceGroupManager
-    , rigmdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.delete@ method which the
--- 'RegionInstanceGroupManagersDelete' request conforms to.
-type RegionInstanceGroupManagersDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified managed instance group and all of the instances in
--- that group.
---
--- /See:/ 'regionInstanceGroupManagersDelete' smart constructor.
-data RegionInstanceGroupManagersDelete =
-  RegionInstanceGroupManagersDelete'
-    { _rigmdRequestId            :: !(Maybe Text)
-    , _rigmdProject              :: !Text
-    , _rigmdInstanceGroupManager :: !Text
-    , _rigmdRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmdRequestId'
---
--- * 'rigmdProject'
---
--- * 'rigmdInstanceGroupManager'
---
--- * 'rigmdRegion'
-regionInstanceGroupManagersDelete
-    :: Text -- ^ 'rigmdProject'
-    -> Text -- ^ 'rigmdInstanceGroupManager'
-    -> Text -- ^ 'rigmdRegion'
-    -> RegionInstanceGroupManagersDelete
-regionInstanceGroupManagersDelete pRigmdProject_ pRigmdInstanceGroupManager_ pRigmdRegion_ =
-  RegionInstanceGroupManagersDelete'
-    { _rigmdRequestId = Nothing
-    , _rigmdProject = pRigmdProject_
-    , _rigmdInstanceGroupManager = pRigmdInstanceGroupManager_
-    , _rigmdRegion = pRigmdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmdRequestId :: Lens' RegionInstanceGroupManagersDelete (Maybe Text)
-rigmdRequestId
-  = lens _rigmdRequestId
-      (\ s a -> s{_rigmdRequestId = a})
-
--- | Project ID for this request.
-rigmdProject :: Lens' RegionInstanceGroupManagersDelete Text
-rigmdProject
-  = lens _rigmdProject (\ s a -> s{_rigmdProject = a})
-
--- | Name of the managed instance group to delete.
-rigmdInstanceGroupManager :: Lens' RegionInstanceGroupManagersDelete Text
-rigmdInstanceGroupManager
-  = lens _rigmdInstanceGroupManager
-      (\ s a -> s{_rigmdInstanceGroupManager = a})
-
--- | Name of the region scoping this request.
-rigmdRegion :: Lens' RegionInstanceGroupManagersDelete Text
-rigmdRegion
-  = lens _rigmdRegion (\ s a -> s{_rigmdRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersDelete
-         where
-        type Rs RegionInstanceGroupManagersDelete = Operation
-        type Scopes RegionInstanceGroupManagersDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionInstanceGroupManagersDelete'{..}
-          = go _rigmdProject _rigmdRegion
-              _rigmdInstanceGroupManager
-              _rigmdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/DeleteInstances.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/DeleteInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/DeleteInstances.hs
+++ /dev/null
@@ -1,191 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.DeleteInstances
--- 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)
---
--- Flags the specified instances in the managed instance group to be
--- immediately deleted. The instances are also removed from any target
--- pools of which they were a member. This method reduces the targetSize of
--- the managed instance group by the number of instances that you delete.
--- The deleteInstances operation is marked DONE if the deleteInstances
--- request is successful. The underlying actions take additional time. You
--- must separately verify the status of the deleting action with the
--- listmanagedinstances method. If the group is part of a backend service
--- that has enabled connection draining, it can take up to 60 seconds after
--- the connection draining duration has elapsed before the VM instance is
--- removed or deleted. You can specify a maximum of 1000 instances with
--- this method per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.deleteInstances@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.DeleteInstances
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersDeleteInstancesResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersDeleteInstances
-    , RegionInstanceGroupManagersDeleteInstances
-
-    -- * Request Lenses
-    , rigmdiRequestId
-    , rigmdiProject
-    , rigmdiInstanceGroupManager
-    , rigmdiPayload
-    , rigmdiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.deleteInstances@ method which the
--- 'RegionInstanceGroupManagersDeleteInstances' request conforms to.
-type RegionInstanceGroupManagersDeleteInstancesResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "deleteInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupManagersDeleteInstancesRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances in the managed instance group to be
--- immediately deleted. The instances are also removed from any target
--- pools of which they were a member. This method reduces the targetSize of
--- the managed instance group by the number of instances that you delete.
--- The deleteInstances operation is marked DONE if the deleteInstances
--- request is successful. The underlying actions take additional time. You
--- must separately verify the status of the deleting action with the
--- listmanagedinstances method. If the group is part of a backend service
--- that has enabled connection draining, it can take up to 60 seconds after
--- the connection draining duration has elapsed before the VM instance is
--- removed or deleted. You can specify a maximum of 1000 instances with
--- this method per request.
---
--- /See:/ 'regionInstanceGroupManagersDeleteInstances' smart constructor.
-data RegionInstanceGroupManagersDeleteInstances =
-  RegionInstanceGroupManagersDeleteInstances'
-    { _rigmdiRequestId            :: !(Maybe Text)
-    , _rigmdiProject              :: !Text
-    , _rigmdiInstanceGroupManager :: !Text
-    , _rigmdiPayload              :: !RegionInstanceGroupManagersDeleteInstancesRequest
-    , _rigmdiRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersDeleteInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmdiRequestId'
---
--- * 'rigmdiProject'
---
--- * 'rigmdiInstanceGroupManager'
---
--- * 'rigmdiPayload'
---
--- * 'rigmdiRegion'
-regionInstanceGroupManagersDeleteInstances
-    :: Text -- ^ 'rigmdiProject'
-    -> Text -- ^ 'rigmdiInstanceGroupManager'
-    -> RegionInstanceGroupManagersDeleteInstancesRequest -- ^ 'rigmdiPayload'
-    -> Text -- ^ 'rigmdiRegion'
-    -> RegionInstanceGroupManagersDeleteInstances
-regionInstanceGroupManagersDeleteInstances pRigmdiProject_ pRigmdiInstanceGroupManager_ pRigmdiPayload_ pRigmdiRegion_ =
-  RegionInstanceGroupManagersDeleteInstances'
-    { _rigmdiRequestId = Nothing
-    , _rigmdiProject = pRigmdiProject_
-    , _rigmdiInstanceGroupManager = pRigmdiInstanceGroupManager_
-    , _rigmdiPayload = pRigmdiPayload_
-    , _rigmdiRegion = pRigmdiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmdiRequestId :: Lens' RegionInstanceGroupManagersDeleteInstances (Maybe Text)
-rigmdiRequestId
-  = lens _rigmdiRequestId
-      (\ s a -> s{_rigmdiRequestId = a})
-
--- | Project ID for this request.
-rigmdiProject :: Lens' RegionInstanceGroupManagersDeleteInstances Text
-rigmdiProject
-  = lens _rigmdiProject
-      (\ s a -> s{_rigmdiProject = a})
-
--- | Name of the managed instance group.
-rigmdiInstanceGroupManager :: Lens' RegionInstanceGroupManagersDeleteInstances Text
-rigmdiInstanceGroupManager
-  = lens _rigmdiInstanceGroupManager
-      (\ s a -> s{_rigmdiInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmdiPayload :: Lens' RegionInstanceGroupManagersDeleteInstances RegionInstanceGroupManagersDeleteInstancesRequest
-rigmdiPayload
-  = lens _rigmdiPayload
-      (\ s a -> s{_rigmdiPayload = a})
-
--- | Name of the region scoping this request.
-rigmdiRegion :: Lens' RegionInstanceGroupManagersDeleteInstances Text
-rigmdiRegion
-  = lens _rigmdiRegion (\ s a -> s{_rigmdiRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersDeleteInstances
-         where
-        type Rs RegionInstanceGroupManagersDeleteInstances =
-             Operation
-        type Scopes
-               RegionInstanceGroupManagersDeleteInstances
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          RegionInstanceGroupManagersDeleteInstances'{..}
-          = go _rigmdiProject _rigmdiRegion
-              _rigmdiInstanceGroupManager
-              _rigmdiRequestId
-              (Just AltJSON)
-              _rigmdiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersDeleteInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Get.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Get.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.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)
---
--- Returns all of the details about the specified managed instance group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.get@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Get
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersGetResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersGet
-    , RegionInstanceGroupManagersGet
-
-    -- * Request Lenses
-    , rigmgProject
-    , rigmgInstanceGroupManager
-    , rigmgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.get@ method which the
--- 'RegionInstanceGroupManagersGet' request conforms to.
-type RegionInstanceGroupManagersGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] InstanceGroupManager
-
--- | Returns all of the details about the specified managed instance group.
---
--- /See:/ 'regionInstanceGroupManagersGet' smart constructor.
-data RegionInstanceGroupManagersGet =
-  RegionInstanceGroupManagersGet'
-    { _rigmgProject              :: !Text
-    , _rigmgInstanceGroupManager :: !Text
-    , _rigmgRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmgProject'
---
--- * 'rigmgInstanceGroupManager'
---
--- * 'rigmgRegion'
-regionInstanceGroupManagersGet
-    :: Text -- ^ 'rigmgProject'
-    -> Text -- ^ 'rigmgInstanceGroupManager'
-    -> Text -- ^ 'rigmgRegion'
-    -> RegionInstanceGroupManagersGet
-regionInstanceGroupManagersGet pRigmgProject_ pRigmgInstanceGroupManager_ pRigmgRegion_ =
-  RegionInstanceGroupManagersGet'
-    { _rigmgProject = pRigmgProject_
-    , _rigmgInstanceGroupManager = pRigmgInstanceGroupManager_
-    , _rigmgRegion = pRigmgRegion_
-    }
-
-
--- | Project ID for this request.
-rigmgProject :: Lens' RegionInstanceGroupManagersGet Text
-rigmgProject
-  = lens _rigmgProject (\ s a -> s{_rigmgProject = a})
-
--- | Name of the managed instance group to return.
-rigmgInstanceGroupManager :: Lens' RegionInstanceGroupManagersGet Text
-rigmgInstanceGroupManager
-  = lens _rigmgInstanceGroupManager
-      (\ s a -> s{_rigmgInstanceGroupManager = a})
-
--- | Name of the region scoping this request.
-rigmgRegion :: Lens' RegionInstanceGroupManagersGet Text
-rigmgRegion
-  = lens _rigmgRegion (\ s a -> s{_rigmgRegion = a})
-
-instance GoogleRequest RegionInstanceGroupManagersGet
-         where
-        type Rs RegionInstanceGroupManagersGet =
-             InstanceGroupManager
-        type Scopes RegionInstanceGroupManagersGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionInstanceGroupManagersGet'{..}
-          = go _rigmgProject _rigmgRegion
-              _rigmgInstanceGroupManager
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Insert.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Insert.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.Insert
--- 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 managed instance group using the information that you specify
--- in the request. After the group is created, instances in the group are
--- created using the specified instance template. This operation is marked
--- as DONE when the group is created even if the instances in the group
--- have not yet been created. You must separately verify the status of the
--- individual instances with the listmanagedinstances method. A regional
--- managed instance group can contain up to 2000 instances.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.insert@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Insert
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersInsertResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersInsert
-    , RegionInstanceGroupManagersInsert
-
-    -- * Request Lenses
-    , rigmiRequestId
-    , rigmiProject
-    , rigmiPayload
-    , rigmiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.insert@ method which the
--- 'RegionInstanceGroupManagersInsert' request conforms to.
-type RegionInstanceGroupManagersInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] InstanceGroupManager :>
-                         Post '[JSON] Operation
-
--- | Creates a managed instance group using the information that you specify
--- in the request. After the group is created, instances in the group are
--- created using the specified instance template. This operation is marked
--- as DONE when the group is created even if the instances in the group
--- have not yet been created. You must separately verify the status of the
--- individual instances with the listmanagedinstances method. A regional
--- managed instance group can contain up to 2000 instances.
---
--- /See:/ 'regionInstanceGroupManagersInsert' smart constructor.
-data RegionInstanceGroupManagersInsert =
-  RegionInstanceGroupManagersInsert'
-    { _rigmiRequestId :: !(Maybe Text)
-    , _rigmiProject   :: !Text
-    , _rigmiPayload   :: !InstanceGroupManager
-    , _rigmiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmiRequestId'
---
--- * 'rigmiProject'
---
--- * 'rigmiPayload'
---
--- * 'rigmiRegion'
-regionInstanceGroupManagersInsert
-    :: Text -- ^ 'rigmiProject'
-    -> InstanceGroupManager -- ^ 'rigmiPayload'
-    -> Text -- ^ 'rigmiRegion'
-    -> RegionInstanceGroupManagersInsert
-regionInstanceGroupManagersInsert pRigmiProject_ pRigmiPayload_ pRigmiRegion_ =
-  RegionInstanceGroupManagersInsert'
-    { _rigmiRequestId = Nothing
-    , _rigmiProject = pRigmiProject_
-    , _rigmiPayload = pRigmiPayload_
-    , _rigmiRegion = pRigmiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmiRequestId :: Lens' RegionInstanceGroupManagersInsert (Maybe Text)
-rigmiRequestId
-  = lens _rigmiRequestId
-      (\ s a -> s{_rigmiRequestId = a})
-
--- | Project ID for this request.
-rigmiProject :: Lens' RegionInstanceGroupManagersInsert Text
-rigmiProject
-  = lens _rigmiProject (\ s a -> s{_rigmiProject = a})
-
--- | Multipart request metadata.
-rigmiPayload :: Lens' RegionInstanceGroupManagersInsert InstanceGroupManager
-rigmiPayload
-  = lens _rigmiPayload (\ s a -> s{_rigmiPayload = a})
-
--- | Name of the region scoping this request.
-rigmiRegion :: Lens' RegionInstanceGroupManagersInsert Text
-rigmiRegion
-  = lens _rigmiRegion (\ s a -> s{_rigmiRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersInsert
-         where
-        type Rs RegionInstanceGroupManagersInsert = Operation
-        type Scopes RegionInstanceGroupManagersInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionInstanceGroupManagersInsert'{..}
-          = go _rigmiProject _rigmiRegion _rigmiRequestId
-              (Just AltJSON)
-              _rigmiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/List.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/List.hs
+++ /dev/null
@@ -1,191 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.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)
---
--- Retrieves the list of managed instance groups that are contained within
--- the specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.list@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.List
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersListResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersList
-    , RegionInstanceGroupManagersList
-
-    -- * Request Lenses
-    , rigmlOrderBy
-    , rigmlProject
-    , rigmlFilter
-    , rigmlRegion
-    , rigmlPageToken
-    , rigmlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.list@ method which the
--- 'RegionInstanceGroupManagersList' request conforms to.
-type RegionInstanceGroupManagersListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] RegionInstanceGroupManagerList
-
--- | Retrieves the list of managed instance groups that are contained within
--- the specified region.
---
--- /See:/ 'regionInstanceGroupManagersList' smart constructor.
-data RegionInstanceGroupManagersList =
-  RegionInstanceGroupManagersList'
-    { _rigmlOrderBy    :: !(Maybe Text)
-    , _rigmlProject    :: !Text
-    , _rigmlFilter     :: !(Maybe Text)
-    , _rigmlRegion     :: !Text
-    , _rigmlPageToken  :: !(Maybe Text)
-    , _rigmlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlOrderBy'
---
--- * 'rigmlProject'
---
--- * 'rigmlFilter'
---
--- * 'rigmlRegion'
---
--- * 'rigmlPageToken'
---
--- * 'rigmlMaxResults'
-regionInstanceGroupManagersList
-    :: Text -- ^ 'rigmlProject'
-    -> Text -- ^ 'rigmlRegion'
-    -> RegionInstanceGroupManagersList
-regionInstanceGroupManagersList pRigmlProject_ pRigmlRegion_ =
-  RegionInstanceGroupManagersList'
-    { _rigmlOrderBy = Nothing
-    , _rigmlProject = pRigmlProject_
-    , _rigmlFilter = Nothing
-    , _rigmlRegion = pRigmlRegion_
-    , _rigmlPageToken = Nothing
-    , _rigmlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rigmlOrderBy :: Lens' RegionInstanceGroupManagersList (Maybe Text)
-rigmlOrderBy
-  = lens _rigmlOrderBy (\ s a -> s{_rigmlOrderBy = a})
-
--- | Project ID for this request.
-rigmlProject :: Lens' RegionInstanceGroupManagersList Text
-rigmlProject
-  = lens _rigmlProject (\ s a -> s{_rigmlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rigmlFilter :: Lens' RegionInstanceGroupManagersList (Maybe Text)
-rigmlFilter
-  = lens _rigmlFilter (\ s a -> s{_rigmlFilter = a})
-
--- | Name of the region scoping this request.
-rigmlRegion :: Lens' RegionInstanceGroupManagersList Text
-rigmlRegion
-  = lens _rigmlRegion (\ s a -> s{_rigmlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rigmlPageToken :: Lens' RegionInstanceGroupManagersList (Maybe Text)
-rigmlPageToken
-  = lens _rigmlPageToken
-      (\ s a -> s{_rigmlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rigmlMaxResults :: Lens' RegionInstanceGroupManagersList Word32
-rigmlMaxResults
-  = lens _rigmlMaxResults
-      (\ s a -> s{_rigmlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           RegionInstanceGroupManagersList
-         where
-        type Rs RegionInstanceGroupManagersList =
-             RegionInstanceGroupManagerList
-        type Scopes RegionInstanceGroupManagersList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionInstanceGroupManagersList'{..}
-          = go _rigmlProject _rigmlRegion _rigmlOrderBy
-              _rigmlFilter
-              _rigmlPageToken
-              (Just _rigmlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/ListManagedInstances.hs
+++ /dev/null
@@ -1,220 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.ListManagedInstances
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists the instances in the managed instance group and instances that are
--- scheduled to be created. The list includes any current actions that the
--- group has scheduled for its instances.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.listManagedInstances@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.ListManagedInstances
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersListManagedInstancesResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersListManagedInstances
-    , RegionInstanceGroupManagersListManagedInstances
-
-    -- * Request Lenses
-    , rigmlmiProject
-    , rigmlmiInstanceGroupManager
-    , rigmlmiOrderBy
-    , rigmlmiFilter
-    , rigmlmiRegion
-    , rigmlmiPageToken
-    , rigmlmiMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.listManagedInstances@ method which the
--- 'RegionInstanceGroupManagersListManagedInstances' request conforms to.
-type RegionInstanceGroupManagersListManagedInstancesResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "listManagedInstances" :>
-                       QueryParam "order_by" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 Post '[JSON]
-                                   RegionInstanceGroupManagersListInstancesResponse
-
--- | Lists the instances in the managed instance group and instances that are
--- scheduled to be created. The list includes any current actions that the
--- group has scheduled for its instances.
---
--- /See:/ 'regionInstanceGroupManagersListManagedInstances' smart constructor.
-data RegionInstanceGroupManagersListManagedInstances =
-  RegionInstanceGroupManagersListManagedInstances'
-    { _rigmlmiProject              :: !Text
-    , _rigmlmiInstanceGroupManager :: !Text
-    , _rigmlmiOrderBy              :: !(Maybe Text)
-    , _rigmlmiFilter               :: !(Maybe Text)
-    , _rigmlmiRegion               :: !Text
-    , _rigmlmiPageToken            :: !(Maybe Text)
-    , _rigmlmiMaxResults           :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersListManagedInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmlmiProject'
---
--- * 'rigmlmiInstanceGroupManager'
---
--- * 'rigmlmiOrderBy'
---
--- * 'rigmlmiFilter'
---
--- * 'rigmlmiRegion'
---
--- * 'rigmlmiPageToken'
---
--- * 'rigmlmiMaxResults'
-regionInstanceGroupManagersListManagedInstances
-    :: Text -- ^ 'rigmlmiProject'
-    -> Text -- ^ 'rigmlmiInstanceGroupManager'
-    -> Text -- ^ 'rigmlmiRegion'
-    -> RegionInstanceGroupManagersListManagedInstances
-regionInstanceGroupManagersListManagedInstances pRigmlmiProject_ pRigmlmiInstanceGroupManager_ pRigmlmiRegion_ =
-  RegionInstanceGroupManagersListManagedInstances'
-    { _rigmlmiProject = pRigmlmiProject_
-    , _rigmlmiInstanceGroupManager = pRigmlmiInstanceGroupManager_
-    , _rigmlmiOrderBy = Nothing
-    , _rigmlmiFilter = Nothing
-    , _rigmlmiRegion = pRigmlmiRegion_
-    , _rigmlmiPageToken = Nothing
-    , _rigmlmiMaxResults = 500
-    }
-
-
--- | Project ID for this request.
-rigmlmiProject :: Lens' RegionInstanceGroupManagersListManagedInstances Text
-rigmlmiProject
-  = lens _rigmlmiProject
-      (\ s a -> s{_rigmlmiProject = a})
-
--- | The name of the managed instance group.
-rigmlmiInstanceGroupManager :: Lens' RegionInstanceGroupManagersListManagedInstances Text
-rigmlmiInstanceGroupManager
-  = lens _rigmlmiInstanceGroupManager
-      (\ s a -> s{_rigmlmiInstanceGroupManager = a})
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rigmlmiOrderBy :: Lens' RegionInstanceGroupManagersListManagedInstances (Maybe Text)
-rigmlmiOrderBy
-  = lens _rigmlmiOrderBy
-      (\ s a -> s{_rigmlmiOrderBy = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rigmlmiFilter :: Lens' RegionInstanceGroupManagersListManagedInstances (Maybe Text)
-rigmlmiFilter
-  = lens _rigmlmiFilter
-      (\ s a -> s{_rigmlmiFilter = a})
-
--- | Name of the region scoping this request.
-rigmlmiRegion :: Lens' RegionInstanceGroupManagersListManagedInstances Text
-rigmlmiRegion
-  = lens _rigmlmiRegion
-      (\ s a -> s{_rigmlmiRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rigmlmiPageToken :: Lens' RegionInstanceGroupManagersListManagedInstances (Maybe Text)
-rigmlmiPageToken
-  = lens _rigmlmiPageToken
-      (\ s a -> s{_rigmlmiPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rigmlmiMaxResults :: Lens' RegionInstanceGroupManagersListManagedInstances Word32
-rigmlmiMaxResults
-  = lens _rigmlmiMaxResults
-      (\ s a -> s{_rigmlmiMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           RegionInstanceGroupManagersListManagedInstances
-         where
-        type Rs
-               RegionInstanceGroupManagersListManagedInstances
-             = RegionInstanceGroupManagersListInstancesResponse
-        type Scopes
-               RegionInstanceGroupManagersListManagedInstances
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient
-          RegionInstanceGroupManagersListManagedInstances'{..}
-          = go _rigmlmiProject _rigmlmiRegion
-              _rigmlmiInstanceGroupManager
-              _rigmlmiOrderBy
-              _rigmlmiFilter
-              _rigmlmiPageToken
-              (Just _rigmlmiMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersListManagedInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Patch.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Patch.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.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 a managed instance group using the information that you specify
--- in the request. This operation is marked as DONE when the group is
--- patched even if the instances in the group are still in the process of
--- being patched. You must separately verify the status of the individual
--- instances with the listmanagedinstances method. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.patch@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Patch
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersPatchResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersPatch
-    , RegionInstanceGroupManagersPatch
-
-    -- * Request Lenses
-    , rigmpRequestId
-    , rigmpProject
-    , rigmpInstanceGroupManager
-    , rigmpPayload
-    , rigmpRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.patch@ method which the
--- 'RegionInstanceGroupManagersPatch' request conforms to.
-type RegionInstanceGroupManagersPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] InstanceGroupManager :>
-                           Patch '[JSON] Operation
-
--- | Updates a managed instance group using the information that you specify
--- in the request. This operation is marked as DONE when the group is
--- patched even if the instances in the group are still in the process of
--- being patched. You must separately verify the status of the individual
--- instances with the listmanagedinstances method. This method supports
--- PATCH semantics and uses the JSON merge patch format and processing
--- rules.
---
--- /See:/ 'regionInstanceGroupManagersPatch' smart constructor.
-data RegionInstanceGroupManagersPatch =
-  RegionInstanceGroupManagersPatch'
-    { _rigmpRequestId            :: !(Maybe Text)
-    , _rigmpProject              :: !Text
-    , _rigmpInstanceGroupManager :: !Text
-    , _rigmpPayload              :: !InstanceGroupManager
-    , _rigmpRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmpRequestId'
---
--- * 'rigmpProject'
---
--- * 'rigmpInstanceGroupManager'
---
--- * 'rigmpPayload'
---
--- * 'rigmpRegion'
-regionInstanceGroupManagersPatch
-    :: Text -- ^ 'rigmpProject'
-    -> Text -- ^ 'rigmpInstanceGroupManager'
-    -> InstanceGroupManager -- ^ 'rigmpPayload'
-    -> Text -- ^ 'rigmpRegion'
-    -> RegionInstanceGroupManagersPatch
-regionInstanceGroupManagersPatch pRigmpProject_ pRigmpInstanceGroupManager_ pRigmpPayload_ pRigmpRegion_ =
-  RegionInstanceGroupManagersPatch'
-    { _rigmpRequestId = Nothing
-    , _rigmpProject = pRigmpProject_
-    , _rigmpInstanceGroupManager = pRigmpInstanceGroupManager_
-    , _rigmpPayload = pRigmpPayload_
-    , _rigmpRegion = pRigmpRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmpRequestId :: Lens' RegionInstanceGroupManagersPatch (Maybe Text)
-rigmpRequestId
-  = lens _rigmpRequestId
-      (\ s a -> s{_rigmpRequestId = a})
-
--- | Project ID for this request.
-rigmpProject :: Lens' RegionInstanceGroupManagersPatch Text
-rigmpProject
-  = lens _rigmpProject (\ s a -> s{_rigmpProject = a})
-
--- | The name of the instance group manager.
-rigmpInstanceGroupManager :: Lens' RegionInstanceGroupManagersPatch Text
-rigmpInstanceGroupManager
-  = lens _rigmpInstanceGroupManager
-      (\ s a -> s{_rigmpInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmpPayload :: Lens' RegionInstanceGroupManagersPatch InstanceGroupManager
-rigmpPayload
-  = lens _rigmpPayload (\ s a -> s{_rigmpPayload = a})
-
--- | Name of the region scoping this request.
-rigmpRegion :: Lens' RegionInstanceGroupManagersPatch Text
-rigmpRegion
-  = lens _rigmpRegion (\ s a -> s{_rigmpRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersPatch
-         where
-        type Rs RegionInstanceGroupManagersPatch = Operation
-        type Scopes RegionInstanceGroupManagersPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionInstanceGroupManagersPatch'{..}
-          = go _rigmpProject _rigmpRegion
-              _rigmpInstanceGroupManager
-              _rigmpRequestId
-              (Just AltJSON)
-              _rigmpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/RecreateInstances.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/RecreateInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/RecreateInstances.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.RecreateInstances
--- 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)
---
--- Flags the specified instances in the managed instance group to be
--- immediately recreated. The instances are deleted and recreated using the
--- current instance template for the managed instance group. This operation
--- is marked as DONE when the flag is set even if the instances have not
--- yet been recreated. You must separately verify the status of the
--- recreating action with the listmanagedinstances method. If the group is
--- part of a backend service that has enabled connection draining, it can
--- take up to 60 seconds after the connection draining duration has elapsed
--- before the VM instance is removed or deleted. You can specify a maximum
--- of 1000 instances with this method per request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.recreateInstances@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.RecreateInstances
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersRecreateInstancesResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersRecreateInstances
-    , RegionInstanceGroupManagersRecreateInstances
-
-    -- * Request Lenses
-    , rigmriRequestId
-    , rigmriProject
-    , rigmriInstanceGroupManager
-    , rigmriPayload
-    , rigmriRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.recreateInstances@ method which the
--- 'RegionInstanceGroupManagersRecreateInstances' request conforms to.
-type RegionInstanceGroupManagersRecreateInstancesResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "recreateInstances" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupManagersRecreateRequest
-                             :> Post '[JSON] Operation
-
--- | Flags the specified instances in the managed instance group to be
--- immediately recreated. The instances are deleted and recreated using the
--- current instance template for the managed instance group. This operation
--- is marked as DONE when the flag is set even if the instances have not
--- yet been recreated. You must separately verify the status of the
--- recreating action with the listmanagedinstances method. If the group is
--- part of a backend service that has enabled connection draining, it can
--- take up to 60 seconds after the connection draining duration has elapsed
--- before the VM instance is removed or deleted. You can specify a maximum
--- of 1000 instances with this method per request.
---
--- /See:/ 'regionInstanceGroupManagersRecreateInstances' smart constructor.
-data RegionInstanceGroupManagersRecreateInstances =
-  RegionInstanceGroupManagersRecreateInstances'
-    { _rigmriRequestId            :: !(Maybe Text)
-    , _rigmriProject              :: !Text
-    , _rigmriInstanceGroupManager :: !Text
-    , _rigmriPayload              :: !RegionInstanceGroupManagersRecreateRequest
-    , _rigmriRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersRecreateInstances' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmriRequestId'
---
--- * 'rigmriProject'
---
--- * 'rigmriInstanceGroupManager'
---
--- * 'rigmriPayload'
---
--- * 'rigmriRegion'
-regionInstanceGroupManagersRecreateInstances
-    :: Text -- ^ 'rigmriProject'
-    -> Text -- ^ 'rigmriInstanceGroupManager'
-    -> RegionInstanceGroupManagersRecreateRequest -- ^ 'rigmriPayload'
-    -> Text -- ^ 'rigmriRegion'
-    -> RegionInstanceGroupManagersRecreateInstances
-regionInstanceGroupManagersRecreateInstances pRigmriProject_ pRigmriInstanceGroupManager_ pRigmriPayload_ pRigmriRegion_ =
-  RegionInstanceGroupManagersRecreateInstances'
-    { _rigmriRequestId = Nothing
-    , _rigmriProject = pRigmriProject_
-    , _rigmriInstanceGroupManager = pRigmriInstanceGroupManager_
-    , _rigmriPayload = pRigmriPayload_
-    , _rigmriRegion = pRigmriRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmriRequestId :: Lens' RegionInstanceGroupManagersRecreateInstances (Maybe Text)
-rigmriRequestId
-  = lens _rigmriRequestId
-      (\ s a -> s{_rigmriRequestId = a})
-
--- | Project ID for this request.
-rigmriProject :: Lens' RegionInstanceGroupManagersRecreateInstances Text
-rigmriProject
-  = lens _rigmriProject
-      (\ s a -> s{_rigmriProject = a})
-
--- | Name of the managed instance group.
-rigmriInstanceGroupManager :: Lens' RegionInstanceGroupManagersRecreateInstances Text
-rigmriInstanceGroupManager
-  = lens _rigmriInstanceGroupManager
-      (\ s a -> s{_rigmriInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmriPayload :: Lens' RegionInstanceGroupManagersRecreateInstances RegionInstanceGroupManagersRecreateRequest
-rigmriPayload
-  = lens _rigmriPayload
-      (\ s a -> s{_rigmriPayload = a})
-
--- | Name of the region scoping this request.
-rigmriRegion :: Lens' RegionInstanceGroupManagersRecreateInstances Text
-rigmriRegion
-  = lens _rigmriRegion (\ s a -> s{_rigmriRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersRecreateInstances
-         where
-        type Rs RegionInstanceGroupManagersRecreateInstances
-             = Operation
-        type Scopes
-               RegionInstanceGroupManagersRecreateInstances
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          RegionInstanceGroupManagersRecreateInstances'{..}
-          = go _rigmriProject _rigmriRegion
-              _rigmriInstanceGroupManager
-              _rigmriRequestId
-              (Just AltJSON)
-              _rigmriPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersRecreateInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Resize.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Resize.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/Resize.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.Resize
--- 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)
---
--- Changes the intended size of the managed instance group. If you increase
--- the size, the group creates new instances using the current instance
--- template. If you decrease the size, the group deletes one or more
--- instances. The resize operation is marked DONE if the resize request is
--- successful. The underlying actions take additional time. You must
--- separately verify the status of the creating or deleting actions with
--- the listmanagedinstances method. If the group is part of a backend
--- service that has enabled connection draining, it can take up to 60
--- seconds after the connection draining duration has elapsed before the VM
--- instance is removed or deleted.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.resize@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.Resize
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersResizeResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersResize
-    , RegionInstanceGroupManagersResize
-
-    -- * Request Lenses
-    , rigmrRequestId
-    , rigmrProject
-    , rigmrSize
-    , rigmrInstanceGroupManager
-    , rigmrRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.resize@ method which the
--- 'RegionInstanceGroupManagersResize' request conforms to.
-type RegionInstanceGroupManagersResizeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "resize" :>
-                       QueryParam "size" (Textual Int32) :>
-                         QueryParam "requestId" Text :>
-                           QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Changes the intended size of the managed instance group. If you increase
--- the size, the group creates new instances using the current instance
--- template. If you decrease the size, the group deletes one or more
--- instances. The resize operation is marked DONE if the resize request is
--- successful. The underlying actions take additional time. You must
--- separately verify the status of the creating or deleting actions with
--- the listmanagedinstances method. If the group is part of a backend
--- service that has enabled connection draining, it can take up to 60
--- seconds after the connection draining duration has elapsed before the VM
--- instance is removed or deleted.
---
--- /See:/ 'regionInstanceGroupManagersResize' smart constructor.
-data RegionInstanceGroupManagersResize =
-  RegionInstanceGroupManagersResize'
-    { _rigmrRequestId            :: !(Maybe Text)
-    , _rigmrProject              :: !Text
-    , _rigmrSize                 :: !(Textual Int32)
-    , _rigmrInstanceGroupManager :: !Text
-    , _rigmrRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersResize' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmrRequestId'
---
--- * 'rigmrProject'
---
--- * 'rigmrSize'
---
--- * 'rigmrInstanceGroupManager'
---
--- * 'rigmrRegion'
-regionInstanceGroupManagersResize
-    :: Text -- ^ 'rigmrProject'
-    -> Int32 -- ^ 'rigmrSize'
-    -> Text -- ^ 'rigmrInstanceGroupManager'
-    -> Text -- ^ 'rigmrRegion'
-    -> RegionInstanceGroupManagersResize
-regionInstanceGroupManagersResize pRigmrProject_ pRigmrSize_ pRigmrInstanceGroupManager_ pRigmrRegion_ =
-  RegionInstanceGroupManagersResize'
-    { _rigmrRequestId = Nothing
-    , _rigmrProject = pRigmrProject_
-    , _rigmrSize = _Coerce # pRigmrSize_
-    , _rigmrInstanceGroupManager = pRigmrInstanceGroupManager_
-    , _rigmrRegion = pRigmrRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmrRequestId :: Lens' RegionInstanceGroupManagersResize (Maybe Text)
-rigmrRequestId
-  = lens _rigmrRequestId
-      (\ s a -> s{_rigmrRequestId = a})
-
--- | Project ID for this request.
-rigmrProject :: Lens' RegionInstanceGroupManagersResize Text
-rigmrProject
-  = lens _rigmrProject (\ s a -> s{_rigmrProject = a})
-
--- | Number of instances that should exist in this instance group manager.
-rigmrSize :: Lens' RegionInstanceGroupManagersResize Int32
-rigmrSize
-  = lens _rigmrSize (\ s a -> s{_rigmrSize = a}) .
-      _Coerce
-
--- | Name of the managed instance group.
-rigmrInstanceGroupManager :: Lens' RegionInstanceGroupManagersResize Text
-rigmrInstanceGroupManager
-  = lens _rigmrInstanceGroupManager
-      (\ s a -> s{_rigmrInstanceGroupManager = a})
-
--- | Name of the region scoping this request.
-rigmrRegion :: Lens' RegionInstanceGroupManagersResize Text
-rigmrRegion
-  = lens _rigmrRegion (\ s a -> s{_rigmrRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersResize
-         where
-        type Rs RegionInstanceGroupManagersResize = Operation
-        type Scopes RegionInstanceGroupManagersResize =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionInstanceGroupManagersResize'{..}
-          = go _rigmrProject _rigmrRegion
-              _rigmrInstanceGroupManager
-              (Just _rigmrSize)
-              _rigmrRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupManagersResizeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetInstanceTemplate.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
--- 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)
---
--- Sets the instance template to use when creating new instances or
--- recreating instances in this group. Existing instances are not affected.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.setInstanceTemplate@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersSetInstanceTemplateResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersSetInstanceTemplate
-    , RegionInstanceGroupManagersSetInstanceTemplate
-
-    -- * Request Lenses
-    , rigmsitRequestId
-    , rigmsitProject
-    , rigmsitInstanceGroupManager
-    , rigmsitPayload
-    , rigmsitRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.setInstanceTemplate@ method which the
--- 'RegionInstanceGroupManagersSetInstanceTemplate' request conforms to.
-type RegionInstanceGroupManagersSetInstanceTemplateResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "setInstanceTemplate" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupManagersSetTemplateRequest
-                             :> Post '[JSON] Operation
-
--- | Sets the instance template to use when creating new instances or
--- recreating instances in this group. Existing instances are not affected.
---
--- /See:/ 'regionInstanceGroupManagersSetInstanceTemplate' smart constructor.
-data RegionInstanceGroupManagersSetInstanceTemplate =
-  RegionInstanceGroupManagersSetInstanceTemplate'
-    { _rigmsitRequestId            :: !(Maybe Text)
-    , _rigmsitProject              :: !Text
-    , _rigmsitInstanceGroupManager :: !Text
-    , _rigmsitPayload              :: !RegionInstanceGroupManagersSetTemplateRequest
-    , _rigmsitRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersSetInstanceTemplate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmsitRequestId'
---
--- * 'rigmsitProject'
---
--- * 'rigmsitInstanceGroupManager'
---
--- * 'rigmsitPayload'
---
--- * 'rigmsitRegion'
-regionInstanceGroupManagersSetInstanceTemplate
-    :: Text -- ^ 'rigmsitProject'
-    -> Text -- ^ 'rigmsitInstanceGroupManager'
-    -> RegionInstanceGroupManagersSetTemplateRequest -- ^ 'rigmsitPayload'
-    -> Text -- ^ 'rigmsitRegion'
-    -> RegionInstanceGroupManagersSetInstanceTemplate
-regionInstanceGroupManagersSetInstanceTemplate pRigmsitProject_ pRigmsitInstanceGroupManager_ pRigmsitPayload_ pRigmsitRegion_ =
-  RegionInstanceGroupManagersSetInstanceTemplate'
-    { _rigmsitRequestId = Nothing
-    , _rigmsitProject = pRigmsitProject_
-    , _rigmsitInstanceGroupManager = pRigmsitInstanceGroupManager_
-    , _rigmsitPayload = pRigmsitPayload_
-    , _rigmsitRegion = pRigmsitRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmsitRequestId :: Lens' RegionInstanceGroupManagersSetInstanceTemplate (Maybe Text)
-rigmsitRequestId
-  = lens _rigmsitRequestId
-      (\ s a -> s{_rigmsitRequestId = a})
-
--- | Project ID for this request.
-rigmsitProject :: Lens' RegionInstanceGroupManagersSetInstanceTemplate Text
-rigmsitProject
-  = lens _rigmsitProject
-      (\ s a -> s{_rigmsitProject = a})
-
--- | The name of the managed instance group.
-rigmsitInstanceGroupManager :: Lens' RegionInstanceGroupManagersSetInstanceTemplate Text
-rigmsitInstanceGroupManager
-  = lens _rigmsitInstanceGroupManager
-      (\ s a -> s{_rigmsitInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmsitPayload :: Lens' RegionInstanceGroupManagersSetInstanceTemplate RegionInstanceGroupManagersSetTemplateRequest
-rigmsitPayload
-  = lens _rigmsitPayload
-      (\ s a -> s{_rigmsitPayload = a})
-
--- | Name of the region scoping this request.
-rigmsitRegion :: Lens' RegionInstanceGroupManagersSetInstanceTemplate Text
-rigmsitRegion
-  = lens _rigmsitRegion
-      (\ s a -> s{_rigmsitRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersSetInstanceTemplate
-         where
-        type Rs
-               RegionInstanceGroupManagersSetInstanceTemplate
-             = Operation
-        type Scopes
-               RegionInstanceGroupManagersSetInstanceTemplate
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          RegionInstanceGroupManagersSetInstanceTemplate'{..}
-          = go _rigmsitProject _rigmsitRegion
-              _rigmsitInstanceGroupManager
-              _rigmsitRequestId
-              (Just AltJSON)
-              _rigmsitPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersSetInstanceTemplateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetTargetPools.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetTargetPools.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroupManagers/SetTargetPools.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetTargetPools
--- 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)
---
--- Modifies the target pools to which all new instances in this group are
--- assigned. Existing instances in the group are not affected.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroupManagers.setTargetPools@.
-module Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetTargetPools
-    (
-    -- * REST Resource
-      RegionInstanceGroupManagersSetTargetPoolsResource
-
-    -- * Creating a Request
-    , regionInstanceGroupManagersSetTargetPools
-    , RegionInstanceGroupManagersSetTargetPools
-
-    -- * Request Lenses
-    , rigmstpRequestId
-    , rigmstpProject
-    , rigmstpInstanceGroupManager
-    , rigmstpPayload
-    , rigmstpRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroupManagers.setTargetPools@ method which the
--- 'RegionInstanceGroupManagersSetTargetPools' request conforms to.
-type RegionInstanceGroupManagersSetTargetPoolsResource
-     =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroupManagers" :>
-                   Capture "instanceGroupManager" Text :>
-                     "setTargetPools" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupManagersSetTargetPoolsRequest
-                             :> Post '[JSON] Operation
-
--- | Modifies the target pools to which all new instances in this group are
--- assigned. Existing instances in the group are not affected.
---
--- /See:/ 'regionInstanceGroupManagersSetTargetPools' smart constructor.
-data RegionInstanceGroupManagersSetTargetPools =
-  RegionInstanceGroupManagersSetTargetPools'
-    { _rigmstpRequestId            :: !(Maybe Text)
-    , _rigmstpProject              :: !Text
-    , _rigmstpInstanceGroupManager :: !Text
-    , _rigmstpPayload              :: !RegionInstanceGroupManagersSetTargetPoolsRequest
-    , _rigmstpRegion               :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupManagersSetTargetPools' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigmstpRequestId'
---
--- * 'rigmstpProject'
---
--- * 'rigmstpInstanceGroupManager'
---
--- * 'rigmstpPayload'
---
--- * 'rigmstpRegion'
-regionInstanceGroupManagersSetTargetPools
-    :: Text -- ^ 'rigmstpProject'
-    -> Text -- ^ 'rigmstpInstanceGroupManager'
-    -> RegionInstanceGroupManagersSetTargetPoolsRequest -- ^ 'rigmstpPayload'
-    -> Text -- ^ 'rigmstpRegion'
-    -> RegionInstanceGroupManagersSetTargetPools
-regionInstanceGroupManagersSetTargetPools pRigmstpProject_ pRigmstpInstanceGroupManager_ pRigmstpPayload_ pRigmstpRegion_ =
-  RegionInstanceGroupManagersSetTargetPools'
-    { _rigmstpRequestId = Nothing
-    , _rigmstpProject = pRigmstpProject_
-    , _rigmstpInstanceGroupManager = pRigmstpInstanceGroupManager_
-    , _rigmstpPayload = pRigmstpPayload_
-    , _rigmstpRegion = pRigmstpRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigmstpRequestId :: Lens' RegionInstanceGroupManagersSetTargetPools (Maybe Text)
-rigmstpRequestId
-  = lens _rigmstpRequestId
-      (\ s a -> s{_rigmstpRequestId = a})
-
--- | Project ID for this request.
-rigmstpProject :: Lens' RegionInstanceGroupManagersSetTargetPools Text
-rigmstpProject
-  = lens _rigmstpProject
-      (\ s a -> s{_rigmstpProject = a})
-
--- | Name of the managed instance group.
-rigmstpInstanceGroupManager :: Lens' RegionInstanceGroupManagersSetTargetPools Text
-rigmstpInstanceGroupManager
-  = lens _rigmstpInstanceGroupManager
-      (\ s a -> s{_rigmstpInstanceGroupManager = a})
-
--- | Multipart request metadata.
-rigmstpPayload :: Lens' RegionInstanceGroupManagersSetTargetPools RegionInstanceGroupManagersSetTargetPoolsRequest
-rigmstpPayload
-  = lens _rigmstpPayload
-      (\ s a -> s{_rigmstpPayload = a})
-
--- | Name of the region scoping this request.
-rigmstpRegion :: Lens' RegionInstanceGroupManagersSetTargetPools Text
-rigmstpRegion
-  = lens _rigmstpRegion
-      (\ s a -> s{_rigmstpRegion = a})
-
-instance GoogleRequest
-           RegionInstanceGroupManagersSetTargetPools
-         where
-        type Rs RegionInstanceGroupManagersSetTargetPools =
-             Operation
-        type Scopes RegionInstanceGroupManagersSetTargetPools
-             =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          RegionInstanceGroupManagersSetTargetPools'{..}
-          = go _rigmstpProject _rigmstpRegion
-              _rigmstpInstanceGroupManager
-              _rigmstpRequestId
-              (Just AltJSON)
-              _rigmstpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy
-                           RegionInstanceGroupManagersSetTargetPoolsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/Get.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroups/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/Get.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroups.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)
---
--- Returns the specified instance group resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroups.get@.
-module Network.Google.Resource.Compute.RegionInstanceGroups.Get
-    (
-    -- * REST Resource
-      RegionInstanceGroupsGetResource
-
-    -- * Creating a Request
-    , regionInstanceGroupsGet
-    , RegionInstanceGroupsGet
-
-    -- * Request Lenses
-    , riggProject
-    , riggRegion
-    , riggInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroups.get@ method which the
--- 'RegionInstanceGroupsGet' request conforms to.
-type RegionInstanceGroupsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] InstanceGroup
-
--- | Returns the specified instance group resource.
---
--- /See:/ 'regionInstanceGroupsGet' smart constructor.
-data RegionInstanceGroupsGet =
-  RegionInstanceGroupsGet'
-    { _riggProject       :: !Text
-    , _riggRegion        :: !Text
-    , _riggInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riggProject'
---
--- * 'riggRegion'
---
--- * 'riggInstanceGroup'
-regionInstanceGroupsGet
-    :: Text -- ^ 'riggProject'
-    -> Text -- ^ 'riggRegion'
-    -> Text -- ^ 'riggInstanceGroup'
-    -> RegionInstanceGroupsGet
-regionInstanceGroupsGet pRiggProject_ pRiggRegion_ pRiggInstanceGroup_ =
-  RegionInstanceGroupsGet'
-    { _riggProject = pRiggProject_
-    , _riggRegion = pRiggRegion_
-    , _riggInstanceGroup = pRiggInstanceGroup_
-    }
-
-
--- | Project ID for this request.
-riggProject :: Lens' RegionInstanceGroupsGet Text
-riggProject
-  = lens _riggProject (\ s a -> s{_riggProject = a})
-
--- | Name of the region scoping this request.
-riggRegion :: Lens' RegionInstanceGroupsGet Text
-riggRegion
-  = lens _riggRegion (\ s a -> s{_riggRegion = a})
-
--- | Name of the instance group resource to return.
-riggInstanceGroup :: Lens' RegionInstanceGroupsGet Text
-riggInstanceGroup
-  = lens _riggInstanceGroup
-      (\ s a -> s{_riggInstanceGroup = a})
-
-instance GoogleRequest RegionInstanceGroupsGet where
-        type Rs RegionInstanceGroupsGet = InstanceGroup
-        type Scopes RegionInstanceGroupsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionInstanceGroupsGet'{..}
-          = go _riggProject _riggRegion _riggInstanceGroup
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionInstanceGroupsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/List.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroups/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/List.hs
+++ /dev/null
@@ -1,188 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroups.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)
---
--- Retrieves the list of instance group resources contained within the
--- specified region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroups.list@.
-module Network.Google.Resource.Compute.RegionInstanceGroups.List
-    (
-    -- * REST Resource
-      RegionInstanceGroupsListResource
-
-    -- * Creating a Request
-    , regionInstanceGroupsList
-    , RegionInstanceGroupsList
-
-    -- * Request Lenses
-    , riglOrderBy
-    , riglProject
-    , riglFilter
-    , riglRegion
-    , riglPageToken
-    , riglMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroups.list@ method which the
--- 'RegionInstanceGroupsList' request conforms to.
-type RegionInstanceGroupsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroups" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] RegionInstanceGroupList
-
--- | Retrieves the list of instance group resources contained within the
--- specified region.
---
--- /See:/ 'regionInstanceGroupsList' smart constructor.
-data RegionInstanceGroupsList =
-  RegionInstanceGroupsList'
-    { _riglOrderBy    :: !(Maybe Text)
-    , _riglProject    :: !Text
-    , _riglFilter     :: !(Maybe Text)
-    , _riglRegion     :: !Text
-    , _riglPageToken  :: !(Maybe Text)
-    , _riglMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riglOrderBy'
---
--- * 'riglProject'
---
--- * 'riglFilter'
---
--- * 'riglRegion'
---
--- * 'riglPageToken'
---
--- * 'riglMaxResults'
-regionInstanceGroupsList
-    :: Text -- ^ 'riglProject'
-    -> Text -- ^ 'riglRegion'
-    -> RegionInstanceGroupsList
-regionInstanceGroupsList pRiglProject_ pRiglRegion_ =
-  RegionInstanceGroupsList'
-    { _riglOrderBy = Nothing
-    , _riglProject = pRiglProject_
-    , _riglFilter = Nothing
-    , _riglRegion = pRiglRegion_
-    , _riglPageToken = Nothing
-    , _riglMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-riglOrderBy :: Lens' RegionInstanceGroupsList (Maybe Text)
-riglOrderBy
-  = lens _riglOrderBy (\ s a -> s{_riglOrderBy = a})
-
--- | Project ID for this request.
-riglProject :: Lens' RegionInstanceGroupsList Text
-riglProject
-  = lens _riglProject (\ s a -> s{_riglProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-riglFilter :: Lens' RegionInstanceGroupsList (Maybe Text)
-riglFilter
-  = lens _riglFilter (\ s a -> s{_riglFilter = a})
-
--- | Name of the region scoping this request.
-riglRegion :: Lens' RegionInstanceGroupsList Text
-riglRegion
-  = lens _riglRegion (\ s a -> s{_riglRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-riglPageToken :: Lens' RegionInstanceGroupsList (Maybe Text)
-riglPageToken
-  = lens _riglPageToken
-      (\ s a -> s{_riglPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-riglMaxResults :: Lens' RegionInstanceGroupsList Word32
-riglMaxResults
-  = lens _riglMaxResults
-      (\ s a -> s{_riglMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionInstanceGroupsList where
-        type Rs RegionInstanceGroupsList =
-             RegionInstanceGroupList
-        type Scopes RegionInstanceGroupsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionInstanceGroupsList'{..}
-          = go _riglProject _riglRegion _riglOrderBy
-              _riglFilter
-              _riglPageToken
-              (Just _riglMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionInstanceGroupsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/ListInstances.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroups/ListInstances.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/ListInstances.hs
+++ /dev/null
@@ -1,227 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroups.ListInstances
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists the instances in the specified instance group and displays
--- information about the named ports. Depending on the specified options,
--- this method can list all instances or only the instances that are
--- running.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroups.listInstances@.
-module Network.Google.Resource.Compute.RegionInstanceGroups.ListInstances
-    (
-    -- * REST Resource
-      RegionInstanceGroupsListInstancesResource
-
-    -- * Creating a Request
-    , regionInstanceGroupsListInstances'
-    , RegionInstanceGroupsListInstances'
-
-    -- * Request Lenses
-    , rigliOrderBy
-    , rigliProject
-    , rigliPayload
-    , rigliFilter
-    , rigliRegion
-    , rigliPageToken
-    , rigliInstanceGroup
-    , rigliMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroups.listInstances@ method which the
--- 'RegionInstanceGroupsListInstances'' request conforms to.
-type RegionInstanceGroupsListInstancesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "listInstances" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 ReqBody '[JSON]
-                                   RegionInstanceGroupsListInstancesRequest
-                                   :>
-                                   Post '[JSON]
-                                     RegionInstanceGroupsListInstances
-
--- | Lists the instances in the specified instance group and displays
--- information about the named ports. Depending on the specified options,
--- this method can list all instances or only the instances that are
--- running.
---
--- /See:/ 'regionInstanceGroupsListInstances'' smart constructor.
-data RegionInstanceGroupsListInstances' =
-  RegionInstanceGroupsListInstances''
-    { _rigliOrderBy       :: !(Maybe Text)
-    , _rigliProject       :: !Text
-    , _rigliPayload       :: !RegionInstanceGroupsListInstancesRequest
-    , _rigliFilter        :: !(Maybe Text)
-    , _rigliRegion        :: !Text
-    , _rigliPageToken     :: !(Maybe Text)
-    , _rigliInstanceGroup :: !Text
-    , _rigliMaxResults    :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsListInstances'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigliOrderBy'
---
--- * 'rigliProject'
---
--- * 'rigliPayload'
---
--- * 'rigliFilter'
---
--- * 'rigliRegion'
---
--- * 'rigliPageToken'
---
--- * 'rigliInstanceGroup'
---
--- * 'rigliMaxResults'
-regionInstanceGroupsListInstances'
-    :: Text -- ^ 'rigliProject'
-    -> RegionInstanceGroupsListInstancesRequest -- ^ 'rigliPayload'
-    -> Text -- ^ 'rigliRegion'
-    -> Text -- ^ 'rigliInstanceGroup'
-    -> RegionInstanceGroupsListInstances'
-regionInstanceGroupsListInstances' pRigliProject_ pRigliPayload_ pRigliRegion_ pRigliInstanceGroup_ =
-  RegionInstanceGroupsListInstances''
-    { _rigliOrderBy = Nothing
-    , _rigliProject = pRigliProject_
-    , _rigliPayload = pRigliPayload_
-    , _rigliFilter = Nothing
-    , _rigliRegion = pRigliRegion_
-    , _rigliPageToken = Nothing
-    , _rigliInstanceGroup = pRigliInstanceGroup_
-    , _rigliMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rigliOrderBy :: Lens' RegionInstanceGroupsListInstances' (Maybe Text)
-rigliOrderBy
-  = lens _rigliOrderBy (\ s a -> s{_rigliOrderBy = a})
-
--- | Project ID for this request.
-rigliProject :: Lens' RegionInstanceGroupsListInstances' Text
-rigliProject
-  = lens _rigliProject (\ s a -> s{_rigliProject = a})
-
--- | Multipart request metadata.
-rigliPayload :: Lens' RegionInstanceGroupsListInstances' RegionInstanceGroupsListInstancesRequest
-rigliPayload
-  = lens _rigliPayload (\ s a -> s{_rigliPayload = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rigliFilter :: Lens' RegionInstanceGroupsListInstances' (Maybe Text)
-rigliFilter
-  = lens _rigliFilter (\ s a -> s{_rigliFilter = a})
-
--- | Name of the region scoping this request.
-rigliRegion :: Lens' RegionInstanceGroupsListInstances' Text
-rigliRegion
-  = lens _rigliRegion (\ s a -> s{_rigliRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rigliPageToken :: Lens' RegionInstanceGroupsListInstances' (Maybe Text)
-rigliPageToken
-  = lens _rigliPageToken
-      (\ s a -> s{_rigliPageToken = a})
-
--- | Name of the regional instance group for which we want to list the
--- instances.
-rigliInstanceGroup :: Lens' RegionInstanceGroupsListInstances' Text
-rigliInstanceGroup
-  = lens _rigliInstanceGroup
-      (\ s a -> s{_rigliInstanceGroup = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rigliMaxResults :: Lens' RegionInstanceGroupsListInstances' Word32
-rigliMaxResults
-  = lens _rigliMaxResults
-      (\ s a -> s{_rigliMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           RegionInstanceGroupsListInstances'
-         where
-        type Rs RegionInstanceGroupsListInstances' =
-             RegionInstanceGroupsListInstances
-        type Scopes RegionInstanceGroupsListInstances' =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionInstanceGroupsListInstances''{..}
-          = go _rigliProject _rigliRegion _rigliInstanceGroup
-              _rigliOrderBy
-              _rigliFilter
-              _rigliPageToken
-              (Just _rigliMaxResults)
-              (Just AltJSON)
-              _rigliPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupsListInstancesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/SetNamedPorts.hs b/gen/Network/Google/Resource/Compute/RegionInstanceGroups/SetNamedPorts.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionInstanceGroups/SetNamedPorts.hs
+++ /dev/null
@@ -1,164 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionInstanceGroups.SetNamedPorts
--- 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)
---
--- Sets the named ports for the specified regional instance group.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionInstanceGroups.setNamedPorts@.
-module Network.Google.Resource.Compute.RegionInstanceGroups.SetNamedPorts
-    (
-    -- * REST Resource
-      RegionInstanceGroupsSetNamedPortsResource
-
-    -- * Creating a Request
-    , regionInstanceGroupsSetNamedPorts
-    , RegionInstanceGroupsSetNamedPorts
-
-    -- * Request Lenses
-    , rigsnpRequestId
-    , rigsnpProject
-    , rigsnpPayload
-    , rigsnpRegion
-    , rigsnpInstanceGroup
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionInstanceGroups.setNamedPorts@ method which the
--- 'RegionInstanceGroupsSetNamedPorts' request conforms to.
-type RegionInstanceGroupsSetNamedPortsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "instanceGroups" :>
-                   Capture "instanceGroup" Text :>
-                     "setNamedPorts" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             RegionInstanceGroupsSetNamedPortsRequest
-                             :> Post '[JSON] Operation
-
--- | Sets the named ports for the specified regional instance group.
---
--- /See:/ 'regionInstanceGroupsSetNamedPorts' smart constructor.
-data RegionInstanceGroupsSetNamedPorts =
-  RegionInstanceGroupsSetNamedPorts'
-    { _rigsnpRequestId     :: !(Maybe Text)
-    , _rigsnpProject       :: !Text
-    , _rigsnpPayload       :: !RegionInstanceGroupsSetNamedPortsRequest
-    , _rigsnpRegion        :: !Text
-    , _rigsnpInstanceGroup :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionInstanceGroupsSetNamedPorts' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rigsnpRequestId'
---
--- * 'rigsnpProject'
---
--- * 'rigsnpPayload'
---
--- * 'rigsnpRegion'
---
--- * 'rigsnpInstanceGroup'
-regionInstanceGroupsSetNamedPorts
-    :: Text -- ^ 'rigsnpProject'
-    -> RegionInstanceGroupsSetNamedPortsRequest -- ^ 'rigsnpPayload'
-    -> Text -- ^ 'rigsnpRegion'
-    -> Text -- ^ 'rigsnpInstanceGroup'
-    -> RegionInstanceGroupsSetNamedPorts
-regionInstanceGroupsSetNamedPorts pRigsnpProject_ pRigsnpPayload_ pRigsnpRegion_ pRigsnpInstanceGroup_ =
-  RegionInstanceGroupsSetNamedPorts'
-    { _rigsnpRequestId = Nothing
-    , _rigsnpProject = pRigsnpProject_
-    , _rigsnpPayload = pRigsnpPayload_
-    , _rigsnpRegion = pRigsnpRegion_
-    , _rigsnpInstanceGroup = pRigsnpInstanceGroup_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rigsnpRequestId :: Lens' RegionInstanceGroupsSetNamedPorts (Maybe Text)
-rigsnpRequestId
-  = lens _rigsnpRequestId
-      (\ s a -> s{_rigsnpRequestId = a})
-
--- | Project ID for this request.
-rigsnpProject :: Lens' RegionInstanceGroupsSetNamedPorts Text
-rigsnpProject
-  = lens _rigsnpProject
-      (\ s a -> s{_rigsnpProject = a})
-
--- | Multipart request metadata.
-rigsnpPayload :: Lens' RegionInstanceGroupsSetNamedPorts RegionInstanceGroupsSetNamedPortsRequest
-rigsnpPayload
-  = lens _rigsnpPayload
-      (\ s a -> s{_rigsnpPayload = a})
-
--- | Name of the region scoping this request.
-rigsnpRegion :: Lens' RegionInstanceGroupsSetNamedPorts Text
-rigsnpRegion
-  = lens _rigsnpRegion (\ s a -> s{_rigsnpRegion = a})
-
--- | The name of the regional instance group where the named ports are
--- updated.
-rigsnpInstanceGroup :: Lens' RegionInstanceGroupsSetNamedPorts Text
-rigsnpInstanceGroup
-  = lens _rigsnpInstanceGroup
-      (\ s a -> s{_rigsnpInstanceGroup = a})
-
-instance GoogleRequest
-           RegionInstanceGroupsSetNamedPorts
-         where
-        type Rs RegionInstanceGroupsSetNamedPorts = Operation
-        type Scopes RegionInstanceGroupsSetNamedPorts =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionInstanceGroupsSetNamedPorts'{..}
-          = go _rigsnpProject _rigsnpRegion
-              _rigsnpInstanceGroup
-              _rigsnpRequestId
-              (Just AltJSON)
-              _rigsnpPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy RegionInstanceGroupsSetNamedPortsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionOperations/Delete.hs b/gen/Network/Google/Resource/Compute/RegionOperations/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionOperations/Delete.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionOperations.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 region-specific Operations resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.delete@.
-module Network.Google.Resource.Compute.RegionOperations.Delete
-    (
-    -- * REST Resource
-      RegionOperationsDeleteResource
-
-    -- * Creating a Request
-    , regionOperationsDelete
-    , RegionOperationsDelete
-
-    -- * Request Lenses
-    , rodProject
-    , rodOperation
-    , rodRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionOperations.delete@ method which the
--- 'RegionOperationsDelete' request conforms to.
-type RegionOperationsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "operations" :>
-                   Capture "operation" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes the specified region-specific Operations resource.
---
--- /See:/ 'regionOperationsDelete' smart constructor.
-data RegionOperationsDelete =
-  RegionOperationsDelete'
-    { _rodProject   :: !Text
-    , _rodOperation :: !Text
-    , _rodRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionOperationsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rodProject'
---
--- * 'rodOperation'
---
--- * 'rodRegion'
-regionOperationsDelete
-    :: Text -- ^ 'rodProject'
-    -> Text -- ^ 'rodOperation'
-    -> Text -- ^ 'rodRegion'
-    -> RegionOperationsDelete
-regionOperationsDelete pRodProject_ pRodOperation_ pRodRegion_ =
-  RegionOperationsDelete'
-    { _rodProject = pRodProject_
-    , _rodOperation = pRodOperation_
-    , _rodRegion = pRodRegion_
-    }
-
-
--- | Project ID for this request.
-rodProject :: Lens' RegionOperationsDelete Text
-rodProject
-  = lens _rodProject (\ s a -> s{_rodProject = a})
-
--- | Name of the Operations resource to delete.
-rodOperation :: Lens' RegionOperationsDelete Text
-rodOperation
-  = lens _rodOperation (\ s a -> s{_rodOperation = a})
-
--- | Name of the region for this request.
-rodRegion :: Lens' RegionOperationsDelete Text
-rodRegion
-  = lens _rodRegion (\ s a -> s{_rodRegion = a})
-
-instance GoogleRequest RegionOperationsDelete where
-        type Rs RegionOperationsDelete = ()
-        type Scopes RegionOperationsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RegionOperationsDelete'{..}
-          = go _rodProject _rodRegion _rodOperation
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionOperationsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionOperations/Get.hs b/gen/Network/Google/Resource/Compute/RegionOperations/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionOperations/Get.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionOperations.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)
---
--- Retrieves the specified region-specific Operations resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.get@.
-module Network.Google.Resource.Compute.RegionOperations.Get
-    (
-    -- * REST Resource
-      RegionOperationsGetResource
-
-    -- * Creating a Request
-    , regionOperationsGet
-    , RegionOperationsGet
-
-    -- * Request Lenses
-    , rogProject
-    , rogOperation
-    , rogRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionOperations.get@ method which the
--- 'RegionOperationsGet' request conforms to.
-type RegionOperationsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "operations" :>
-                   Capture "operation" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Operation
-
--- | Retrieves the specified region-specific Operations resource.
---
--- /See:/ 'regionOperationsGet' smart constructor.
-data RegionOperationsGet =
-  RegionOperationsGet'
-    { _rogProject   :: !Text
-    , _rogOperation :: !Text
-    , _rogRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionOperationsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rogProject'
---
--- * 'rogOperation'
---
--- * 'rogRegion'
-regionOperationsGet
-    :: Text -- ^ 'rogProject'
-    -> Text -- ^ 'rogOperation'
-    -> Text -- ^ 'rogRegion'
-    -> RegionOperationsGet
-regionOperationsGet pRogProject_ pRogOperation_ pRogRegion_ =
-  RegionOperationsGet'
-    { _rogProject = pRogProject_
-    , _rogOperation = pRogOperation_
-    , _rogRegion = pRogRegion_
-    }
-
-
--- | Project ID for this request.
-rogProject :: Lens' RegionOperationsGet Text
-rogProject
-  = lens _rogProject (\ s a -> s{_rogProject = a})
-
--- | Name of the Operations resource to return.
-rogOperation :: Lens' RegionOperationsGet Text
-rogOperation
-  = lens _rogOperation (\ s a -> s{_rogOperation = a})
-
--- | Name of the region for this request.
-rogRegion :: Lens' RegionOperationsGet Text
-rogRegion
-  = lens _rogRegion (\ s a -> s{_rogRegion = a})
-
-instance GoogleRequest RegionOperationsGet where
-        type Rs RegionOperationsGet = Operation
-        type Scopes RegionOperationsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionOperationsGet'{..}
-          = go _rogProject _rogRegion _rogOperation
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionOperationsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/RegionOperations/List.hs b/gen/Network/Google/Resource/Compute/RegionOperations/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/RegionOperations/List.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.RegionOperations.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)
---
--- Retrieves a list of Operation resources contained within the specified
--- region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regionOperations.list@.
-module Network.Google.Resource.Compute.RegionOperations.List
-    (
-    -- * REST Resource
-      RegionOperationsListResource
-
-    -- * Creating a Request
-    , regionOperationsList
-    , RegionOperationsList
-
-    -- * Request Lenses
-    , rolOrderBy
-    , rolProject
-    , rolFilter
-    , rolRegion
-    , rolPageToken
-    , rolMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regionOperations.list@ method which the
--- 'RegionOperationsList' request conforms to.
-type RegionOperationsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "operations" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] OperationList
-
--- | Retrieves a list of Operation resources contained within the specified
--- region.
---
--- /See:/ 'regionOperationsList' smart constructor.
-data RegionOperationsList =
-  RegionOperationsList'
-    { _rolOrderBy    :: !(Maybe Text)
-    , _rolProject    :: !Text
-    , _rolFilter     :: !(Maybe Text)
-    , _rolRegion     :: !Text
-    , _rolPageToken  :: !(Maybe Text)
-    , _rolMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionOperationsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rolOrderBy'
---
--- * 'rolProject'
---
--- * 'rolFilter'
---
--- * 'rolRegion'
---
--- * 'rolPageToken'
---
--- * 'rolMaxResults'
-regionOperationsList
-    :: Text -- ^ 'rolProject'
-    -> Text -- ^ 'rolRegion'
-    -> RegionOperationsList
-regionOperationsList pRolProject_ pRolRegion_ =
-  RegionOperationsList'
-    { _rolOrderBy = Nothing
-    , _rolProject = pRolProject_
-    , _rolFilter = Nothing
-    , _rolRegion = pRolRegion_
-    , _rolPageToken = Nothing
-    , _rolMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rolOrderBy :: Lens' RegionOperationsList (Maybe Text)
-rolOrderBy
-  = lens _rolOrderBy (\ s a -> s{_rolOrderBy = a})
-
--- | Project ID for this request.
-rolProject :: Lens' RegionOperationsList Text
-rolProject
-  = lens _rolProject (\ s a -> s{_rolProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rolFilter :: Lens' RegionOperationsList (Maybe Text)
-rolFilter
-  = lens _rolFilter (\ s a -> s{_rolFilter = a})
-
--- | Name of the region for this request.
-rolRegion :: Lens' RegionOperationsList Text
-rolRegion
-  = lens _rolRegion (\ s a -> s{_rolRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rolPageToken :: Lens' RegionOperationsList (Maybe Text)
-rolPageToken
-  = lens _rolPageToken (\ s a -> s{_rolPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rolMaxResults :: Lens' RegionOperationsList Word32
-rolMaxResults
-  = lens _rolMaxResults
-      (\ s a -> s{_rolMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionOperationsList where
-        type Rs RegionOperationsList = OperationList
-        type Scopes RegionOperationsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionOperationsList'{..}
-          = go _rolProject _rolRegion _rolOrderBy _rolFilter
-              _rolPageToken
-              (Just _rolMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RegionOperationsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Regions/Get.hs b/gen/Network/Google/Resource/Compute/Regions/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Regions/Get.hs
+++ /dev/null
@@ -1,102 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Regions.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)
---
--- Returns the specified Region resource. Gets a list of available regions
--- by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regions.get@.
-module Network.Google.Resource.Compute.Regions.Get
-    (
-    -- * REST Resource
-      RegionsGetResource
-
-    -- * Creating a Request
-    , regionsGet
-    , RegionsGet
-
-    -- * Request Lenses
-    , rgProject
-    , rgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regions.get@ method which the
--- 'RegionsGet' request conforms to.
-type RegionsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Region
-
--- | Returns the specified Region resource. Gets a list of available regions
--- by making a list() request.
---
--- /See:/ 'regionsGet' smart constructor.
-data RegionsGet =
-  RegionsGet'
-    { _rgProject :: !Text
-    , _rgRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rgProject'
---
--- * 'rgRegion'
-regionsGet
-    :: Text -- ^ 'rgProject'
-    -> Text -- ^ 'rgRegion'
-    -> RegionsGet
-regionsGet pRgProject_ pRgRegion_ =
-  RegionsGet' {_rgProject = pRgProject_, _rgRegion = pRgRegion_}
-
-
--- | Project ID for this request.
-rgProject :: Lens' RegionsGet Text
-rgProject
-  = lens _rgProject (\ s a -> s{_rgProject = a})
-
--- | Name of the region resource to return.
-rgRegion :: Lens' RegionsGet Text
-rgRegion = lens _rgRegion (\ s a -> s{_rgRegion = a})
-
-instance GoogleRequest RegionsGet where
-        type Rs RegionsGet = Region
-        type Scopes RegionsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionsGet'{..}
-          = go _rgProject _rgRegion (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RegionsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Regions/List.hs b/gen/Network/Google/Resource/Compute/Regions/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Regions/List.hs
+++ /dev/null
@@ -1,169 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Regions.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)
---
--- Retrieves the list of region resources available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.regions.list@.
-module Network.Google.Resource.Compute.Regions.List
-    (
-    -- * REST Resource
-      RegionsListResource
-
-    -- * Creating a Request
-    , regionsList
-    , RegionsList
-
-    -- * Request Lenses
-    , regOrderBy
-    , regProject
-    , regFilter
-    , regPageToken
-    , regMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.regions.list@ method which the
--- 'RegionsList' request conforms to.
-type RegionsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               QueryParam "orderBy" Text :>
-                 QueryParam "filter" Text :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Word32) :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] RegionList
-
--- | Retrieves the list of region resources available to the specified
--- project.
---
--- /See:/ 'regionsList' smart constructor.
-data RegionsList =
-  RegionsList'
-    { _regOrderBy    :: !(Maybe Text)
-    , _regProject    :: !Text
-    , _regFilter     :: !(Maybe Text)
-    , _regPageToken  :: !(Maybe Text)
-    , _regMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RegionsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'regOrderBy'
---
--- * 'regProject'
---
--- * 'regFilter'
---
--- * 'regPageToken'
---
--- * 'regMaxResults'
-regionsList
-    :: Text -- ^ 'regProject'
-    -> RegionsList
-regionsList pRegProject_ =
-  RegionsList'
-    { _regOrderBy = Nothing
-    , _regProject = pRegProject_
-    , _regFilter = Nothing
-    , _regPageToken = Nothing
-    , _regMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-regOrderBy :: Lens' RegionsList (Maybe Text)
-regOrderBy
-  = lens _regOrderBy (\ s a -> s{_regOrderBy = a})
-
--- | Project ID for this request.
-regProject :: Lens' RegionsList Text
-regProject
-  = lens _regProject (\ s a -> s{_regProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-regFilter :: Lens' RegionsList (Maybe Text)
-regFilter
-  = lens _regFilter (\ s a -> s{_regFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-regPageToken :: Lens' RegionsList (Maybe Text)
-regPageToken
-  = lens _regPageToken (\ s a -> s{_regPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-regMaxResults :: Lens' RegionsList Word32
-regMaxResults
-  = lens _regMaxResults
-      (\ s a -> s{_regMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RegionsList where
-        type Rs RegionsList = RegionList
-        type Scopes RegionsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RegionsList'{..}
-          = go _regProject _regOrderBy _regFilter _regPageToken
-              (Just _regMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RegionsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Routers/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/AggregatedList.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of routers.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.aggregatedList@.
-module Network.Google.Resource.Compute.Routers.AggregatedList
-    (
-    -- * REST Resource
-      RoutersAggregatedListResource
-
-    -- * Creating a Request
-    , routersAggregatedList
-    , RoutersAggregatedList
-
-    -- * Request Lenses
-    , rOrderBy
-    , rProject
-    , rFilter
-    , rPageToken
-    , rMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.aggregatedList@ method which the
--- 'RoutersAggregatedList' request conforms to.
-type RoutersAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "routers" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] RouterAggregatedList
-
--- | Retrieves an aggregated list of routers.
---
--- /See:/ 'routersAggregatedList' smart constructor.
-data RoutersAggregatedList =
-  RoutersAggregatedList'
-    { _rOrderBy    :: !(Maybe Text)
-    , _rProject    :: !Text
-    , _rFilter     :: !(Maybe Text)
-    , _rPageToken  :: !(Maybe Text)
-    , _rMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rOrderBy'
---
--- * 'rProject'
---
--- * 'rFilter'
---
--- * 'rPageToken'
---
--- * 'rMaxResults'
-routersAggregatedList
-    :: Text -- ^ 'rProject'
-    -> RoutersAggregatedList
-routersAggregatedList pRProject_ =
-  RoutersAggregatedList'
-    { _rOrderBy = Nothing
-    , _rProject = pRProject_
-    , _rFilter = Nothing
-    , _rPageToken = Nothing
-    , _rMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rOrderBy :: Lens' RoutersAggregatedList (Maybe Text)
-rOrderBy = lens _rOrderBy (\ s a -> s{_rOrderBy = a})
-
--- | Project ID for this request.
-rProject :: Lens' RoutersAggregatedList Text
-rProject = lens _rProject (\ s a -> s{_rProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rFilter :: Lens' RoutersAggregatedList (Maybe Text)
-rFilter = lens _rFilter (\ s a -> s{_rFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rPageToken :: Lens' RoutersAggregatedList (Maybe Text)
-rPageToken
-  = lens _rPageToken (\ s a -> s{_rPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rMaxResults :: Lens' RoutersAggregatedList Word32
-rMaxResults
-  = lens _rMaxResults (\ s a -> s{_rMaxResults = a}) .
-      _Coerce
-
-instance GoogleRequest RoutersAggregatedList where
-        type Rs RoutersAggregatedList = RouterAggregatedList
-        type Scopes RoutersAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersAggregatedList'{..}
-          = go _rProject _rOrderBy _rFilter _rPageToken
-              (Just _rMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RoutersAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Delete.hs b/gen/Network/Google/Resource/Compute/Routers/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Delete.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.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 Router resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.delete@.
-module Network.Google.Resource.Compute.Routers.Delete
-    (
-    -- * REST Resource
-      RoutersDeleteResource
-
-    -- * Creating a Request
-    , routersDelete
-    , RoutersDelete
-
-    -- * Request Lenses
-    , rouoRequestId
-    , rouoProject
-    , rouoRouter
-    , rouoRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.delete@ method which the
--- 'RoutersDelete' request conforms to.
-type RoutersDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified Router resource.
---
--- /See:/ 'routersDelete' smart constructor.
-data RoutersDelete =
-  RoutersDelete'
-    { _rouoRequestId :: !(Maybe Text)
-    , _rouoProject   :: !Text
-    , _rouoRouter    :: !Text
-    , _rouoRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rouoRequestId'
---
--- * 'rouoProject'
---
--- * 'rouoRouter'
---
--- * 'rouoRegion'
-routersDelete
-    :: Text -- ^ 'rouoProject'
-    -> Text -- ^ 'rouoRouter'
-    -> Text -- ^ 'rouoRegion'
-    -> RoutersDelete
-routersDelete pRouoProject_ pRouoRouter_ pRouoRegion_ =
-  RoutersDelete'
-    { _rouoRequestId = Nothing
-    , _rouoProject = pRouoProject_
-    , _rouoRouter = pRouoRouter_
-    , _rouoRegion = pRouoRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rouoRequestId :: Lens' RoutersDelete (Maybe Text)
-rouoRequestId
-  = lens _rouoRequestId
-      (\ s a -> s{_rouoRequestId = a})
-
--- | Project ID for this request.
-rouoProject :: Lens' RoutersDelete Text
-rouoProject
-  = lens _rouoProject (\ s a -> s{_rouoProject = a})
-
--- | Name of the Router resource to delete.
-rouoRouter :: Lens' RoutersDelete Text
-rouoRouter
-  = lens _rouoRouter (\ s a -> s{_rouoRouter = a})
-
--- | Name of the region for this request.
-rouoRegion :: Lens' RoutersDelete Text
-rouoRegion
-  = lens _rouoRegion (\ s a -> s{_rouoRegion = a})
-
-instance GoogleRequest RoutersDelete where
-        type Rs RoutersDelete = Operation
-        type Scopes RoutersDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutersDelete'{..}
-          = go _rouoProject _rouoRegion _rouoRouter
-              _rouoRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Get.hs b/gen/Network/Google/Resource/Compute/Routers/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Get.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.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)
---
--- Returns the specified Router resource. Gets a list of available routers
--- by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.get@.
-module Network.Google.Resource.Compute.Routers.Get
-    (
-    -- * REST Resource
-      RoutersGetResource
-
-    -- * Creating a Request
-    , routersGet
-    , RoutersGet
-
-    -- * Request Lenses
-    , rggProject
-    , rggRouter
-    , rggRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.get@ method which the
--- 'RoutersGet' request conforms to.
-type RoutersGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Router
-
--- | Returns the specified Router resource. Gets a list of available routers
--- by making a list() request.
---
--- /See:/ 'routersGet' smart constructor.
-data RoutersGet =
-  RoutersGet'
-    { _rggProject :: !Text
-    , _rggRouter  :: !Text
-    , _rggRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rggProject'
---
--- * 'rggRouter'
---
--- * 'rggRegion'
-routersGet
-    :: Text -- ^ 'rggProject'
-    -> Text -- ^ 'rggRouter'
-    -> Text -- ^ 'rggRegion'
-    -> RoutersGet
-routersGet pRggProject_ pRggRouter_ pRggRegion_ =
-  RoutersGet'
-    { _rggProject = pRggProject_
-    , _rggRouter = pRggRouter_
-    , _rggRegion = pRggRegion_
-    }
-
-
--- | Project ID for this request.
-rggProject :: Lens' RoutersGet Text
-rggProject
-  = lens _rggProject (\ s a -> s{_rggProject = a})
-
--- | Name of the Router resource to return.
-rggRouter :: Lens' RoutersGet Text
-rggRouter
-  = lens _rggRouter (\ s a -> s{_rggRouter = a})
-
--- | Name of the region for this request.
-rggRegion :: Lens' RoutersGet Text
-rggRegion
-  = lens _rggRegion (\ s a -> s{_rggRegion = a})
-
-instance GoogleRequest RoutersGet where
-        type Rs RoutersGet = Router
-        type Scopes RoutersGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersGet'{..}
-          = go _rggProject _rggRegion _rggRouter (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/GetNATMAppingInfo.hs b/gen/Network/Google/Resource/Compute/Routers/GetNATMAppingInfo.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/GetNATMAppingInfo.hs
+++ /dev/null
@@ -1,206 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.GetNATMAppingInfo
--- 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)
---
--- Retrieves runtime Nat mapping information of VM endpoints.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.getNatMappingInfo@.
-module Network.Google.Resource.Compute.Routers.GetNATMAppingInfo
-    (
-    -- * REST Resource
-      RoutersGetNATMAppingInfoResource
-
-    -- * Creating a Request
-    , routersGetNATMAppingInfo
-    , RoutersGetNATMAppingInfo
-
-    -- * Request Lenses
-    , rgnatmaiOrderBy
-    , rgnatmaiProject
-    , rgnatmaiRouter
-    , rgnatmaiFilter
-    , rgnatmaiRegion
-    , rgnatmaiPageToken
-    , rgnatmaiMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.getNatMappingInfo@ method which the
--- 'RoutersGetNATMAppingInfo' request conforms to.
-type RoutersGetNATMAppingInfoResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     "getNatMappingInfo" :>
-                       QueryParam "orderBy" Text :>
-                         QueryParam "filter" Text :>
-                           QueryParam "pageToken" Text :>
-                             QueryParam "maxResults" (Textual Word32) :>
-                               QueryParam "alt" AltJSON :>
-                                 Get '[JSON] VMEndpointNATMAppingsList
-
--- | Retrieves runtime Nat mapping information of VM endpoints.
---
--- /See:/ 'routersGetNATMAppingInfo' smart constructor.
-data RoutersGetNATMAppingInfo =
-  RoutersGetNATMAppingInfo'
-    { _rgnatmaiOrderBy    :: !(Maybe Text)
-    , _rgnatmaiProject    :: !Text
-    , _rgnatmaiRouter     :: !Text
-    , _rgnatmaiFilter     :: !(Maybe Text)
-    , _rgnatmaiRegion     :: !Text
-    , _rgnatmaiPageToken  :: !(Maybe Text)
-    , _rgnatmaiMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersGetNATMAppingInfo' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rgnatmaiOrderBy'
---
--- * 'rgnatmaiProject'
---
--- * 'rgnatmaiRouter'
---
--- * 'rgnatmaiFilter'
---
--- * 'rgnatmaiRegion'
---
--- * 'rgnatmaiPageToken'
---
--- * 'rgnatmaiMaxResults'
-routersGetNATMAppingInfo
-    :: Text -- ^ 'rgnatmaiProject'
-    -> Text -- ^ 'rgnatmaiRouter'
-    -> Text -- ^ 'rgnatmaiRegion'
-    -> RoutersGetNATMAppingInfo
-routersGetNATMAppingInfo pRgnatmaiProject_ pRgnatmaiRouter_ pRgnatmaiRegion_ =
-  RoutersGetNATMAppingInfo'
-    { _rgnatmaiOrderBy = Nothing
-    , _rgnatmaiProject = pRgnatmaiProject_
-    , _rgnatmaiRouter = pRgnatmaiRouter_
-    , _rgnatmaiFilter = Nothing
-    , _rgnatmaiRegion = pRgnatmaiRegion_
-    , _rgnatmaiPageToken = Nothing
-    , _rgnatmaiMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rgnatmaiOrderBy :: Lens' RoutersGetNATMAppingInfo (Maybe Text)
-rgnatmaiOrderBy
-  = lens _rgnatmaiOrderBy
-      (\ s a -> s{_rgnatmaiOrderBy = a})
-
--- | Project ID for this request.
-rgnatmaiProject :: Lens' RoutersGetNATMAppingInfo Text
-rgnatmaiProject
-  = lens _rgnatmaiProject
-      (\ s a -> s{_rgnatmaiProject = a})
-
--- | Name of the Router resource to query for Nat Mapping information of VM
--- endpoints.
-rgnatmaiRouter :: Lens' RoutersGetNATMAppingInfo Text
-rgnatmaiRouter
-  = lens _rgnatmaiRouter
-      (\ s a -> s{_rgnatmaiRouter = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rgnatmaiFilter :: Lens' RoutersGetNATMAppingInfo (Maybe Text)
-rgnatmaiFilter
-  = lens _rgnatmaiFilter
-      (\ s a -> s{_rgnatmaiFilter = a})
-
--- | Name of the region for this request.
-rgnatmaiRegion :: Lens' RoutersGetNATMAppingInfo Text
-rgnatmaiRegion
-  = lens _rgnatmaiRegion
-      (\ s a -> s{_rgnatmaiRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rgnatmaiPageToken :: Lens' RoutersGetNATMAppingInfo (Maybe Text)
-rgnatmaiPageToken
-  = lens _rgnatmaiPageToken
-      (\ s a -> s{_rgnatmaiPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rgnatmaiMaxResults :: Lens' RoutersGetNATMAppingInfo Word32
-rgnatmaiMaxResults
-  = lens _rgnatmaiMaxResults
-      (\ s a -> s{_rgnatmaiMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RoutersGetNATMAppingInfo where
-        type Rs RoutersGetNATMAppingInfo =
-             VMEndpointNATMAppingsList
-        type Scopes RoutersGetNATMAppingInfo =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersGetNATMAppingInfo'{..}
-          = go _rgnatmaiProject _rgnatmaiRegion _rgnatmaiRouter
-              _rgnatmaiOrderBy
-              _rgnatmaiFilter
-              _rgnatmaiPageToken
-              (Just _rgnatmaiMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RoutersGetNATMAppingInfoResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/GetRouterStatus.hs b/gen/Network/Google/Resource/Compute/Routers/GetRouterStatus.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/GetRouterStatus.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.GetRouterStatus
--- 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)
---
--- Retrieves runtime information of the specified router.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.getRouterStatus@.
-module Network.Google.Resource.Compute.Routers.GetRouterStatus
-    (
-    -- * REST Resource
-      RoutersGetRouterStatusResource
-
-    -- * Creating a Request
-    , routersGetRouterStatus
-    , RoutersGetRouterStatus
-
-    -- * Request Lenses
-    , rgrsProject
-    , rgrsRouter
-    , rgrsRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.getRouterStatus@ method which the
--- 'RoutersGetRouterStatus' request conforms to.
-type RoutersGetRouterStatusResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     "getRouterStatus" :>
-                       QueryParam "alt" AltJSON :>
-                         Get '[JSON] RouterStatusResponse
-
--- | Retrieves runtime information of the specified router.
---
--- /See:/ 'routersGetRouterStatus' smart constructor.
-data RoutersGetRouterStatus =
-  RoutersGetRouterStatus'
-    { _rgrsProject :: !Text
-    , _rgrsRouter  :: !Text
-    , _rgrsRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersGetRouterStatus' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rgrsProject'
---
--- * 'rgrsRouter'
---
--- * 'rgrsRegion'
-routersGetRouterStatus
-    :: Text -- ^ 'rgrsProject'
-    -> Text -- ^ 'rgrsRouter'
-    -> Text -- ^ 'rgrsRegion'
-    -> RoutersGetRouterStatus
-routersGetRouterStatus pRgrsProject_ pRgrsRouter_ pRgrsRegion_ =
-  RoutersGetRouterStatus'
-    { _rgrsProject = pRgrsProject_
-    , _rgrsRouter = pRgrsRouter_
-    , _rgrsRegion = pRgrsRegion_
-    }
-
-
--- | Project ID for this request.
-rgrsProject :: Lens' RoutersGetRouterStatus Text
-rgrsProject
-  = lens _rgrsProject (\ s a -> s{_rgrsProject = a})
-
--- | Name of the Router resource to query.
-rgrsRouter :: Lens' RoutersGetRouterStatus Text
-rgrsRouter
-  = lens _rgrsRouter (\ s a -> s{_rgrsRouter = a})
-
--- | Name of the region for this request.
-rgrsRegion :: Lens' RoutersGetRouterStatus Text
-rgrsRegion
-  = lens _rgrsRegion (\ s a -> s{_rgrsRegion = a})
-
-instance GoogleRequest RoutersGetRouterStatus where
-        type Rs RoutersGetRouterStatus = RouterStatusResponse
-        type Scopes RoutersGetRouterStatus =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersGetRouterStatus'{..}
-          = go _rgrsProject _rgrsRegion _rgrsRouter
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy RoutersGetRouterStatusResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Insert.hs b/gen/Network/Google/Resource/Compute/Routers/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Insert.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.Insert
--- 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 Router resource in the specified project and region using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.insert@.
-module Network.Google.Resource.Compute.Routers.Insert
-    (
-    -- * REST Resource
-      RoutersInsertResource
-
-    -- * Creating a Request
-    , routersInsert
-    , RoutersInsert
-
-    -- * Request Lenses
-    , riRequestId
-    , riProject
-    , riPayload
-    , riRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.insert@ method which the
--- 'RoutersInsert' request conforms to.
-type RoutersInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Router :> Post '[JSON] Operation
-
--- | Creates a Router resource in the specified project and region using the
--- data included in the request.
---
--- /See:/ 'routersInsert' smart constructor.
-data RoutersInsert =
-  RoutersInsert'
-    { _riRequestId :: !(Maybe Text)
-    , _riProject   :: !Text
-    , _riPayload   :: !Router
-    , _riRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'riRequestId'
---
--- * 'riProject'
---
--- * 'riPayload'
---
--- * 'riRegion'
-routersInsert
-    :: Text -- ^ 'riProject'
-    -> Router -- ^ 'riPayload'
-    -> Text -- ^ 'riRegion'
-    -> RoutersInsert
-routersInsert pRiProject_ pRiPayload_ pRiRegion_ =
-  RoutersInsert'
-    { _riRequestId = Nothing
-    , _riProject = pRiProject_
-    , _riPayload = pRiPayload_
-    , _riRegion = pRiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-riRequestId :: Lens' RoutersInsert (Maybe Text)
-riRequestId
-  = lens _riRequestId (\ s a -> s{_riRequestId = a})
-
--- | Project ID for this request.
-riProject :: Lens' RoutersInsert Text
-riProject
-  = lens _riProject (\ s a -> s{_riProject = a})
-
--- | Multipart request metadata.
-riPayload :: Lens' RoutersInsert Router
-riPayload
-  = lens _riPayload (\ s a -> s{_riPayload = a})
-
--- | Name of the region for this request.
-riRegion :: Lens' RoutersInsert Text
-riRegion = lens _riRegion (\ s a -> s{_riRegion = a})
-
-instance GoogleRequest RoutersInsert where
-        type Rs RoutersInsert = Operation
-        type Scopes RoutersInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutersInsert'{..}
-          = go _riProject _riRegion _riRequestId (Just AltJSON)
-              _riPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/List.hs b/gen/Network/Google/Resource/Compute/Routers/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/List.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.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)
---
--- Retrieves a list of Router resources available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.list@.
-module Network.Google.Resource.Compute.Routers.List
-    (
-    -- * REST Resource
-      RoutersListResource
-
-    -- * Creating a Request
-    , routersList
-    , RoutersList
-
-    -- * Request Lenses
-    , rlOrderBy
-    , rlProject
-    , rlFilter
-    , rlRegion
-    , rlPageToken
-    , rlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.list@ method which the
--- 'RoutersList' request conforms to.
-type RoutersListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] RouterList
-
--- | Retrieves a list of Router resources available to the specified project.
---
--- /See:/ 'routersList' smart constructor.
-data RoutersList =
-  RoutersList'
-    { _rlOrderBy    :: !(Maybe Text)
-    , _rlProject    :: !Text
-    , _rlFilter     :: !(Maybe Text)
-    , _rlRegion     :: !Text
-    , _rlPageToken  :: !(Maybe Text)
-    , _rlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rlOrderBy'
---
--- * 'rlProject'
---
--- * 'rlFilter'
---
--- * 'rlRegion'
---
--- * 'rlPageToken'
---
--- * 'rlMaxResults'
-routersList
-    :: Text -- ^ 'rlProject'
-    -> Text -- ^ 'rlRegion'
-    -> RoutersList
-routersList pRlProject_ pRlRegion_ =
-  RoutersList'
-    { _rlOrderBy = Nothing
-    , _rlProject = pRlProject_
-    , _rlFilter = Nothing
-    , _rlRegion = pRlRegion_
-    , _rlPageToken = Nothing
-    , _rlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rlOrderBy :: Lens' RoutersList (Maybe Text)
-rlOrderBy
-  = lens _rlOrderBy (\ s a -> s{_rlOrderBy = a})
-
--- | Project ID for this request.
-rlProject :: Lens' RoutersList Text
-rlProject
-  = lens _rlProject (\ s a -> s{_rlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rlFilter :: Lens' RoutersList (Maybe Text)
-rlFilter = lens _rlFilter (\ s a -> s{_rlFilter = a})
-
--- | Name of the region for this request.
-rlRegion :: Lens' RoutersList Text
-rlRegion = lens _rlRegion (\ s a -> s{_rlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rlPageToken :: Lens' RoutersList (Maybe Text)
-rlPageToken
-  = lens _rlPageToken (\ s a -> s{_rlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rlMaxResults :: Lens' RoutersList Word32
-rlMaxResults
-  = lens _rlMaxResults (\ s a -> s{_rlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RoutersList where
-        type Rs RoutersList = RouterList
-        type Scopes RoutersList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersList'{..}
-          = go _rlProject _rlRegion _rlOrderBy _rlFilter
-              _rlPageToken
-              (Just _rlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Patch.hs b/gen/Network/Google/Resource/Compute/Routers/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Patch.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.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)
---
--- Patches the specified Router resource with the data included in the
--- request. This method supports PATCH semantics and uses JSON merge patch
--- format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.patch@.
-module Network.Google.Resource.Compute.Routers.Patch
-    (
-    -- * REST Resource
-      RoutersPatchResource
-
-    -- * Creating a Request
-    , routersPatch
-    , RoutersPatch
-
-    -- * Request Lenses
-    , rpRequestId
-    , rpProject
-    , rpRouter
-    , rpPayload
-    , rpRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.patch@ method which the
--- 'RoutersPatch' request conforms to.
-type RoutersPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Router :> Patch '[JSON] Operation
-
--- | Patches the specified Router resource with the data included in the
--- request. This method supports PATCH semantics and uses JSON merge patch
--- format and processing rules.
---
--- /See:/ 'routersPatch' smart constructor.
-data RoutersPatch =
-  RoutersPatch'
-    { _rpRequestId :: !(Maybe Text)
-    , _rpProject   :: !Text
-    , _rpRouter    :: !Text
-    , _rpPayload   :: !Router
-    , _rpRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rpRequestId'
---
--- * 'rpProject'
---
--- * 'rpRouter'
---
--- * 'rpPayload'
---
--- * 'rpRegion'
-routersPatch
-    :: Text -- ^ 'rpProject'
-    -> Text -- ^ 'rpRouter'
-    -> Router -- ^ 'rpPayload'
-    -> Text -- ^ 'rpRegion'
-    -> RoutersPatch
-routersPatch pRpProject_ pRpRouter_ pRpPayload_ pRpRegion_ =
-  RoutersPatch'
-    { _rpRequestId = Nothing
-    , _rpProject = pRpProject_
-    , _rpRouter = pRpRouter_
-    , _rpPayload = pRpPayload_
-    , _rpRegion = pRpRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rpRequestId :: Lens' RoutersPatch (Maybe Text)
-rpRequestId
-  = lens _rpRequestId (\ s a -> s{_rpRequestId = a})
-
--- | Project ID for this request.
-rpProject :: Lens' RoutersPatch Text
-rpProject
-  = lens _rpProject (\ s a -> s{_rpProject = a})
-
--- | Name of the Router resource to patch.
-rpRouter :: Lens' RoutersPatch Text
-rpRouter = lens _rpRouter (\ s a -> s{_rpRouter = a})
-
--- | Multipart request metadata.
-rpPayload :: Lens' RoutersPatch Router
-rpPayload
-  = lens _rpPayload (\ s a -> s{_rpPayload = a})
-
--- | Name of the region for this request.
-rpRegion :: Lens' RoutersPatch Text
-rpRegion = lens _rpRegion (\ s a -> s{_rpRegion = a})
-
-instance GoogleRequest RoutersPatch where
-        type Rs RoutersPatch = Operation
-        type Scopes RoutersPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutersPatch'{..}
-          = go _rpProject _rpRegion _rpRouter _rpRequestId
-              (Just AltJSON)
-              _rpPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Preview.hs b/gen/Network/Google/Resource/Compute/Routers/Preview.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Preview.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.Preview
--- 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)
---
--- Preview fields auto-generated during router create and update
--- operations. Calling this method does NOT create or update the router.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.preview@.
-module Network.Google.Resource.Compute.Routers.Preview
-    (
-    -- * REST Resource
-      RoutersPreviewResource
-
-    -- * Creating a Request
-    , routersPreview
-    , RoutersPreview
-
-    -- * Request Lenses
-    , rppProject
-    , rppRouter
-    , rppPayload
-    , rppRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.preview@ method which the
--- 'RoutersPreview' request conforms to.
-type RoutersPreviewResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     "preview" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Router :>
-                           Post '[JSON] RoutersPreviewResponse
-
--- | Preview fields auto-generated during router create and update
--- operations. Calling this method does NOT create or update the router.
---
--- /See:/ 'routersPreview' smart constructor.
-data RoutersPreview =
-  RoutersPreview'
-    { _rppProject :: !Text
-    , _rppRouter  :: !Text
-    , _rppPayload :: !Router
-    , _rppRegion  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersPreview' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rppProject'
---
--- * 'rppRouter'
---
--- * 'rppPayload'
---
--- * 'rppRegion'
-routersPreview
-    :: Text -- ^ 'rppProject'
-    -> Text -- ^ 'rppRouter'
-    -> Router -- ^ 'rppPayload'
-    -> Text -- ^ 'rppRegion'
-    -> RoutersPreview
-routersPreview pRppProject_ pRppRouter_ pRppPayload_ pRppRegion_ =
-  RoutersPreview'
-    { _rppProject = pRppProject_
-    , _rppRouter = pRppRouter_
-    , _rppPayload = pRppPayload_
-    , _rppRegion = pRppRegion_
-    }
-
-
--- | Project ID for this request.
-rppProject :: Lens' RoutersPreview Text
-rppProject
-  = lens _rppProject (\ s a -> s{_rppProject = a})
-
--- | Name of the Router resource to query.
-rppRouter :: Lens' RoutersPreview Text
-rppRouter
-  = lens _rppRouter (\ s a -> s{_rppRouter = a})
-
--- | Multipart request metadata.
-rppPayload :: Lens' RoutersPreview Router
-rppPayload
-  = lens _rppPayload (\ s a -> s{_rppPayload = a})
-
--- | Name of the region for this request.
-rppRegion :: Lens' RoutersPreview Text
-rppRegion
-  = lens _rppRegion (\ s a -> s{_rppRegion = a})
-
-instance GoogleRequest RoutersPreview where
-        type Rs RoutersPreview = RoutersPreviewResponse
-        type Scopes RoutersPreview =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutersPreview'{..}
-          = go _rppProject _rppRegion _rppRouter (Just AltJSON)
-              _rppPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersPreviewResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routers/Update.hs b/gen/Network/Google/Resource/Compute/Routers/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routers/Update.hs
+++ /dev/null
@@ -1,150 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routers.Update
--- 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 Router resource with the data included in the
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routers.update@.
-module Network.Google.Resource.Compute.Routers.Update
-    (
-    -- * REST Resource
-      RoutersUpdateResource
-
-    -- * Creating a Request
-    , routersUpdate
-    , RoutersUpdate
-
-    -- * Request Lenses
-    , ruRequestId
-    , ruProject
-    , ruRouter
-    , ruPayload
-    , ruRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routers.update@ method which the
--- 'RoutersUpdate' request conforms to.
-type RoutersUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "routers" :>
-                   Capture "router" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Router :> Put '[JSON] Operation
-
--- | Updates the specified Router resource with the data included in the
--- request.
---
--- /See:/ 'routersUpdate' smart constructor.
-data RoutersUpdate =
-  RoutersUpdate'
-    { _ruRequestId :: !(Maybe Text)
-    , _ruProject   :: !Text
-    , _ruRouter    :: !Text
-    , _ruPayload   :: !Router
-    , _ruRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutersUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ruRequestId'
---
--- * 'ruProject'
---
--- * 'ruRouter'
---
--- * 'ruPayload'
---
--- * 'ruRegion'
-routersUpdate
-    :: Text -- ^ 'ruProject'
-    -> Text -- ^ 'ruRouter'
-    -> Router -- ^ 'ruPayload'
-    -> Text -- ^ 'ruRegion'
-    -> RoutersUpdate
-routersUpdate pRuProject_ pRuRouter_ pRuPayload_ pRuRegion_ =
-  RoutersUpdate'
-    { _ruRequestId = Nothing
-    , _ruProject = pRuProject_
-    , _ruRouter = pRuRouter_
-    , _ruPayload = pRuPayload_
-    , _ruRegion = pRuRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ruRequestId :: Lens' RoutersUpdate (Maybe Text)
-ruRequestId
-  = lens _ruRequestId (\ s a -> s{_ruRequestId = a})
-
--- | Project ID for this request.
-ruProject :: Lens' RoutersUpdate Text
-ruProject
-  = lens _ruProject (\ s a -> s{_ruProject = a})
-
--- | Name of the Router resource to update.
-ruRouter :: Lens' RoutersUpdate Text
-ruRouter = lens _ruRouter (\ s a -> s{_ruRouter = a})
-
--- | Multipart request metadata.
-ruPayload :: Lens' RoutersUpdate Router
-ruPayload
-  = lens _ruPayload (\ s a -> s{_ruPayload = a})
-
--- | Name of the region for this request.
-ruRegion :: Lens' RoutersUpdate Text
-ruRegion = lens _ruRegion (\ s a -> s{_ruRegion = a})
-
-instance GoogleRequest RoutersUpdate where
-        type Rs RoutersUpdate = Operation
-        type Scopes RoutersUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutersUpdate'{..}
-          = go _ruProject _ruRegion _ruRouter _ruRequestId
-              (Just AltJSON)
-              _ruPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutersUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routes/Delete.hs b/gen/Network/Google/Resource/Compute/Routes/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routes/Delete.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routes.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 Route resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.delete@.
-module Network.Google.Resource.Compute.Routes.Delete
-    (
-    -- * REST Resource
-      RoutesDeleteResource
-
-    -- * Creating a Request
-    , routesDelete
-    , RoutesDelete
-
-    -- * Request Lenses
-    , rdRequestId
-    , rdProject
-    , rdRoute
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routes.delete@ method which the
--- 'RoutesDelete' request conforms to.
-type RoutesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "routes" :>
-                 Capture "route" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified Route resource.
---
--- /See:/ 'routesDelete' smart constructor.
-data RoutesDelete =
-  RoutesDelete'
-    { _rdRequestId :: !(Maybe Text)
-    , _rdProject   :: !Text
-    , _rdRoute     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rdRequestId'
---
--- * 'rdProject'
---
--- * 'rdRoute'
-routesDelete
-    :: Text -- ^ 'rdProject'
-    -> Text -- ^ 'rdRoute'
-    -> RoutesDelete
-routesDelete pRdProject_ pRdRoute_ =
-  RoutesDelete'
-    {_rdRequestId = Nothing, _rdProject = pRdProject_, _rdRoute = pRdRoute_}
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rdRequestId :: Lens' RoutesDelete (Maybe Text)
-rdRequestId
-  = lens _rdRequestId (\ s a -> s{_rdRequestId = a})
-
--- | Project ID for this request.
-rdProject :: Lens' RoutesDelete Text
-rdProject
-  = lens _rdProject (\ s a -> s{_rdProject = a})
-
--- | Name of the Route resource to delete.
-rdRoute :: Lens' RoutesDelete Text
-rdRoute = lens _rdRoute (\ s a -> s{_rdRoute = a})
-
-instance GoogleRequest RoutesDelete where
-        type Rs RoutesDelete = Operation
-        type Scopes RoutesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutesDelete'{..}
-          = go _rdProject _rdRoute _rdRequestId (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routes/Get.hs b/gen/Network/Google/Resource/Compute/Routes/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routes/Get.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routes.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)
---
--- Returns the specified Route resource. Gets a list of available routes by
--- making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.get@.
-module Network.Google.Resource.Compute.Routes.Get
-    (
-    -- * REST Resource
-      RoutesGetResource
-
-    -- * Creating a Request
-    , routesGet
-    , RoutesGet
-
-    -- * Request Lenses
-    , rrProject
-    , rrRoute
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routes.get@ method which the
--- 'RoutesGet' request conforms to.
-type RoutesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "routes" :>
-                 Capture "route" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Route
-
--- | Returns the specified Route resource. Gets a list of available routes by
--- making a list() request.
---
--- /See:/ 'routesGet' smart constructor.
-data RoutesGet =
-  RoutesGet'
-    { _rrProject :: !Text
-    , _rrRoute   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rrProject'
---
--- * 'rrRoute'
-routesGet
-    :: Text -- ^ 'rrProject'
-    -> Text -- ^ 'rrRoute'
-    -> RoutesGet
-routesGet pRrProject_ pRrRoute_ =
-  RoutesGet' {_rrProject = pRrProject_, _rrRoute = pRrRoute_}
-
-
--- | Project ID for this request.
-rrProject :: Lens' RoutesGet Text
-rrProject
-  = lens _rrProject (\ s a -> s{_rrProject = a})
-
--- | Name of the Route resource to return.
-rrRoute :: Lens' RoutesGet Text
-rrRoute = lens _rrRoute (\ s a -> s{_rrRoute = a})
-
-instance GoogleRequest RoutesGet where
-        type Rs RoutesGet = Route
-        type Scopes RoutesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutesGet'{..}
-          = go _rrProject _rrRoute (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routes/Insert.hs b/gen/Network/Google/Resource/Compute/Routes/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routes/Insert.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routes.Insert
--- 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 Route resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.insert@.
-module Network.Google.Resource.Compute.Routes.Insert
-    (
-    -- * REST Resource
-      RoutesInsertResource
-
-    -- * Creating a Request
-    , routesInsert
-    , RoutesInsert
-
-    -- * Request Lenses
-    , rouRequestId
-    , rouProject
-    , rouPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routes.insert@ method which the
--- 'RoutesInsert' request conforms to.
-type RoutesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "routes" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] Route :> Post '[JSON] Operation
-
--- | Creates a Route resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'routesInsert' smart constructor.
-data RoutesInsert =
-  RoutesInsert'
-    { _rouRequestId :: !(Maybe Text)
-    , _rouProject   :: !Text
-    , _rouPayload   :: !Route
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rouRequestId'
---
--- * 'rouProject'
---
--- * 'rouPayload'
-routesInsert
-    :: Text -- ^ 'rouProject'
-    -> Route -- ^ 'rouPayload'
-    -> RoutesInsert
-routesInsert pRouProject_ pRouPayload_ =
-  RoutesInsert'
-    { _rouRequestId = Nothing
-    , _rouProject = pRouProject_
-    , _rouPayload = pRouPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-rouRequestId :: Lens' RoutesInsert (Maybe Text)
-rouRequestId
-  = lens _rouRequestId (\ s a -> s{_rouRequestId = a})
-
--- | Project ID for this request.
-rouProject :: Lens' RoutesInsert Text
-rouProject
-  = lens _rouProject (\ s a -> s{_rouProject = a})
-
--- | Multipart request metadata.
-rouPayload :: Lens' RoutesInsert Route
-rouPayload
-  = lens _rouPayload (\ s a -> s{_rouPayload = a})
-
-instance GoogleRequest RoutesInsert where
-        type Rs RoutesInsert = Operation
-        type Scopes RoutesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient RoutesInsert'{..}
-          = go _rouProject _rouRequestId (Just AltJSON)
-              _rouPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Routes/List.hs b/gen/Network/Google/Resource/Compute/Routes/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Routes/List.hs
+++ /dev/null
@@ -1,170 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Routes.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)
---
--- Retrieves the list of Route resources available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.routes.list@.
-module Network.Google.Resource.Compute.Routes.List
-    (
-    -- * REST Resource
-      RoutesListResource
-
-    -- * Creating a Request
-    , routesList
-    , RoutesList
-
-    -- * Request Lenses
-    , rllOrderBy
-    , rllProject
-    , rllFilter
-    , rllPageToken
-    , rllMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.routes.list@ method which the
--- 'RoutesList' request conforms to.
-type RoutesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "routes" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] RouteList
-
--- | Retrieves the list of Route resources available to the specified
--- project.
---
--- /See:/ 'routesList' smart constructor.
-data RoutesList =
-  RoutesList'
-    { _rllOrderBy    :: !(Maybe Text)
-    , _rllProject    :: !Text
-    , _rllFilter     :: !(Maybe Text)
-    , _rllPageToken  :: !(Maybe Text)
-    , _rllMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RoutesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rllOrderBy'
---
--- * 'rllProject'
---
--- * 'rllFilter'
---
--- * 'rllPageToken'
---
--- * 'rllMaxResults'
-routesList
-    :: Text -- ^ 'rllProject'
-    -> RoutesList
-routesList pRllProject_ =
-  RoutesList'
-    { _rllOrderBy = Nothing
-    , _rllProject = pRllProject_
-    , _rllFilter = Nothing
-    , _rllPageToken = Nothing
-    , _rllMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-rllOrderBy :: Lens' RoutesList (Maybe Text)
-rllOrderBy
-  = lens _rllOrderBy (\ s a -> s{_rllOrderBy = a})
-
--- | Project ID for this request.
-rllProject :: Lens' RoutesList Text
-rllProject
-  = lens _rllProject (\ s a -> s{_rllProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-rllFilter :: Lens' RoutesList (Maybe Text)
-rllFilter
-  = lens _rllFilter (\ s a -> s{_rllFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-rllPageToken :: Lens' RoutesList (Maybe Text)
-rllPageToken
-  = lens _rllPageToken (\ s a -> s{_rllPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-rllMaxResults :: Lens' RoutesList Word32
-rllMaxResults
-  = lens _rllMaxResults
-      (\ s a -> s{_rllMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest RoutesList where
-        type Rs RoutesList = RouteList
-        type Scopes RoutesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient RoutesList'{..}
-          = go _rllProject _rllOrderBy _rllFilter _rllPageToken
-              (Just _rllMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy RoutesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLCertificates/Delete.hs b/gen/Network/Google/Resource/Compute/SSLCertificates/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLCertificates/Delete.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLCertificates.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 SslCertificate resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.delete@.
-module Network.Google.Resource.Compute.SSLCertificates.Delete
-    (
-    -- * REST Resource
-      SSLCertificatesDeleteResource
-
-    -- * Creating a Request
-    , sslCertificatesDelete
-    , SSLCertificatesDelete
-
-    -- * Request Lenses
-    , scdRequestId
-    , scdProject
-    , scdSSLCertificate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslCertificates.delete@ method which the
--- 'SSLCertificatesDelete' request conforms to.
-type SSLCertificatesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslCertificates" :>
-                 Capture "sslCertificate" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified SslCertificate resource.
---
--- /See:/ 'sslCertificatesDelete' smart constructor.
-data SSLCertificatesDelete =
-  SSLCertificatesDelete'
-    { _scdRequestId      :: !(Maybe Text)
-    , _scdProject        :: !Text
-    , _scdSSLCertificate :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificatesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'scdRequestId'
---
--- * 'scdProject'
---
--- * 'scdSSLCertificate'
-sslCertificatesDelete
-    :: Text -- ^ 'scdProject'
-    -> Text -- ^ 'scdSSLCertificate'
-    -> SSLCertificatesDelete
-sslCertificatesDelete pScdProject_ pScdSSLCertificate_ =
-  SSLCertificatesDelete'
-    { _scdRequestId = Nothing
-    , _scdProject = pScdProject_
-    , _scdSSLCertificate = pScdSSLCertificate_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-scdRequestId :: Lens' SSLCertificatesDelete (Maybe Text)
-scdRequestId
-  = lens _scdRequestId (\ s a -> s{_scdRequestId = a})
-
--- | Project ID for this request.
-scdProject :: Lens' SSLCertificatesDelete Text
-scdProject
-  = lens _scdProject (\ s a -> s{_scdProject = a})
-
--- | Name of the SslCertificate resource to delete.
-scdSSLCertificate :: Lens' SSLCertificatesDelete Text
-scdSSLCertificate
-  = lens _scdSSLCertificate
-      (\ s a -> s{_scdSSLCertificate = a})
-
-instance GoogleRequest SSLCertificatesDelete where
-        type Rs SSLCertificatesDelete = Operation
-        type Scopes SSLCertificatesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SSLCertificatesDelete'{..}
-          = go _scdProject _scdSSLCertificate _scdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLCertificatesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLCertificates/Get.hs b/gen/Network/Google/Resource/Compute/SSLCertificates/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLCertificates/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLCertificates.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)
---
--- Returns the specified SslCertificate resource. Gets a list of available
--- SSL certificates by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.get@.
-module Network.Google.Resource.Compute.SSLCertificates.Get
-    (
-    -- * REST Resource
-      SSLCertificatesGetResource
-
-    -- * Creating a Request
-    , sslCertificatesGet
-    , SSLCertificatesGet
-
-    -- * Request Lenses
-    , scgProject
-    , scgSSLCertificate
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslCertificates.get@ method which the
--- 'SSLCertificatesGet' request conforms to.
-type SSLCertificatesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslCertificates" :>
-                 Capture "sslCertificate" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] SSLCertificate
-
--- | Returns the specified SslCertificate resource. Gets a list of available
--- SSL certificates by making a list() request.
---
--- /See:/ 'sslCertificatesGet' smart constructor.
-data SSLCertificatesGet =
-  SSLCertificatesGet'
-    { _scgProject        :: !Text
-    , _scgSSLCertificate :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificatesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'scgProject'
---
--- * 'scgSSLCertificate'
-sslCertificatesGet
-    :: Text -- ^ 'scgProject'
-    -> Text -- ^ 'scgSSLCertificate'
-    -> SSLCertificatesGet
-sslCertificatesGet pScgProject_ pScgSSLCertificate_ =
-  SSLCertificatesGet'
-    {_scgProject = pScgProject_, _scgSSLCertificate = pScgSSLCertificate_}
-
-
--- | Project ID for this request.
-scgProject :: Lens' SSLCertificatesGet Text
-scgProject
-  = lens _scgProject (\ s a -> s{_scgProject = a})
-
--- | Name of the SslCertificate resource to return.
-scgSSLCertificate :: Lens' SSLCertificatesGet Text
-scgSSLCertificate
-  = lens _scgSSLCertificate
-      (\ s a -> s{_scgSSLCertificate = a})
-
-instance GoogleRequest SSLCertificatesGet where
-        type Rs SSLCertificatesGet = SSLCertificate
-        type Scopes SSLCertificatesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SSLCertificatesGet'{..}
-          = go _scgProject _scgSSLCertificate (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLCertificatesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLCertificates/Insert.hs b/gen/Network/Google/Resource/Compute/SSLCertificates/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLCertificates/Insert.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLCertificates.Insert
--- 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 SslCertificate resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.insert@.
-module Network.Google.Resource.Compute.SSLCertificates.Insert
-    (
-    -- * REST Resource
-      SSLCertificatesInsertResource
-
-    -- * Creating a Request
-    , sslCertificatesInsert
-    , SSLCertificatesInsert
-
-    -- * Request Lenses
-    , sciRequestId
-    , sciProject
-    , sciPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslCertificates.insert@ method which the
--- 'SSLCertificatesInsert' request conforms to.
-type SSLCertificatesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslCertificates" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] SSLCertificate :>
-                       Post '[JSON] Operation
-
--- | Creates a SslCertificate resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'sslCertificatesInsert' smart constructor.
-data SSLCertificatesInsert =
-  SSLCertificatesInsert'
-    { _sciRequestId :: !(Maybe Text)
-    , _sciProject   :: !Text
-    , _sciPayload   :: !SSLCertificate
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificatesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sciRequestId'
---
--- * 'sciProject'
---
--- * 'sciPayload'
-sslCertificatesInsert
-    :: Text -- ^ 'sciProject'
-    -> SSLCertificate -- ^ 'sciPayload'
-    -> SSLCertificatesInsert
-sslCertificatesInsert pSciProject_ pSciPayload_ =
-  SSLCertificatesInsert'
-    { _sciRequestId = Nothing
-    , _sciProject = pSciProject_
-    , _sciPayload = pSciPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sciRequestId :: Lens' SSLCertificatesInsert (Maybe Text)
-sciRequestId
-  = lens _sciRequestId (\ s a -> s{_sciRequestId = a})
-
--- | Project ID for this request.
-sciProject :: Lens' SSLCertificatesInsert Text
-sciProject
-  = lens _sciProject (\ s a -> s{_sciProject = a})
-
--- | Multipart request metadata.
-sciPayload :: Lens' SSLCertificatesInsert SSLCertificate
-sciPayload
-  = lens _sciPayload (\ s a -> s{_sciPayload = a})
-
-instance GoogleRequest SSLCertificatesInsert where
-        type Rs SSLCertificatesInsert = Operation
-        type Scopes SSLCertificatesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SSLCertificatesInsert'{..}
-          = go _sciProject _sciRequestId (Just AltJSON)
-              _sciPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLCertificatesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLCertificates/List.hs b/gen/Network/Google/Resource/Compute/SSLCertificates/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLCertificates/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLCertificates.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)
---
--- Retrieves the list of SslCertificate resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslCertificates.list@.
-module Network.Google.Resource.Compute.SSLCertificates.List
-    (
-    -- * REST Resource
-      SSLCertificatesListResource
-
-    -- * Creating a Request
-    , sslCertificatesList
-    , SSLCertificatesList
-
-    -- * Request Lenses
-    , sclOrderBy
-    , sclProject
-    , sclFilter
-    , sclPageToken
-    , sclMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslCertificates.list@ method which the
--- 'SSLCertificatesList' request conforms to.
-type SSLCertificatesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslCertificates" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] SSLCertificateList
-
--- | Retrieves the list of SslCertificate resources available to the
--- specified project.
---
--- /See:/ 'sslCertificatesList' smart constructor.
-data SSLCertificatesList =
-  SSLCertificatesList'
-    { _sclOrderBy    :: !(Maybe Text)
-    , _sclProject    :: !Text
-    , _sclFilter     :: !(Maybe Text)
-    , _sclPageToken  :: !(Maybe Text)
-    , _sclMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLCertificatesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sclOrderBy'
---
--- * 'sclProject'
---
--- * 'sclFilter'
---
--- * 'sclPageToken'
---
--- * 'sclMaxResults'
-sslCertificatesList
-    :: Text -- ^ 'sclProject'
-    -> SSLCertificatesList
-sslCertificatesList pSclProject_ =
-  SSLCertificatesList'
-    { _sclOrderBy = Nothing
-    , _sclProject = pSclProject_
-    , _sclFilter = Nothing
-    , _sclPageToken = Nothing
-    , _sclMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-sclOrderBy :: Lens' SSLCertificatesList (Maybe Text)
-sclOrderBy
-  = lens _sclOrderBy (\ s a -> s{_sclOrderBy = a})
-
--- | Project ID for this request.
-sclProject :: Lens' SSLCertificatesList Text
-sclProject
-  = lens _sclProject (\ s a -> s{_sclProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-sclFilter :: Lens' SSLCertificatesList (Maybe Text)
-sclFilter
-  = lens _sclFilter (\ s a -> s{_sclFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-sclPageToken :: Lens' SSLCertificatesList (Maybe Text)
-sclPageToken
-  = lens _sclPageToken (\ s a -> s{_sclPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-sclMaxResults :: Lens' SSLCertificatesList Word32
-sclMaxResults
-  = lens _sclMaxResults
-      (\ s a -> s{_sclMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SSLCertificatesList where
-        type Rs SSLCertificatesList = SSLCertificateList
-        type Scopes SSLCertificatesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SSLCertificatesList'{..}
-          = go _sclProject _sclOrderBy _sclFilter _sclPageToken
-              (Just _sclMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLCertificatesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/Delete.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/Delete.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.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 policy. The SSL policy resource can be deleted
--- only if it is not in use by any TargetHttpsProxy or TargetSslProxy
--- resources.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.delete@.
-module Network.Google.Resource.Compute.SSLPolicies.Delete
-    (
-    -- * REST Resource
-      SSLPoliciesDeleteResource
-
-    -- * Creating a Request
-    , sslPoliciesDelete
-    , SSLPoliciesDelete
-
-    -- * Request Lenses
-    , spdSSLPolicy
-    , spdRequestId
-    , spdProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.delete@ method which the
--- 'SSLPoliciesDelete' request conforms to.
-type SSLPoliciesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 Capture "sslPolicy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified SSL policy. The SSL policy resource can be deleted
--- only if it is not in use by any TargetHttpsProxy or TargetSslProxy
--- resources.
---
--- /See:/ 'sslPoliciesDelete' smart constructor.
-data SSLPoliciesDelete =
-  SSLPoliciesDelete'
-    { _spdSSLPolicy :: !Text
-    , _spdRequestId :: !(Maybe Text)
-    , _spdProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spdSSLPolicy'
---
--- * 'spdRequestId'
---
--- * 'spdProject'
-sslPoliciesDelete
-    :: Text -- ^ 'spdSSLPolicy'
-    -> Text -- ^ 'spdProject'
-    -> SSLPoliciesDelete
-sslPoliciesDelete pSpdSSLPolicy_ pSpdProject_ =
-  SSLPoliciesDelete'
-    { _spdSSLPolicy = pSpdSSLPolicy_
-    , _spdRequestId = Nothing
-    , _spdProject = pSpdProject_
-    }
-
-
--- | Name of the SSL policy to delete. The name must be 1-63 characters long,
--- and comply with RFC1035.
-spdSSLPolicy :: Lens' SSLPoliciesDelete Text
-spdSSLPolicy
-  = lens _spdSSLPolicy (\ s a -> s{_spdSSLPolicy = a})
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-spdRequestId :: Lens' SSLPoliciesDelete (Maybe Text)
-spdRequestId
-  = lens _spdRequestId (\ s a -> s{_spdRequestId = a})
-
--- | Project ID for this request.
-spdProject :: Lens' SSLPoliciesDelete Text
-spdProject
-  = lens _spdProject (\ s a -> s{_spdProject = a})
-
-instance GoogleRequest SSLPoliciesDelete where
-        type Rs SSLPoliciesDelete = Operation
-        type Scopes SSLPoliciesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SSLPoliciesDelete'{..}
-          = go _spdProject _spdSSLPolicy _spdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLPoliciesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/Get.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/Get.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.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)
---
--- Lists all of the ordered rules present in a single specified policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.get@.
-module Network.Google.Resource.Compute.SSLPolicies.Get
-    (
-    -- * REST Resource
-      SSLPoliciesGetResource
-
-    -- * Creating a Request
-    , sslPoliciesGet
-    , SSLPoliciesGet
-
-    -- * Request Lenses
-    , spgSSLPolicy
-    , spgProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.get@ method which the
--- 'SSLPoliciesGet' request conforms to.
-type SSLPoliciesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 Capture "sslPolicy" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] SSLPolicy
-
--- | Lists all of the ordered rules present in a single specified policy.
---
--- /See:/ 'sslPoliciesGet' smart constructor.
-data SSLPoliciesGet =
-  SSLPoliciesGet'
-    { _spgSSLPolicy :: !Text
-    , _spgProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spgSSLPolicy'
---
--- * 'spgProject'
-sslPoliciesGet
-    :: Text -- ^ 'spgSSLPolicy'
-    -> Text -- ^ 'spgProject'
-    -> SSLPoliciesGet
-sslPoliciesGet pSpgSSLPolicy_ pSpgProject_ =
-  SSLPoliciesGet' {_spgSSLPolicy = pSpgSSLPolicy_, _spgProject = pSpgProject_}
-
-
--- | Name of the SSL policy to update. The name must be 1-63 characters long,
--- and comply with RFC1035.
-spgSSLPolicy :: Lens' SSLPoliciesGet Text
-spgSSLPolicy
-  = lens _spgSSLPolicy (\ s a -> s{_spgSSLPolicy = a})
-
--- | Project ID for this request.
-spgProject :: Lens' SSLPoliciesGet Text
-spgProject
-  = lens _spgProject (\ s a -> s{_spgProject = a})
-
-instance GoogleRequest SSLPoliciesGet where
-        type Rs SSLPoliciesGet = SSLPolicy
-        type Scopes SSLPoliciesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SSLPoliciesGet'{..}
-          = go _spgProject _spgSSLPolicy (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy SSLPoliciesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/Insert.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/Insert.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.Insert
--- 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)
---
--- Returns the specified SSL policy resource. Gets a list of available SSL
--- policies by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.insert@.
-module Network.Google.Resource.Compute.SSLPolicies.Insert
-    (
-    -- * REST Resource
-      SSLPoliciesInsertResource
-
-    -- * Creating a Request
-    , sslPoliciesInsert
-    , SSLPoliciesInsert
-
-    -- * Request Lenses
-    , sslpiRequestId
-    , sslpiProject
-    , sslpiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.insert@ method which the
--- 'SSLPoliciesInsert' request conforms to.
-type SSLPoliciesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] SSLPolicy :> Post '[JSON] Operation
-
--- | Returns the specified SSL policy resource. Gets a list of available SSL
--- policies by making a list() request.
---
--- /See:/ 'sslPoliciesInsert' smart constructor.
-data SSLPoliciesInsert =
-  SSLPoliciesInsert'
-    { _sslpiRequestId :: !(Maybe Text)
-    , _sslpiProject   :: !Text
-    , _sslpiPayload   :: !SSLPolicy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslpiRequestId'
---
--- * 'sslpiProject'
---
--- * 'sslpiPayload'
-sslPoliciesInsert
-    :: Text -- ^ 'sslpiProject'
-    -> SSLPolicy -- ^ 'sslpiPayload'
-    -> SSLPoliciesInsert
-sslPoliciesInsert pSslpiProject_ pSslpiPayload_ =
-  SSLPoliciesInsert'
-    { _sslpiRequestId = Nothing
-    , _sslpiProject = pSslpiProject_
-    , _sslpiPayload = pSslpiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sslpiRequestId :: Lens' SSLPoliciesInsert (Maybe Text)
-sslpiRequestId
-  = lens _sslpiRequestId
-      (\ s a -> s{_sslpiRequestId = a})
-
--- | Project ID for this request.
-sslpiProject :: Lens' SSLPoliciesInsert Text
-sslpiProject
-  = lens _sslpiProject (\ s a -> s{_sslpiProject = a})
-
--- | Multipart request metadata.
-sslpiPayload :: Lens' SSLPoliciesInsert SSLPolicy
-sslpiPayload
-  = lens _sslpiPayload (\ s a -> s{_sslpiPayload = a})
-
-instance GoogleRequest SSLPoliciesInsert where
-        type Rs SSLPoliciesInsert = Operation
-        type Scopes SSLPoliciesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SSLPoliciesInsert'{..}
-          = go _sslpiProject _sslpiRequestId (Just AltJSON)
-              _sslpiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLPoliciesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/List.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Lists all the SSL policies that have been configured for the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.list@.
-module Network.Google.Resource.Compute.SSLPolicies.List
-    (
-    -- * REST Resource
-      SSLPoliciesListResource
-
-    -- * Creating a Request
-    , sslPoliciesList'
-    , SSLPoliciesList'
-
-    -- * Request Lenses
-    , sslplOrderBy
-    , sslplProject
-    , sslplFilter
-    , sslplPageToken
-    , sslplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.list@ method which the
--- 'SSLPoliciesList'' request conforms to.
-type SSLPoliciesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] SSLPoliciesList
-
--- | Lists all the SSL policies that have been configured for the specified
--- project.
---
--- /See:/ 'sslPoliciesList'' smart constructor.
-data SSLPoliciesList' =
-  SSLPoliciesList''
-    { _sslplOrderBy    :: !(Maybe Text)
-    , _sslplProject    :: !Text
-    , _sslplFilter     :: !(Maybe Text)
-    , _sslplPageToken  :: !(Maybe Text)
-    , _sslplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesList'' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslplOrderBy'
---
--- * 'sslplProject'
---
--- * 'sslplFilter'
---
--- * 'sslplPageToken'
---
--- * 'sslplMaxResults'
-sslPoliciesList'
-    :: Text -- ^ 'sslplProject'
-    -> SSLPoliciesList'
-sslPoliciesList' pSslplProject_ =
-  SSLPoliciesList''
-    { _sslplOrderBy = Nothing
-    , _sslplProject = pSslplProject_
-    , _sslplFilter = Nothing
-    , _sslplPageToken = Nothing
-    , _sslplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-sslplOrderBy :: Lens' SSLPoliciesList' (Maybe Text)
-sslplOrderBy
-  = lens _sslplOrderBy (\ s a -> s{_sslplOrderBy = a})
-
--- | Project ID for this request.
-sslplProject :: Lens' SSLPoliciesList' Text
-sslplProject
-  = lens _sslplProject (\ s a -> s{_sslplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-sslplFilter :: Lens' SSLPoliciesList' (Maybe Text)
-sslplFilter
-  = lens _sslplFilter (\ s a -> s{_sslplFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-sslplPageToken :: Lens' SSLPoliciesList' (Maybe Text)
-sslplPageToken
-  = lens _sslplPageToken
-      (\ s a -> s{_sslplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-sslplMaxResults :: Lens' SSLPoliciesList' Word32
-sslplMaxResults
-  = lens _sslplMaxResults
-      (\ s a -> s{_sslplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SSLPoliciesList' where
-        type Rs SSLPoliciesList' = SSLPoliciesList
-        type Scopes SSLPoliciesList' =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SSLPoliciesList''{..}
-          = go _sslplProject _sslplOrderBy _sslplFilter
-              _sslplPageToken
-              (Just _sslplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLPoliciesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/ListAvailableFeatures.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/ListAvailableFeatures.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/ListAvailableFeatures.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.ListAvailableFeatures
--- 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 features that can be specified in the SSL policy when using
--- custom profile.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.listAvailableFeatures@.
-module Network.Google.Resource.Compute.SSLPolicies.ListAvailableFeatures
-    (
-    -- * REST Resource
-      SSLPoliciesListAvailableFeaturesResource
-
-    -- * Creating a Request
-    , sslPoliciesListAvailableFeatures
-    , SSLPoliciesListAvailableFeatures
-
-    -- * Request Lenses
-    , splafOrderBy
-    , splafProject
-    , splafFilter
-    , splafPageToken
-    , splafMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.listAvailableFeatures@ method which the
--- 'SSLPoliciesListAvailableFeatures' request conforms to.
-type SSLPoliciesListAvailableFeaturesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 "listAvailableFeatures" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON]
-                               SSLPoliciesListAvailableFeaturesResponse
-
--- | Lists all features that can be specified in the SSL policy when using
--- custom profile.
---
--- /See:/ 'sslPoliciesListAvailableFeatures' smart constructor.
-data SSLPoliciesListAvailableFeatures =
-  SSLPoliciesListAvailableFeatures'
-    { _splafOrderBy    :: !(Maybe Text)
-    , _splafProject    :: !Text
-    , _splafFilter     :: !(Maybe Text)
-    , _splafPageToken  :: !(Maybe Text)
-    , _splafMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesListAvailableFeatures' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splafOrderBy'
---
--- * 'splafProject'
---
--- * 'splafFilter'
---
--- * 'splafPageToken'
---
--- * 'splafMaxResults'
-sslPoliciesListAvailableFeatures
-    :: Text -- ^ 'splafProject'
-    -> SSLPoliciesListAvailableFeatures
-sslPoliciesListAvailableFeatures pSplafProject_ =
-  SSLPoliciesListAvailableFeatures'
-    { _splafOrderBy = Nothing
-    , _splafProject = pSplafProject_
-    , _splafFilter = Nothing
-    , _splafPageToken = Nothing
-    , _splafMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-splafOrderBy :: Lens' SSLPoliciesListAvailableFeatures (Maybe Text)
-splafOrderBy
-  = lens _splafOrderBy (\ s a -> s{_splafOrderBy = a})
-
--- | Project ID for this request.
-splafProject :: Lens' SSLPoliciesListAvailableFeatures Text
-splafProject
-  = lens _splafProject (\ s a -> s{_splafProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-splafFilter :: Lens' SSLPoliciesListAvailableFeatures (Maybe Text)
-splafFilter
-  = lens _splafFilter (\ s a -> s{_splafFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-splafPageToken :: Lens' SSLPoliciesListAvailableFeatures (Maybe Text)
-splafPageToken
-  = lens _splafPageToken
-      (\ s a -> s{_splafPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-splafMaxResults :: Lens' SSLPoliciesListAvailableFeatures Word32
-splafMaxResults
-  = lens _splafMaxResults
-      (\ s a -> s{_splafMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           SSLPoliciesListAvailableFeatures
-         where
-        type Rs SSLPoliciesListAvailableFeatures =
-             SSLPoliciesListAvailableFeaturesResponse
-        type Scopes SSLPoliciesListAvailableFeatures =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SSLPoliciesListAvailableFeatures'{..}
-          = go _splafProject _splafOrderBy _splafFilter
-              _splafPageToken
-              (Just _splafMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy SSLPoliciesListAvailableFeaturesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SSLPolicies/Patch.hs b/gen/Network/Google/Resource/Compute/SSLPolicies/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SSLPolicies/Patch.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SSLPolicies.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)
---
--- Patches the specified SSL policy with the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.sslPolicies.patch@.
-module Network.Google.Resource.Compute.SSLPolicies.Patch
-    (
-    -- * REST Resource
-      SSLPoliciesPatchResource
-
-    -- * Creating a Request
-    , sslPoliciesPatch
-    , SSLPoliciesPatch
-
-    -- * Request Lenses
-    , sppSSLPolicy
-    , sppRequestId
-    , sppProject
-    , sppPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.sslPolicies.patch@ method which the
--- 'SSLPoliciesPatch' request conforms to.
-type SSLPoliciesPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "sslPolicies" :>
-                 Capture "sslPolicy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] SSLPolicy :> Patch '[JSON] Operation
-
--- | Patches the specified SSL policy with the data included in the request.
---
--- /See:/ 'sslPoliciesPatch' smart constructor.
-data SSLPoliciesPatch =
-  SSLPoliciesPatch'
-    { _sppSSLPolicy :: !Text
-    , _sppRequestId :: !(Maybe Text)
-    , _sppProject   :: !Text
-    , _sppPayload   :: !SSLPolicy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SSLPoliciesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sppSSLPolicy'
---
--- * 'sppRequestId'
---
--- * 'sppProject'
---
--- * 'sppPayload'
-sslPoliciesPatch
-    :: Text -- ^ 'sppSSLPolicy'
-    -> Text -- ^ 'sppProject'
-    -> SSLPolicy -- ^ 'sppPayload'
-    -> SSLPoliciesPatch
-sslPoliciesPatch pSppSSLPolicy_ pSppProject_ pSppPayload_ =
-  SSLPoliciesPatch'
-    { _sppSSLPolicy = pSppSSLPolicy_
-    , _sppRequestId = Nothing
-    , _sppProject = pSppProject_
-    , _sppPayload = pSppPayload_
-    }
-
-
--- | Name of the SSL policy to update. The name must be 1-63 characters long,
--- and comply with RFC1035.
-sppSSLPolicy :: Lens' SSLPoliciesPatch Text
-sppSSLPolicy
-  = lens _sppSSLPolicy (\ s a -> s{_sppSSLPolicy = a})
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sppRequestId :: Lens' SSLPoliciesPatch (Maybe Text)
-sppRequestId
-  = lens _sppRequestId (\ s a -> s{_sppRequestId = a})
-
--- | Project ID for this request.
-sppProject :: Lens' SSLPoliciesPatch Text
-sppProject
-  = lens _sppProject (\ s a -> s{_sppProject = a})
-
--- | Multipart request metadata.
-sppPayload :: Lens' SSLPoliciesPatch SSLPolicy
-sppPayload
-  = lens _sppPayload (\ s a -> s{_sppPayload = a})
-
-instance GoogleRequest SSLPoliciesPatch where
-        type Rs SSLPoliciesPatch = Operation
-        type Scopes SSLPoliciesPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SSLPoliciesPatch'{..}
-          = go _sppProject _sppSSLPolicy _sppRequestId
-              (Just AltJSON)
-              _sppPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SSLPoliciesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/AddRule.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/AddRule.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/AddRule.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.AddRule
--- 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)
---
--- Inserts a rule into a security policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.addRule@.
-module Network.Google.Resource.Compute.SecurityPolicies.AddRule
-    (
-    -- * REST Resource
-      SecurityPoliciesAddRuleResource
-
-    -- * Creating a Request
-    , securityPoliciesAddRule
-    , SecurityPoliciesAddRule
-
-    -- * Request Lenses
-    , sparProject
-    , sparPayload
-    , sparSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.addRule@ method which the
--- 'SecurityPoliciesAddRule' request conforms to.
-type SecurityPoliciesAddRuleResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   "addRule" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] SecurityPolicyRule :>
-                         Post '[JSON] Operation
-
--- | Inserts a rule into a security policy.
---
--- /See:/ 'securityPoliciesAddRule' smart constructor.
-data SecurityPoliciesAddRule =
-  SecurityPoliciesAddRule'
-    { _sparProject        :: !Text
-    , _sparPayload        :: !SecurityPolicyRule
-    , _sparSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesAddRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sparProject'
---
--- * 'sparPayload'
---
--- * 'sparSecurityPolicy'
-securityPoliciesAddRule
-    :: Text -- ^ 'sparProject'
-    -> SecurityPolicyRule -- ^ 'sparPayload'
-    -> Text -- ^ 'sparSecurityPolicy'
-    -> SecurityPoliciesAddRule
-securityPoliciesAddRule pSparProject_ pSparPayload_ pSparSecurityPolicy_ =
-  SecurityPoliciesAddRule'
-    { _sparProject = pSparProject_
-    , _sparPayload = pSparPayload_
-    , _sparSecurityPolicy = pSparSecurityPolicy_
-    }
-
-
--- | Project ID for this request.
-sparProject :: Lens' SecurityPoliciesAddRule Text
-sparProject
-  = lens _sparProject (\ s a -> s{_sparProject = a})
-
--- | Multipart request metadata.
-sparPayload :: Lens' SecurityPoliciesAddRule SecurityPolicyRule
-sparPayload
-  = lens _sparPayload (\ s a -> s{_sparPayload = a})
-
--- | Name of the security policy to update.
-sparSecurityPolicy :: Lens' SecurityPoliciesAddRule Text
-sparSecurityPolicy
-  = lens _sparSecurityPolicy
-      (\ s a -> s{_sparSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesAddRule where
-        type Rs SecurityPoliciesAddRule = Operation
-        type Scopes SecurityPoliciesAddRule =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesAddRule'{..}
-          = go _sparProject _sparSecurityPolicy (Just AltJSON)
-              _sparPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesAddRuleResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/Delete.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/Delete.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.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 policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.delete@.
-module Network.Google.Resource.Compute.SecurityPolicies.Delete
-    (
-    -- * REST Resource
-      SecurityPoliciesDeleteResource
-
-    -- * Creating a Request
-    , securityPoliciesDelete
-    , SecurityPoliciesDelete
-
-    -- * Request Lenses
-    , spdpRequestId
-    , spdpProject
-    , spdpSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.delete@ method which the
--- 'SecurityPoliciesDelete' request conforms to.
-type SecurityPoliciesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified policy.
---
--- /See:/ 'securityPoliciesDelete' smart constructor.
-data SecurityPoliciesDelete =
-  SecurityPoliciesDelete'
-    { _spdpRequestId      :: !(Maybe Text)
-    , _spdpProject        :: !Text
-    , _spdpSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spdpRequestId'
---
--- * 'spdpProject'
---
--- * 'spdpSecurityPolicy'
-securityPoliciesDelete
-    :: Text -- ^ 'spdpProject'
-    -> Text -- ^ 'spdpSecurityPolicy'
-    -> SecurityPoliciesDelete
-securityPoliciesDelete pSpdpProject_ pSpdpSecurityPolicy_ =
-  SecurityPoliciesDelete'
-    { _spdpRequestId = Nothing
-    , _spdpProject = pSpdpProject_
-    , _spdpSecurityPolicy = pSpdpSecurityPolicy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-spdpRequestId :: Lens' SecurityPoliciesDelete (Maybe Text)
-spdpRequestId
-  = lens _spdpRequestId
-      (\ s a -> s{_spdpRequestId = a})
-
--- | Project ID for this request.
-spdpProject :: Lens' SecurityPoliciesDelete Text
-spdpProject
-  = lens _spdpProject (\ s a -> s{_spdpProject = a})
-
--- | Name of the security policy to delete.
-spdpSecurityPolicy :: Lens' SecurityPoliciesDelete Text
-spdpSecurityPolicy
-  = lens _spdpSecurityPolicy
-      (\ s a -> s{_spdpSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesDelete where
-        type Rs SecurityPoliciesDelete = Operation
-        type Scopes SecurityPoliciesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesDelete'{..}
-          = go _spdpProject _spdpSecurityPolicy _spdpRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/Get.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/Get.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.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)
---
--- List all of the ordered rules present in a single specified policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.get@.
-module Network.Google.Resource.Compute.SecurityPolicies.Get
-    (
-    -- * REST Resource
-      SecurityPoliciesGetResource
-
-    -- * Creating a Request
-    , securityPoliciesGet
-    , SecurityPoliciesGet
-
-    -- * Request Lenses
-    , secProject
-    , secSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.get@ method which the
--- 'SecurityPoliciesGet' request conforms to.
-type SecurityPoliciesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] SecurityPolicy
-
--- | List all of the ordered rules present in a single specified policy.
---
--- /See:/ 'securityPoliciesGet' smart constructor.
-data SecurityPoliciesGet =
-  SecurityPoliciesGet'
-    { _secProject        :: !Text
-    , _secSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'secProject'
---
--- * 'secSecurityPolicy'
-securityPoliciesGet
-    :: Text -- ^ 'secProject'
-    -> Text -- ^ 'secSecurityPolicy'
-    -> SecurityPoliciesGet
-securityPoliciesGet pSecProject_ pSecSecurityPolicy_ =
-  SecurityPoliciesGet'
-    {_secProject = pSecProject_, _secSecurityPolicy = pSecSecurityPolicy_}
-
-
--- | Project ID for this request.
-secProject :: Lens' SecurityPoliciesGet Text
-secProject
-  = lens _secProject (\ s a -> s{_secProject = a})
-
--- | Name of the security policy to get.
-secSecurityPolicy :: Lens' SecurityPoliciesGet Text
-secSecurityPolicy
-  = lens _secSecurityPolicy
-      (\ s a -> s{_secSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesGet where
-        type Rs SecurityPoliciesGet = SecurityPolicy
-        type Scopes SecurityPoliciesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SecurityPoliciesGet'{..}
-          = go _secProject _secSecurityPolicy (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/GetRule.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/GetRule.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/GetRule.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.GetRule
--- 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 a rule at the specified priority.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.getRule@.
-module Network.Google.Resource.Compute.SecurityPolicies.GetRule
-    (
-    -- * REST Resource
-      SecurityPoliciesGetRuleResource
-
-    -- * Creating a Request
-    , securityPoliciesGetRule
-    , SecurityPoliciesGetRule
-
-    -- * Request Lenses
-    , spgrPriority
-    , spgrProject
-    , spgrSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.getRule@ method which the
--- 'SecurityPoliciesGetRule' request conforms to.
-type SecurityPoliciesGetRuleResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   "getRule" :>
-                     QueryParam "priority" (Textual Int32) :>
-                       QueryParam "alt" AltJSON :>
-                         Get '[JSON] SecurityPolicyRule
-
--- | Gets a rule at the specified priority.
---
--- /See:/ 'securityPoliciesGetRule' smart constructor.
-data SecurityPoliciesGetRule =
-  SecurityPoliciesGetRule'
-    { _spgrPriority       :: !(Maybe (Textual Int32))
-    , _spgrProject        :: !Text
-    , _spgrSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesGetRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spgrPriority'
---
--- * 'spgrProject'
---
--- * 'spgrSecurityPolicy'
-securityPoliciesGetRule
-    :: Text -- ^ 'spgrProject'
-    -> Text -- ^ 'spgrSecurityPolicy'
-    -> SecurityPoliciesGetRule
-securityPoliciesGetRule pSpgrProject_ pSpgrSecurityPolicy_ =
-  SecurityPoliciesGetRule'
-    { _spgrPriority = Nothing
-    , _spgrProject = pSpgrProject_
-    , _spgrSecurityPolicy = pSpgrSecurityPolicy_
-    }
-
-
--- | The priority of the rule to get from the security policy.
-spgrPriority :: Lens' SecurityPoliciesGetRule (Maybe Int32)
-spgrPriority
-  = lens _spgrPriority (\ s a -> s{_spgrPriority = a})
-      . mapping _Coerce
-
--- | Project ID for this request.
-spgrProject :: Lens' SecurityPoliciesGetRule Text
-spgrProject
-  = lens _spgrProject (\ s a -> s{_spgrProject = a})
-
--- | Name of the security policy to which the queried rule belongs.
-spgrSecurityPolicy :: Lens' SecurityPoliciesGetRule Text
-spgrSecurityPolicy
-  = lens _spgrSecurityPolicy
-      (\ s a -> s{_spgrSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesGetRule where
-        type Rs SecurityPoliciesGetRule = SecurityPolicyRule
-        type Scopes SecurityPoliciesGetRule =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SecurityPoliciesGetRule'{..}
-          = go _spgrProject _spgrSecurityPolicy _spgrPriority
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesGetRuleResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/Insert.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/Insert.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.Insert
--- 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 new policy in the specified project using the data included in
--- the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.insert@.
-module Network.Google.Resource.Compute.SecurityPolicies.Insert
-    (
-    -- * REST Resource
-      SecurityPoliciesInsertResource
-
-    -- * Creating a Request
-    , securityPoliciesInsert
-    , SecurityPoliciesInsert
-
-    -- * Request Lenses
-    , spiRequestId
-    , spiProject
-    , spiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.insert@ method which the
--- 'SecurityPoliciesInsert' request conforms to.
-type SecurityPoliciesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] SecurityPolicy :>
-                       Post '[JSON] Operation
-
--- | Creates a new policy in the specified project using the data included in
--- the request.
---
--- /See:/ 'securityPoliciesInsert' smart constructor.
-data SecurityPoliciesInsert =
-  SecurityPoliciesInsert'
-    { _spiRequestId :: !(Maybe Text)
-    , _spiProject   :: !Text
-    , _spiPayload   :: !SecurityPolicy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spiRequestId'
---
--- * 'spiProject'
---
--- * 'spiPayload'
-securityPoliciesInsert
-    :: Text -- ^ 'spiProject'
-    -> SecurityPolicy -- ^ 'spiPayload'
-    -> SecurityPoliciesInsert
-securityPoliciesInsert pSpiProject_ pSpiPayload_ =
-  SecurityPoliciesInsert'
-    { _spiRequestId = Nothing
-    , _spiProject = pSpiProject_
-    , _spiPayload = pSpiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-spiRequestId :: Lens' SecurityPoliciesInsert (Maybe Text)
-spiRequestId
-  = lens _spiRequestId (\ s a -> s{_spiRequestId = a})
-
--- | Project ID for this request.
-spiProject :: Lens' SecurityPoliciesInsert Text
-spiProject
-  = lens _spiProject (\ s a -> s{_spiProject = a})
-
--- | Multipart request metadata.
-spiPayload :: Lens' SecurityPoliciesInsert SecurityPolicy
-spiPayload
-  = lens _spiPayload (\ s a -> s{_spiPayload = a})
-
-instance GoogleRequest SecurityPoliciesInsert where
-        type Rs SecurityPoliciesInsert = Operation
-        type Scopes SecurityPoliciesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesInsert'{..}
-          = go _spiProject _spiRequestId (Just AltJSON)
-              _spiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/List.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/List.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.List
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- List all the policies that have been configured for the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.list@.
-module Network.Google.Resource.Compute.SecurityPolicies.List
-    (
-    -- * REST Resource
-      SecurityPoliciesListResource
-
-    -- * Creating a Request
-    , securityPoliciesList
-    , SecurityPoliciesList
-
-    -- * Request Lenses
-    , splOrderBy
-    , splProject
-    , splFilter
-    , splPageToken
-    , splMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.list@ method which the
--- 'SecurityPoliciesList' request conforms to.
-type SecurityPoliciesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] SecurityPolicyList
-
--- | List all the policies that have been configured for the specified
--- project.
---
--- /See:/ 'securityPoliciesList' smart constructor.
-data SecurityPoliciesList =
-  SecurityPoliciesList'
-    { _splOrderBy    :: !(Maybe Text)
-    , _splProject    :: !Text
-    , _splFilter     :: !(Maybe Text)
-    , _splPageToken  :: !(Maybe Text)
-    , _splMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'splOrderBy'
---
--- * 'splProject'
---
--- * 'splFilter'
---
--- * 'splPageToken'
---
--- * 'splMaxResults'
-securityPoliciesList
-    :: Text -- ^ 'splProject'
-    -> SecurityPoliciesList
-securityPoliciesList pSplProject_ =
-  SecurityPoliciesList'
-    { _splOrderBy = Nothing
-    , _splProject = pSplProject_
-    , _splFilter = Nothing
-    , _splPageToken = Nothing
-    , _splMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-splOrderBy :: Lens' SecurityPoliciesList (Maybe Text)
-splOrderBy
-  = lens _splOrderBy (\ s a -> s{_splOrderBy = a})
-
--- | Project ID for this request.
-splProject :: Lens' SecurityPoliciesList Text
-splProject
-  = lens _splProject (\ s a -> s{_splProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-splFilter :: Lens' SecurityPoliciesList (Maybe Text)
-splFilter
-  = lens _splFilter (\ s a -> s{_splFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-splPageToken :: Lens' SecurityPoliciesList (Maybe Text)
-splPageToken
-  = lens _splPageToken (\ s a -> s{_splPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-splMaxResults :: Lens' SecurityPoliciesList Word32
-splMaxResults
-  = lens _splMaxResults
-      (\ s a -> s{_splMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SecurityPoliciesList where
-        type Rs SecurityPoliciesList = SecurityPolicyList
-        type Scopes SecurityPoliciesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SecurityPoliciesList'{..}
-          = go _splProject _splOrderBy _splFilter _splPageToken
-              (Just _splMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/Patch.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/Patch.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.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)
---
--- Patches the specified policy with the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.patch@.
-module Network.Google.Resource.Compute.SecurityPolicies.Patch
-    (
-    -- * REST Resource
-      SecurityPoliciesPatchResource
-
-    -- * Creating a Request
-    , securityPoliciesPatch
-    , SecurityPoliciesPatch
-
-    -- * Request Lenses
-    , sRequestId
-    , sProject
-    , sPayload
-    , sSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.patch@ method which the
--- 'SecurityPoliciesPatch' request conforms to.
-type SecurityPoliciesPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] SecurityPolicy :>
-                         Patch '[JSON] Operation
-
--- | Patches the specified policy with the data included in the request.
---
--- /See:/ 'securityPoliciesPatch' smart constructor.
-data SecurityPoliciesPatch =
-  SecurityPoliciesPatch'
-    { _sRequestId      :: !(Maybe Text)
-    , _sProject        :: !Text
-    , _sPayload        :: !SecurityPolicy
-    , _sSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sRequestId'
---
--- * 'sProject'
---
--- * 'sPayload'
---
--- * 'sSecurityPolicy'
-securityPoliciesPatch
-    :: Text -- ^ 'sProject'
-    -> SecurityPolicy -- ^ 'sPayload'
-    -> Text -- ^ 'sSecurityPolicy'
-    -> SecurityPoliciesPatch
-securityPoliciesPatch pSProject_ pSPayload_ pSSecurityPolicy_ =
-  SecurityPoliciesPatch'
-    { _sRequestId = Nothing
-    , _sProject = pSProject_
-    , _sPayload = pSPayload_
-    , _sSecurityPolicy = pSSecurityPolicy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sRequestId :: Lens' SecurityPoliciesPatch (Maybe Text)
-sRequestId
-  = lens _sRequestId (\ s a -> s{_sRequestId = a})
-
--- | Project ID for this request.
-sProject :: Lens' SecurityPoliciesPatch Text
-sProject = lens _sProject (\ s a -> s{_sProject = a})
-
--- | Multipart request metadata.
-sPayload :: Lens' SecurityPoliciesPatch SecurityPolicy
-sPayload = lens _sPayload (\ s a -> s{_sPayload = a})
-
--- | Name of the security policy to update.
-sSecurityPolicy :: Lens' SecurityPoliciesPatch Text
-sSecurityPolicy
-  = lens _sSecurityPolicy
-      (\ s a -> s{_sSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesPatch where
-        type Rs SecurityPoliciesPatch = Operation
-        type Scopes SecurityPoliciesPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesPatch'{..}
-          = go _sProject _sSecurityPolicy _sRequestId
-              (Just AltJSON)
-              _sPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/PatchRule.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/PatchRule.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/PatchRule.hs
+++ /dev/null
@@ -1,135 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.PatchRule
--- 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)
---
--- Patches a rule at the specified priority.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.patchRule@.
-module Network.Google.Resource.Compute.SecurityPolicies.PatchRule
-    (
-    -- * REST Resource
-      SecurityPoliciesPatchRuleResource
-
-    -- * Creating a Request
-    , securityPoliciesPatchRule
-    , SecurityPoliciesPatchRule
-
-    -- * Request Lenses
-    , spprPriority
-    , spprProject
-    , spprPayload
-    , spprSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.patchRule@ method which the
--- 'SecurityPoliciesPatchRule' request conforms to.
-type SecurityPoliciesPatchRuleResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   "patchRule" :>
-                     QueryParam "priority" (Textual Int32) :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SecurityPolicyRule :>
-                           Post '[JSON] Operation
-
--- | Patches a rule at the specified priority.
---
--- /See:/ 'securityPoliciesPatchRule' smart constructor.
-data SecurityPoliciesPatchRule =
-  SecurityPoliciesPatchRule'
-    { _spprPriority       :: !(Maybe (Textual Int32))
-    , _spprProject        :: !Text
-    , _spprPayload        :: !SecurityPolicyRule
-    , _spprSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesPatchRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spprPriority'
---
--- * 'spprProject'
---
--- * 'spprPayload'
---
--- * 'spprSecurityPolicy'
-securityPoliciesPatchRule
-    :: Text -- ^ 'spprProject'
-    -> SecurityPolicyRule -- ^ 'spprPayload'
-    -> Text -- ^ 'spprSecurityPolicy'
-    -> SecurityPoliciesPatchRule
-securityPoliciesPatchRule pSpprProject_ pSpprPayload_ pSpprSecurityPolicy_ =
-  SecurityPoliciesPatchRule'
-    { _spprPriority = Nothing
-    , _spprProject = pSpprProject_
-    , _spprPayload = pSpprPayload_
-    , _spprSecurityPolicy = pSpprSecurityPolicy_
-    }
-
-
--- | The priority of the rule to patch.
-spprPriority :: Lens' SecurityPoliciesPatchRule (Maybe Int32)
-spprPriority
-  = lens _spprPriority (\ s a -> s{_spprPriority = a})
-      . mapping _Coerce
-
--- | Project ID for this request.
-spprProject :: Lens' SecurityPoliciesPatchRule Text
-spprProject
-  = lens _spprProject (\ s a -> s{_spprProject = a})
-
--- | Multipart request metadata.
-spprPayload :: Lens' SecurityPoliciesPatchRule SecurityPolicyRule
-spprPayload
-  = lens _spprPayload (\ s a -> s{_spprPayload = a})
-
--- | Name of the security policy to update.
-spprSecurityPolicy :: Lens' SecurityPoliciesPatchRule Text
-spprSecurityPolicy
-  = lens _spprSecurityPolicy
-      (\ s a -> s{_spprSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesPatchRule
-         where
-        type Rs SecurityPoliciesPatchRule = Operation
-        type Scopes SecurityPoliciesPatchRule =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesPatchRule'{..}
-          = go _spprProject _spprSecurityPolicy _spprPriority
-              (Just AltJSON)
-              _spprPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesPatchRuleResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/SecurityPolicies/RemoveRule.hs b/gen/Network/Google/Resource/Compute/SecurityPolicies/RemoveRule.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/SecurityPolicies/RemoveRule.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.SecurityPolicies.RemoveRule
--- Copyright   : (c) 2015-2016 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes a rule at the specified priority.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.securityPolicies.removeRule@.
-module Network.Google.Resource.Compute.SecurityPolicies.RemoveRule
-    (
-    -- * REST Resource
-      SecurityPoliciesRemoveRuleResource
-
-    -- * Creating a Request
-    , securityPoliciesRemoveRule
-    , SecurityPoliciesRemoveRule
-
-    -- * Request Lenses
-    , sprrPriority
-    , sprrProject
-    , sprrSecurityPolicy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.securityPolicies.removeRule@ method which the
--- 'SecurityPoliciesRemoveRule' request conforms to.
-type SecurityPoliciesRemoveRuleResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "securityPolicies" :>
-                 Capture "securityPolicy" Text :>
-                   "removeRule" :>
-                     QueryParam "priority" (Textual Int32) :>
-                       QueryParam "alt" AltJSON :> Post '[JSON] Operation
-
--- | Deletes a rule at the specified priority.
---
--- /See:/ 'securityPoliciesRemoveRule' smart constructor.
-data SecurityPoliciesRemoveRule =
-  SecurityPoliciesRemoveRule'
-    { _sprrPriority       :: !(Maybe (Textual Int32))
-    , _sprrProject        :: !Text
-    , _sprrSecurityPolicy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SecurityPoliciesRemoveRule' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sprrPriority'
---
--- * 'sprrProject'
---
--- * 'sprrSecurityPolicy'
-securityPoliciesRemoveRule
-    :: Text -- ^ 'sprrProject'
-    -> Text -- ^ 'sprrSecurityPolicy'
-    -> SecurityPoliciesRemoveRule
-securityPoliciesRemoveRule pSprrProject_ pSprrSecurityPolicy_ =
-  SecurityPoliciesRemoveRule'
-    { _sprrPriority = Nothing
-    , _sprrProject = pSprrProject_
-    , _sprrSecurityPolicy = pSprrSecurityPolicy_
-    }
-
-
--- | The priority of the rule to remove from the security policy.
-sprrPriority :: Lens' SecurityPoliciesRemoveRule (Maybe Int32)
-sprrPriority
-  = lens _sprrPriority (\ s a -> s{_sprrPriority = a})
-      . mapping _Coerce
-
--- | Project ID for this request.
-sprrProject :: Lens' SecurityPoliciesRemoveRule Text
-sprrProject
-  = lens _sprrProject (\ s a -> s{_sprrProject = a})
-
--- | Name of the security policy to update.
-sprrSecurityPolicy :: Lens' SecurityPoliciesRemoveRule Text
-sprrSecurityPolicy
-  = lens _sprrSecurityPolicy
-      (\ s a -> s{_sprrSecurityPolicy = a})
-
-instance GoogleRequest SecurityPoliciesRemoveRule
-         where
-        type Rs SecurityPoliciesRemoveRule = Operation
-        type Scopes SecurityPoliciesRemoveRule =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SecurityPoliciesRemoveRule'{..}
-          = go _sprrProject _sprrSecurityPolicy _sprrPriority
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SecurityPoliciesRemoveRuleResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/Delete.hs b/gen/Network/Google/Resource/Compute/Snapshots/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/Delete.hs
+++ /dev/null
@@ -1,134 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.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 Snapshot resource. Keep in mind that deleting a
--- single snapshot might not necessarily delete all the data on that
--- snapshot. If any data on the snapshot that is marked for deletion is
--- needed for subsequent snapshots, the data will be moved to the next
--- corresponding snapshot. For more information, see Deleting snapshots.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.delete@.
-module Network.Google.Resource.Compute.Snapshots.Delete
-    (
-    -- * REST Resource
-      SnapshotsDeleteResource
-
-    -- * Creating a Request
-    , snapshotsDelete
-    , SnapshotsDelete
-
-    -- * Request Lenses
-    , sddRequestId
-    , sddSnapshot
-    , sddProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.delete@ method which the
--- 'SnapshotsDelete' request conforms to.
-type SnapshotsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "snapshot" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified Snapshot resource. Keep in mind that deleting a
--- single snapshot might not necessarily delete all the data on that
--- snapshot. If any data on the snapshot that is marked for deletion is
--- needed for subsequent snapshots, the data will be moved to the next
--- corresponding snapshot. For more information, see Deleting snapshots.
---
--- /See:/ 'snapshotsDelete' smart constructor.
-data SnapshotsDelete =
-  SnapshotsDelete'
-    { _sddRequestId :: !(Maybe Text)
-    , _sddSnapshot  :: !Text
-    , _sddProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sddRequestId'
---
--- * 'sddSnapshot'
---
--- * 'sddProject'
-snapshotsDelete
-    :: Text -- ^ 'sddSnapshot'
-    -> Text -- ^ 'sddProject'
-    -> SnapshotsDelete
-snapshotsDelete pSddSnapshot_ pSddProject_ =
-  SnapshotsDelete'
-    { _sddRequestId = Nothing
-    , _sddSnapshot = pSddSnapshot_
-    , _sddProject = pSddProject_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sddRequestId :: Lens' SnapshotsDelete (Maybe Text)
-sddRequestId
-  = lens _sddRequestId (\ s a -> s{_sddRequestId = a})
-
--- | Name of the Snapshot resource to delete.
-sddSnapshot :: Lens' SnapshotsDelete Text
-sddSnapshot
-  = lens _sddSnapshot (\ s a -> s{_sddSnapshot = a})
-
--- | Project ID for this request.
-sddProject :: Lens' SnapshotsDelete Text
-sddProject
-  = lens _sddProject (\ s a -> s{_sddProject = a})
-
-instance GoogleRequest SnapshotsDelete where
-        type Rs SnapshotsDelete = Operation
-        type Scopes SnapshotsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SnapshotsDelete'{..}
-          = go _sddProject _sddSnapshot _sddRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SnapshotsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/Get.hs b/gen/Network/Google/Resource/Compute/Snapshots/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/Get.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.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)
---
--- Returns the specified Snapshot resource. Gets a list of available
--- snapshots by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.get@.
-module Network.Google.Resource.Compute.Snapshots.Get
-    (
-    -- * REST Resource
-      SnapshotsGetResource
-
-    -- * Creating a Request
-    , snapshotsGet
-    , SnapshotsGet
-
-    -- * Request Lenses
-    , sggSnapshot
-    , sggProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.get@ method which the
--- 'SnapshotsGet' request conforms to.
-type SnapshotsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "snapshot" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] Snapshot
-
--- | Returns the specified Snapshot resource. Gets a list of available
--- snapshots by making a list() request.
---
--- /See:/ 'snapshotsGet' smart constructor.
-data SnapshotsGet =
-  SnapshotsGet'
-    { _sggSnapshot :: !Text
-    , _sggProject  :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sggSnapshot'
---
--- * 'sggProject'
-snapshotsGet
-    :: Text -- ^ 'sggSnapshot'
-    -> Text -- ^ 'sggProject'
-    -> SnapshotsGet
-snapshotsGet pSggSnapshot_ pSggProject_ =
-  SnapshotsGet' {_sggSnapshot = pSggSnapshot_, _sggProject = pSggProject_}
-
-
--- | Name of the Snapshot resource to return.
-sggSnapshot :: Lens' SnapshotsGet Text
-sggSnapshot
-  = lens _sggSnapshot (\ s a -> s{_sggSnapshot = a})
-
--- | Project ID for this request.
-sggProject :: Lens' SnapshotsGet Text
-sggProject
-  = lens _sggProject (\ s a -> s{_sggProject = a})
-
-instance GoogleRequest SnapshotsGet where
-        type Rs SnapshotsGet = Snapshot
-        type Scopes SnapshotsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SnapshotsGet'{..}
-          = go _sggProject _sggSnapshot (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy SnapshotsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Snapshots/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/GetIAMPolicy.hs
+++ /dev/null
@@ -1,109 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.getIamPolicy@.
-module Network.Google.Resource.Compute.Snapshots.GetIAMPolicy
-    (
-    -- * REST Resource
-      SnapshotsGetIAMPolicyResource
-
-    -- * Creating a Request
-    , snapshotsGetIAMPolicy
-    , SnapshotsGetIAMPolicy
-
-    -- * Request Lenses
-    , sgiampProject
-    , sgiampResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.getIamPolicy@ method which the
--- 'SnapshotsGetIAMPolicy' request conforms to.
-type SnapshotsGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "resource" Text :>
-                   "getIamPolicy" :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'snapshotsGetIAMPolicy' smart constructor.
-data SnapshotsGetIAMPolicy =
-  SnapshotsGetIAMPolicy'
-    { _sgiampProject  :: !Text
-    , _sgiampResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sgiampProject'
---
--- * 'sgiampResource'
-snapshotsGetIAMPolicy
-    :: Text -- ^ 'sgiampProject'
-    -> Text -- ^ 'sgiampResource'
-    -> SnapshotsGetIAMPolicy
-snapshotsGetIAMPolicy pSgiampProject_ pSgiampResource_ =
-  SnapshotsGetIAMPolicy'
-    {_sgiampProject = pSgiampProject_, _sgiampResource = pSgiampResource_}
-
-
--- | Project ID for this request.
-sgiampProject :: Lens' SnapshotsGetIAMPolicy Text
-sgiampProject
-  = lens _sgiampProject
-      (\ s a -> s{_sgiampProject = a})
-
--- | Name or id of the resource for this request.
-sgiampResource :: Lens' SnapshotsGetIAMPolicy Text
-sgiampResource
-  = lens _sgiampResource
-      (\ s a -> s{_sgiampResource = a})
-
-instance GoogleRequest SnapshotsGetIAMPolicy where
-        type Rs SnapshotsGetIAMPolicy = Policy
-        type Scopes SnapshotsGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SnapshotsGetIAMPolicy'{..}
-          = go _sgiampProject _sgiampResource (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SnapshotsGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/List.hs b/gen/Network/Google/Resource/Compute/Snapshots/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/List.hs
+++ /dev/null
@@ -1,170 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.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)
---
--- Retrieves the list of Snapshot resources contained within the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.list@.
-module Network.Google.Resource.Compute.Snapshots.List
-    (
-    -- * REST Resource
-      SnapshotsListResource
-
-    -- * Creating a Request
-    , snapshotsList
-    , SnapshotsList
-
-    -- * Request Lenses
-    , snaOrderBy
-    , snaProject
-    , snaFilter
-    , snaPageToken
-    , snaMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.list@ method which the
--- 'SnapshotsList' request conforms to.
-type SnapshotsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] SnapshotList
-
--- | Retrieves the list of Snapshot resources contained within the specified
--- project.
---
--- /See:/ 'snapshotsList' smart constructor.
-data SnapshotsList =
-  SnapshotsList'
-    { _snaOrderBy    :: !(Maybe Text)
-    , _snaProject    :: !Text
-    , _snaFilter     :: !(Maybe Text)
-    , _snaPageToken  :: !(Maybe Text)
-    , _snaMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'snaOrderBy'
---
--- * 'snaProject'
---
--- * 'snaFilter'
---
--- * 'snaPageToken'
---
--- * 'snaMaxResults'
-snapshotsList
-    :: Text -- ^ 'snaProject'
-    -> SnapshotsList
-snapshotsList pSnaProject_ =
-  SnapshotsList'
-    { _snaOrderBy = Nothing
-    , _snaProject = pSnaProject_
-    , _snaFilter = Nothing
-    , _snaPageToken = Nothing
-    , _snaMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-snaOrderBy :: Lens' SnapshotsList (Maybe Text)
-snaOrderBy
-  = lens _snaOrderBy (\ s a -> s{_snaOrderBy = a})
-
--- | Project ID for this request.
-snaProject :: Lens' SnapshotsList Text
-snaProject
-  = lens _snaProject (\ s a -> s{_snaProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-snaFilter :: Lens' SnapshotsList (Maybe Text)
-snaFilter
-  = lens _snaFilter (\ s a -> s{_snaFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-snaPageToken :: Lens' SnapshotsList (Maybe Text)
-snaPageToken
-  = lens _snaPageToken (\ s a -> s{_snaPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-snaMaxResults :: Lens' SnapshotsList Word32
-snaMaxResults
-  = lens _snaMaxResults
-      (\ s a -> s{_snaMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SnapshotsList where
-        type Rs SnapshotsList = SnapshotList
-        type Scopes SnapshotsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SnapshotsList'{..}
-          = go _snaProject _snaOrderBy _snaFilter _snaPageToken
-              (Just _snaMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy SnapshotsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Snapshots/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/SetIAMPolicy.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.setIamPolicy@.
-module Network.Google.Resource.Compute.Snapshots.SetIAMPolicy
-    (
-    -- * REST Resource
-      SnapshotsSetIAMPolicyResource
-
-    -- * Creating a Request
-    , snapshotsSetIAMPolicy
-    , SnapshotsSetIAMPolicy
-
-    -- * Request Lenses
-    , ssipProject
-    , ssipPayload
-    , ssipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.setIamPolicy@ method which the
--- 'SnapshotsSetIAMPolicy' request conforms to.
-type SnapshotsSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "resource" Text :>
-                   "setIamPolicy" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetPolicyRequest :>
-                         Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'snapshotsSetIAMPolicy' smart constructor.
-data SnapshotsSetIAMPolicy =
-  SnapshotsSetIAMPolicy'
-    { _ssipProject  :: !Text
-    , _ssipPayload  :: !GlobalSetPolicyRequest
-    , _ssipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ssipProject'
---
--- * 'ssipPayload'
---
--- * 'ssipResource'
-snapshotsSetIAMPolicy
-    :: Text -- ^ 'ssipProject'
-    -> GlobalSetPolicyRequest -- ^ 'ssipPayload'
-    -> Text -- ^ 'ssipResource'
-    -> SnapshotsSetIAMPolicy
-snapshotsSetIAMPolicy pSsipProject_ pSsipPayload_ pSsipResource_ =
-  SnapshotsSetIAMPolicy'
-    { _ssipProject = pSsipProject_
-    , _ssipPayload = pSsipPayload_
-    , _ssipResource = pSsipResource_
-    }
-
-
--- | Project ID for this request.
-ssipProject :: Lens' SnapshotsSetIAMPolicy Text
-ssipProject
-  = lens _ssipProject (\ s a -> s{_ssipProject = a})
-
--- | Multipart request metadata.
-ssipPayload :: Lens' SnapshotsSetIAMPolicy GlobalSetPolicyRequest
-ssipPayload
-  = lens _ssipPayload (\ s a -> s{_ssipPayload = a})
-
--- | Name or id of the resource for this request.
-ssipResource :: Lens' SnapshotsSetIAMPolicy Text
-ssipResource
-  = lens _ssipResource (\ s a -> s{_ssipResource = a})
-
-instance GoogleRequest SnapshotsSetIAMPolicy where
-        type Rs SnapshotsSetIAMPolicy = Policy
-        type Scopes SnapshotsSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SnapshotsSetIAMPolicy'{..}
-          = go _ssipProject _ssipResource (Just AltJSON)
-              _ssipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SnapshotsSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/SetLabels.hs b/gen/Network/Google/Resource/Compute/Snapshots/SetLabels.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/SetLabels.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.SetLabels
--- 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)
---
--- Sets the labels on a snapshot. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.setLabels@.
-module Network.Google.Resource.Compute.Snapshots.SetLabels
-    (
-    -- * REST Resource
-      SnapshotsSetLabelsResource
-
-    -- * Creating a Request
-    , snapshotsSetLabels
-    , SnapshotsSetLabels
-
-    -- * Request Lenses
-    , sslProject
-    , sslPayload
-    , sslResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.setLabels@ method which the
--- 'SnapshotsSetLabels' request conforms to.
-type SnapshotsSetLabelsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "resource" Text :>
-                   "setLabels" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] GlobalSetLabelsRequest :>
-                         Post '[JSON] Operation
-
--- | Sets the labels on a snapshot. To learn more about labels, read the
--- Labeling Resources documentation.
---
--- /See:/ 'snapshotsSetLabels' smart constructor.
-data SnapshotsSetLabels =
-  SnapshotsSetLabels'
-    { _sslProject  :: !Text
-    , _sslPayload  :: !GlobalSetLabelsRequest
-    , _sslResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsSetLabels' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sslProject'
---
--- * 'sslPayload'
---
--- * 'sslResource'
-snapshotsSetLabels
-    :: Text -- ^ 'sslProject'
-    -> GlobalSetLabelsRequest -- ^ 'sslPayload'
-    -> Text -- ^ 'sslResource'
-    -> SnapshotsSetLabels
-snapshotsSetLabels pSslProject_ pSslPayload_ pSslResource_ =
-  SnapshotsSetLabels'
-    { _sslProject = pSslProject_
-    , _sslPayload = pSslPayload_
-    , _sslResource = pSslResource_
-    }
-
-
--- | Project ID for this request.
-sslProject :: Lens' SnapshotsSetLabels Text
-sslProject
-  = lens _sslProject (\ s a -> s{_sslProject = a})
-
--- | Multipart request metadata.
-sslPayload :: Lens' SnapshotsSetLabels GlobalSetLabelsRequest
-sslPayload
-  = lens _sslPayload (\ s a -> s{_sslPayload = a})
-
--- | Name or id of the resource for this request.
-sslResource :: Lens' SnapshotsSetLabels Text
-sslResource
-  = lens _sslResource (\ s a -> s{_sslResource = a})
-
-instance GoogleRequest SnapshotsSetLabels where
-        type Rs SnapshotsSetLabels = Operation
-        type Scopes SnapshotsSetLabels =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SnapshotsSetLabels'{..}
-          = go _sslProject _sslResource (Just AltJSON)
-              _sslPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SnapshotsSetLabelsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Snapshots/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Snapshots/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Snapshots/TestIAMPermissions.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Snapshots.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.snapshots.testIamPermissions@.
-module Network.Google.Resource.Compute.Snapshots.TestIAMPermissions
-    (
-    -- * REST Resource
-      SnapshotsTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , snapshotsTestIAMPermissions
-    , SnapshotsTestIAMPermissions
-
-    -- * Request Lenses
-    , stipProject
-    , stipPayload
-    , stipResource
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.snapshots.testIamPermissions@ method which the
--- 'SnapshotsTestIAMPermissions' request conforms to.
-type SnapshotsTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "snapshots" :>
-                 Capture "resource" Text :>
-                   "testIamPermissions" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TestPermissionsRequest :>
-                         Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'snapshotsTestIAMPermissions' smart constructor.
-data SnapshotsTestIAMPermissions =
-  SnapshotsTestIAMPermissions'
-    { _stipProject  :: !Text
-    , _stipPayload  :: !TestPermissionsRequest
-    , _stipResource :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SnapshotsTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'stipProject'
---
--- * 'stipPayload'
---
--- * 'stipResource'
-snapshotsTestIAMPermissions
-    :: Text -- ^ 'stipProject'
-    -> TestPermissionsRequest -- ^ 'stipPayload'
-    -> Text -- ^ 'stipResource'
-    -> SnapshotsTestIAMPermissions
-snapshotsTestIAMPermissions pStipProject_ pStipPayload_ pStipResource_ =
-  SnapshotsTestIAMPermissions'
-    { _stipProject = pStipProject_
-    , _stipPayload = pStipPayload_
-    , _stipResource = pStipResource_
-    }
-
-
--- | Project ID for this request.
-stipProject :: Lens' SnapshotsTestIAMPermissions Text
-stipProject
-  = lens _stipProject (\ s a -> s{_stipProject = a})
-
--- | Multipart request metadata.
-stipPayload :: Lens' SnapshotsTestIAMPermissions TestPermissionsRequest
-stipPayload
-  = lens _stipPayload (\ s a -> s{_stipPayload = a})
-
--- | Name or id of the resource for this request.
-stipResource :: Lens' SnapshotsTestIAMPermissions Text
-stipResource
-  = lens _stipResource (\ s a -> s{_stipResource = a})
-
-instance GoogleRequest SnapshotsTestIAMPermissions
-         where
-        type Rs SnapshotsTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes SnapshotsTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SnapshotsTestIAMPermissions'{..}
-          = go _stipProject _stipResource (Just AltJSON)
-              _stipPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SnapshotsTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/AggregatedList.hs b/gen/Network/Google/Resource/Compute/Subnetworks/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/AggregatedList.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of subnetworks.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.aggregatedList@.
-module Network.Google.Resource.Compute.Subnetworks.AggregatedList
-    (
-    -- * REST Resource
-      SubnetworksAggregatedListResource
-
-    -- * Creating a Request
-    , subnetworksAggregatedList
-    , SubnetworksAggregatedList
-
-    -- * Request Lenses
-    , salOrderBy
-    , salProject
-    , salFilter
-    , salPageToken
-    , salMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.aggregatedList@ method which the
--- 'SubnetworksAggregatedList' request conforms to.
-type SubnetworksAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "subnetworks" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] SubnetworkAggregatedList
-
--- | Retrieves an aggregated list of subnetworks.
---
--- /See:/ 'subnetworksAggregatedList' smart constructor.
-data SubnetworksAggregatedList =
-  SubnetworksAggregatedList'
-    { _salOrderBy    :: !(Maybe Text)
-    , _salProject    :: !Text
-    , _salFilter     :: !(Maybe Text)
-    , _salPageToken  :: !(Maybe Text)
-    , _salMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'salOrderBy'
---
--- * 'salProject'
---
--- * 'salFilter'
---
--- * 'salPageToken'
---
--- * 'salMaxResults'
-subnetworksAggregatedList
-    :: Text -- ^ 'salProject'
-    -> SubnetworksAggregatedList
-subnetworksAggregatedList pSalProject_ =
-  SubnetworksAggregatedList'
-    { _salOrderBy = Nothing
-    , _salProject = pSalProject_
-    , _salFilter = Nothing
-    , _salPageToken = Nothing
-    , _salMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-salOrderBy :: Lens' SubnetworksAggregatedList (Maybe Text)
-salOrderBy
-  = lens _salOrderBy (\ s a -> s{_salOrderBy = a})
-
--- | Project ID for this request.
-salProject :: Lens' SubnetworksAggregatedList Text
-salProject
-  = lens _salProject (\ s a -> s{_salProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-salFilter :: Lens' SubnetworksAggregatedList (Maybe Text)
-salFilter
-  = lens _salFilter (\ s a -> s{_salFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-salPageToken :: Lens' SubnetworksAggregatedList (Maybe Text)
-salPageToken
-  = lens _salPageToken (\ s a -> s{_salPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-salMaxResults :: Lens' SubnetworksAggregatedList Word32
-salMaxResults
-  = lens _salMaxResults
-      (\ s a -> s{_salMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SubnetworksAggregatedList
-         where
-        type Rs SubnetworksAggregatedList =
-             SubnetworkAggregatedList
-        type Scopes SubnetworksAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksAggregatedList'{..}
-          = go _salProject _salOrderBy _salFilter _salPageToken
-              (Just _salMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/Delete.hs b/gen/Network/Google/Resource/Compute/Subnetworks/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/Delete.hs
+++ /dev/null
@@ -1,137 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.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 subnetwork.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.delete@.
-module Network.Google.Resource.Compute.Subnetworks.Delete
-    (
-    -- * REST Resource
-      SubnetworksDeleteResource
-
-    -- * Creating a Request
-    , subnetworksDelete
-    , SubnetworksDelete
-
-    -- * Request Lenses
-    , sdRequestId
-    , sdProject
-    , sdSubnetwork
-    , sdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.delete@ method which the
--- 'SubnetworksDelete' request conforms to.
-type SubnetworksDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "subnetwork" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified subnetwork.
---
--- /See:/ 'subnetworksDelete' smart constructor.
-data SubnetworksDelete =
-  SubnetworksDelete'
-    { _sdRequestId  :: !(Maybe Text)
-    , _sdProject    :: !Text
-    , _sdSubnetwork :: !Text
-    , _sdRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sdRequestId'
---
--- * 'sdProject'
---
--- * 'sdSubnetwork'
---
--- * 'sdRegion'
-subnetworksDelete
-    :: Text -- ^ 'sdProject'
-    -> Text -- ^ 'sdSubnetwork'
-    -> Text -- ^ 'sdRegion'
-    -> SubnetworksDelete
-subnetworksDelete pSdProject_ pSdSubnetwork_ pSdRegion_ =
-  SubnetworksDelete'
-    { _sdRequestId = Nothing
-    , _sdProject = pSdProject_
-    , _sdSubnetwork = pSdSubnetwork_
-    , _sdRegion = pSdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sdRequestId :: Lens' SubnetworksDelete (Maybe Text)
-sdRequestId
-  = lens _sdRequestId (\ s a -> s{_sdRequestId = a})
-
--- | Project ID for this request.
-sdProject :: Lens' SubnetworksDelete Text
-sdProject
-  = lens _sdProject (\ s a -> s{_sdProject = a})
-
--- | Name of the Subnetwork resource to delete.
-sdSubnetwork :: Lens' SubnetworksDelete Text
-sdSubnetwork
-  = lens _sdSubnetwork (\ s a -> s{_sdSubnetwork = a})
-
--- | Name of the region scoping this request.
-sdRegion :: Lens' SubnetworksDelete Text
-sdRegion = lens _sdRegion (\ s a -> s{_sdRegion = a})
-
-instance GoogleRequest SubnetworksDelete where
-        type Rs SubnetworksDelete = Operation
-        type Scopes SubnetworksDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SubnetworksDelete'{..}
-          = go _sdProject _sdRegion _sdSubnetwork _sdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/ExpandIPCIdRRange.hs b/gen/Network/Google/Resource/Compute/Subnetworks/ExpandIPCIdRRange.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/ExpandIPCIdRRange.hs
+++ /dev/null
@@ -1,161 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.ExpandIPCIdRRange
--- 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)
---
--- Expands the IP CIDR range of the subnetwork to a specified value.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.expandIpCidrRange@.
-module Network.Google.Resource.Compute.Subnetworks.ExpandIPCIdRRange
-    (
-    -- * REST Resource
-      SubnetworksExpandIPCIdRRangeResource
-
-    -- * Creating a Request
-    , subnetworksExpandIPCIdRRange
-    , SubnetworksExpandIPCIdRRange
-
-    -- * Request Lenses
-    , seicirrRequestId
-    , seicirrProject
-    , seicirrPayload
-    , seicirrSubnetwork
-    , seicirrRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.expandIpCidrRange@ method which the
--- 'SubnetworksExpandIPCIdRRange' request conforms to.
-type SubnetworksExpandIPCIdRRangeResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "subnetwork" Text :>
-                     "expandIpCidrRange" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] SubnetworksExpandIPCIdRRangeRequest
-                             :> Post '[JSON] Operation
-
--- | Expands the IP CIDR range of the subnetwork to a specified value.
---
--- /See:/ 'subnetworksExpandIPCIdRRange' smart constructor.
-data SubnetworksExpandIPCIdRRange =
-  SubnetworksExpandIPCIdRRange'
-    { _seicirrRequestId  :: !(Maybe Text)
-    , _seicirrProject    :: !Text
-    , _seicirrPayload    :: !SubnetworksExpandIPCIdRRangeRequest
-    , _seicirrSubnetwork :: !Text
-    , _seicirrRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksExpandIPCIdRRange' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'seicirrRequestId'
---
--- * 'seicirrProject'
---
--- * 'seicirrPayload'
---
--- * 'seicirrSubnetwork'
---
--- * 'seicirrRegion'
-subnetworksExpandIPCIdRRange
-    :: Text -- ^ 'seicirrProject'
-    -> SubnetworksExpandIPCIdRRangeRequest -- ^ 'seicirrPayload'
-    -> Text -- ^ 'seicirrSubnetwork'
-    -> Text -- ^ 'seicirrRegion'
-    -> SubnetworksExpandIPCIdRRange
-subnetworksExpandIPCIdRRange pSeicirrProject_ pSeicirrPayload_ pSeicirrSubnetwork_ pSeicirrRegion_ =
-  SubnetworksExpandIPCIdRRange'
-    { _seicirrRequestId = Nothing
-    , _seicirrProject = pSeicirrProject_
-    , _seicirrPayload = pSeicirrPayload_
-    , _seicirrSubnetwork = pSeicirrSubnetwork_
-    , _seicirrRegion = pSeicirrRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-seicirrRequestId :: Lens' SubnetworksExpandIPCIdRRange (Maybe Text)
-seicirrRequestId
-  = lens _seicirrRequestId
-      (\ s a -> s{_seicirrRequestId = a})
-
--- | Project ID for this request.
-seicirrProject :: Lens' SubnetworksExpandIPCIdRRange Text
-seicirrProject
-  = lens _seicirrProject
-      (\ s a -> s{_seicirrProject = a})
-
--- | Multipart request metadata.
-seicirrPayload :: Lens' SubnetworksExpandIPCIdRRange SubnetworksExpandIPCIdRRangeRequest
-seicirrPayload
-  = lens _seicirrPayload
-      (\ s a -> s{_seicirrPayload = a})
-
--- | Name of the Subnetwork resource to update.
-seicirrSubnetwork :: Lens' SubnetworksExpandIPCIdRRange Text
-seicirrSubnetwork
-  = lens _seicirrSubnetwork
-      (\ s a -> s{_seicirrSubnetwork = a})
-
--- | Name of the region scoping this request.
-seicirrRegion :: Lens' SubnetworksExpandIPCIdRRange Text
-seicirrRegion
-  = lens _seicirrRegion
-      (\ s a -> s{_seicirrRegion = a})
-
-instance GoogleRequest SubnetworksExpandIPCIdRRange
-         where
-        type Rs SubnetworksExpandIPCIdRRange = Operation
-        type Scopes SubnetworksExpandIPCIdRRange =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SubnetworksExpandIPCIdRRange'{..}
-          = go _seicirrProject _seicirrRegion
-              _seicirrSubnetwork
-              _seicirrRequestId
-              (Just AltJSON)
-              _seicirrPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksExpandIPCIdRRangeResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/Get.hs b/gen/Network/Google/Resource/Compute/Subnetworks/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/Get.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.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)
---
--- Returns the specified subnetwork. Gets a list of available subnetworks
--- list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.get@.
-module Network.Google.Resource.Compute.Subnetworks.Get
-    (
-    -- * REST Resource
-      SubnetworksGetResource
-
-    -- * Creating a Request
-    , subnetworksGet
-    , SubnetworksGet
-
-    -- * Request Lenses
-    , sgProject
-    , sgSubnetwork
-    , sgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.get@ method which the
--- 'SubnetworksGet' request conforms to.
-type SubnetworksGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "subnetwork" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Subnetwork
-
--- | Returns the specified subnetwork. Gets a list of available subnetworks
--- list() request.
---
--- /See:/ 'subnetworksGet' smart constructor.
-data SubnetworksGet =
-  SubnetworksGet'
-    { _sgProject    :: !Text
-    , _sgSubnetwork :: !Text
-    , _sgRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sgProject'
---
--- * 'sgSubnetwork'
---
--- * 'sgRegion'
-subnetworksGet
-    :: Text -- ^ 'sgProject'
-    -> Text -- ^ 'sgSubnetwork'
-    -> Text -- ^ 'sgRegion'
-    -> SubnetworksGet
-subnetworksGet pSgProject_ pSgSubnetwork_ pSgRegion_ =
-  SubnetworksGet'
-    { _sgProject = pSgProject_
-    , _sgSubnetwork = pSgSubnetwork_
-    , _sgRegion = pSgRegion_
-    }
-
-
--- | Project ID for this request.
-sgProject :: Lens' SubnetworksGet Text
-sgProject
-  = lens _sgProject (\ s a -> s{_sgProject = a})
-
--- | Name of the Subnetwork resource to return.
-sgSubnetwork :: Lens' SubnetworksGet Text
-sgSubnetwork
-  = lens _sgSubnetwork (\ s a -> s{_sgSubnetwork = a})
-
--- | Name of the region scoping this request.
-sgRegion :: Lens' SubnetworksGet Text
-sgRegion = lens _sgRegion (\ s a -> s{_sgRegion = a})
-
-instance GoogleRequest SubnetworksGet where
-        type Rs SubnetworksGet = Subnetwork
-        type Scopes SubnetworksGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksGet'{..}
-          = go _sgProject _sgRegion _sgSubnetwork
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy SubnetworksGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/GetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Subnetworks/GetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/GetIAMPolicy.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.GetIAMPolicy
--- 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 access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.getIamPolicy@.
-module Network.Google.Resource.Compute.Subnetworks.GetIAMPolicy
-    (
-    -- * REST Resource
-      SubnetworksGetIAMPolicyResource
-
-    -- * Creating a Request
-    , subnetworksGetIAMPolicy
-    , SubnetworksGetIAMPolicy
-
-    -- * Request Lenses
-    , sgipProject
-    , sgipResource
-    , sgipRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.getIamPolicy@ method which the
--- 'SubnetworksGetIAMPolicy' request conforms to.
-type SubnetworksGetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "resource" Text :>
-                     "getIamPolicy" :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] Policy
-
--- | Gets the access control policy for a resource. May be empty if no such
--- policy or resource exists.
---
--- /See:/ 'subnetworksGetIAMPolicy' smart constructor.
-data SubnetworksGetIAMPolicy =
-  SubnetworksGetIAMPolicy'
-    { _sgipProject  :: !Text
-    , _sgipResource :: !Text
-    , _sgipRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksGetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sgipProject'
---
--- * 'sgipResource'
---
--- * 'sgipRegion'
-subnetworksGetIAMPolicy
-    :: Text -- ^ 'sgipProject'
-    -> Text -- ^ 'sgipResource'
-    -> Text -- ^ 'sgipRegion'
-    -> SubnetworksGetIAMPolicy
-subnetworksGetIAMPolicy pSgipProject_ pSgipResource_ pSgipRegion_ =
-  SubnetworksGetIAMPolicy'
-    { _sgipProject = pSgipProject_
-    , _sgipResource = pSgipResource_
-    , _sgipRegion = pSgipRegion_
-    }
-
-
--- | Project ID for this request.
-sgipProject :: Lens' SubnetworksGetIAMPolicy Text
-sgipProject
-  = lens _sgipProject (\ s a -> s{_sgipProject = a})
-
--- | Name or id of the resource for this request.
-sgipResource :: Lens' SubnetworksGetIAMPolicy Text
-sgipResource
-  = lens _sgipResource (\ s a -> s{_sgipResource = a})
-
--- | The name of the region for this request.
-sgipRegion :: Lens' SubnetworksGetIAMPolicy Text
-sgipRegion
-  = lens _sgipRegion (\ s a -> s{_sgipRegion = a})
-
-instance GoogleRequest SubnetworksGetIAMPolicy where
-        type Rs SubnetworksGetIAMPolicy = Policy
-        type Scopes SubnetworksGetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksGetIAMPolicy'{..}
-          = go _sgipProject _sgipRegion _sgipResource
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksGetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/Insert.hs b/gen/Network/Google/Resource/Compute/Subnetworks/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/Insert.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.Insert
--- 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 subnetwork in the specified project using the data included in
--- the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.insert@.
-module Network.Google.Resource.Compute.Subnetworks.Insert
-    (
-    -- * REST Resource
-      SubnetworksInsertResource
-
-    -- * Creating a Request
-    , subnetworksInsert
-    , SubnetworksInsert
-
-    -- * Request Lenses
-    , siRequestId
-    , siProject
-    , siPayload
-    , siRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.insert@ method which the
--- 'SubnetworksInsert' request conforms to.
-type SubnetworksInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] Subnetwork :> Post '[JSON] Operation
-
--- | Creates a subnetwork in the specified project using the data included in
--- the request.
---
--- /See:/ 'subnetworksInsert' smart constructor.
-data SubnetworksInsert =
-  SubnetworksInsert'
-    { _siRequestId :: !(Maybe Text)
-    , _siProject   :: !Text
-    , _siPayload   :: !Subnetwork
-    , _siRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'siRequestId'
---
--- * 'siProject'
---
--- * 'siPayload'
---
--- * 'siRegion'
-subnetworksInsert
-    :: Text -- ^ 'siProject'
-    -> Subnetwork -- ^ 'siPayload'
-    -> Text -- ^ 'siRegion'
-    -> SubnetworksInsert
-subnetworksInsert pSiProject_ pSiPayload_ pSiRegion_ =
-  SubnetworksInsert'
-    { _siRequestId = Nothing
-    , _siProject = pSiProject_
-    , _siPayload = pSiPayload_
-    , _siRegion = pSiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-siRequestId :: Lens' SubnetworksInsert (Maybe Text)
-siRequestId
-  = lens _siRequestId (\ s a -> s{_siRequestId = a})
-
--- | Project ID for this request.
-siProject :: Lens' SubnetworksInsert Text
-siProject
-  = lens _siProject (\ s a -> s{_siProject = a})
-
--- | Multipart request metadata.
-siPayload :: Lens' SubnetworksInsert Subnetwork
-siPayload
-  = lens _siPayload (\ s a -> s{_siPayload = a})
-
--- | Name of the region scoping this request.
-siRegion :: Lens' SubnetworksInsert Text
-siRegion = lens _siRegion (\ s a -> s{_siRegion = a})
-
-instance GoogleRequest SubnetworksInsert where
-        type Rs SubnetworksInsert = Operation
-        type Scopes SubnetworksInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SubnetworksInsert'{..}
-          = go _siProject _siRegion _siRequestId (Just AltJSON)
-              _siPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/List.hs b/gen/Network/Google/Resource/Compute/Subnetworks/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/List.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.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)
---
--- Retrieves a list of subnetworks available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.list@.
-module Network.Google.Resource.Compute.Subnetworks.List
-    (
-    -- * REST Resource
-      SubnetworksListResource
-
-    -- * Creating a Request
-    , subnetworksList
-    , SubnetworksList
-
-    -- * Request Lenses
-    , slOrderBy
-    , slProject
-    , slFilter
-    , slRegion
-    , slPageToken
-    , slMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.list@ method which the
--- 'SubnetworksList' request conforms to.
-type SubnetworksListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] SubnetworkList
-
--- | Retrieves a list of subnetworks available to the specified project.
---
--- /See:/ 'subnetworksList' smart constructor.
-data SubnetworksList =
-  SubnetworksList'
-    { _slOrderBy    :: !(Maybe Text)
-    , _slProject    :: !Text
-    , _slFilter     :: !(Maybe Text)
-    , _slRegion     :: !Text
-    , _slPageToken  :: !(Maybe Text)
-    , _slMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'slOrderBy'
---
--- * 'slProject'
---
--- * 'slFilter'
---
--- * 'slRegion'
---
--- * 'slPageToken'
---
--- * 'slMaxResults'
-subnetworksList
-    :: Text -- ^ 'slProject'
-    -> Text -- ^ 'slRegion'
-    -> SubnetworksList
-subnetworksList pSlProject_ pSlRegion_ =
-  SubnetworksList'
-    { _slOrderBy = Nothing
-    , _slProject = pSlProject_
-    , _slFilter = Nothing
-    , _slRegion = pSlRegion_
-    , _slPageToken = Nothing
-    , _slMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-slOrderBy :: Lens' SubnetworksList (Maybe Text)
-slOrderBy
-  = lens _slOrderBy (\ s a -> s{_slOrderBy = a})
-
--- | Project ID for this request.
-slProject :: Lens' SubnetworksList Text
-slProject
-  = lens _slProject (\ s a -> s{_slProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-slFilter :: Lens' SubnetworksList (Maybe Text)
-slFilter = lens _slFilter (\ s a -> s{_slFilter = a})
-
--- | Name of the region scoping this request.
-slRegion :: Lens' SubnetworksList Text
-slRegion = lens _slRegion (\ s a -> s{_slRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-slPageToken :: Lens' SubnetworksList (Maybe Text)
-slPageToken
-  = lens _slPageToken (\ s a -> s{_slPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-slMaxResults :: Lens' SubnetworksList Word32
-slMaxResults
-  = lens _slMaxResults (\ s a -> s{_slMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SubnetworksList where
-        type Rs SubnetworksList = SubnetworkList
-        type Scopes SubnetworksList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksList'{..}
-          = go _slProject _slRegion _slOrderBy _slFilter
-              _slPageToken
-              (Just _slMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/ListUsable.hs b/gen/Network/Google/Resource/Compute/Subnetworks/ListUsable.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/ListUsable.hs
+++ /dev/null
@@ -1,172 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.ListUsable
--- 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)
---
--- Retrieves an aggregated list of usable subnetworks.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.listUsable@.
-module Network.Google.Resource.Compute.Subnetworks.ListUsable
-    (
-    -- * REST Resource
-      SubnetworksListUsableResource
-
-    -- * Creating a Request
-    , subnetworksListUsable
-    , SubnetworksListUsable
-
-    -- * Request Lenses
-    , sluOrderBy
-    , sluProject
-    , sluFilter
-    , sluPageToken
-    , sluMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.listUsable@ method which the
--- 'SubnetworksListUsable' request conforms to.
-type SubnetworksListUsableResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "subnetworks" :>
-                 "listUsable" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] UsableSubnetworksAggregatedList
-
--- | Retrieves an aggregated list of usable subnetworks.
---
--- /See:/ 'subnetworksListUsable' smart constructor.
-data SubnetworksListUsable =
-  SubnetworksListUsable'
-    { _sluOrderBy    :: !(Maybe Text)
-    , _sluProject    :: !Text
-    , _sluFilter     :: !(Maybe Text)
-    , _sluPageToken  :: !(Maybe Text)
-    , _sluMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksListUsable' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sluOrderBy'
---
--- * 'sluProject'
---
--- * 'sluFilter'
---
--- * 'sluPageToken'
---
--- * 'sluMaxResults'
-subnetworksListUsable
-    :: Text -- ^ 'sluProject'
-    -> SubnetworksListUsable
-subnetworksListUsable pSluProject_ =
-  SubnetworksListUsable'
-    { _sluOrderBy = Nothing
-    , _sluProject = pSluProject_
-    , _sluFilter = Nothing
-    , _sluPageToken = Nothing
-    , _sluMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-sluOrderBy :: Lens' SubnetworksListUsable (Maybe Text)
-sluOrderBy
-  = lens _sluOrderBy (\ s a -> s{_sluOrderBy = a})
-
--- | Project ID for this request.
-sluProject :: Lens' SubnetworksListUsable Text
-sluProject
-  = lens _sluProject (\ s a -> s{_sluProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-sluFilter :: Lens' SubnetworksListUsable (Maybe Text)
-sluFilter
-  = lens _sluFilter (\ s a -> s{_sluFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-sluPageToken :: Lens' SubnetworksListUsable (Maybe Text)
-sluPageToken
-  = lens _sluPageToken (\ s a -> s{_sluPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-sluMaxResults :: Lens' SubnetworksListUsable Word32
-sluMaxResults
-  = lens _sluMaxResults
-      (\ s a -> s{_sluMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest SubnetworksListUsable where
-        type Rs SubnetworksListUsable =
-             UsableSubnetworksAggregatedList
-        type Scopes SubnetworksListUsable =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksListUsable'{..}
-          = go _sluProject _sluOrderBy _sluFilter _sluPageToken
-              (Just _sluMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksListUsableResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/Patch.hs b/gen/Network/Google/Resource/Compute/Subnetworks/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/Patch.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.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)
---
--- Patches the specified subnetwork with the data included in the request.
--- Only certain fields can up updated with a patch request as indicated in
--- the field descriptions. You must specify the current fingeprint of the
--- subnetwork resource being patched.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.patch@.
-module Network.Google.Resource.Compute.Subnetworks.Patch
-    (
-    -- * REST Resource
-      SubnetworksPatchResource
-
-    -- * Creating a Request
-    , subnetworksPatch
-    , SubnetworksPatch
-
-    -- * Request Lenses
-    , spRequestId
-    , spProject
-    , spPayload
-    , spSubnetwork
-    , spRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.patch@ method which the
--- 'SubnetworksPatch' request conforms to.
-type SubnetworksPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "subnetwork" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] Subnetwork :> Patch '[JSON] Operation
-
--- | Patches the specified subnetwork with the data included in the request.
--- Only certain fields can up updated with a patch request as indicated in
--- the field descriptions. You must specify the current fingeprint of the
--- subnetwork resource being patched.
---
--- /See:/ 'subnetworksPatch' smart constructor.
-data SubnetworksPatch =
-  SubnetworksPatch'
-    { _spRequestId  :: !(Maybe Text)
-    , _spProject    :: !Text
-    , _spPayload    :: !Subnetwork
-    , _spSubnetwork :: !Text
-    , _spRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'spRequestId'
---
--- * 'spProject'
---
--- * 'spPayload'
---
--- * 'spSubnetwork'
---
--- * 'spRegion'
-subnetworksPatch
-    :: Text -- ^ 'spProject'
-    -> Subnetwork -- ^ 'spPayload'
-    -> Text -- ^ 'spSubnetwork'
-    -> Text -- ^ 'spRegion'
-    -> SubnetworksPatch
-subnetworksPatch pSpProject_ pSpPayload_ pSpSubnetwork_ pSpRegion_ =
-  SubnetworksPatch'
-    { _spRequestId = Nothing
-    , _spProject = pSpProject_
-    , _spPayload = pSpPayload_
-    , _spSubnetwork = pSpSubnetwork_
-    , _spRegion = pSpRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-spRequestId :: Lens' SubnetworksPatch (Maybe Text)
-spRequestId
-  = lens _spRequestId (\ s a -> s{_spRequestId = a})
-
--- | Project ID for this request.
-spProject :: Lens' SubnetworksPatch Text
-spProject
-  = lens _spProject (\ s a -> s{_spProject = a})
-
--- | Multipart request metadata.
-spPayload :: Lens' SubnetworksPatch Subnetwork
-spPayload
-  = lens _spPayload (\ s a -> s{_spPayload = a})
-
--- | Name of the Subnetwork resource to patch.
-spSubnetwork :: Lens' SubnetworksPatch Text
-spSubnetwork
-  = lens _spSubnetwork (\ s a -> s{_spSubnetwork = a})
-
--- | Name of the region scoping this request.
-spRegion :: Lens' SubnetworksPatch Text
-spRegion = lens _spRegion (\ s a -> s{_spRegion = a})
-
-instance GoogleRequest SubnetworksPatch where
-        type Rs SubnetworksPatch = Operation
-        type Scopes SubnetworksPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SubnetworksPatch'{..}
-          = go _spProject _spRegion _spSubnetwork _spRequestId
-              (Just AltJSON)
-              _spPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/SetIAMPolicy.hs b/gen/Network/Google/Resource/Compute/Subnetworks/SetIAMPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/SetIAMPolicy.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.SetIAMPolicy
--- 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)
---
--- Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.setIamPolicy@.
-module Network.Google.Resource.Compute.Subnetworks.SetIAMPolicy
-    (
-    -- * REST Resource
-      SubnetworksSetIAMPolicyResource
-
-    -- * Creating a Request
-    , subnetworksSetIAMPolicy
-    , SubnetworksSetIAMPolicy
-
-    -- * Request Lenses
-    , ssiampProject
-    , ssiampPayload
-    , ssiampResource
-    , ssiampRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.setIamPolicy@ method which the
--- 'SubnetworksSetIAMPolicy' request conforms to.
-type SubnetworksSetIAMPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "resource" Text :>
-                     "setIamPolicy" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] RegionSetPolicyRequest :>
-                           Post '[JSON] Policy
-
--- | Sets the access control policy on the specified resource. Replaces any
--- existing policy.
---
--- /See:/ 'subnetworksSetIAMPolicy' smart constructor.
-data SubnetworksSetIAMPolicy =
-  SubnetworksSetIAMPolicy'
-    { _ssiampProject  :: !Text
-    , _ssiampPayload  :: !RegionSetPolicyRequest
-    , _ssiampResource :: !Text
-    , _ssiampRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksSetIAMPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ssiampProject'
---
--- * 'ssiampPayload'
---
--- * 'ssiampResource'
---
--- * 'ssiampRegion'
-subnetworksSetIAMPolicy
-    :: Text -- ^ 'ssiampProject'
-    -> RegionSetPolicyRequest -- ^ 'ssiampPayload'
-    -> Text -- ^ 'ssiampResource'
-    -> Text -- ^ 'ssiampRegion'
-    -> SubnetworksSetIAMPolicy
-subnetworksSetIAMPolicy pSsiampProject_ pSsiampPayload_ pSsiampResource_ pSsiampRegion_ =
-  SubnetworksSetIAMPolicy'
-    { _ssiampProject = pSsiampProject_
-    , _ssiampPayload = pSsiampPayload_
-    , _ssiampResource = pSsiampResource_
-    , _ssiampRegion = pSsiampRegion_
-    }
-
-
--- | Project ID for this request.
-ssiampProject :: Lens' SubnetworksSetIAMPolicy Text
-ssiampProject
-  = lens _ssiampProject
-      (\ s a -> s{_ssiampProject = a})
-
--- | Multipart request metadata.
-ssiampPayload :: Lens' SubnetworksSetIAMPolicy RegionSetPolicyRequest
-ssiampPayload
-  = lens _ssiampPayload
-      (\ s a -> s{_ssiampPayload = a})
-
--- | Name or id of the resource for this request.
-ssiampResource :: Lens' SubnetworksSetIAMPolicy Text
-ssiampResource
-  = lens _ssiampResource
-      (\ s a -> s{_ssiampResource = a})
-
--- | The name of the region for this request.
-ssiampRegion :: Lens' SubnetworksSetIAMPolicy Text
-ssiampRegion
-  = lens _ssiampRegion (\ s a -> s{_ssiampRegion = a})
-
-instance GoogleRequest SubnetworksSetIAMPolicy where
-        type Rs SubnetworksSetIAMPolicy = Policy
-        type Scopes SubnetworksSetIAMPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient SubnetworksSetIAMPolicy'{..}
-          = go _ssiampProject _ssiampRegion _ssiampResource
-              (Just AltJSON)
-              _ssiampPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy SubnetworksSetIAMPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/SetPrivateIPGoogleAccess.hs b/gen/Network/Google/Resource/Compute/Subnetworks/SetPrivateIPGoogleAccess.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/SetPrivateIPGoogleAccess.hs
+++ /dev/null
@@ -1,166 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.SetPrivateIPGoogleAccess
--- 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)
---
--- Set whether VMs in this subnet can access Google services without
--- assigning external IP addresses through Private Google Access.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.setPrivateIpGoogleAccess@.
-module Network.Google.Resource.Compute.Subnetworks.SetPrivateIPGoogleAccess
-    (
-    -- * REST Resource
-      SubnetworksSetPrivateIPGoogleAccessResource
-
-    -- * Creating a Request
-    , subnetworksSetPrivateIPGoogleAccess
-    , SubnetworksSetPrivateIPGoogleAccess
-
-    -- * Request Lenses
-    , sspigaRequestId
-    , sspigaProject
-    , sspigaPayload
-    , sspigaSubnetwork
-    , sspigaRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.setPrivateIpGoogleAccess@ method which the
--- 'SubnetworksSetPrivateIPGoogleAccess' request conforms to.
-type SubnetworksSetPrivateIPGoogleAccessResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "subnetwork" Text :>
-                     "setPrivateIpGoogleAccess" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON]
-                             SubnetworksSetPrivateIPGoogleAccessRequest
-                             :> Post '[JSON] Operation
-
--- | Set whether VMs in this subnet can access Google services without
--- assigning external IP addresses through Private Google Access.
---
--- /See:/ 'subnetworksSetPrivateIPGoogleAccess' smart constructor.
-data SubnetworksSetPrivateIPGoogleAccess =
-  SubnetworksSetPrivateIPGoogleAccess'
-    { _sspigaRequestId  :: !(Maybe Text)
-    , _sspigaProject    :: !Text
-    , _sspigaPayload    :: !SubnetworksSetPrivateIPGoogleAccessRequest
-    , _sspigaSubnetwork :: !Text
-    , _sspigaRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksSetPrivateIPGoogleAccess' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'sspigaRequestId'
---
--- * 'sspigaProject'
---
--- * 'sspigaPayload'
---
--- * 'sspigaSubnetwork'
---
--- * 'sspigaRegion'
-subnetworksSetPrivateIPGoogleAccess
-    :: Text -- ^ 'sspigaProject'
-    -> SubnetworksSetPrivateIPGoogleAccessRequest -- ^ 'sspigaPayload'
-    -> Text -- ^ 'sspigaSubnetwork'
-    -> Text -- ^ 'sspigaRegion'
-    -> SubnetworksSetPrivateIPGoogleAccess
-subnetworksSetPrivateIPGoogleAccess pSspigaProject_ pSspigaPayload_ pSspigaSubnetwork_ pSspigaRegion_ =
-  SubnetworksSetPrivateIPGoogleAccess'
-    { _sspigaRequestId = Nothing
-    , _sspigaProject = pSspigaProject_
-    , _sspigaPayload = pSspigaPayload_
-    , _sspigaSubnetwork = pSspigaSubnetwork_
-    , _sspigaRegion = pSspigaRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-sspigaRequestId :: Lens' SubnetworksSetPrivateIPGoogleAccess (Maybe Text)
-sspigaRequestId
-  = lens _sspigaRequestId
-      (\ s a -> s{_sspigaRequestId = a})
-
--- | Project ID for this request.
-sspigaProject :: Lens' SubnetworksSetPrivateIPGoogleAccess Text
-sspigaProject
-  = lens _sspigaProject
-      (\ s a -> s{_sspigaProject = a})
-
--- | Multipart request metadata.
-sspigaPayload :: Lens' SubnetworksSetPrivateIPGoogleAccess SubnetworksSetPrivateIPGoogleAccessRequest
-sspigaPayload
-  = lens _sspigaPayload
-      (\ s a -> s{_sspigaPayload = a})
-
--- | Name of the Subnetwork resource.
-sspigaSubnetwork :: Lens' SubnetworksSetPrivateIPGoogleAccess Text
-sspigaSubnetwork
-  = lens _sspigaSubnetwork
-      (\ s a -> s{_sspigaSubnetwork = a})
-
--- | Name of the region scoping this request.
-sspigaRegion :: Lens' SubnetworksSetPrivateIPGoogleAccess Text
-sspigaRegion
-  = lens _sspigaRegion (\ s a -> s{_sspigaRegion = a})
-
-instance GoogleRequest
-           SubnetworksSetPrivateIPGoogleAccess
-         where
-        type Rs SubnetworksSetPrivateIPGoogleAccess =
-             Operation
-        type Scopes SubnetworksSetPrivateIPGoogleAccess =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          SubnetworksSetPrivateIPGoogleAccess'{..}
-          = go _sspigaProject _sspigaRegion _sspigaSubnetwork
-              _sspigaRequestId
-              (Just AltJSON)
-              _sspigaPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy SubnetworksSetPrivateIPGoogleAccessResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Subnetworks/TestIAMPermissions.hs b/gen/Network/Google/Resource/Compute/Subnetworks/TestIAMPermissions.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Subnetworks/TestIAMPermissions.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Subnetworks.TestIAMPermissions
--- 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)
---
--- Returns permissions that a caller has on the specified resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.subnetworks.testIamPermissions@.
-module Network.Google.Resource.Compute.Subnetworks.TestIAMPermissions
-    (
-    -- * REST Resource
-      SubnetworksTestIAMPermissionsResource
-
-    -- * Creating a Request
-    , subnetworksTestIAMPermissions
-    , SubnetworksTestIAMPermissions
-
-    -- * Request Lenses
-    , stiampProject
-    , stiampPayload
-    , stiampResource
-    , stiampRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.subnetworks.testIamPermissions@ method which the
--- 'SubnetworksTestIAMPermissions' request conforms to.
-type SubnetworksTestIAMPermissionsResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "subnetworks" :>
-                   Capture "resource" Text :>
-                     "testIamPermissions" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TestPermissionsRequest :>
-                           Post '[JSON] TestPermissionsResponse
-
--- | Returns permissions that a caller has on the specified resource.
---
--- /See:/ 'subnetworksTestIAMPermissions' smart constructor.
-data SubnetworksTestIAMPermissions =
-  SubnetworksTestIAMPermissions'
-    { _stiampProject  :: !Text
-    , _stiampPayload  :: !TestPermissionsRequest
-    , _stiampResource :: !Text
-    , _stiampRegion   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SubnetworksTestIAMPermissions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'stiampProject'
---
--- * 'stiampPayload'
---
--- * 'stiampResource'
---
--- * 'stiampRegion'
-subnetworksTestIAMPermissions
-    :: Text -- ^ 'stiampProject'
-    -> TestPermissionsRequest -- ^ 'stiampPayload'
-    -> Text -- ^ 'stiampResource'
-    -> Text -- ^ 'stiampRegion'
-    -> SubnetworksTestIAMPermissions
-subnetworksTestIAMPermissions pStiampProject_ pStiampPayload_ pStiampResource_ pStiampRegion_ =
-  SubnetworksTestIAMPermissions'
-    { _stiampProject = pStiampProject_
-    , _stiampPayload = pStiampPayload_
-    , _stiampResource = pStiampResource_
-    , _stiampRegion = pStiampRegion_
-    }
-
-
--- | Project ID for this request.
-stiampProject :: Lens' SubnetworksTestIAMPermissions Text
-stiampProject
-  = lens _stiampProject
-      (\ s a -> s{_stiampProject = a})
-
--- | Multipart request metadata.
-stiampPayload :: Lens' SubnetworksTestIAMPermissions TestPermissionsRequest
-stiampPayload
-  = lens _stiampPayload
-      (\ s a -> s{_stiampPayload = a})
-
--- | Name or id of the resource for this request.
-stiampResource :: Lens' SubnetworksTestIAMPermissions Text
-stiampResource
-  = lens _stiampResource
-      (\ s a -> s{_stiampResource = a})
-
--- | The name of the region for this request.
-stiampRegion :: Lens' SubnetworksTestIAMPermissions Text
-stiampRegion
-  = lens _stiampRegion (\ s a -> s{_stiampRegion = a})
-
-instance GoogleRequest SubnetworksTestIAMPermissions
-         where
-        type Rs SubnetworksTestIAMPermissions =
-             TestPermissionsResponse
-        type Scopes SubnetworksTestIAMPermissions =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient SubnetworksTestIAMPermissions'{..}
-          = go _stiampProject _stiampRegion _stiampResource
-              (Just AltJSON)
-              _stiampPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy SubnetworksTestIAMPermissionsResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Delete.hs b/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Delete.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.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 TargetHttpProxy resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.delete@.
-module Network.Google.Resource.Compute.TargetHTTPProxies.Delete
-    (
-    -- * REST Resource
-      TargetHTTPProxiesDeleteResource
-
-    -- * Creating a Request
-    , targetHTTPProxiesDelete
-    , TargetHTTPProxiesDelete
-
-    -- * Request Lenses
-    , thttppdRequestId
-    , thttppdProject
-    , thttppdTargetHTTPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpProxies.delete@ method which the
--- 'TargetHTTPProxiesDelete' request conforms to.
-type TargetHTTPProxiesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpProxies" :>
-                 Capture "targetHttpProxy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified TargetHttpProxy resource.
---
--- /See:/ 'targetHTTPProxiesDelete' smart constructor.
-data TargetHTTPProxiesDelete =
-  TargetHTTPProxiesDelete'
-    { _thttppdRequestId       :: !(Maybe Text)
-    , _thttppdProject         :: !Text
-    , _thttppdTargetHTTPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxiesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttppdRequestId'
---
--- * 'thttppdProject'
---
--- * 'thttppdTargetHTTPProxy'
-targetHTTPProxiesDelete
-    :: Text -- ^ 'thttppdProject'
-    -> Text -- ^ 'thttppdTargetHTTPProxy'
-    -> TargetHTTPProxiesDelete
-targetHTTPProxiesDelete pThttppdProject_ pThttppdTargetHTTPProxy_ =
-  TargetHTTPProxiesDelete'
-    { _thttppdRequestId = Nothing
-    , _thttppdProject = pThttppdProject_
-    , _thttppdTargetHTTPProxy = pThttppdTargetHTTPProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thttppdRequestId :: Lens' TargetHTTPProxiesDelete (Maybe Text)
-thttppdRequestId
-  = lens _thttppdRequestId
-      (\ s a -> s{_thttppdRequestId = a})
-
--- | Project ID for this request.
-thttppdProject :: Lens' TargetHTTPProxiesDelete Text
-thttppdProject
-  = lens _thttppdProject
-      (\ s a -> s{_thttppdProject = a})
-
--- | Name of the TargetHttpProxy resource to delete.
-thttppdTargetHTTPProxy :: Lens' TargetHTTPProxiesDelete Text
-thttppdTargetHTTPProxy
-  = lens _thttppdTargetHTTPProxy
-      (\ s a -> s{_thttppdTargetHTTPProxy = a})
-
-instance GoogleRequest TargetHTTPProxiesDelete where
-        type Rs TargetHTTPProxiesDelete = Operation
-        type Scopes TargetHTTPProxiesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPProxiesDelete'{..}
-          = go _thttppdProject _thttppdTargetHTTPProxy
-              _thttppdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPProxiesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Get.hs b/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Get.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.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)
---
--- Returns the specified TargetHttpProxy resource. Gets a list of available
--- target HTTP proxies by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.get@.
-module Network.Google.Resource.Compute.TargetHTTPProxies.Get
-    (
-    -- * REST Resource
-      TargetHTTPProxiesGetResource
-
-    -- * Creating a Request
-    , targetHTTPProxiesGet
-    , TargetHTTPProxiesGet
-
-    -- * Request Lenses
-    , thttppgProject
-    , thttppgTargetHTTPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpProxies.get@ method which the
--- 'TargetHTTPProxiesGet' request conforms to.
-type TargetHTTPProxiesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpProxies" :>
-                 Capture "targetHttpProxy" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] TargetHTTPProxy
-
--- | Returns the specified TargetHttpProxy resource. Gets a list of available
--- target HTTP proxies by making a list() request.
---
--- /See:/ 'targetHTTPProxiesGet' smart constructor.
-data TargetHTTPProxiesGet =
-  TargetHTTPProxiesGet'
-    { _thttppgProject         :: !Text
-    , _thttppgTargetHTTPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxiesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttppgProject'
---
--- * 'thttppgTargetHTTPProxy'
-targetHTTPProxiesGet
-    :: Text -- ^ 'thttppgProject'
-    -> Text -- ^ 'thttppgTargetHTTPProxy'
-    -> TargetHTTPProxiesGet
-targetHTTPProxiesGet pThttppgProject_ pThttppgTargetHTTPProxy_ =
-  TargetHTTPProxiesGet'
-    { _thttppgProject = pThttppgProject_
-    , _thttppgTargetHTTPProxy = pThttppgTargetHTTPProxy_
-    }
-
-
--- | Project ID for this request.
-thttppgProject :: Lens' TargetHTTPProxiesGet Text
-thttppgProject
-  = lens _thttppgProject
-      (\ s a -> s{_thttppgProject = a})
-
--- | Name of the TargetHttpProxy resource to return.
-thttppgTargetHTTPProxy :: Lens' TargetHTTPProxiesGet Text
-thttppgTargetHTTPProxy
-  = lens _thttppgTargetHTTPProxy
-      (\ s a -> s{_thttppgTargetHTTPProxy = a})
-
-instance GoogleRequest TargetHTTPProxiesGet where
-        type Rs TargetHTTPProxiesGet = TargetHTTPProxy
-        type Scopes TargetHTTPProxiesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetHTTPProxiesGet'{..}
-          = go _thttppgProject _thttppgTargetHTTPProxy
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPProxiesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Insert.hs b/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/Insert.hs
+++ /dev/null
@@ -1,132 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.Insert
--- 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 TargetHttpProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.insert@.
-module Network.Google.Resource.Compute.TargetHTTPProxies.Insert
-    (
-    -- * REST Resource
-      TargetHTTPProxiesInsertResource
-
-    -- * Creating a Request
-    , targetHTTPProxiesInsert
-    , TargetHTTPProxiesInsert
-
-    -- * Request Lenses
-    , thttppiRequestId
-    , thttppiProject
-    , thttppiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpProxies.insert@ method which the
--- 'TargetHTTPProxiesInsert' request conforms to.
-type TargetHTTPProxiesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpProxies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] TargetHTTPProxy :>
-                       Post '[JSON] Operation
-
--- | Creates a TargetHttpProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'targetHTTPProxiesInsert' smart constructor.
-data TargetHTTPProxiesInsert =
-  TargetHTTPProxiesInsert'
-    { _thttppiRequestId :: !(Maybe Text)
-    , _thttppiProject   :: !Text
-    , _thttppiPayload   :: !TargetHTTPProxy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxiesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttppiRequestId'
---
--- * 'thttppiProject'
---
--- * 'thttppiPayload'
-targetHTTPProxiesInsert
-    :: Text -- ^ 'thttppiProject'
-    -> TargetHTTPProxy -- ^ 'thttppiPayload'
-    -> TargetHTTPProxiesInsert
-targetHTTPProxiesInsert pThttppiProject_ pThttppiPayload_ =
-  TargetHTTPProxiesInsert'
-    { _thttppiRequestId = Nothing
-    , _thttppiProject = pThttppiProject_
-    , _thttppiPayload = pThttppiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thttppiRequestId :: Lens' TargetHTTPProxiesInsert (Maybe Text)
-thttppiRequestId
-  = lens _thttppiRequestId
-      (\ s a -> s{_thttppiRequestId = a})
-
--- | Project ID for this request.
-thttppiProject :: Lens' TargetHTTPProxiesInsert Text
-thttppiProject
-  = lens _thttppiProject
-      (\ s a -> s{_thttppiProject = a})
-
--- | Multipart request metadata.
-thttppiPayload :: Lens' TargetHTTPProxiesInsert TargetHTTPProxy
-thttppiPayload
-  = lens _thttppiPayload
-      (\ s a -> s{_thttppiPayload = a})
-
-instance GoogleRequest TargetHTTPProxiesInsert where
-        type Rs TargetHTTPProxiesInsert = Operation
-        type Scopes TargetHTTPProxiesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPProxiesInsert'{..}
-          = go _thttppiProject _thttppiRequestId (Just AltJSON)
-              _thttppiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPProxiesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/List.hs b/gen/Network/Google/Resource/Compute/TargetHTTPProxies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/List.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.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)
---
--- Retrieves the list of TargetHttpProxy resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.list@.
-module Network.Google.Resource.Compute.TargetHTTPProxies.List
-    (
-    -- * REST Resource
-      TargetHTTPProxiesListResource
-
-    -- * Creating a Request
-    , targetHTTPProxiesList
-    , TargetHTTPProxiesList
-
-    -- * Request Lenses
-    , thttpplOrderBy
-    , thttpplProject
-    , thttpplFilter
-    , thttpplPageToken
-    , thttpplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpProxies.list@ method which the
--- 'TargetHTTPProxiesList' request conforms to.
-type TargetHTTPProxiesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpProxies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetHTTPProxyList
-
--- | Retrieves the list of TargetHttpProxy resources available to the
--- specified project.
---
--- /See:/ 'targetHTTPProxiesList' smart constructor.
-data TargetHTTPProxiesList =
-  TargetHTTPProxiesList'
-    { _thttpplOrderBy    :: !(Maybe Text)
-    , _thttpplProject    :: !Text
-    , _thttpplFilter     :: !(Maybe Text)
-    , _thttpplPageToken  :: !(Maybe Text)
-    , _thttpplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxiesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttpplOrderBy'
---
--- * 'thttpplProject'
---
--- * 'thttpplFilter'
---
--- * 'thttpplPageToken'
---
--- * 'thttpplMaxResults'
-targetHTTPProxiesList
-    :: Text -- ^ 'thttpplProject'
-    -> TargetHTTPProxiesList
-targetHTTPProxiesList pThttpplProject_ =
-  TargetHTTPProxiesList'
-    { _thttpplOrderBy = Nothing
-    , _thttpplProject = pThttpplProject_
-    , _thttpplFilter = Nothing
-    , _thttpplPageToken = Nothing
-    , _thttpplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-thttpplOrderBy :: Lens' TargetHTTPProxiesList (Maybe Text)
-thttpplOrderBy
-  = lens _thttpplOrderBy
-      (\ s a -> s{_thttpplOrderBy = a})
-
--- | Project ID for this request.
-thttpplProject :: Lens' TargetHTTPProxiesList Text
-thttpplProject
-  = lens _thttpplProject
-      (\ s a -> s{_thttpplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-thttpplFilter :: Lens' TargetHTTPProxiesList (Maybe Text)
-thttpplFilter
-  = lens _thttpplFilter
-      (\ s a -> s{_thttpplFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-thttpplPageToken :: Lens' TargetHTTPProxiesList (Maybe Text)
-thttpplPageToken
-  = lens _thttpplPageToken
-      (\ s a -> s{_thttpplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-thttpplMaxResults :: Lens' TargetHTTPProxiesList Word32
-thttpplMaxResults
-  = lens _thttpplMaxResults
-      (\ s a -> s{_thttpplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetHTTPProxiesList where
-        type Rs TargetHTTPProxiesList = TargetHTTPProxyList
-        type Scopes TargetHTTPProxiesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetHTTPProxiesList'{..}
-          = go _thttpplProject _thttpplOrderBy _thttpplFilter
-              _thttpplPageToken
-              (Just _thttpplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPProxiesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/SetURLMap.hs b/gen/Network/Google/Resource/Compute/TargetHTTPProxies/SetURLMap.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPProxies/SetURLMap.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap
--- 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)
---
--- Changes the URL map for TargetHttpProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpProxies.setUrlMap@.
-module Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap
-    (
-    -- * REST Resource
-      TargetHTTPProxiesSetURLMapResource
-
-    -- * Creating a Request
-    , targetHTTPProxiesSetURLMap
-    , TargetHTTPProxiesSetURLMap
-
-    -- * Request Lenses
-    , thttppsumRequestId
-    , thttppsumProject
-    , thttppsumPayload
-    , thttppsumTargetHTTPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpProxies.setUrlMap@ method which the
--- 'TargetHTTPProxiesSetURLMap' request conforms to.
-type TargetHTTPProxiesSetURLMapResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "targetHttpProxies" :>
-               Capture "targetHttpProxy" Text :>
-                 "setUrlMap" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] URLMapReference :>
-                         Post '[JSON] Operation
-
--- | Changes the URL map for TargetHttpProxy.
---
--- /See:/ 'targetHTTPProxiesSetURLMap' smart constructor.
-data TargetHTTPProxiesSetURLMap =
-  TargetHTTPProxiesSetURLMap'
-    { _thttppsumRequestId       :: !(Maybe Text)
-    , _thttppsumProject         :: !Text
-    , _thttppsumPayload         :: !URLMapReference
-    , _thttppsumTargetHTTPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPProxiesSetURLMap' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thttppsumRequestId'
---
--- * 'thttppsumProject'
---
--- * 'thttppsumPayload'
---
--- * 'thttppsumTargetHTTPProxy'
-targetHTTPProxiesSetURLMap
-    :: Text -- ^ 'thttppsumProject'
-    -> URLMapReference -- ^ 'thttppsumPayload'
-    -> Text -- ^ 'thttppsumTargetHTTPProxy'
-    -> TargetHTTPProxiesSetURLMap
-targetHTTPProxiesSetURLMap pThttppsumProject_ pThttppsumPayload_ pThttppsumTargetHTTPProxy_ =
-  TargetHTTPProxiesSetURLMap'
-    { _thttppsumRequestId = Nothing
-    , _thttppsumProject = pThttppsumProject_
-    , _thttppsumPayload = pThttppsumPayload_
-    , _thttppsumTargetHTTPProxy = pThttppsumTargetHTTPProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thttppsumRequestId :: Lens' TargetHTTPProxiesSetURLMap (Maybe Text)
-thttppsumRequestId
-  = lens _thttppsumRequestId
-      (\ s a -> s{_thttppsumRequestId = a})
-
--- | Project ID for this request.
-thttppsumProject :: Lens' TargetHTTPProxiesSetURLMap Text
-thttppsumProject
-  = lens _thttppsumProject
-      (\ s a -> s{_thttppsumProject = a})
-
--- | Multipart request metadata.
-thttppsumPayload :: Lens' TargetHTTPProxiesSetURLMap URLMapReference
-thttppsumPayload
-  = lens _thttppsumPayload
-      (\ s a -> s{_thttppsumPayload = a})
-
--- | Name of the TargetHttpProxy to set a URL map for.
-thttppsumTargetHTTPProxy :: Lens' TargetHTTPProxiesSetURLMap Text
-thttppsumTargetHTTPProxy
-  = lens _thttppsumTargetHTTPProxy
-      (\ s a -> s{_thttppsumTargetHTTPProxy = a})
-
-instance GoogleRequest TargetHTTPProxiesSetURLMap
-         where
-        type Rs TargetHTTPProxiesSetURLMap = Operation
-        type Scopes TargetHTTPProxiesSetURLMap =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPProxiesSetURLMap'{..}
-          = go _thttppsumProject _thttppsumTargetHTTPProxy
-              _thttppsumRequestId
-              (Just AltJSON)
-              _thttppsumPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPProxiesSetURLMapResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Delete.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Delete.hs
+++ /dev/null
@@ -1,129 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.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 TargetHttpsProxy resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.delete@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.Delete
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesDeleteResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesDelete
-    , TargetHTTPSProxiesDelete
-
-    -- * Request Lenses
-    , thpdRequestId
-    , thpdProject
-    , thpdTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.delete@ method which the
--- 'TargetHTTPSProxiesDelete' request conforms to.
-type TargetHTTPSProxiesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 Capture "targetHttpsProxy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified TargetHttpsProxy resource.
---
--- /See:/ 'targetHTTPSProxiesDelete' smart constructor.
-data TargetHTTPSProxiesDelete =
-  TargetHTTPSProxiesDelete'
-    { _thpdRequestId        :: !(Maybe Text)
-    , _thpdProject          :: !Text
-    , _thpdTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpdRequestId'
---
--- * 'thpdProject'
---
--- * 'thpdTargetHTTPSProxy'
-targetHTTPSProxiesDelete
-    :: Text -- ^ 'thpdProject'
-    -> Text -- ^ 'thpdTargetHTTPSProxy'
-    -> TargetHTTPSProxiesDelete
-targetHTTPSProxiesDelete pThpdProject_ pThpdTargetHTTPSProxy_ =
-  TargetHTTPSProxiesDelete'
-    { _thpdRequestId = Nothing
-    , _thpdProject = pThpdProject_
-    , _thpdTargetHTTPSProxy = pThpdTargetHTTPSProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpdRequestId :: Lens' TargetHTTPSProxiesDelete (Maybe Text)
-thpdRequestId
-  = lens _thpdRequestId
-      (\ s a -> s{_thpdRequestId = a})
-
--- | Project ID for this request.
-thpdProject :: Lens' TargetHTTPSProxiesDelete Text
-thpdProject
-  = lens _thpdProject (\ s a -> s{_thpdProject = a})
-
--- | Name of the TargetHttpsProxy resource to delete.
-thpdTargetHTTPSProxy :: Lens' TargetHTTPSProxiesDelete Text
-thpdTargetHTTPSProxy
-  = lens _thpdTargetHTTPSProxy
-      (\ s a -> s{_thpdTargetHTTPSProxy = a})
-
-instance GoogleRequest TargetHTTPSProxiesDelete where
-        type Rs TargetHTTPSProxiesDelete = Operation
-        type Scopes TargetHTTPSProxiesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPSProxiesDelete'{..}
-          = go _thpdProject _thpdTargetHTTPSProxy
-              _thpdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPSProxiesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Get.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Get.hs
+++ /dev/null
@@ -1,111 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.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)
---
--- Returns the specified TargetHttpsProxy resource. Gets a list of
--- available target HTTPS proxies by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.get@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.Get
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesGetResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesGet
-    , TargetHTTPSProxiesGet
-
-    -- * Request Lenses
-    , thpgProject
-    , thpgTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.get@ method which the
--- 'TargetHTTPSProxiesGet' request conforms to.
-type TargetHTTPSProxiesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 Capture "targetHttpsProxy" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] TargetHTTPSProxy
-
--- | Returns the specified TargetHttpsProxy resource. Gets a list of
--- available target HTTPS proxies by making a list() request.
---
--- /See:/ 'targetHTTPSProxiesGet' smart constructor.
-data TargetHTTPSProxiesGet =
-  TargetHTTPSProxiesGet'
-    { _thpgProject          :: !Text
-    , _thpgTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpgProject'
---
--- * 'thpgTargetHTTPSProxy'
-targetHTTPSProxiesGet
-    :: Text -- ^ 'thpgProject'
-    -> Text -- ^ 'thpgTargetHTTPSProxy'
-    -> TargetHTTPSProxiesGet
-targetHTTPSProxiesGet pThpgProject_ pThpgTargetHTTPSProxy_ =
-  TargetHTTPSProxiesGet'
-    { _thpgProject = pThpgProject_
-    , _thpgTargetHTTPSProxy = pThpgTargetHTTPSProxy_
-    }
-
-
--- | Project ID for this request.
-thpgProject :: Lens' TargetHTTPSProxiesGet Text
-thpgProject
-  = lens _thpgProject (\ s a -> s{_thpgProject = a})
-
--- | Name of the TargetHttpsProxy resource to return.
-thpgTargetHTTPSProxy :: Lens' TargetHTTPSProxiesGet Text
-thpgTargetHTTPSProxy
-  = lens _thpgTargetHTTPSProxy
-      (\ s a -> s{_thpgTargetHTTPSProxy = a})
-
-instance GoogleRequest TargetHTTPSProxiesGet where
-        type Rs TargetHTTPSProxiesGet = TargetHTTPSProxy
-        type Scopes TargetHTTPSProxiesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetHTTPSProxiesGet'{..}
-          = go _thpgProject _thpgTargetHTTPSProxy
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPSProxiesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Insert.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/Insert.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.Insert
--- 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 TargetHttpsProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.insert@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.Insert
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesInsertResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesInsert
-    , TargetHTTPSProxiesInsert
-
-    -- * Request Lenses
-    , thpiRequestId
-    , thpiProject
-    , thpiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.insert@ method which the
--- 'TargetHTTPSProxiesInsert' request conforms to.
-type TargetHTTPSProxiesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] TargetHTTPSProxy :>
-                       Post '[JSON] Operation
-
--- | Creates a TargetHttpsProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'targetHTTPSProxiesInsert' smart constructor.
-data TargetHTTPSProxiesInsert =
-  TargetHTTPSProxiesInsert'
-    { _thpiRequestId :: !(Maybe Text)
-    , _thpiProject   :: !Text
-    , _thpiPayload   :: !TargetHTTPSProxy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpiRequestId'
---
--- * 'thpiProject'
---
--- * 'thpiPayload'
-targetHTTPSProxiesInsert
-    :: Text -- ^ 'thpiProject'
-    -> TargetHTTPSProxy -- ^ 'thpiPayload'
-    -> TargetHTTPSProxiesInsert
-targetHTTPSProxiesInsert pThpiProject_ pThpiPayload_ =
-  TargetHTTPSProxiesInsert'
-    { _thpiRequestId = Nothing
-    , _thpiProject = pThpiProject_
-    , _thpiPayload = pThpiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpiRequestId :: Lens' TargetHTTPSProxiesInsert (Maybe Text)
-thpiRequestId
-  = lens _thpiRequestId
-      (\ s a -> s{_thpiRequestId = a})
-
--- | Project ID for this request.
-thpiProject :: Lens' TargetHTTPSProxiesInsert Text
-thpiProject
-  = lens _thpiProject (\ s a -> s{_thpiProject = a})
-
--- | Multipart request metadata.
-thpiPayload :: Lens' TargetHTTPSProxiesInsert TargetHTTPSProxy
-thpiPayload
-  = lens _thpiPayload (\ s a -> s{_thpiPayload = a})
-
-instance GoogleRequest TargetHTTPSProxiesInsert where
-        type Rs TargetHTTPSProxiesInsert = Operation
-        type Scopes TargetHTTPSProxiesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPSProxiesInsert'{..}
-          = go _thpiProject _thpiRequestId (Just AltJSON)
-              _thpiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPSProxiesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/List.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.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)
---
--- Retrieves the list of TargetHttpsProxy resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.list@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.List
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesListResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesList
-    , TargetHTTPSProxiesList
-
-    -- * Request Lenses
-    , thplOrderBy
-    , thplProject
-    , thplFilter
-    , thplPageToken
-    , thplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.list@ method which the
--- 'TargetHTTPSProxiesList' request conforms to.
-type TargetHTTPSProxiesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetHTTPSProxyList
-
--- | Retrieves the list of TargetHttpsProxy resources available to the
--- specified project.
---
--- /See:/ 'targetHTTPSProxiesList' smart constructor.
-data TargetHTTPSProxiesList =
-  TargetHTTPSProxiesList'
-    { _thplOrderBy    :: !(Maybe Text)
-    , _thplProject    :: !Text
-    , _thplFilter     :: !(Maybe Text)
-    , _thplPageToken  :: !(Maybe Text)
-    , _thplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thplOrderBy'
---
--- * 'thplProject'
---
--- * 'thplFilter'
---
--- * 'thplPageToken'
---
--- * 'thplMaxResults'
-targetHTTPSProxiesList
-    :: Text -- ^ 'thplProject'
-    -> TargetHTTPSProxiesList
-targetHTTPSProxiesList pThplProject_ =
-  TargetHTTPSProxiesList'
-    { _thplOrderBy = Nothing
-    , _thplProject = pThplProject_
-    , _thplFilter = Nothing
-    , _thplPageToken = Nothing
-    , _thplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-thplOrderBy :: Lens' TargetHTTPSProxiesList (Maybe Text)
-thplOrderBy
-  = lens _thplOrderBy (\ s a -> s{_thplOrderBy = a})
-
--- | Project ID for this request.
-thplProject :: Lens' TargetHTTPSProxiesList Text
-thplProject
-  = lens _thplProject (\ s a -> s{_thplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-thplFilter :: Lens' TargetHTTPSProxiesList (Maybe Text)
-thplFilter
-  = lens _thplFilter (\ s a -> s{_thplFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-thplPageToken :: Lens' TargetHTTPSProxiesList (Maybe Text)
-thplPageToken
-  = lens _thplPageToken
-      (\ s a -> s{_thplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-thplMaxResults :: Lens' TargetHTTPSProxiesList Word32
-thplMaxResults
-  = lens _thplMaxResults
-      (\ s a -> s{_thplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetHTTPSProxiesList where
-        type Rs TargetHTTPSProxiesList = TargetHTTPSProxyList
-        type Scopes TargetHTTPSProxiesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetHTTPSProxiesList'{..}
-          = go _thplProject _thplOrderBy _thplFilter
-              _thplPageToken
-              (Just _thplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPSProxiesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetQuicOverride.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetQuicOverride.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetQuicOverride.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.SetQuicOverride
--- 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)
---
--- Sets the QUIC override policy for TargetHttpsProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setQuicOverride@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.SetQuicOverride
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesSetQuicOverrideResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesSetQuicOverride
-    , TargetHTTPSProxiesSetQuicOverride
-
-    -- * Request Lenses
-    , thpsqoRequestId
-    , thpsqoProject
-    , thpsqoPayload
-    , thpsqoTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.setQuicOverride@ method which the
--- 'TargetHTTPSProxiesSetQuicOverride' request conforms to.
-type TargetHTTPSProxiesSetQuicOverrideResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 Capture "targetHttpsProxy" Text :>
-                   "setQuicOverride" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON]
-                           TargetHTTPSProxiesSetQuicOverrideRequest
-                           :> Post '[JSON] Operation
-
--- | Sets the QUIC override policy for TargetHttpsProxy.
---
--- /See:/ 'targetHTTPSProxiesSetQuicOverride' smart constructor.
-data TargetHTTPSProxiesSetQuicOverride =
-  TargetHTTPSProxiesSetQuicOverride'
-    { _thpsqoRequestId        :: !(Maybe Text)
-    , _thpsqoProject          :: !Text
-    , _thpsqoPayload          :: !TargetHTTPSProxiesSetQuicOverrideRequest
-    , _thpsqoTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetQuicOverride' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsqoRequestId'
---
--- * 'thpsqoProject'
---
--- * 'thpsqoPayload'
---
--- * 'thpsqoTargetHTTPSProxy'
-targetHTTPSProxiesSetQuicOverride
-    :: Text -- ^ 'thpsqoProject'
-    -> TargetHTTPSProxiesSetQuicOverrideRequest -- ^ 'thpsqoPayload'
-    -> Text -- ^ 'thpsqoTargetHTTPSProxy'
-    -> TargetHTTPSProxiesSetQuicOverride
-targetHTTPSProxiesSetQuicOverride pThpsqoProject_ pThpsqoPayload_ pThpsqoTargetHTTPSProxy_ =
-  TargetHTTPSProxiesSetQuicOverride'
-    { _thpsqoRequestId = Nothing
-    , _thpsqoProject = pThpsqoProject_
-    , _thpsqoPayload = pThpsqoPayload_
-    , _thpsqoTargetHTTPSProxy = pThpsqoTargetHTTPSProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpsqoRequestId :: Lens' TargetHTTPSProxiesSetQuicOverride (Maybe Text)
-thpsqoRequestId
-  = lens _thpsqoRequestId
-      (\ s a -> s{_thpsqoRequestId = a})
-
--- | Project ID for this request.
-thpsqoProject :: Lens' TargetHTTPSProxiesSetQuicOverride Text
-thpsqoProject
-  = lens _thpsqoProject
-      (\ s a -> s{_thpsqoProject = a})
-
--- | Multipart request metadata.
-thpsqoPayload :: Lens' TargetHTTPSProxiesSetQuicOverride TargetHTTPSProxiesSetQuicOverrideRequest
-thpsqoPayload
-  = lens _thpsqoPayload
-      (\ s a -> s{_thpsqoPayload = a})
-
--- | Name of the TargetHttpsProxy resource to set the QUIC override policy
--- for. The name should conform to RFC1035.
-thpsqoTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetQuicOverride Text
-thpsqoTargetHTTPSProxy
-  = lens _thpsqoTargetHTTPSProxy
-      (\ s a -> s{_thpsqoTargetHTTPSProxy = a})
-
-instance GoogleRequest
-           TargetHTTPSProxiesSetQuicOverride
-         where
-        type Rs TargetHTTPSProxiesSetQuicOverride = Operation
-        type Scopes TargetHTTPSProxiesSetQuicOverride =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPSProxiesSetQuicOverride'{..}
-          = go _thpsqoProject _thpsqoTargetHTTPSProxy
-              _thpsqoRequestId
-              (Just AltJSON)
-              _thpsqoPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetHTTPSProxiesSetQuicOverrideResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLCertificates.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLCertificates.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLCertificates.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates
--- 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 SslCertificates for TargetHttpsProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setSslCertificates@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesSetSSLCertificatesResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesSetSSLCertificates
-    , TargetHTTPSProxiesSetSSLCertificates
-
-    -- * Request Lenses
-    , thpsscRequestId
-    , thpsscProject
-    , thpsscPayload
-    , thpsscTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.setSslCertificates@ method which the
--- 'TargetHTTPSProxiesSetSSLCertificates' request conforms to.
-type TargetHTTPSProxiesSetSSLCertificatesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "targetHttpsProxies" :>
-               Capture "targetHttpsProxy" Text :>
-                 "setSslCertificates" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON]
-                         TargetHTTPSProxiesSetSSLCertificatesRequest
-                         :> Post '[JSON] Operation
-
--- | Replaces SslCertificates for TargetHttpsProxy.
---
--- /See:/ 'targetHTTPSProxiesSetSSLCertificates' smart constructor.
-data TargetHTTPSProxiesSetSSLCertificates =
-  TargetHTTPSProxiesSetSSLCertificates'
-    { _thpsscRequestId        :: !(Maybe Text)
-    , _thpsscProject          :: !Text
-    , _thpsscPayload          :: !TargetHTTPSProxiesSetSSLCertificatesRequest
-    , _thpsscTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetSSLCertificates' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsscRequestId'
---
--- * 'thpsscProject'
---
--- * 'thpsscPayload'
---
--- * 'thpsscTargetHTTPSProxy'
-targetHTTPSProxiesSetSSLCertificates
-    :: Text -- ^ 'thpsscProject'
-    -> TargetHTTPSProxiesSetSSLCertificatesRequest -- ^ 'thpsscPayload'
-    -> Text -- ^ 'thpsscTargetHTTPSProxy'
-    -> TargetHTTPSProxiesSetSSLCertificates
-targetHTTPSProxiesSetSSLCertificates pThpsscProject_ pThpsscPayload_ pThpsscTargetHTTPSProxy_ =
-  TargetHTTPSProxiesSetSSLCertificates'
-    { _thpsscRequestId = Nothing
-    , _thpsscProject = pThpsscProject_
-    , _thpsscPayload = pThpsscPayload_
-    , _thpsscTargetHTTPSProxy = pThpsscTargetHTTPSProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpsscRequestId :: Lens' TargetHTTPSProxiesSetSSLCertificates (Maybe Text)
-thpsscRequestId
-  = lens _thpsscRequestId
-      (\ s a -> s{_thpsscRequestId = a})
-
--- | Project ID for this request.
-thpsscProject :: Lens' TargetHTTPSProxiesSetSSLCertificates Text
-thpsscProject
-  = lens _thpsscProject
-      (\ s a -> s{_thpsscProject = a})
-
--- | Multipart request metadata.
-thpsscPayload :: Lens' TargetHTTPSProxiesSetSSLCertificates TargetHTTPSProxiesSetSSLCertificatesRequest
-thpsscPayload
-  = lens _thpsscPayload
-      (\ s a -> s{_thpsscPayload = a})
-
--- | Name of the TargetHttpsProxy resource to set an SslCertificates resource
--- for.
-thpsscTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetSSLCertificates Text
-thpsscTargetHTTPSProxy
-  = lens _thpsscTargetHTTPSProxy
-      (\ s a -> s{_thpsscTargetHTTPSProxy = a})
-
-instance GoogleRequest
-           TargetHTTPSProxiesSetSSLCertificates
-         where
-        type Rs TargetHTTPSProxiesSetSSLCertificates =
-             Operation
-        type Scopes TargetHTTPSProxiesSetSSLCertificates =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient
-          TargetHTTPSProxiesSetSSLCertificates'{..}
-          = go _thpsscProject _thpsscTargetHTTPSProxy
-              _thpsscRequestId
-              (Just AltJSON)
-              _thpsscPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetHTTPSProxiesSetSSLCertificatesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLPolicy.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetSSLPolicy.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLPolicy
--- 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)
---
--- Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the
--- server-side support for SSL features. This affects connections between
--- clients and the HTTPS proxy load balancer. They do not affect the
--- connection between the load balancer and the backends.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setSslPolicy@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLPolicy
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesSetSSLPolicyResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesSetSSLPolicy
-    , TargetHTTPSProxiesSetSSLPolicy
-
-    -- * Request Lenses
-    , thpsspRequestId
-    , thpsspProject
-    , thpsspPayload
-    , thpsspTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.setSslPolicy@ method which the
--- 'TargetHTTPSProxiesSetSSLPolicy' request conforms to.
-type TargetHTTPSProxiesSetSSLPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetHttpsProxies" :>
-                 Capture "targetHttpsProxy" Text :>
-                   "setSslPolicy" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SSLPolicyReference :>
-                           Post '[JSON] Operation
-
--- | Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the
--- server-side support for SSL features. This affects connections between
--- clients and the HTTPS proxy load balancer. They do not affect the
--- connection between the load balancer and the backends.
---
--- /See:/ 'targetHTTPSProxiesSetSSLPolicy' smart constructor.
-data TargetHTTPSProxiesSetSSLPolicy =
-  TargetHTTPSProxiesSetSSLPolicy'
-    { _thpsspRequestId        :: !(Maybe Text)
-    , _thpsspProject          :: !Text
-    , _thpsspPayload          :: !SSLPolicyReference
-    , _thpsspTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetSSLPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsspRequestId'
---
--- * 'thpsspProject'
---
--- * 'thpsspPayload'
---
--- * 'thpsspTargetHTTPSProxy'
-targetHTTPSProxiesSetSSLPolicy
-    :: Text -- ^ 'thpsspProject'
-    -> SSLPolicyReference -- ^ 'thpsspPayload'
-    -> Text -- ^ 'thpsspTargetHTTPSProxy'
-    -> TargetHTTPSProxiesSetSSLPolicy
-targetHTTPSProxiesSetSSLPolicy pThpsspProject_ pThpsspPayload_ pThpsspTargetHTTPSProxy_ =
-  TargetHTTPSProxiesSetSSLPolicy'
-    { _thpsspRequestId = Nothing
-    , _thpsspProject = pThpsspProject_
-    , _thpsspPayload = pThpsspPayload_
-    , _thpsspTargetHTTPSProxy = pThpsspTargetHTTPSProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpsspRequestId :: Lens' TargetHTTPSProxiesSetSSLPolicy (Maybe Text)
-thpsspRequestId
-  = lens _thpsspRequestId
-      (\ s a -> s{_thpsspRequestId = a})
-
--- | Project ID for this request.
-thpsspProject :: Lens' TargetHTTPSProxiesSetSSLPolicy Text
-thpsspProject
-  = lens _thpsspProject
-      (\ s a -> s{_thpsspProject = a})
-
--- | Multipart request metadata.
-thpsspPayload :: Lens' TargetHTTPSProxiesSetSSLPolicy SSLPolicyReference
-thpsspPayload
-  = lens _thpsspPayload
-      (\ s a -> s{_thpsspPayload = a})
-
--- | Name of the TargetHttpsProxy resource whose SSL policy is to be set. The
--- name must be 1-63 characters long, and comply with RFC1035.
-thpsspTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetSSLPolicy Text
-thpsspTargetHTTPSProxy
-  = lens _thpsspTargetHTTPSProxy
-      (\ s a -> s{_thpsspTargetHTTPSProxy = a})
-
-instance GoogleRequest TargetHTTPSProxiesSetSSLPolicy
-         where
-        type Rs TargetHTTPSProxiesSetSSLPolicy = Operation
-        type Scopes TargetHTTPSProxiesSetSSLPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPSProxiesSetSSLPolicy'{..}
-          = go _thpsspProject _thpsspTargetHTTPSProxy
-              _thpsspRequestId
-              (Just AltJSON)
-              _thpsspPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetHTTPSProxiesSetSSLPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetURLMap.hs b/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetURLMap.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetHTTPSProxies/SetURLMap.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap
--- 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)
---
--- Changes the URL map for TargetHttpsProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetHttpsProxies.setUrlMap@.
-module Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap
-    (
-    -- * REST Resource
-      TargetHTTPSProxiesSetURLMapResource
-
-    -- * Creating a Request
-    , targetHTTPSProxiesSetURLMap
-    , TargetHTTPSProxiesSetURLMap
-
-    -- * Request Lenses
-    , thpsumRequestId
-    , thpsumProject
-    , thpsumPayload
-    , thpsumTargetHTTPSProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetHttpsProxies.setUrlMap@ method which the
--- 'TargetHTTPSProxiesSetURLMap' request conforms to.
-type TargetHTTPSProxiesSetURLMapResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "targetHttpsProxies" :>
-               Capture "targetHttpsProxy" Text :>
-                 "setUrlMap" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] URLMapReference :>
-                         Post '[JSON] Operation
-
--- | Changes the URL map for TargetHttpsProxy.
---
--- /See:/ 'targetHTTPSProxiesSetURLMap' smart constructor.
-data TargetHTTPSProxiesSetURLMap =
-  TargetHTTPSProxiesSetURLMap'
-    { _thpsumRequestId        :: !(Maybe Text)
-    , _thpsumProject          :: !Text
-    , _thpsumPayload          :: !URLMapReference
-    , _thpsumTargetHTTPSProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetHTTPSProxiesSetURLMap' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'thpsumRequestId'
---
--- * 'thpsumProject'
---
--- * 'thpsumPayload'
---
--- * 'thpsumTargetHTTPSProxy'
-targetHTTPSProxiesSetURLMap
-    :: Text -- ^ 'thpsumProject'
-    -> URLMapReference -- ^ 'thpsumPayload'
-    -> Text -- ^ 'thpsumTargetHTTPSProxy'
-    -> TargetHTTPSProxiesSetURLMap
-targetHTTPSProxiesSetURLMap pThpsumProject_ pThpsumPayload_ pThpsumTargetHTTPSProxy_ =
-  TargetHTTPSProxiesSetURLMap'
-    { _thpsumRequestId = Nothing
-    , _thpsumProject = pThpsumProject_
-    , _thpsumPayload = pThpsumPayload_
-    , _thpsumTargetHTTPSProxy = pThpsumTargetHTTPSProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-thpsumRequestId :: Lens' TargetHTTPSProxiesSetURLMap (Maybe Text)
-thpsumRequestId
-  = lens _thpsumRequestId
-      (\ s a -> s{_thpsumRequestId = a})
-
--- | Project ID for this request.
-thpsumProject :: Lens' TargetHTTPSProxiesSetURLMap Text
-thpsumProject
-  = lens _thpsumProject
-      (\ s a -> s{_thpsumProject = a})
-
--- | Multipart request metadata.
-thpsumPayload :: Lens' TargetHTTPSProxiesSetURLMap URLMapReference
-thpsumPayload
-  = lens _thpsumPayload
-      (\ s a -> s{_thpsumPayload = a})
-
--- | Name of the TargetHttpsProxy resource whose URL map is to be set.
-thpsumTargetHTTPSProxy :: Lens' TargetHTTPSProxiesSetURLMap Text
-thpsumTargetHTTPSProxy
-  = lens _thpsumTargetHTTPSProxy
-      (\ s a -> s{_thpsumTargetHTTPSProxy = a})
-
-instance GoogleRequest TargetHTTPSProxiesSetURLMap
-         where
-        type Rs TargetHTTPSProxiesSetURLMap = Operation
-        type Scopes TargetHTTPSProxiesSetURLMap =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetHTTPSProxiesSetURLMap'{..}
-          = go _thpsumProject _thpsumTargetHTTPSProxy
-              _thpsumRequestId
-              (Just AltJSON)
-              _thpsumPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetHTTPSProxiesSetURLMapResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetInstances/AggregatedList.hs b/gen/Network/Google/Resource/Compute/TargetInstances/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetInstances/AggregatedList.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetInstances.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of target instances.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.aggregatedList@.
-module Network.Google.Resource.Compute.TargetInstances.AggregatedList
-    (
-    -- * REST Resource
-      TargetInstancesAggregatedListResource
-
-    -- * Creating a Request
-    , targetInstancesAggregatedList
-    , TargetInstancesAggregatedList
-
-    -- * Request Lenses
-    , tialOrderBy
-    , tialProject
-    , tialFilter
-    , tialPageToken
-    , tialMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetInstances.aggregatedList@ method which the
--- 'TargetInstancesAggregatedList' request conforms to.
-type TargetInstancesAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "targetInstances" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetInstanceAggregatedList
-
--- | Retrieves an aggregated list of target instances.
---
--- /See:/ 'targetInstancesAggregatedList' smart constructor.
-data TargetInstancesAggregatedList =
-  TargetInstancesAggregatedList'
-    { _tialOrderBy    :: !(Maybe Text)
-    , _tialProject    :: !Text
-    , _tialFilter     :: !(Maybe Text)
-    , _tialPageToken  :: !(Maybe Text)
-    , _tialMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tialOrderBy'
---
--- * 'tialProject'
---
--- * 'tialFilter'
---
--- * 'tialPageToken'
---
--- * 'tialMaxResults'
-targetInstancesAggregatedList
-    :: Text -- ^ 'tialProject'
-    -> TargetInstancesAggregatedList
-targetInstancesAggregatedList pTialProject_ =
-  TargetInstancesAggregatedList'
-    { _tialOrderBy = Nothing
-    , _tialProject = pTialProject_
-    , _tialFilter = Nothing
-    , _tialPageToken = Nothing
-    , _tialMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tialOrderBy :: Lens' TargetInstancesAggregatedList (Maybe Text)
-tialOrderBy
-  = lens _tialOrderBy (\ s a -> s{_tialOrderBy = a})
-
--- | Project ID for this request.
-tialProject :: Lens' TargetInstancesAggregatedList Text
-tialProject
-  = lens _tialProject (\ s a -> s{_tialProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tialFilter :: Lens' TargetInstancesAggregatedList (Maybe Text)
-tialFilter
-  = lens _tialFilter (\ s a -> s{_tialFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tialPageToken :: Lens' TargetInstancesAggregatedList (Maybe Text)
-tialPageToken
-  = lens _tialPageToken
-      (\ s a -> s{_tialPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tialMaxResults :: Lens' TargetInstancesAggregatedList Word32
-tialMaxResults
-  = lens _tialMaxResults
-      (\ s a -> s{_tialMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetInstancesAggregatedList
-         where
-        type Rs TargetInstancesAggregatedList =
-             TargetInstanceAggregatedList
-        type Scopes TargetInstancesAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetInstancesAggregatedList'{..}
-          = go _tialProject _tialOrderBy _tialFilter
-              _tialPageToken
-              (Just _tialMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetInstancesAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetInstances/Delete.hs b/gen/Network/Google/Resource/Compute/TargetInstances/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetInstances/Delete.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetInstances.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 TargetInstance resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.delete@.
-module Network.Google.Resource.Compute.TargetInstances.Delete
-    (
-    -- * REST Resource
-      TargetInstancesDeleteResource
-
-    -- * Creating a Request
-    , targetInstancesDelete
-    , TargetInstancesDelete
-
-    -- * Request Lenses
-    , tidRequestId
-    , tidProject
-    , tidTargetInstance
-    , tidZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetInstances.delete@ method which the
--- 'TargetInstancesDelete' request conforms to.
-type TargetInstancesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "targetInstances" :>
-                   Capture "targetInstance" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified TargetInstance resource.
---
--- /See:/ 'targetInstancesDelete' smart constructor.
-data TargetInstancesDelete =
-  TargetInstancesDelete'
-    { _tidRequestId      :: !(Maybe Text)
-    , _tidProject        :: !Text
-    , _tidTargetInstance :: !Text
-    , _tidZone           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tidRequestId'
---
--- * 'tidProject'
---
--- * 'tidTargetInstance'
---
--- * 'tidZone'
-targetInstancesDelete
-    :: Text -- ^ 'tidProject'
-    -> Text -- ^ 'tidTargetInstance'
-    -> Text -- ^ 'tidZone'
-    -> TargetInstancesDelete
-targetInstancesDelete pTidProject_ pTidTargetInstance_ pTidZone_ =
-  TargetInstancesDelete'
-    { _tidRequestId = Nothing
-    , _tidProject = pTidProject_
-    , _tidTargetInstance = pTidTargetInstance_
-    , _tidZone = pTidZone_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tidRequestId :: Lens' TargetInstancesDelete (Maybe Text)
-tidRequestId
-  = lens _tidRequestId (\ s a -> s{_tidRequestId = a})
-
--- | Project ID for this request.
-tidProject :: Lens' TargetInstancesDelete Text
-tidProject
-  = lens _tidProject (\ s a -> s{_tidProject = a})
-
--- | Name of the TargetInstance resource to delete.
-tidTargetInstance :: Lens' TargetInstancesDelete Text
-tidTargetInstance
-  = lens _tidTargetInstance
-      (\ s a -> s{_tidTargetInstance = a})
-
--- | Name of the zone scoping this request.
-tidZone :: Lens' TargetInstancesDelete Text
-tidZone = lens _tidZone (\ s a -> s{_tidZone = a})
-
-instance GoogleRequest TargetInstancesDelete where
-        type Rs TargetInstancesDelete = Operation
-        type Scopes TargetInstancesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetInstancesDelete'{..}
-          = go _tidProject _tidZone _tidTargetInstance
-              _tidRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetInstancesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetInstances/Get.hs b/gen/Network/Google/Resource/Compute/TargetInstances/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetInstances/Get.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetInstances.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)
---
--- Returns the specified TargetInstance resource. Gets a list of available
--- target instances by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.get@.
-module Network.Google.Resource.Compute.TargetInstances.Get
-    (
-    -- * REST Resource
-      TargetInstancesGetResource
-
-    -- * Creating a Request
-    , targetInstancesGet
-    , TargetInstancesGet
-
-    -- * Request Lenses
-    , tigProject
-    , tigTargetInstance
-    , tigZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetInstances.get@ method which the
--- 'TargetInstancesGet' request conforms to.
-type TargetInstancesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "targetInstances" :>
-                   Capture "targetInstance" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] TargetInstance
-
--- | Returns the specified TargetInstance resource. Gets a list of available
--- target instances by making a list() request.
---
--- /See:/ 'targetInstancesGet' smart constructor.
-data TargetInstancesGet =
-  TargetInstancesGet'
-    { _tigProject        :: !Text
-    , _tigTargetInstance :: !Text
-    , _tigZone           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tigProject'
---
--- * 'tigTargetInstance'
---
--- * 'tigZone'
-targetInstancesGet
-    :: Text -- ^ 'tigProject'
-    -> Text -- ^ 'tigTargetInstance'
-    -> Text -- ^ 'tigZone'
-    -> TargetInstancesGet
-targetInstancesGet pTigProject_ pTigTargetInstance_ pTigZone_ =
-  TargetInstancesGet'
-    { _tigProject = pTigProject_
-    , _tigTargetInstance = pTigTargetInstance_
-    , _tigZone = pTigZone_
-    }
-
-
--- | Project ID for this request.
-tigProject :: Lens' TargetInstancesGet Text
-tigProject
-  = lens _tigProject (\ s a -> s{_tigProject = a})
-
--- | Name of the TargetInstance resource to return.
-tigTargetInstance :: Lens' TargetInstancesGet Text
-tigTargetInstance
-  = lens _tigTargetInstance
-      (\ s a -> s{_tigTargetInstance = a})
-
--- | Name of the zone scoping this request.
-tigZone :: Lens' TargetInstancesGet Text
-tigZone = lens _tigZone (\ s a -> s{_tigZone = a})
-
-instance GoogleRequest TargetInstancesGet where
-        type Rs TargetInstancesGet = TargetInstance
-        type Scopes TargetInstancesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetInstancesGet'{..}
-          = go _tigProject _tigZone _tigTargetInstance
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetInstancesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetInstances/Insert.hs b/gen/Network/Google/Resource/Compute/TargetInstances/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetInstances/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetInstances.Insert
--- 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 TargetInstance resource in the specified project and zone
--- using the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.insert@.
-module Network.Google.Resource.Compute.TargetInstances.Insert
-    (
-    -- * REST Resource
-      TargetInstancesInsertResource
-
-    -- * Creating a Request
-    , targetInstancesInsert
-    , TargetInstancesInsert
-
-    -- * Request Lenses
-    , tiiRequestId
-    , tiiProject
-    , tiiZone
-    , tiiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetInstances.insert@ method which the
--- 'TargetInstancesInsert' request conforms to.
-type TargetInstancesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "targetInstances" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TargetInstance :>
-                         Post '[JSON] Operation
-
--- | Creates a TargetInstance resource in the specified project and zone
--- using the data included in the request.
---
--- /See:/ 'targetInstancesInsert' smart constructor.
-data TargetInstancesInsert =
-  TargetInstancesInsert'
-    { _tiiRequestId :: !(Maybe Text)
-    , _tiiProject   :: !Text
-    , _tiiZone      :: !Text
-    , _tiiPayload   :: !TargetInstance
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tiiRequestId'
---
--- * 'tiiProject'
---
--- * 'tiiZone'
---
--- * 'tiiPayload'
-targetInstancesInsert
-    :: Text -- ^ 'tiiProject'
-    -> Text -- ^ 'tiiZone'
-    -> TargetInstance -- ^ 'tiiPayload'
-    -> TargetInstancesInsert
-targetInstancesInsert pTiiProject_ pTiiZone_ pTiiPayload_ =
-  TargetInstancesInsert'
-    { _tiiRequestId = Nothing
-    , _tiiProject = pTiiProject_
-    , _tiiZone = pTiiZone_
-    , _tiiPayload = pTiiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tiiRequestId :: Lens' TargetInstancesInsert (Maybe Text)
-tiiRequestId
-  = lens _tiiRequestId (\ s a -> s{_tiiRequestId = a})
-
--- | Project ID for this request.
-tiiProject :: Lens' TargetInstancesInsert Text
-tiiProject
-  = lens _tiiProject (\ s a -> s{_tiiProject = a})
-
--- | Name of the zone scoping this request.
-tiiZone :: Lens' TargetInstancesInsert Text
-tiiZone = lens _tiiZone (\ s a -> s{_tiiZone = a})
-
--- | Multipart request metadata.
-tiiPayload :: Lens' TargetInstancesInsert TargetInstance
-tiiPayload
-  = lens _tiiPayload (\ s a -> s{_tiiPayload = a})
-
-instance GoogleRequest TargetInstancesInsert where
-        type Rs TargetInstancesInsert = Operation
-        type Scopes TargetInstancesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetInstancesInsert'{..}
-          = go _tiiProject _tiiZone _tiiRequestId
-              (Just AltJSON)
-              _tiiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetInstancesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetInstances/List.hs b/gen/Network/Google/Resource/Compute/TargetInstances/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetInstances/List.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetInstances.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)
---
--- Retrieves a list of TargetInstance resources available to the specified
--- project and zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetInstances.list@.
-module Network.Google.Resource.Compute.TargetInstances.List
-    (
-    -- * REST Resource
-      TargetInstancesListResource
-
-    -- * Creating a Request
-    , targetInstancesList
-    , TargetInstancesList
-
-    -- * Request Lenses
-    , tilOrderBy
-    , tilProject
-    , tilZone
-    , tilFilter
-    , tilPageToken
-    , tilMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetInstances.list@ method which the
--- 'TargetInstancesList' request conforms to.
-type TargetInstancesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "targetInstances" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] TargetInstanceList
-
--- | Retrieves a list of TargetInstance resources available to the specified
--- project and zone.
---
--- /See:/ 'targetInstancesList' smart constructor.
-data TargetInstancesList =
-  TargetInstancesList'
-    { _tilOrderBy    :: !(Maybe Text)
-    , _tilProject    :: !Text
-    , _tilZone       :: !Text
-    , _tilFilter     :: !(Maybe Text)
-    , _tilPageToken  :: !(Maybe Text)
-    , _tilMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetInstancesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tilOrderBy'
---
--- * 'tilProject'
---
--- * 'tilZone'
---
--- * 'tilFilter'
---
--- * 'tilPageToken'
---
--- * 'tilMaxResults'
-targetInstancesList
-    :: Text -- ^ 'tilProject'
-    -> Text -- ^ 'tilZone'
-    -> TargetInstancesList
-targetInstancesList pTilProject_ pTilZone_ =
-  TargetInstancesList'
-    { _tilOrderBy = Nothing
-    , _tilProject = pTilProject_
-    , _tilZone = pTilZone_
-    , _tilFilter = Nothing
-    , _tilPageToken = Nothing
-    , _tilMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tilOrderBy :: Lens' TargetInstancesList (Maybe Text)
-tilOrderBy
-  = lens _tilOrderBy (\ s a -> s{_tilOrderBy = a})
-
--- | Project ID for this request.
-tilProject :: Lens' TargetInstancesList Text
-tilProject
-  = lens _tilProject (\ s a -> s{_tilProject = a})
-
--- | Name of the zone scoping this request.
-tilZone :: Lens' TargetInstancesList Text
-tilZone = lens _tilZone (\ s a -> s{_tilZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tilFilter :: Lens' TargetInstancesList (Maybe Text)
-tilFilter
-  = lens _tilFilter (\ s a -> s{_tilFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tilPageToken :: Lens' TargetInstancesList (Maybe Text)
-tilPageToken
-  = lens _tilPageToken (\ s a -> s{_tilPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tilMaxResults :: Lens' TargetInstancesList Word32
-tilMaxResults
-  = lens _tilMaxResults
-      (\ s a -> s{_tilMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetInstancesList where
-        type Rs TargetInstancesList = TargetInstanceList
-        type Scopes TargetInstancesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetInstancesList'{..}
-          = go _tilProject _tilZone _tilOrderBy _tilFilter
-              _tilPageToken
-              (Just _tilMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetInstancesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/AddHealthCheck.hs b/gen/Network/Google/Resource/Compute/TargetPools/AddHealthCheck.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/AddHealthCheck.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.AddHealthCheck
--- 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)
---
--- Adds health check URLs to a target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.addHealthCheck@.
-module Network.Google.Resource.Compute.TargetPools.AddHealthCheck
-    (
-    -- * REST Resource
-      TargetPoolsAddHealthCheckResource
-
-    -- * Creating a Request
-    , targetPoolsAddHealthCheck
-    , TargetPoolsAddHealthCheck
-
-    -- * Request Lenses
-    , tpahcRequestId
-    , tpahcProject
-    , tpahcTargetPool
-    , tpahcPayload
-    , tpahcRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.addHealthCheck@ method which the
--- 'TargetPoolsAddHealthCheck' request conforms to.
-type TargetPoolsAddHealthCheckResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "addHealthCheck" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] TargetPoolsAddHealthCheckRequest :>
-                             Post '[JSON] Operation
-
--- | Adds health check URLs to a target pool.
---
--- /See:/ 'targetPoolsAddHealthCheck' smart constructor.
-data TargetPoolsAddHealthCheck =
-  TargetPoolsAddHealthCheck'
-    { _tpahcRequestId  :: !(Maybe Text)
-    , _tpahcProject    :: !Text
-    , _tpahcTargetPool :: !Text
-    , _tpahcPayload    :: !TargetPoolsAddHealthCheckRequest
-    , _tpahcRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsAddHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpahcRequestId'
---
--- * 'tpahcProject'
---
--- * 'tpahcTargetPool'
---
--- * 'tpahcPayload'
---
--- * 'tpahcRegion'
-targetPoolsAddHealthCheck
-    :: Text -- ^ 'tpahcProject'
-    -> Text -- ^ 'tpahcTargetPool'
-    -> TargetPoolsAddHealthCheckRequest -- ^ 'tpahcPayload'
-    -> Text -- ^ 'tpahcRegion'
-    -> TargetPoolsAddHealthCheck
-targetPoolsAddHealthCheck pTpahcProject_ pTpahcTargetPool_ pTpahcPayload_ pTpahcRegion_ =
-  TargetPoolsAddHealthCheck'
-    { _tpahcRequestId = Nothing
-    , _tpahcProject = pTpahcProject_
-    , _tpahcTargetPool = pTpahcTargetPool_
-    , _tpahcPayload = pTpahcPayload_
-    , _tpahcRegion = pTpahcRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpahcRequestId :: Lens' TargetPoolsAddHealthCheck (Maybe Text)
-tpahcRequestId
-  = lens _tpahcRequestId
-      (\ s a -> s{_tpahcRequestId = a})
-
--- | Project ID for this request.
-tpahcProject :: Lens' TargetPoolsAddHealthCheck Text
-tpahcProject
-  = lens _tpahcProject (\ s a -> s{_tpahcProject = a})
-
--- | Name of the target pool to add a health check to.
-tpahcTargetPool :: Lens' TargetPoolsAddHealthCheck Text
-tpahcTargetPool
-  = lens _tpahcTargetPool
-      (\ s a -> s{_tpahcTargetPool = a})
-
--- | Multipart request metadata.
-tpahcPayload :: Lens' TargetPoolsAddHealthCheck TargetPoolsAddHealthCheckRequest
-tpahcPayload
-  = lens _tpahcPayload (\ s a -> s{_tpahcPayload = a})
-
--- | Name of the region scoping this request.
-tpahcRegion :: Lens' TargetPoolsAddHealthCheck Text
-tpahcRegion
-  = lens _tpahcRegion (\ s a -> s{_tpahcRegion = a})
-
-instance GoogleRequest TargetPoolsAddHealthCheck
-         where
-        type Rs TargetPoolsAddHealthCheck = Operation
-        type Scopes TargetPoolsAddHealthCheck =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsAddHealthCheck'{..}
-          = go _tpahcProject _tpahcRegion _tpahcTargetPool
-              _tpahcRequestId
-              (Just AltJSON)
-              _tpahcPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsAddHealthCheckResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/AddInstance.hs b/gen/Network/Google/Resource/Compute/TargetPools/AddInstance.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/AddInstance.hs
+++ /dev/null
@@ -1,156 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.AddInstance
--- 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)
---
--- Adds an instance to a target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.addInstance@.
-module Network.Google.Resource.Compute.TargetPools.AddInstance
-    (
-    -- * REST Resource
-      TargetPoolsAddInstanceResource
-
-    -- * Creating a Request
-    , targetPoolsAddInstance
-    , TargetPoolsAddInstance
-
-    -- * Request Lenses
-    , tpaiRequestId
-    , tpaiProject
-    , tpaiTargetPool
-    , tpaiPayload
-    , tpaiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.addInstance@ method which the
--- 'TargetPoolsAddInstance' request conforms to.
-type TargetPoolsAddInstanceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "addInstance" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] TargetPoolsAddInstanceRequest :>
-                             Post '[JSON] Operation
-
--- | Adds an instance to a target pool.
---
--- /See:/ 'targetPoolsAddInstance' smart constructor.
-data TargetPoolsAddInstance =
-  TargetPoolsAddInstance'
-    { _tpaiRequestId  :: !(Maybe Text)
-    , _tpaiProject    :: !Text
-    , _tpaiTargetPool :: !Text
-    , _tpaiPayload    :: !TargetPoolsAddInstanceRequest
-    , _tpaiRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsAddInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpaiRequestId'
---
--- * 'tpaiProject'
---
--- * 'tpaiTargetPool'
---
--- * 'tpaiPayload'
---
--- * 'tpaiRegion'
-targetPoolsAddInstance
-    :: Text -- ^ 'tpaiProject'
-    -> Text -- ^ 'tpaiTargetPool'
-    -> TargetPoolsAddInstanceRequest -- ^ 'tpaiPayload'
-    -> Text -- ^ 'tpaiRegion'
-    -> TargetPoolsAddInstance
-targetPoolsAddInstance pTpaiProject_ pTpaiTargetPool_ pTpaiPayload_ pTpaiRegion_ =
-  TargetPoolsAddInstance'
-    { _tpaiRequestId = Nothing
-    , _tpaiProject = pTpaiProject_
-    , _tpaiTargetPool = pTpaiTargetPool_
-    , _tpaiPayload = pTpaiPayload_
-    , _tpaiRegion = pTpaiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpaiRequestId :: Lens' TargetPoolsAddInstance (Maybe Text)
-tpaiRequestId
-  = lens _tpaiRequestId
-      (\ s a -> s{_tpaiRequestId = a})
-
--- | Project ID for this request.
-tpaiProject :: Lens' TargetPoolsAddInstance Text
-tpaiProject
-  = lens _tpaiProject (\ s a -> s{_tpaiProject = a})
-
--- | Name of the TargetPool resource to add instances to.
-tpaiTargetPool :: Lens' TargetPoolsAddInstance Text
-tpaiTargetPool
-  = lens _tpaiTargetPool
-      (\ s a -> s{_tpaiTargetPool = a})
-
--- | Multipart request metadata.
-tpaiPayload :: Lens' TargetPoolsAddInstance TargetPoolsAddInstanceRequest
-tpaiPayload
-  = lens _tpaiPayload (\ s a -> s{_tpaiPayload = a})
-
--- | Name of the region scoping this request.
-tpaiRegion :: Lens' TargetPoolsAddInstance Text
-tpaiRegion
-  = lens _tpaiRegion (\ s a -> s{_tpaiRegion = a})
-
-instance GoogleRequest TargetPoolsAddInstance where
-        type Rs TargetPoolsAddInstance = Operation
-        type Scopes TargetPoolsAddInstance =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsAddInstance'{..}
-          = go _tpaiProject _tpaiRegion _tpaiTargetPool
-              _tpaiRequestId
-              (Just AltJSON)
-              _tpaiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsAddInstanceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/AggregatedList.hs b/gen/Network/Google/Resource/Compute/TargetPools/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/AggregatedList.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of target pools.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.aggregatedList@.
-module Network.Google.Resource.Compute.TargetPools.AggregatedList
-    (
-    -- * REST Resource
-      TargetPoolsAggregatedListResource
-
-    -- * Creating a Request
-    , targetPoolsAggregatedList
-    , TargetPoolsAggregatedList
-
-    -- * Request Lenses
-    , tpalOrderBy
-    , tpalProject
-    , tpalFilter
-    , tpalPageToken
-    , tpalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.aggregatedList@ method which the
--- 'TargetPoolsAggregatedList' request conforms to.
-type TargetPoolsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "targetPools" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetPoolAggregatedList
-
--- | Retrieves an aggregated list of target pools.
---
--- /See:/ 'targetPoolsAggregatedList' smart constructor.
-data TargetPoolsAggregatedList =
-  TargetPoolsAggregatedList'
-    { _tpalOrderBy    :: !(Maybe Text)
-    , _tpalProject    :: !Text
-    , _tpalFilter     :: !(Maybe Text)
-    , _tpalPageToken  :: !(Maybe Text)
-    , _tpalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpalOrderBy'
---
--- * 'tpalProject'
---
--- * 'tpalFilter'
---
--- * 'tpalPageToken'
---
--- * 'tpalMaxResults'
-targetPoolsAggregatedList
-    :: Text -- ^ 'tpalProject'
-    -> TargetPoolsAggregatedList
-targetPoolsAggregatedList pTpalProject_ =
-  TargetPoolsAggregatedList'
-    { _tpalOrderBy = Nothing
-    , _tpalProject = pTpalProject_
-    , _tpalFilter = Nothing
-    , _tpalPageToken = Nothing
-    , _tpalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tpalOrderBy :: Lens' TargetPoolsAggregatedList (Maybe Text)
-tpalOrderBy
-  = lens _tpalOrderBy (\ s a -> s{_tpalOrderBy = a})
-
--- | Project ID for this request.
-tpalProject :: Lens' TargetPoolsAggregatedList Text
-tpalProject
-  = lens _tpalProject (\ s a -> s{_tpalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tpalFilter :: Lens' TargetPoolsAggregatedList (Maybe Text)
-tpalFilter
-  = lens _tpalFilter (\ s a -> s{_tpalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tpalPageToken :: Lens' TargetPoolsAggregatedList (Maybe Text)
-tpalPageToken
-  = lens _tpalPageToken
-      (\ s a -> s{_tpalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tpalMaxResults :: Lens' TargetPoolsAggregatedList Word32
-tpalMaxResults
-  = lens _tpalMaxResults
-      (\ s a -> s{_tpalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetPoolsAggregatedList
-         where
-        type Rs TargetPoolsAggregatedList =
-             TargetPoolAggregatedList
-        type Scopes TargetPoolsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetPoolsAggregatedList'{..}
-          = go _tpalProject _tpalOrderBy _tpalFilter
-              _tpalPageToken
-              (Just _tpalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/Delete.hs b/gen/Network/Google/Resource/Compute/TargetPools/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/Delete.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.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 target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.delete@.
-module Network.Google.Resource.Compute.TargetPools.Delete
-    (
-    -- * REST Resource
-      TargetPoolsDeleteResource
-
-    -- * Creating a Request
-    , targetPoolsDelete
-    , TargetPoolsDelete
-
-    -- * Request Lenses
-    , tpdRequestId
-    , tpdProject
-    , tpdTargetPool
-    , tpdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.delete@ method which the
--- 'TargetPoolsDelete' request conforms to.
-type TargetPoolsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified target pool.
---
--- /See:/ 'targetPoolsDelete' smart constructor.
-data TargetPoolsDelete =
-  TargetPoolsDelete'
-    { _tpdRequestId  :: !(Maybe Text)
-    , _tpdProject    :: !Text
-    , _tpdTargetPool :: !Text
-    , _tpdRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpdRequestId'
---
--- * 'tpdProject'
---
--- * 'tpdTargetPool'
---
--- * 'tpdRegion'
-targetPoolsDelete
-    :: Text -- ^ 'tpdProject'
-    -> Text -- ^ 'tpdTargetPool'
-    -> Text -- ^ 'tpdRegion'
-    -> TargetPoolsDelete
-targetPoolsDelete pTpdProject_ pTpdTargetPool_ pTpdRegion_ =
-  TargetPoolsDelete'
-    { _tpdRequestId = Nothing
-    , _tpdProject = pTpdProject_
-    , _tpdTargetPool = pTpdTargetPool_
-    , _tpdRegion = pTpdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpdRequestId :: Lens' TargetPoolsDelete (Maybe Text)
-tpdRequestId
-  = lens _tpdRequestId (\ s a -> s{_tpdRequestId = a})
-
--- | Project ID for this request.
-tpdProject :: Lens' TargetPoolsDelete Text
-tpdProject
-  = lens _tpdProject (\ s a -> s{_tpdProject = a})
-
--- | Name of the TargetPool resource to delete.
-tpdTargetPool :: Lens' TargetPoolsDelete Text
-tpdTargetPool
-  = lens _tpdTargetPool
-      (\ s a -> s{_tpdTargetPool = a})
-
--- | Name of the region scoping this request.
-tpdRegion :: Lens' TargetPoolsDelete Text
-tpdRegion
-  = lens _tpdRegion (\ s a -> s{_tpdRegion = a})
-
-instance GoogleRequest TargetPoolsDelete where
-        type Rs TargetPoolsDelete = Operation
-        type Scopes TargetPoolsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsDelete'{..}
-          = go _tpdProject _tpdRegion _tpdTargetPool
-              _tpdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/Get.hs b/gen/Network/Google/Resource/Compute/TargetPools/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/Get.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.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)
---
--- Returns the specified target pool. Gets a list of available target pools
--- by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.get@.
-module Network.Google.Resource.Compute.TargetPools.Get
-    (
-    -- * REST Resource
-      TargetPoolsGetResource
-
-    -- * Creating a Request
-    , targetPoolsGet
-    , TargetPoolsGet
-
-    -- * Request Lenses
-    , tpgProject
-    , tpgTargetPool
-    , tpgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.get@ method which the
--- 'TargetPoolsGet' request conforms to.
-type TargetPoolsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] TargetPool
-
--- | Returns the specified target pool. Gets a list of available target pools
--- by making a list() request.
---
--- /See:/ 'targetPoolsGet' smart constructor.
-data TargetPoolsGet =
-  TargetPoolsGet'
-    { _tpgProject    :: !Text
-    , _tpgTargetPool :: !Text
-    , _tpgRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpgProject'
---
--- * 'tpgTargetPool'
---
--- * 'tpgRegion'
-targetPoolsGet
-    :: Text -- ^ 'tpgProject'
-    -> Text -- ^ 'tpgTargetPool'
-    -> Text -- ^ 'tpgRegion'
-    -> TargetPoolsGet
-targetPoolsGet pTpgProject_ pTpgTargetPool_ pTpgRegion_ =
-  TargetPoolsGet'
-    { _tpgProject = pTpgProject_
-    , _tpgTargetPool = pTpgTargetPool_
-    , _tpgRegion = pTpgRegion_
-    }
-
-
--- | Project ID for this request.
-tpgProject :: Lens' TargetPoolsGet Text
-tpgProject
-  = lens _tpgProject (\ s a -> s{_tpgProject = a})
-
--- | Name of the TargetPool resource to return.
-tpgTargetPool :: Lens' TargetPoolsGet Text
-tpgTargetPool
-  = lens _tpgTargetPool
-      (\ s a -> s{_tpgTargetPool = a})
-
--- | Name of the region scoping this request.
-tpgRegion :: Lens' TargetPoolsGet Text
-tpgRegion
-  = lens _tpgRegion (\ s a -> s{_tpgRegion = a})
-
-instance GoogleRequest TargetPoolsGet where
-        type Rs TargetPoolsGet = TargetPool
-        type Scopes TargetPoolsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetPoolsGet'{..}
-          = go _tpgProject _tpgRegion _tpgTargetPool
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy TargetPoolsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/GetHealth.hs b/gen/Network/Google/Resource/Compute/TargetPools/GetHealth.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/GetHealth.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.GetHealth
--- 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 most recent health check results for each IP for the instance
--- that is referenced by the given target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.getHealth@.
-module Network.Google.Resource.Compute.TargetPools.GetHealth
-    (
-    -- * REST Resource
-      TargetPoolsGetHealthResource
-
-    -- * Creating a Request
-    , targetPoolsGetHealth
-    , TargetPoolsGetHealth
-
-    -- * Request Lenses
-    , tpghProject
-    , tpghTargetPool
-    , tpghPayload
-    , tpghRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.getHealth@ method which the
--- 'TargetPoolsGetHealth' request conforms to.
-type TargetPoolsGetHealthResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "getHealth" :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] InstanceReference :>
-                           Post '[JSON] TargetPoolInstanceHealth
-
--- | Gets the most recent health check results for each IP for the instance
--- that is referenced by the given target pool.
---
--- /See:/ 'targetPoolsGetHealth' smart constructor.
-data TargetPoolsGetHealth =
-  TargetPoolsGetHealth'
-    { _tpghProject    :: !Text
-    , _tpghTargetPool :: !Text
-    , _tpghPayload    :: !InstanceReference
-    , _tpghRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsGetHealth' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpghProject'
---
--- * 'tpghTargetPool'
---
--- * 'tpghPayload'
---
--- * 'tpghRegion'
-targetPoolsGetHealth
-    :: Text -- ^ 'tpghProject'
-    -> Text -- ^ 'tpghTargetPool'
-    -> InstanceReference -- ^ 'tpghPayload'
-    -> Text -- ^ 'tpghRegion'
-    -> TargetPoolsGetHealth
-targetPoolsGetHealth pTpghProject_ pTpghTargetPool_ pTpghPayload_ pTpghRegion_ =
-  TargetPoolsGetHealth'
-    { _tpghProject = pTpghProject_
-    , _tpghTargetPool = pTpghTargetPool_
-    , _tpghPayload = pTpghPayload_
-    , _tpghRegion = pTpghRegion_
-    }
-
-
--- | Project ID for this request.
-tpghProject :: Lens' TargetPoolsGetHealth Text
-tpghProject
-  = lens _tpghProject (\ s a -> s{_tpghProject = a})
-
--- | Name of the TargetPool resource to which the queried instance belongs.
-tpghTargetPool :: Lens' TargetPoolsGetHealth Text
-tpghTargetPool
-  = lens _tpghTargetPool
-      (\ s a -> s{_tpghTargetPool = a})
-
--- | Multipart request metadata.
-tpghPayload :: Lens' TargetPoolsGetHealth InstanceReference
-tpghPayload
-  = lens _tpghPayload (\ s a -> s{_tpghPayload = a})
-
--- | Name of the region scoping this request.
-tpghRegion :: Lens' TargetPoolsGetHealth Text
-tpghRegion
-  = lens _tpghRegion (\ s a -> s{_tpghRegion = a})
-
-instance GoogleRequest TargetPoolsGetHealth where
-        type Rs TargetPoolsGetHealth =
-             TargetPoolInstanceHealth
-        type Scopes TargetPoolsGetHealth =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetPoolsGetHealth'{..}
-          = go _tpghProject _tpghRegion _tpghTargetPool
-              (Just AltJSON)
-              _tpghPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsGetHealthResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/Insert.hs b/gen/Network/Google/Resource/Compute/TargetPools/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.Insert
--- 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 target pool in the specified project and region using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.insert@.
-module Network.Google.Resource.Compute.TargetPools.Insert
-    (
-    -- * REST Resource
-      TargetPoolsInsertResource
-
-    -- * Creating a Request
-    , targetPoolsInsert
-    , TargetPoolsInsert
-
-    -- * Request Lenses
-    , tpiRequestId
-    , tpiProject
-    , tpiPayload
-    , tpiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.insert@ method which the
--- 'TargetPoolsInsert' request conforms to.
-type TargetPoolsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TargetPool :> Post '[JSON] Operation
-
--- | Creates a target pool in the specified project and region using the data
--- included in the request.
---
--- /See:/ 'targetPoolsInsert' smart constructor.
-data TargetPoolsInsert =
-  TargetPoolsInsert'
-    { _tpiRequestId :: !(Maybe Text)
-    , _tpiProject   :: !Text
-    , _tpiPayload   :: !TargetPool
-    , _tpiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpiRequestId'
---
--- * 'tpiProject'
---
--- * 'tpiPayload'
---
--- * 'tpiRegion'
-targetPoolsInsert
-    :: Text -- ^ 'tpiProject'
-    -> TargetPool -- ^ 'tpiPayload'
-    -> Text -- ^ 'tpiRegion'
-    -> TargetPoolsInsert
-targetPoolsInsert pTpiProject_ pTpiPayload_ pTpiRegion_ =
-  TargetPoolsInsert'
-    { _tpiRequestId = Nothing
-    , _tpiProject = pTpiProject_
-    , _tpiPayload = pTpiPayload_
-    , _tpiRegion = pTpiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpiRequestId :: Lens' TargetPoolsInsert (Maybe Text)
-tpiRequestId
-  = lens _tpiRequestId (\ s a -> s{_tpiRequestId = a})
-
--- | Project ID for this request.
-tpiProject :: Lens' TargetPoolsInsert Text
-tpiProject
-  = lens _tpiProject (\ s a -> s{_tpiProject = a})
-
--- | Multipart request metadata.
-tpiPayload :: Lens' TargetPoolsInsert TargetPool
-tpiPayload
-  = lens _tpiPayload (\ s a -> s{_tpiPayload = a})
-
--- | Name of the region scoping this request.
-tpiRegion :: Lens' TargetPoolsInsert Text
-tpiRegion
-  = lens _tpiRegion (\ s a -> s{_tpiRegion = a})
-
-instance GoogleRequest TargetPoolsInsert where
-        type Rs TargetPoolsInsert = Operation
-        type Scopes TargetPoolsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsInsert'{..}
-          = go _tpiProject _tpiRegion _tpiRequestId
-              (Just AltJSON)
-              _tpiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/List.hs b/gen/Network/Google/Resource/Compute/TargetPools/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/List.hs
+++ /dev/null
@@ -1,185 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.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)
---
--- Retrieves a list of target pools available to the specified project and
--- region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.list@.
-module Network.Google.Resource.Compute.TargetPools.List
-    (
-    -- * REST Resource
-      TargetPoolsListResource
-
-    -- * Creating a Request
-    , targetPoolsList
-    , TargetPoolsList
-
-    -- * Request Lenses
-    , tplOrderBy
-    , tplProject
-    , tplFilter
-    , tplRegion
-    , tplPageToken
-    , tplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.list@ method which the
--- 'TargetPoolsList' request conforms to.
-type TargetPoolsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] TargetPoolList
-
--- | Retrieves a list of target pools available to the specified project and
--- region.
---
--- /See:/ 'targetPoolsList' smart constructor.
-data TargetPoolsList =
-  TargetPoolsList'
-    { _tplOrderBy    :: !(Maybe Text)
-    , _tplProject    :: !Text
-    , _tplFilter     :: !(Maybe Text)
-    , _tplRegion     :: !Text
-    , _tplPageToken  :: !(Maybe Text)
-    , _tplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tplOrderBy'
---
--- * 'tplProject'
---
--- * 'tplFilter'
---
--- * 'tplRegion'
---
--- * 'tplPageToken'
---
--- * 'tplMaxResults'
-targetPoolsList
-    :: Text -- ^ 'tplProject'
-    -> Text -- ^ 'tplRegion'
-    -> TargetPoolsList
-targetPoolsList pTplProject_ pTplRegion_ =
-  TargetPoolsList'
-    { _tplOrderBy = Nothing
-    , _tplProject = pTplProject_
-    , _tplFilter = Nothing
-    , _tplRegion = pTplRegion_
-    , _tplPageToken = Nothing
-    , _tplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tplOrderBy :: Lens' TargetPoolsList (Maybe Text)
-tplOrderBy
-  = lens _tplOrderBy (\ s a -> s{_tplOrderBy = a})
-
--- | Project ID for this request.
-tplProject :: Lens' TargetPoolsList Text
-tplProject
-  = lens _tplProject (\ s a -> s{_tplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tplFilter :: Lens' TargetPoolsList (Maybe Text)
-tplFilter
-  = lens _tplFilter (\ s a -> s{_tplFilter = a})
-
--- | Name of the region scoping this request.
-tplRegion :: Lens' TargetPoolsList Text
-tplRegion
-  = lens _tplRegion (\ s a -> s{_tplRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tplPageToken :: Lens' TargetPoolsList (Maybe Text)
-tplPageToken
-  = lens _tplPageToken (\ s a -> s{_tplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tplMaxResults :: Lens' TargetPoolsList Word32
-tplMaxResults
-  = lens _tplMaxResults
-      (\ s a -> s{_tplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetPoolsList where
-        type Rs TargetPoolsList = TargetPoolList
-        type Scopes TargetPoolsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetPoolsList'{..}
-          = go _tplProject _tplRegion _tplOrderBy _tplFilter
-              _tplPageToken
-              (Just _tplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/RemoveHealthCheck.hs b/gen/Network/Google/Resource/Compute/TargetPools/RemoveHealthCheck.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/RemoveHealthCheck.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck
--- 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)
---
--- Removes health check URL from a target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.removeHealthCheck@.
-module Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck
-    (
-    -- * REST Resource
-      TargetPoolsRemoveHealthCheckResource
-
-    -- * Creating a Request
-    , targetPoolsRemoveHealthCheck
-    , TargetPoolsRemoveHealthCheck
-
-    -- * Request Lenses
-    , tprhcRequestId
-    , tprhcProject
-    , tprhcTargetPool
-    , tprhcPayload
-    , tprhcRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.removeHealthCheck@ method which the
--- 'TargetPoolsRemoveHealthCheck' request conforms to.
-type TargetPoolsRemoveHealthCheckResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "removeHealthCheck" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] TargetPoolsRemoveHealthCheckRequest
-                             :> Post '[JSON] Operation
-
--- | Removes health check URL from a target pool.
---
--- /See:/ 'targetPoolsRemoveHealthCheck' smart constructor.
-data TargetPoolsRemoveHealthCheck =
-  TargetPoolsRemoveHealthCheck'
-    { _tprhcRequestId  :: !(Maybe Text)
-    , _tprhcProject    :: !Text
-    , _tprhcTargetPool :: !Text
-    , _tprhcPayload    :: !TargetPoolsRemoveHealthCheckRequest
-    , _tprhcRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsRemoveHealthCheck' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tprhcRequestId'
---
--- * 'tprhcProject'
---
--- * 'tprhcTargetPool'
---
--- * 'tprhcPayload'
---
--- * 'tprhcRegion'
-targetPoolsRemoveHealthCheck
-    :: Text -- ^ 'tprhcProject'
-    -> Text -- ^ 'tprhcTargetPool'
-    -> TargetPoolsRemoveHealthCheckRequest -- ^ 'tprhcPayload'
-    -> Text -- ^ 'tprhcRegion'
-    -> TargetPoolsRemoveHealthCheck
-targetPoolsRemoveHealthCheck pTprhcProject_ pTprhcTargetPool_ pTprhcPayload_ pTprhcRegion_ =
-  TargetPoolsRemoveHealthCheck'
-    { _tprhcRequestId = Nothing
-    , _tprhcProject = pTprhcProject_
-    , _tprhcTargetPool = pTprhcTargetPool_
-    , _tprhcPayload = pTprhcPayload_
-    , _tprhcRegion = pTprhcRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tprhcRequestId :: Lens' TargetPoolsRemoveHealthCheck (Maybe Text)
-tprhcRequestId
-  = lens _tprhcRequestId
-      (\ s a -> s{_tprhcRequestId = a})
-
--- | Project ID for this request.
-tprhcProject :: Lens' TargetPoolsRemoveHealthCheck Text
-tprhcProject
-  = lens _tprhcProject (\ s a -> s{_tprhcProject = a})
-
--- | Name of the target pool to remove health checks from.
-tprhcTargetPool :: Lens' TargetPoolsRemoveHealthCheck Text
-tprhcTargetPool
-  = lens _tprhcTargetPool
-      (\ s a -> s{_tprhcTargetPool = a})
-
--- | Multipart request metadata.
-tprhcPayload :: Lens' TargetPoolsRemoveHealthCheck TargetPoolsRemoveHealthCheckRequest
-tprhcPayload
-  = lens _tprhcPayload (\ s a -> s{_tprhcPayload = a})
-
--- | Name of the region for this request.
-tprhcRegion :: Lens' TargetPoolsRemoveHealthCheck Text
-tprhcRegion
-  = lens _tprhcRegion (\ s a -> s{_tprhcRegion = a})
-
-instance GoogleRequest TargetPoolsRemoveHealthCheck
-         where
-        type Rs TargetPoolsRemoveHealthCheck = Operation
-        type Scopes TargetPoolsRemoveHealthCheck =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsRemoveHealthCheck'{..}
-          = go _tprhcProject _tprhcRegion _tprhcTargetPool
-              _tprhcRequestId
-              (Just AltJSON)
-              _tprhcPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsRemoveHealthCheckResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/RemoveInstance.hs b/gen/Network/Google/Resource/Compute/TargetPools/RemoveInstance.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/RemoveInstance.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.RemoveInstance
--- 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)
---
--- Removes instance URL from a target pool.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.removeInstance@.
-module Network.Google.Resource.Compute.TargetPools.RemoveInstance
-    (
-    -- * REST Resource
-      TargetPoolsRemoveInstanceResource
-
-    -- * Creating a Request
-    , targetPoolsRemoveInstance
-    , TargetPoolsRemoveInstance
-
-    -- * Request Lenses
-    , tpriRequestId
-    , tpriProject
-    , tpriTargetPool
-    , tpriPayload
-    , tpriRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.removeInstance@ method which the
--- 'TargetPoolsRemoveInstance' request conforms to.
-type TargetPoolsRemoveInstanceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "removeInstance" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "alt" AltJSON :>
-                           ReqBody '[JSON] TargetPoolsRemoveInstanceRequest :>
-                             Post '[JSON] Operation
-
--- | Removes instance URL from a target pool.
---
--- /See:/ 'targetPoolsRemoveInstance' smart constructor.
-data TargetPoolsRemoveInstance =
-  TargetPoolsRemoveInstance'
-    { _tpriRequestId  :: !(Maybe Text)
-    , _tpriProject    :: !Text
-    , _tpriTargetPool :: !Text
-    , _tpriPayload    :: !TargetPoolsRemoveInstanceRequest
-    , _tpriRegion     :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsRemoveInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpriRequestId'
---
--- * 'tpriProject'
---
--- * 'tpriTargetPool'
---
--- * 'tpriPayload'
---
--- * 'tpriRegion'
-targetPoolsRemoveInstance
-    :: Text -- ^ 'tpriProject'
-    -> Text -- ^ 'tpriTargetPool'
-    -> TargetPoolsRemoveInstanceRequest -- ^ 'tpriPayload'
-    -> Text -- ^ 'tpriRegion'
-    -> TargetPoolsRemoveInstance
-targetPoolsRemoveInstance pTpriProject_ pTpriTargetPool_ pTpriPayload_ pTpriRegion_ =
-  TargetPoolsRemoveInstance'
-    { _tpriRequestId = Nothing
-    , _tpriProject = pTpriProject_
-    , _tpriTargetPool = pTpriTargetPool_
-    , _tpriPayload = pTpriPayload_
-    , _tpriRegion = pTpriRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpriRequestId :: Lens' TargetPoolsRemoveInstance (Maybe Text)
-tpriRequestId
-  = lens _tpriRequestId
-      (\ s a -> s{_tpriRequestId = a})
-
--- | Project ID for this request.
-tpriProject :: Lens' TargetPoolsRemoveInstance Text
-tpriProject
-  = lens _tpriProject (\ s a -> s{_tpriProject = a})
-
--- | Name of the TargetPool resource to remove instances from.
-tpriTargetPool :: Lens' TargetPoolsRemoveInstance Text
-tpriTargetPool
-  = lens _tpriTargetPool
-      (\ s a -> s{_tpriTargetPool = a})
-
--- | Multipart request metadata.
-tpriPayload :: Lens' TargetPoolsRemoveInstance TargetPoolsRemoveInstanceRequest
-tpriPayload
-  = lens _tpriPayload (\ s a -> s{_tpriPayload = a})
-
--- | Name of the region scoping this request.
-tpriRegion :: Lens' TargetPoolsRemoveInstance Text
-tpriRegion
-  = lens _tpriRegion (\ s a -> s{_tpriRegion = a})
-
-instance GoogleRequest TargetPoolsRemoveInstance
-         where
-        type Rs TargetPoolsRemoveInstance = Operation
-        type Scopes TargetPoolsRemoveInstance =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsRemoveInstance'{..}
-          = go _tpriProject _tpriRegion _tpriTargetPool
-              _tpriRequestId
-              (Just AltJSON)
-              _tpriPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsRemoveInstanceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetPools/SetBackup.hs b/gen/Network/Google/Resource/Compute/TargetPools/SetBackup.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetPools/SetBackup.hs
+++ /dev/null
@@ -1,170 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetPools.SetBackup
--- 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)
---
--- Changes a backup target pool\'s configurations.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetPools.setBackup@.
-module Network.Google.Resource.Compute.TargetPools.SetBackup
-    (
-    -- * REST Resource
-      TargetPoolsSetBackupResource
-
-    -- * Creating a Request
-    , targetPoolsSetBackup
-    , TargetPoolsSetBackup
-
-    -- * Request Lenses
-    , tpsbRequestId
-    , tpsbProject
-    , tpsbTargetPool
-    , tpsbPayload
-    , tpsbFailoverRatio
-    , tpsbRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetPools.setBackup@ method which the
--- 'TargetPoolsSetBackup' request conforms to.
-type TargetPoolsSetBackupResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetPools" :>
-                   Capture "targetPool" Text :>
-                     "setBackup" :>
-                       QueryParam "requestId" Text :>
-                         QueryParam "failoverRatio" (Textual Double) :>
-                           QueryParam "alt" AltJSON :>
-                             ReqBody '[JSON] TargetReference :>
-                               Post '[JSON] Operation
-
--- | Changes a backup target pool\'s configurations.
---
--- /See:/ 'targetPoolsSetBackup' smart constructor.
-data TargetPoolsSetBackup =
-  TargetPoolsSetBackup'
-    { _tpsbRequestId     :: !(Maybe Text)
-    , _tpsbProject       :: !Text
-    , _tpsbTargetPool    :: !Text
-    , _tpsbPayload       :: !TargetReference
-    , _tpsbFailoverRatio :: !(Maybe (Textual Double))
-    , _tpsbRegion        :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetPoolsSetBackup' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tpsbRequestId'
---
--- * 'tpsbProject'
---
--- * 'tpsbTargetPool'
---
--- * 'tpsbPayload'
---
--- * 'tpsbFailoverRatio'
---
--- * 'tpsbRegion'
-targetPoolsSetBackup
-    :: Text -- ^ 'tpsbProject'
-    -> Text -- ^ 'tpsbTargetPool'
-    -> TargetReference -- ^ 'tpsbPayload'
-    -> Text -- ^ 'tpsbRegion'
-    -> TargetPoolsSetBackup
-targetPoolsSetBackup pTpsbProject_ pTpsbTargetPool_ pTpsbPayload_ pTpsbRegion_ =
-  TargetPoolsSetBackup'
-    { _tpsbRequestId = Nothing
-    , _tpsbProject = pTpsbProject_
-    , _tpsbTargetPool = pTpsbTargetPool_
-    , _tpsbPayload = pTpsbPayload_
-    , _tpsbFailoverRatio = Nothing
-    , _tpsbRegion = pTpsbRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tpsbRequestId :: Lens' TargetPoolsSetBackup (Maybe Text)
-tpsbRequestId
-  = lens _tpsbRequestId
-      (\ s a -> s{_tpsbRequestId = a})
-
--- | Project ID for this request.
-tpsbProject :: Lens' TargetPoolsSetBackup Text
-tpsbProject
-  = lens _tpsbProject (\ s a -> s{_tpsbProject = a})
-
--- | Name of the TargetPool resource to set a backup pool for.
-tpsbTargetPool :: Lens' TargetPoolsSetBackup Text
-tpsbTargetPool
-  = lens _tpsbTargetPool
-      (\ s a -> s{_tpsbTargetPool = a})
-
--- | Multipart request metadata.
-tpsbPayload :: Lens' TargetPoolsSetBackup TargetReference
-tpsbPayload
-  = lens _tpsbPayload (\ s a -> s{_tpsbPayload = a})
-
--- | New failoverRatio value for the target pool.
-tpsbFailoverRatio :: Lens' TargetPoolsSetBackup (Maybe Double)
-tpsbFailoverRatio
-  = lens _tpsbFailoverRatio
-      (\ s a -> s{_tpsbFailoverRatio = a})
-      . mapping _Coerce
-
--- | Name of the region scoping this request.
-tpsbRegion :: Lens' TargetPoolsSetBackup Text
-tpsbRegion
-  = lens _tpsbRegion (\ s a -> s{_tpsbRegion = a})
-
-instance GoogleRequest TargetPoolsSetBackup where
-        type Rs TargetPoolsSetBackup = Operation
-        type Scopes TargetPoolsSetBackup =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetPoolsSetBackup'{..}
-          = go _tpsbProject _tpsbRegion _tpsbTargetPool
-              _tpsbRequestId
-              _tpsbFailoverRatio
-              (Just AltJSON)
-              _tpsbPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetPoolsSetBackupResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Delete.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Delete.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.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 TargetSslProxy resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.delete@.
-module Network.Google.Resource.Compute.TargetSSLProxies.Delete
-    (
-    -- * REST Resource
-      TargetSSLProxiesDeleteResource
-
-    -- * Creating a Request
-    , targetSSLProxiesDelete
-    , TargetSSLProxiesDelete
-
-    -- * Request Lenses
-    , tspdRequestId
-    , tspdProject
-    , tspdTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.delete@ method which the
--- 'TargetSSLProxiesDelete' request conforms to.
-type TargetSSLProxiesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified TargetSslProxy resource.
---
--- /See:/ 'targetSSLProxiesDelete' smart constructor.
-data TargetSSLProxiesDelete =
-  TargetSSLProxiesDelete'
-    { _tspdRequestId      :: !(Maybe Text)
-    , _tspdProject        :: !Text
-    , _tspdTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspdRequestId'
---
--- * 'tspdProject'
---
--- * 'tspdTargetSSLProxy'
-targetSSLProxiesDelete
-    :: Text -- ^ 'tspdProject'
-    -> Text -- ^ 'tspdTargetSSLProxy'
-    -> TargetSSLProxiesDelete
-targetSSLProxiesDelete pTspdProject_ pTspdTargetSSLProxy_ =
-  TargetSSLProxiesDelete'
-    { _tspdRequestId = Nothing
-    , _tspdProject = pTspdProject_
-    , _tspdTargetSSLProxy = pTspdTargetSSLProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspdRequestId :: Lens' TargetSSLProxiesDelete (Maybe Text)
-tspdRequestId
-  = lens _tspdRequestId
-      (\ s a -> s{_tspdRequestId = a})
-
--- | Project ID for this request.
-tspdProject :: Lens' TargetSSLProxiesDelete Text
-tspdProject
-  = lens _tspdProject (\ s a -> s{_tspdProject = a})
-
--- | Name of the TargetSslProxy resource to delete.
-tspdTargetSSLProxy :: Lens' TargetSSLProxiesDelete Text
-tspdTargetSSLProxy
-  = lens _tspdTargetSSLProxy
-      (\ s a -> s{_tspdTargetSSLProxy = a})
-
-instance GoogleRequest TargetSSLProxiesDelete where
-        type Rs TargetSSLProxiesDelete = Operation
-        type Scopes TargetSSLProxiesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesDelete'{..}
-          = go _tspdProject _tspdTargetSSLProxy _tspdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetSSLProxiesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Get.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.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)
---
--- Returns the specified TargetSslProxy resource. Gets a list of available
--- target SSL proxies by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.get@.
-module Network.Google.Resource.Compute.TargetSSLProxies.Get
-    (
-    -- * REST Resource
-      TargetSSLProxiesGetResource
-
-    -- * Creating a Request
-    , targetSSLProxiesGet
-    , TargetSSLProxiesGet
-
-    -- * Request Lenses
-    , tspgProject
-    , tspgTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.get@ method which the
--- 'TargetSSLProxiesGet' request conforms to.
-type TargetSSLProxiesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] TargetSSLProxy
-
--- | Returns the specified TargetSslProxy resource. Gets a list of available
--- target SSL proxies by making a list() request.
---
--- /See:/ 'targetSSLProxiesGet' smart constructor.
-data TargetSSLProxiesGet =
-  TargetSSLProxiesGet'
-    { _tspgProject        :: !Text
-    , _tspgTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspgProject'
---
--- * 'tspgTargetSSLProxy'
-targetSSLProxiesGet
-    :: Text -- ^ 'tspgProject'
-    -> Text -- ^ 'tspgTargetSSLProxy'
-    -> TargetSSLProxiesGet
-targetSSLProxiesGet pTspgProject_ pTspgTargetSSLProxy_ =
-  TargetSSLProxiesGet'
-    {_tspgProject = pTspgProject_, _tspgTargetSSLProxy = pTspgTargetSSLProxy_}
-
-
--- | Project ID for this request.
-tspgProject :: Lens' TargetSSLProxiesGet Text
-tspgProject
-  = lens _tspgProject (\ s a -> s{_tspgProject = a})
-
--- | Name of the TargetSslProxy resource to return.
-tspgTargetSSLProxy :: Lens' TargetSSLProxiesGet Text
-tspgTargetSSLProxy
-  = lens _tspgTargetSSLProxy
-      (\ s a -> s{_tspgTargetSSLProxy = a})
-
-instance GoogleRequest TargetSSLProxiesGet where
-        type Rs TargetSSLProxiesGet = TargetSSLProxy
-        type Scopes TargetSSLProxiesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetSSLProxiesGet'{..}
-          = go _tspgProject _tspgTargetSSLProxy (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetSSLProxiesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Insert.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/Insert.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.Insert
--- 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 TargetSslProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.insert@.
-module Network.Google.Resource.Compute.TargetSSLProxies.Insert
-    (
-    -- * REST Resource
-      TargetSSLProxiesInsertResource
-
-    -- * Creating a Request
-    , targetSSLProxiesInsert
-    , TargetSSLProxiesInsert
-
-    -- * Request Lenses
-    , tspiRequestId
-    , tspiProject
-    , tspiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.insert@ method which the
--- 'TargetSSLProxiesInsert' request conforms to.
-type TargetSSLProxiesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] TargetSSLProxy :>
-                       Post '[JSON] Operation
-
--- | Creates a TargetSslProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'targetSSLProxiesInsert' smart constructor.
-data TargetSSLProxiesInsert =
-  TargetSSLProxiesInsert'
-    { _tspiRequestId :: !(Maybe Text)
-    , _tspiProject   :: !Text
-    , _tspiPayload   :: !TargetSSLProxy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspiRequestId'
---
--- * 'tspiProject'
---
--- * 'tspiPayload'
-targetSSLProxiesInsert
-    :: Text -- ^ 'tspiProject'
-    -> TargetSSLProxy -- ^ 'tspiPayload'
-    -> TargetSSLProxiesInsert
-targetSSLProxiesInsert pTspiProject_ pTspiPayload_ =
-  TargetSSLProxiesInsert'
-    { _tspiRequestId = Nothing
-    , _tspiProject = pTspiProject_
-    , _tspiPayload = pTspiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspiRequestId :: Lens' TargetSSLProxiesInsert (Maybe Text)
-tspiRequestId
-  = lens _tspiRequestId
-      (\ s a -> s{_tspiRequestId = a})
-
--- | Project ID for this request.
-tspiProject :: Lens' TargetSSLProxiesInsert Text
-tspiProject
-  = lens _tspiProject (\ s a -> s{_tspiProject = a})
-
--- | Multipart request metadata.
-tspiPayload :: Lens' TargetSSLProxiesInsert TargetSSLProxy
-tspiPayload
-  = lens _tspiPayload (\ s a -> s{_tspiPayload = a})
-
-instance GoogleRequest TargetSSLProxiesInsert where
-        type Rs TargetSSLProxiesInsert = Operation
-        type Scopes TargetSSLProxiesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesInsert'{..}
-          = go _tspiProject _tspiRequestId (Just AltJSON)
-              _tspiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetSSLProxiesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/List.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.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)
---
--- Retrieves the list of TargetSslProxy resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.list@.
-module Network.Google.Resource.Compute.TargetSSLProxies.List
-    (
-    -- * REST Resource
-      TargetSSLProxiesListResource
-
-    -- * Creating a Request
-    , targetSSLProxiesList
-    , TargetSSLProxiesList
-
-    -- * Request Lenses
-    , tsplOrderBy
-    , tsplProject
-    , tsplFilter
-    , tsplPageToken
-    , tsplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.list@ method which the
--- 'TargetSSLProxiesList' request conforms to.
-type TargetSSLProxiesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetSSLProxyList
-
--- | Retrieves the list of TargetSslProxy resources available to the
--- specified project.
---
--- /See:/ 'targetSSLProxiesList' smart constructor.
-data TargetSSLProxiesList =
-  TargetSSLProxiesList'
-    { _tsplOrderBy    :: !(Maybe Text)
-    , _tsplProject    :: !Text
-    , _tsplFilter     :: !(Maybe Text)
-    , _tsplPageToken  :: !(Maybe Text)
-    , _tsplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tsplOrderBy'
---
--- * 'tsplProject'
---
--- * 'tsplFilter'
---
--- * 'tsplPageToken'
---
--- * 'tsplMaxResults'
-targetSSLProxiesList
-    :: Text -- ^ 'tsplProject'
-    -> TargetSSLProxiesList
-targetSSLProxiesList pTsplProject_ =
-  TargetSSLProxiesList'
-    { _tsplOrderBy = Nothing
-    , _tsplProject = pTsplProject_
-    , _tsplFilter = Nothing
-    , _tsplPageToken = Nothing
-    , _tsplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tsplOrderBy :: Lens' TargetSSLProxiesList (Maybe Text)
-tsplOrderBy
-  = lens _tsplOrderBy (\ s a -> s{_tsplOrderBy = a})
-
--- | Project ID for this request.
-tsplProject :: Lens' TargetSSLProxiesList Text
-tsplProject
-  = lens _tsplProject (\ s a -> s{_tsplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tsplFilter :: Lens' TargetSSLProxiesList (Maybe Text)
-tsplFilter
-  = lens _tsplFilter (\ s a -> s{_tsplFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tsplPageToken :: Lens' TargetSSLProxiesList (Maybe Text)
-tsplPageToken
-  = lens _tsplPageToken
-      (\ s a -> s{_tsplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tsplMaxResults :: Lens' TargetSSLProxiesList Word32
-tsplMaxResults
-  = lens _tsplMaxResults
-      (\ s a -> s{_tsplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetSSLProxiesList where
-        type Rs TargetSSLProxiesList = TargetSSLProxyList
-        type Scopes TargetSSLProxiesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetSSLProxiesList'{..}
-          = go _tsplProject _tsplOrderBy _tsplFilter
-              _tsplPageToken
-              (Just _tsplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetSSLProxiesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetBackendService.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetBackendService.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetBackendService.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.SetBackendService
--- 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)
---
--- Changes the BackendService for TargetSslProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.setBackendService@.
-module Network.Google.Resource.Compute.TargetSSLProxies.SetBackendService
-    (
-    -- * REST Resource
-      TargetSSLProxiesSetBackendServiceResource
-
-    -- * Creating a Request
-    , targetSSLProxiesSetBackendService
-    , TargetSSLProxiesSetBackendService
-
-    -- * Request Lenses
-    , tspsbsRequestId
-    , tspsbsProject
-    , tspsbsPayload
-    , tspsbsTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.setBackendService@ method which the
--- 'TargetSSLProxiesSetBackendService' request conforms to.
-type TargetSSLProxiesSetBackendServiceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   "setBackendService" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON]
-                           TargetSSLProxiesSetBackendServiceRequest
-                           :> Post '[JSON] Operation
-
--- | Changes the BackendService for TargetSslProxy.
---
--- /See:/ 'targetSSLProxiesSetBackendService' smart constructor.
-data TargetSSLProxiesSetBackendService =
-  TargetSSLProxiesSetBackendService'
-    { _tspsbsRequestId      :: !(Maybe Text)
-    , _tspsbsProject        :: !Text
-    , _tspsbsPayload        :: !TargetSSLProxiesSetBackendServiceRequest
-    , _tspsbsTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetBackendService' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsbsRequestId'
---
--- * 'tspsbsProject'
---
--- * 'tspsbsPayload'
---
--- * 'tspsbsTargetSSLProxy'
-targetSSLProxiesSetBackendService
-    :: Text -- ^ 'tspsbsProject'
-    -> TargetSSLProxiesSetBackendServiceRequest -- ^ 'tspsbsPayload'
-    -> Text -- ^ 'tspsbsTargetSSLProxy'
-    -> TargetSSLProxiesSetBackendService
-targetSSLProxiesSetBackendService pTspsbsProject_ pTspsbsPayload_ pTspsbsTargetSSLProxy_ =
-  TargetSSLProxiesSetBackendService'
-    { _tspsbsRequestId = Nothing
-    , _tspsbsProject = pTspsbsProject_
-    , _tspsbsPayload = pTspsbsPayload_
-    , _tspsbsTargetSSLProxy = pTspsbsTargetSSLProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspsbsRequestId :: Lens' TargetSSLProxiesSetBackendService (Maybe Text)
-tspsbsRequestId
-  = lens _tspsbsRequestId
-      (\ s a -> s{_tspsbsRequestId = a})
-
--- | Project ID for this request.
-tspsbsProject :: Lens' TargetSSLProxiesSetBackendService Text
-tspsbsProject
-  = lens _tspsbsProject
-      (\ s a -> s{_tspsbsProject = a})
-
--- | Multipart request metadata.
-tspsbsPayload :: Lens' TargetSSLProxiesSetBackendService TargetSSLProxiesSetBackendServiceRequest
-tspsbsPayload
-  = lens _tspsbsPayload
-      (\ s a -> s{_tspsbsPayload = a})
-
--- | Name of the TargetSslProxy resource whose BackendService resource is to
--- be set.
-tspsbsTargetSSLProxy :: Lens' TargetSSLProxiesSetBackendService Text
-tspsbsTargetSSLProxy
-  = lens _tspsbsTargetSSLProxy
-      (\ s a -> s{_tspsbsTargetSSLProxy = a})
-
-instance GoogleRequest
-           TargetSSLProxiesSetBackendService
-         where
-        type Rs TargetSSLProxiesSetBackendService = Operation
-        type Scopes TargetSSLProxiesSetBackendService =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesSetBackendService'{..}
-          = go _tspsbsProject _tspsbsTargetSSLProxy
-              _tspsbsRequestId
-              (Just AltJSON)
-              _tspsbsPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetSSLProxiesSetBackendServiceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetProxyHeader.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetProxyHeader.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetProxyHeader.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.SetProxyHeader
--- 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)
---
--- Changes the ProxyHeaderType for TargetSslProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.setProxyHeader@.
-module Network.Google.Resource.Compute.TargetSSLProxies.SetProxyHeader
-    (
-    -- * REST Resource
-      TargetSSLProxiesSetProxyHeaderResource
-
-    -- * Creating a Request
-    , targetSSLProxiesSetProxyHeader
-    , TargetSSLProxiesSetProxyHeader
-
-    -- * Request Lenses
-    , tspsphRequestId
-    , tspsphProject
-    , tspsphPayload
-    , tspsphTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.setProxyHeader@ method which the
--- 'TargetSSLProxiesSetProxyHeader' request conforms to.
-type TargetSSLProxiesSetProxyHeaderResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   "setProxyHeader" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TargetSSLProxiesSetProxyHeaderRequest
-                           :> Post '[JSON] Operation
-
--- | Changes the ProxyHeaderType for TargetSslProxy.
---
--- /See:/ 'targetSSLProxiesSetProxyHeader' smart constructor.
-data TargetSSLProxiesSetProxyHeader =
-  TargetSSLProxiesSetProxyHeader'
-    { _tspsphRequestId      :: !(Maybe Text)
-    , _tspsphProject        :: !Text
-    , _tspsphPayload        :: !TargetSSLProxiesSetProxyHeaderRequest
-    , _tspsphTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetProxyHeader' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsphRequestId'
---
--- * 'tspsphProject'
---
--- * 'tspsphPayload'
---
--- * 'tspsphTargetSSLProxy'
-targetSSLProxiesSetProxyHeader
-    :: Text -- ^ 'tspsphProject'
-    -> TargetSSLProxiesSetProxyHeaderRequest -- ^ 'tspsphPayload'
-    -> Text -- ^ 'tspsphTargetSSLProxy'
-    -> TargetSSLProxiesSetProxyHeader
-targetSSLProxiesSetProxyHeader pTspsphProject_ pTspsphPayload_ pTspsphTargetSSLProxy_ =
-  TargetSSLProxiesSetProxyHeader'
-    { _tspsphRequestId = Nothing
-    , _tspsphProject = pTspsphProject_
-    , _tspsphPayload = pTspsphPayload_
-    , _tspsphTargetSSLProxy = pTspsphTargetSSLProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspsphRequestId :: Lens' TargetSSLProxiesSetProxyHeader (Maybe Text)
-tspsphRequestId
-  = lens _tspsphRequestId
-      (\ s a -> s{_tspsphRequestId = a})
-
--- | Project ID for this request.
-tspsphProject :: Lens' TargetSSLProxiesSetProxyHeader Text
-tspsphProject
-  = lens _tspsphProject
-      (\ s a -> s{_tspsphProject = a})
-
--- | Multipart request metadata.
-tspsphPayload :: Lens' TargetSSLProxiesSetProxyHeader TargetSSLProxiesSetProxyHeaderRequest
-tspsphPayload
-  = lens _tspsphPayload
-      (\ s a -> s{_tspsphPayload = a})
-
--- | Name of the TargetSslProxy resource whose ProxyHeader is to be set.
-tspsphTargetSSLProxy :: Lens' TargetSSLProxiesSetProxyHeader Text
-tspsphTargetSSLProxy
-  = lens _tspsphTargetSSLProxy
-      (\ s a -> s{_tspsphTargetSSLProxy = a})
-
-instance GoogleRequest TargetSSLProxiesSetProxyHeader
-         where
-        type Rs TargetSSLProxiesSetProxyHeader = Operation
-        type Scopes TargetSSLProxiesSetProxyHeader =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesSetProxyHeader'{..}
-          = go _tspsphProject _tspsphTargetSSLProxy
-              _tspsphRequestId
-              (Just AltJSON)
-              _tspsphPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetSSLProxiesSetProxyHeaderResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLCertificates.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLCertificates.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLCertificates.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.SetSSLCertificates
--- 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)
---
--- Changes SslCertificates for TargetSslProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.setSslCertificates@.
-module Network.Google.Resource.Compute.TargetSSLProxies.SetSSLCertificates
-    (
-    -- * REST Resource
-      TargetSSLProxiesSetSSLCertificatesResource
-
-    -- * Creating a Request
-    , targetSSLProxiesSetSSLCertificates
-    , TargetSSLProxiesSetSSLCertificates
-
-    -- * Request Lenses
-    , tspsscRequestId
-    , tspsscProject
-    , tspsscPayload
-    , tspsscTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.setSslCertificates@ method which the
--- 'TargetSSLProxiesSetSSLCertificates' request conforms to.
-type TargetSSLProxiesSetSSLCertificatesResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   "setSslCertificates" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON]
-                           TargetSSLProxiesSetSSLCertificatesRequest
-                           :> Post '[JSON] Operation
-
--- | Changes SslCertificates for TargetSslProxy.
---
--- /See:/ 'targetSSLProxiesSetSSLCertificates' smart constructor.
-data TargetSSLProxiesSetSSLCertificates =
-  TargetSSLProxiesSetSSLCertificates'
-    { _tspsscRequestId      :: !(Maybe Text)
-    , _tspsscProject        :: !Text
-    , _tspsscPayload        :: !TargetSSLProxiesSetSSLCertificatesRequest
-    , _tspsscTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetSSLCertificates' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsscRequestId'
---
--- * 'tspsscProject'
---
--- * 'tspsscPayload'
---
--- * 'tspsscTargetSSLProxy'
-targetSSLProxiesSetSSLCertificates
-    :: Text -- ^ 'tspsscProject'
-    -> TargetSSLProxiesSetSSLCertificatesRequest -- ^ 'tspsscPayload'
-    -> Text -- ^ 'tspsscTargetSSLProxy'
-    -> TargetSSLProxiesSetSSLCertificates
-targetSSLProxiesSetSSLCertificates pTspsscProject_ pTspsscPayload_ pTspsscTargetSSLProxy_ =
-  TargetSSLProxiesSetSSLCertificates'
-    { _tspsscRequestId = Nothing
-    , _tspsscProject = pTspsscProject_
-    , _tspsscPayload = pTspsscPayload_
-    , _tspsscTargetSSLProxy = pTspsscTargetSSLProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspsscRequestId :: Lens' TargetSSLProxiesSetSSLCertificates (Maybe Text)
-tspsscRequestId
-  = lens _tspsscRequestId
-      (\ s a -> s{_tspsscRequestId = a})
-
--- | Project ID for this request.
-tspsscProject :: Lens' TargetSSLProxiesSetSSLCertificates Text
-tspsscProject
-  = lens _tspsscProject
-      (\ s a -> s{_tspsscProject = a})
-
--- | Multipart request metadata.
-tspsscPayload :: Lens' TargetSSLProxiesSetSSLCertificates TargetSSLProxiesSetSSLCertificatesRequest
-tspsscPayload
-  = lens _tspsscPayload
-      (\ s a -> s{_tspsscPayload = a})
-
--- | Name of the TargetSslProxy resource whose SslCertificate resource is to
--- be set.
-tspsscTargetSSLProxy :: Lens' TargetSSLProxiesSetSSLCertificates Text
-tspsscTargetSSLProxy
-  = lens _tspsscTargetSSLProxy
-      (\ s a -> s{_tspsscTargetSSLProxy = a})
-
-instance GoogleRequest
-           TargetSSLProxiesSetSSLCertificates
-         where
-        type Rs TargetSSLProxiesSetSSLCertificates =
-             Operation
-        type Scopes TargetSSLProxiesSetSSLCertificates =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesSetSSLCertificates'{..}
-          = go _tspsscProject _tspsscTargetSSLProxy
-              _tspsscRequestId
-              (Just AltJSON)
-              _tspsscPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetSSLProxiesSetSSLCertificatesResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLPolicy.hs b/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLPolicy.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetSSLProxies/SetSSLPolicy.hs
+++ /dev/null
@@ -1,154 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetSSLProxies.SetSSLPolicy
--- 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)
---
--- Sets the SSL policy for TargetSslProxy. The SSL policy specifies the
--- server-side support for SSL features. This affects connections between
--- clients and the SSL proxy load balancer. They do not affect the
--- connection between the load balancer and the backends.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetSslProxies.setSslPolicy@.
-module Network.Google.Resource.Compute.TargetSSLProxies.SetSSLPolicy
-    (
-    -- * REST Resource
-      TargetSSLProxiesSetSSLPolicyResource
-
-    -- * Creating a Request
-    , targetSSLProxiesSetSSLPolicy
-    , TargetSSLProxiesSetSSLPolicy
-
-    -- * Request Lenses
-    , tspsspRequestId
-    , tspsspProject
-    , tspsspPayload
-    , tspsspTargetSSLProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetSslProxies.setSslPolicy@ method which the
--- 'TargetSSLProxiesSetSSLPolicy' request conforms to.
-type TargetSSLProxiesSetSSLPolicyResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetSslProxies" :>
-                 Capture "targetSslProxy" Text :>
-                   "setSslPolicy" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] SSLPolicyReference :>
-                           Post '[JSON] Operation
-
--- | Sets the SSL policy for TargetSslProxy. The SSL policy specifies the
--- server-side support for SSL features. This affects connections between
--- clients and the SSL proxy load balancer. They do not affect the
--- connection between the load balancer and the backends.
---
--- /See:/ 'targetSSLProxiesSetSSLPolicy' smart constructor.
-data TargetSSLProxiesSetSSLPolicy =
-  TargetSSLProxiesSetSSLPolicy'
-    { _tspsspRequestId      :: !(Maybe Text)
-    , _tspsspProject        :: !Text
-    , _tspsspPayload        :: !SSLPolicyReference
-    , _tspsspTargetSSLProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetSSLProxiesSetSSLPolicy' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tspsspRequestId'
---
--- * 'tspsspProject'
---
--- * 'tspsspPayload'
---
--- * 'tspsspTargetSSLProxy'
-targetSSLProxiesSetSSLPolicy
-    :: Text -- ^ 'tspsspProject'
-    -> SSLPolicyReference -- ^ 'tspsspPayload'
-    -> Text -- ^ 'tspsspTargetSSLProxy'
-    -> TargetSSLProxiesSetSSLPolicy
-targetSSLProxiesSetSSLPolicy pTspsspProject_ pTspsspPayload_ pTspsspTargetSSLProxy_ =
-  TargetSSLProxiesSetSSLPolicy'
-    { _tspsspRequestId = Nothing
-    , _tspsspProject = pTspsspProject_
-    , _tspsspPayload = pTspsspPayload_
-    , _tspsspTargetSSLProxy = pTspsspTargetSSLProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tspsspRequestId :: Lens' TargetSSLProxiesSetSSLPolicy (Maybe Text)
-tspsspRequestId
-  = lens _tspsspRequestId
-      (\ s a -> s{_tspsspRequestId = a})
-
--- | Project ID for this request.
-tspsspProject :: Lens' TargetSSLProxiesSetSSLPolicy Text
-tspsspProject
-  = lens _tspsspProject
-      (\ s a -> s{_tspsspProject = a})
-
--- | Multipart request metadata.
-tspsspPayload :: Lens' TargetSSLProxiesSetSSLPolicy SSLPolicyReference
-tspsspPayload
-  = lens _tspsspPayload
-      (\ s a -> s{_tspsspPayload = a})
-
--- | Name of the TargetSslProxy resource whose SSL policy is to be set. The
--- name must be 1-63 characters long, and comply with RFC1035.
-tspsspTargetSSLProxy :: Lens' TargetSSLProxiesSetSSLPolicy Text
-tspsspTargetSSLProxy
-  = lens _tspsspTargetSSLProxy
-      (\ s a -> s{_tspsspTargetSSLProxy = a})
-
-instance GoogleRequest TargetSSLProxiesSetSSLPolicy
-         where
-        type Rs TargetSSLProxiesSetSSLPolicy = Operation
-        type Scopes TargetSSLProxiesSetSSLPolicy =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetSSLProxiesSetSSLPolicy'{..}
-          = go _tspsspProject _tspsspTargetSSLProxy
-              _tspsspRequestId
-              (Just AltJSON)
-              _tspsspPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetSSLProxiesSetSSLPolicyResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Delete.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Delete.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.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 TargetTcpProxy resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.delete@.
-module Network.Google.Resource.Compute.TargetTCPProxies.Delete
-    (
-    -- * REST Resource
-      TargetTCPProxiesDeleteResource
-
-    -- * Creating a Request
-    , targetTCPProxiesDelete
-    , TargetTCPProxiesDelete
-
-    -- * Request Lenses
-    , ttpdRequestId
-    , ttpdProject
-    , ttpdTargetTCPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.delete@ method which the
--- 'TargetTCPProxiesDelete' request conforms to.
-type TargetTCPProxiesDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 Capture "targetTcpProxy" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified TargetTcpProxy resource.
---
--- /See:/ 'targetTCPProxiesDelete' smart constructor.
-data TargetTCPProxiesDelete =
-  TargetTCPProxiesDelete'
-    { _ttpdRequestId      :: !(Maybe Text)
-    , _ttpdProject        :: !Text
-    , _ttpdTargetTCPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpdRequestId'
---
--- * 'ttpdProject'
---
--- * 'ttpdTargetTCPProxy'
-targetTCPProxiesDelete
-    :: Text -- ^ 'ttpdProject'
-    -> Text -- ^ 'ttpdTargetTCPProxy'
-    -> TargetTCPProxiesDelete
-targetTCPProxiesDelete pTtpdProject_ pTtpdTargetTCPProxy_ =
-  TargetTCPProxiesDelete'
-    { _ttpdRequestId = Nothing
-    , _ttpdProject = pTtpdProject_
-    , _ttpdTargetTCPProxy = pTtpdTargetTCPProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ttpdRequestId :: Lens' TargetTCPProxiesDelete (Maybe Text)
-ttpdRequestId
-  = lens _ttpdRequestId
-      (\ s a -> s{_ttpdRequestId = a})
-
--- | Project ID for this request.
-ttpdProject :: Lens' TargetTCPProxiesDelete Text
-ttpdProject
-  = lens _ttpdProject (\ s a -> s{_ttpdProject = a})
-
--- | Name of the TargetTcpProxy resource to delete.
-ttpdTargetTCPProxy :: Lens' TargetTCPProxiesDelete Text
-ttpdTargetTCPProxy
-  = lens _ttpdTargetTCPProxy
-      (\ s a -> s{_ttpdTargetTCPProxy = a})
-
-instance GoogleRequest TargetTCPProxiesDelete where
-        type Rs TargetTCPProxiesDelete = Operation
-        type Scopes TargetTCPProxiesDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetTCPProxiesDelete'{..}
-          = go _ttpdProject _ttpdTargetTCPProxy _ttpdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetTCPProxiesDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Get.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Get.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.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)
---
--- Returns the specified TargetTcpProxy resource. Gets a list of available
--- target TCP proxies by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.get@.
-module Network.Google.Resource.Compute.TargetTCPProxies.Get
-    (
-    -- * REST Resource
-      TargetTCPProxiesGetResource
-
-    -- * Creating a Request
-    , targetTCPProxiesGet
-    , TargetTCPProxiesGet
-
-    -- * Request Lenses
-    , ttpgProject
-    , ttpgTargetTCPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.get@ method which the
--- 'TargetTCPProxiesGet' request conforms to.
-type TargetTCPProxiesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 Capture "targetTcpProxy" Text :>
-                   QueryParam "alt" AltJSON :>
-                     Get '[JSON] TargetTCPProxy
-
--- | Returns the specified TargetTcpProxy resource. Gets a list of available
--- target TCP proxies by making a list() request.
---
--- /See:/ 'targetTCPProxiesGet' smart constructor.
-data TargetTCPProxiesGet =
-  TargetTCPProxiesGet'
-    { _ttpgProject        :: !Text
-    , _ttpgTargetTCPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpgProject'
---
--- * 'ttpgTargetTCPProxy'
-targetTCPProxiesGet
-    :: Text -- ^ 'ttpgProject'
-    -> Text -- ^ 'ttpgTargetTCPProxy'
-    -> TargetTCPProxiesGet
-targetTCPProxiesGet pTtpgProject_ pTtpgTargetTCPProxy_ =
-  TargetTCPProxiesGet'
-    {_ttpgProject = pTtpgProject_, _ttpgTargetTCPProxy = pTtpgTargetTCPProxy_}
-
-
--- | Project ID for this request.
-ttpgProject :: Lens' TargetTCPProxiesGet Text
-ttpgProject
-  = lens _ttpgProject (\ s a -> s{_ttpgProject = a})
-
--- | Name of the TargetTcpProxy resource to return.
-ttpgTargetTCPProxy :: Lens' TargetTCPProxiesGet Text
-ttpgTargetTCPProxy
-  = lens _ttpgTargetTCPProxy
-      (\ s a -> s{_ttpgTargetTCPProxy = a})
-
-instance GoogleRequest TargetTCPProxiesGet where
-        type Rs TargetTCPProxiesGet = TargetTCPProxy
-        type Scopes TargetTCPProxiesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetTCPProxiesGet'{..}
-          = go _ttpgProject _ttpgTargetTCPProxy (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetTCPProxiesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Insert.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/Insert.hs
+++ /dev/null
@@ -1,130 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.Insert
--- 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 TargetTcpProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.insert@.
-module Network.Google.Resource.Compute.TargetTCPProxies.Insert
-    (
-    -- * REST Resource
-      TargetTCPProxiesInsertResource
-
-    -- * Creating a Request
-    , targetTCPProxiesInsert
-    , TargetTCPProxiesInsert
-
-    -- * Request Lenses
-    , ttpiRequestId
-    , ttpiProject
-    , ttpiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.insert@ method which the
--- 'TargetTCPProxiesInsert' request conforms to.
-type TargetTCPProxiesInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] TargetTCPProxy :>
-                       Post '[JSON] Operation
-
--- | Creates a TargetTcpProxy resource in the specified project using the
--- data included in the request.
---
--- /See:/ 'targetTCPProxiesInsert' smart constructor.
-data TargetTCPProxiesInsert =
-  TargetTCPProxiesInsert'
-    { _ttpiRequestId :: !(Maybe Text)
-    , _ttpiProject   :: !Text
-    , _ttpiPayload   :: !TargetTCPProxy
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpiRequestId'
---
--- * 'ttpiProject'
---
--- * 'ttpiPayload'
-targetTCPProxiesInsert
-    :: Text -- ^ 'ttpiProject'
-    -> TargetTCPProxy -- ^ 'ttpiPayload'
-    -> TargetTCPProxiesInsert
-targetTCPProxiesInsert pTtpiProject_ pTtpiPayload_ =
-  TargetTCPProxiesInsert'
-    { _ttpiRequestId = Nothing
-    , _ttpiProject = pTtpiProject_
-    , _ttpiPayload = pTtpiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ttpiRequestId :: Lens' TargetTCPProxiesInsert (Maybe Text)
-ttpiRequestId
-  = lens _ttpiRequestId
-      (\ s a -> s{_ttpiRequestId = a})
-
--- | Project ID for this request.
-ttpiProject :: Lens' TargetTCPProxiesInsert Text
-ttpiProject
-  = lens _ttpiProject (\ s a -> s{_ttpiProject = a})
-
--- | Multipart request metadata.
-ttpiPayload :: Lens' TargetTCPProxiesInsert TargetTCPProxy
-ttpiPayload
-  = lens _ttpiPayload (\ s a -> s{_ttpiPayload = a})
-
-instance GoogleRequest TargetTCPProxiesInsert where
-        type Rs TargetTCPProxiesInsert = Operation
-        type Scopes TargetTCPProxiesInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetTCPProxiesInsert'{..}
-          = go _ttpiProject _ttpiRequestId (Just AltJSON)
-              _ttpiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetTCPProxiesInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/List.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/List.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.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)
---
--- Retrieves the list of TargetTcpProxy resources available to the
--- specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.list@.
-module Network.Google.Resource.Compute.TargetTCPProxies.List
-    (
-    -- * REST Resource
-      TargetTCPProxiesListResource
-
-    -- * Creating a Request
-    , targetTCPProxiesList
-    , TargetTCPProxiesList
-
-    -- * Request Lenses
-    , ttplOrderBy
-    , ttplProject
-    , ttplFilter
-    , ttplPageToken
-    , ttplMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.list@ method which the
--- 'TargetTCPProxiesList' request conforms to.
-type TargetTCPProxiesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetTCPProxyList
-
--- | Retrieves the list of TargetTcpProxy resources available to the
--- specified project.
---
--- /See:/ 'targetTCPProxiesList' smart constructor.
-data TargetTCPProxiesList =
-  TargetTCPProxiesList'
-    { _ttplOrderBy    :: !(Maybe Text)
-    , _ttplProject    :: !Text
-    , _ttplFilter     :: !(Maybe Text)
-    , _ttplPageToken  :: !(Maybe Text)
-    , _ttplMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttplOrderBy'
---
--- * 'ttplProject'
---
--- * 'ttplFilter'
---
--- * 'ttplPageToken'
---
--- * 'ttplMaxResults'
-targetTCPProxiesList
-    :: Text -- ^ 'ttplProject'
-    -> TargetTCPProxiesList
-targetTCPProxiesList pTtplProject_ =
-  TargetTCPProxiesList'
-    { _ttplOrderBy = Nothing
-    , _ttplProject = pTtplProject_
-    , _ttplFilter = Nothing
-    , _ttplPageToken = Nothing
-    , _ttplMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-ttplOrderBy :: Lens' TargetTCPProxiesList (Maybe Text)
-ttplOrderBy
-  = lens _ttplOrderBy (\ s a -> s{_ttplOrderBy = a})
-
--- | Project ID for this request.
-ttplProject :: Lens' TargetTCPProxiesList Text
-ttplProject
-  = lens _ttplProject (\ s a -> s{_ttplProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-ttplFilter :: Lens' TargetTCPProxiesList (Maybe Text)
-ttplFilter
-  = lens _ttplFilter (\ s a -> s{_ttplFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-ttplPageToken :: Lens' TargetTCPProxiesList (Maybe Text)
-ttplPageToken
-  = lens _ttplPageToken
-      (\ s a -> s{_ttplPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-ttplMaxResults :: Lens' TargetTCPProxiesList Word32
-ttplMaxResults
-  = lens _ttplMaxResults
-      (\ s a -> s{_ttplMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetTCPProxiesList where
-        type Rs TargetTCPProxiesList = TargetTCPProxyList
-        type Scopes TargetTCPProxiesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetTCPProxiesList'{..}
-          = go _ttplProject _ttplOrderBy _ttplFilter
-              _ttplPageToken
-              (Just _ttplMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetTCPProxiesListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetBackendService.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetBackendService.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetBackendService.hs
+++ /dev/null
@@ -1,151 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.SetBackendService
--- 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)
---
--- Changes the BackendService for TargetTcpProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.setBackendService@.
-module Network.Google.Resource.Compute.TargetTCPProxies.SetBackendService
-    (
-    -- * REST Resource
-      TargetTCPProxiesSetBackendServiceResource
-
-    -- * Creating a Request
-    , targetTCPProxiesSetBackendService
-    , TargetTCPProxiesSetBackendService
-
-    -- * Request Lenses
-    , ttpsbsRequestId
-    , ttpsbsProject
-    , ttpsbsPayload
-    , ttpsbsTargetTCPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.setBackendService@ method which the
--- 'TargetTCPProxiesSetBackendService' request conforms to.
-type TargetTCPProxiesSetBackendServiceResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 Capture "targetTcpProxy" Text :>
-                   "setBackendService" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON]
-                           TargetTCPProxiesSetBackendServiceRequest
-                           :> Post '[JSON] Operation
-
--- | Changes the BackendService for TargetTcpProxy.
---
--- /See:/ 'targetTCPProxiesSetBackendService' smart constructor.
-data TargetTCPProxiesSetBackendService =
-  TargetTCPProxiesSetBackendService'
-    { _ttpsbsRequestId      :: !(Maybe Text)
-    , _ttpsbsProject        :: !Text
-    , _ttpsbsPayload        :: !TargetTCPProxiesSetBackendServiceRequest
-    , _ttpsbsTargetTCPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesSetBackendService' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpsbsRequestId'
---
--- * 'ttpsbsProject'
---
--- * 'ttpsbsPayload'
---
--- * 'ttpsbsTargetTCPProxy'
-targetTCPProxiesSetBackendService
-    :: Text -- ^ 'ttpsbsProject'
-    -> TargetTCPProxiesSetBackendServiceRequest -- ^ 'ttpsbsPayload'
-    -> Text -- ^ 'ttpsbsTargetTCPProxy'
-    -> TargetTCPProxiesSetBackendService
-targetTCPProxiesSetBackendService pTtpsbsProject_ pTtpsbsPayload_ pTtpsbsTargetTCPProxy_ =
-  TargetTCPProxiesSetBackendService'
-    { _ttpsbsRequestId = Nothing
-    , _ttpsbsProject = pTtpsbsProject_
-    , _ttpsbsPayload = pTtpsbsPayload_
-    , _ttpsbsTargetTCPProxy = pTtpsbsTargetTCPProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ttpsbsRequestId :: Lens' TargetTCPProxiesSetBackendService (Maybe Text)
-ttpsbsRequestId
-  = lens _ttpsbsRequestId
-      (\ s a -> s{_ttpsbsRequestId = a})
-
--- | Project ID for this request.
-ttpsbsProject :: Lens' TargetTCPProxiesSetBackendService Text
-ttpsbsProject
-  = lens _ttpsbsProject
-      (\ s a -> s{_ttpsbsProject = a})
-
--- | Multipart request metadata.
-ttpsbsPayload :: Lens' TargetTCPProxiesSetBackendService TargetTCPProxiesSetBackendServiceRequest
-ttpsbsPayload
-  = lens _ttpsbsPayload
-      (\ s a -> s{_ttpsbsPayload = a})
-
--- | Name of the TargetTcpProxy resource whose BackendService resource is to
--- be set.
-ttpsbsTargetTCPProxy :: Lens' TargetTCPProxiesSetBackendService Text
-ttpsbsTargetTCPProxy
-  = lens _ttpsbsTargetTCPProxy
-      (\ s a -> s{_ttpsbsTargetTCPProxy = a})
-
-instance GoogleRequest
-           TargetTCPProxiesSetBackendService
-         where
-        type Rs TargetTCPProxiesSetBackendService = Operation
-        type Scopes TargetTCPProxiesSetBackendService =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetTCPProxiesSetBackendService'{..}
-          = go _ttpsbsProject _ttpsbsTargetTCPProxy
-              _ttpsbsRequestId
-              (Just AltJSON)
-              _ttpsbsPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetTCPProxiesSetBackendServiceResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetProxyHeader.hs b/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetProxyHeader.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetTCPProxies/SetProxyHeader.hs
+++ /dev/null
@@ -1,148 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetTCPProxies.SetProxyHeader
--- 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)
---
--- Changes the ProxyHeaderType for TargetTcpProxy.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetTcpProxies.setProxyHeader@.
-module Network.Google.Resource.Compute.TargetTCPProxies.SetProxyHeader
-    (
-    -- * REST Resource
-      TargetTCPProxiesSetProxyHeaderResource
-
-    -- * Creating a Request
-    , targetTCPProxiesSetProxyHeader
-    , TargetTCPProxiesSetProxyHeader
-
-    -- * Request Lenses
-    , ttpsphRequestId
-    , ttpsphProject
-    , ttpsphPayload
-    , ttpsphTargetTCPProxy
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetTcpProxies.setProxyHeader@ method which the
--- 'TargetTCPProxiesSetProxyHeader' request conforms to.
-type TargetTCPProxiesSetProxyHeaderResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "targetTcpProxies" :>
-                 Capture "targetTcpProxy" Text :>
-                   "setProxyHeader" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] TargetTCPProxiesSetProxyHeaderRequest
-                           :> Post '[JSON] Operation
-
--- | Changes the ProxyHeaderType for TargetTcpProxy.
---
--- /See:/ 'targetTCPProxiesSetProxyHeader' smart constructor.
-data TargetTCPProxiesSetProxyHeader =
-  TargetTCPProxiesSetProxyHeader'
-    { _ttpsphRequestId      :: !(Maybe Text)
-    , _ttpsphProject        :: !Text
-    , _ttpsphPayload        :: !TargetTCPProxiesSetProxyHeaderRequest
-    , _ttpsphTargetTCPProxy :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetTCPProxiesSetProxyHeader' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ttpsphRequestId'
---
--- * 'ttpsphProject'
---
--- * 'ttpsphPayload'
---
--- * 'ttpsphTargetTCPProxy'
-targetTCPProxiesSetProxyHeader
-    :: Text -- ^ 'ttpsphProject'
-    -> TargetTCPProxiesSetProxyHeaderRequest -- ^ 'ttpsphPayload'
-    -> Text -- ^ 'ttpsphTargetTCPProxy'
-    -> TargetTCPProxiesSetProxyHeader
-targetTCPProxiesSetProxyHeader pTtpsphProject_ pTtpsphPayload_ pTtpsphTargetTCPProxy_ =
-  TargetTCPProxiesSetProxyHeader'
-    { _ttpsphRequestId = Nothing
-    , _ttpsphProject = pTtpsphProject_
-    , _ttpsphPayload = pTtpsphPayload_
-    , _ttpsphTargetTCPProxy = pTtpsphTargetTCPProxy_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-ttpsphRequestId :: Lens' TargetTCPProxiesSetProxyHeader (Maybe Text)
-ttpsphRequestId
-  = lens _ttpsphRequestId
-      (\ s a -> s{_ttpsphRequestId = a})
-
--- | Project ID for this request.
-ttpsphProject :: Lens' TargetTCPProxiesSetProxyHeader Text
-ttpsphProject
-  = lens _ttpsphProject
-      (\ s a -> s{_ttpsphProject = a})
-
--- | Multipart request metadata.
-ttpsphPayload :: Lens' TargetTCPProxiesSetProxyHeader TargetTCPProxiesSetProxyHeaderRequest
-ttpsphPayload
-  = lens _ttpsphPayload
-      (\ s a -> s{_ttpsphPayload = a})
-
--- | Name of the TargetTcpProxy resource whose ProxyHeader is to be set.
-ttpsphTargetTCPProxy :: Lens' TargetTCPProxiesSetProxyHeader Text
-ttpsphTargetTCPProxy
-  = lens _ttpsphTargetTCPProxy
-      (\ s a -> s{_ttpsphTargetTCPProxy = a})
-
-instance GoogleRequest TargetTCPProxiesSetProxyHeader
-         where
-        type Rs TargetTCPProxiesSetProxyHeader = Operation
-        type Scopes TargetTCPProxiesSetProxyHeader =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetTCPProxiesSetProxyHeader'{..}
-          = go _ttpsphProject _ttpsphTargetTCPProxy
-              _ttpsphRequestId
-              (Just AltJSON)
-              _ttpsphPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetTCPProxiesSetProxyHeaderResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetVPNGateways/AggregatedList.hs b/gen/Network/Google/Resource/Compute/TargetVPNGateways/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetVPNGateways/AggregatedList.hs
+++ /dev/null
@@ -1,176 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of target VPN gateways.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.aggregatedList@.
-module Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList
-    (
-    -- * REST Resource
-      TargetVPNGatewaysAggregatedListResource
-
-    -- * Creating a Request
-    , targetVPNGatewaysAggregatedList
-    , TargetVPNGatewaysAggregatedList
-
-    -- * Request Lenses
-    , tvgalOrderBy
-    , tvgalProject
-    , tvgalFilter
-    , tvgalPageToken
-    , tvgalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetVpnGateways.aggregatedList@ method which the
--- 'TargetVPNGatewaysAggregatedList' request conforms to.
-type TargetVPNGatewaysAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "targetVpnGateways" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] TargetVPNGatewayAggregatedList
-
--- | Retrieves an aggregated list of target VPN gateways.
---
--- /See:/ 'targetVPNGatewaysAggregatedList' smart constructor.
-data TargetVPNGatewaysAggregatedList =
-  TargetVPNGatewaysAggregatedList'
-    { _tvgalOrderBy    :: !(Maybe Text)
-    , _tvgalProject    :: !Text
-    , _tvgalFilter     :: !(Maybe Text)
-    , _tvgalPageToken  :: !(Maybe Text)
-    , _tvgalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgalOrderBy'
---
--- * 'tvgalProject'
---
--- * 'tvgalFilter'
---
--- * 'tvgalPageToken'
---
--- * 'tvgalMaxResults'
-targetVPNGatewaysAggregatedList
-    :: Text -- ^ 'tvgalProject'
-    -> TargetVPNGatewaysAggregatedList
-targetVPNGatewaysAggregatedList pTvgalProject_ =
-  TargetVPNGatewaysAggregatedList'
-    { _tvgalOrderBy = Nothing
-    , _tvgalProject = pTvgalProject_
-    , _tvgalFilter = Nothing
-    , _tvgalPageToken = Nothing
-    , _tvgalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tvgalOrderBy :: Lens' TargetVPNGatewaysAggregatedList (Maybe Text)
-tvgalOrderBy
-  = lens _tvgalOrderBy (\ s a -> s{_tvgalOrderBy = a})
-
--- | Project ID for this request.
-tvgalProject :: Lens' TargetVPNGatewaysAggregatedList Text
-tvgalProject
-  = lens _tvgalProject (\ s a -> s{_tvgalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tvgalFilter :: Lens' TargetVPNGatewaysAggregatedList (Maybe Text)
-tvgalFilter
-  = lens _tvgalFilter (\ s a -> s{_tvgalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tvgalPageToken :: Lens' TargetVPNGatewaysAggregatedList (Maybe Text)
-tvgalPageToken
-  = lens _tvgalPageToken
-      (\ s a -> s{_tvgalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tvgalMaxResults :: Lens' TargetVPNGatewaysAggregatedList Word32
-tvgalMaxResults
-  = lens _tvgalMaxResults
-      (\ s a -> s{_tvgalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest
-           TargetVPNGatewaysAggregatedList
-         where
-        type Rs TargetVPNGatewaysAggregatedList =
-             TargetVPNGatewayAggregatedList
-        type Scopes TargetVPNGatewaysAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetVPNGatewaysAggregatedList'{..}
-          = go _tvgalProject _tvgalOrderBy _tvgalFilter
-              _tvgalPageToken
-              (Just _tvgalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy ::
-                         Proxy TargetVPNGatewaysAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Delete.hs b/gen/Network/Google/Resource/Compute/TargetVPNGateways/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Delete.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetVPNGateways.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 target VPN gateway.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.delete@.
-module Network.Google.Resource.Compute.TargetVPNGateways.Delete
-    (
-    -- * REST Resource
-      TargetVPNGatewaysDeleteResource
-
-    -- * Creating a Request
-    , targetVPNGatewaysDelete
-    , TargetVPNGatewaysDelete
-
-    -- * Request Lenses
-    , tvgdRequestId
-    , tvgdProject
-    , tvgdTargetVPNGateway
-    , tvgdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetVpnGateways.delete@ method which the
--- 'TargetVPNGatewaysDelete' request conforms to.
-type TargetVPNGatewaysDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetVpnGateways" :>
-                   Capture "targetVpnGateway" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified target VPN gateway.
---
--- /See:/ 'targetVPNGatewaysDelete' smart constructor.
-data TargetVPNGatewaysDelete =
-  TargetVPNGatewaysDelete'
-    { _tvgdRequestId        :: !(Maybe Text)
-    , _tvgdProject          :: !Text
-    , _tvgdTargetVPNGateway :: !Text
-    , _tvgdRegion           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgdRequestId'
---
--- * 'tvgdProject'
---
--- * 'tvgdTargetVPNGateway'
---
--- * 'tvgdRegion'
-targetVPNGatewaysDelete
-    :: Text -- ^ 'tvgdProject'
-    -> Text -- ^ 'tvgdTargetVPNGateway'
-    -> Text -- ^ 'tvgdRegion'
-    -> TargetVPNGatewaysDelete
-targetVPNGatewaysDelete pTvgdProject_ pTvgdTargetVPNGateway_ pTvgdRegion_ =
-  TargetVPNGatewaysDelete'
-    { _tvgdRequestId = Nothing
-    , _tvgdProject = pTvgdProject_
-    , _tvgdTargetVPNGateway = pTvgdTargetVPNGateway_
-    , _tvgdRegion = pTvgdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tvgdRequestId :: Lens' TargetVPNGatewaysDelete (Maybe Text)
-tvgdRequestId
-  = lens _tvgdRequestId
-      (\ s a -> s{_tvgdRequestId = a})
-
--- | Project ID for this request.
-tvgdProject :: Lens' TargetVPNGatewaysDelete Text
-tvgdProject
-  = lens _tvgdProject (\ s a -> s{_tvgdProject = a})
-
--- | Name of the target VPN gateway to delete.
-tvgdTargetVPNGateway :: Lens' TargetVPNGatewaysDelete Text
-tvgdTargetVPNGateway
-  = lens _tvgdTargetVPNGateway
-      (\ s a -> s{_tvgdTargetVPNGateway = a})
-
--- | Name of the region for this request.
-tvgdRegion :: Lens' TargetVPNGatewaysDelete Text
-tvgdRegion
-  = lens _tvgdRegion (\ s a -> s{_tvgdRegion = a})
-
-instance GoogleRequest TargetVPNGatewaysDelete where
-        type Rs TargetVPNGatewaysDelete = Operation
-        type Scopes TargetVPNGatewaysDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetVPNGatewaysDelete'{..}
-          = go _tvgdProject _tvgdRegion _tvgdTargetVPNGateway
-              _tvgdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetVPNGatewaysDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Get.hs b/gen/Network/Google/Resource/Compute/TargetVPNGateways/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Get.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetVPNGateways.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)
---
--- Returns the specified target VPN gateway. Gets a list of available
--- target VPN gateways by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.get@.
-module Network.Google.Resource.Compute.TargetVPNGateways.Get
-    (
-    -- * REST Resource
-      TargetVPNGatewaysGetResource
-
-    -- * Creating a Request
-    , targetVPNGatewaysGet
-    , TargetVPNGatewaysGet
-
-    -- * Request Lenses
-    , tvggProject
-    , tvggTargetVPNGateway
-    , tvggRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetVpnGateways.get@ method which the
--- 'TargetVPNGatewaysGet' request conforms to.
-type TargetVPNGatewaysGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetVpnGateways" :>
-                   Capture "targetVpnGateway" Text :>
-                     QueryParam "alt" AltJSON :>
-                       Get '[JSON] TargetVPNGateway
-
--- | Returns the specified target VPN gateway. Gets a list of available
--- target VPN gateways by making a list() request.
---
--- /See:/ 'targetVPNGatewaysGet' smart constructor.
-data TargetVPNGatewaysGet =
-  TargetVPNGatewaysGet'
-    { _tvggProject          :: !Text
-    , _tvggTargetVPNGateway :: !Text
-    , _tvggRegion           :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvggProject'
---
--- * 'tvggTargetVPNGateway'
---
--- * 'tvggRegion'
-targetVPNGatewaysGet
-    :: Text -- ^ 'tvggProject'
-    -> Text -- ^ 'tvggTargetVPNGateway'
-    -> Text -- ^ 'tvggRegion'
-    -> TargetVPNGatewaysGet
-targetVPNGatewaysGet pTvggProject_ pTvggTargetVPNGateway_ pTvggRegion_ =
-  TargetVPNGatewaysGet'
-    { _tvggProject = pTvggProject_
-    , _tvggTargetVPNGateway = pTvggTargetVPNGateway_
-    , _tvggRegion = pTvggRegion_
-    }
-
-
--- | Project ID for this request.
-tvggProject :: Lens' TargetVPNGatewaysGet Text
-tvggProject
-  = lens _tvggProject (\ s a -> s{_tvggProject = a})
-
--- | Name of the target VPN gateway to return.
-tvggTargetVPNGateway :: Lens' TargetVPNGatewaysGet Text
-tvggTargetVPNGateway
-  = lens _tvggTargetVPNGateway
-      (\ s a -> s{_tvggTargetVPNGateway = a})
-
--- | Name of the region for this request.
-tvggRegion :: Lens' TargetVPNGatewaysGet Text
-tvggRegion
-  = lens _tvggRegion (\ s a -> s{_tvggRegion = a})
-
-instance GoogleRequest TargetVPNGatewaysGet where
-        type Rs TargetVPNGatewaysGet = TargetVPNGateway
-        type Scopes TargetVPNGatewaysGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetVPNGatewaysGet'{..}
-          = go _tvggProject _tvggRegion _tvggTargetVPNGateway
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetVPNGatewaysGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Insert.hs b/gen/Network/Google/Resource/Compute/TargetVPNGateways/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetVPNGateways/Insert.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetVPNGateways.Insert
--- 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 target VPN gateway in the specified project and region using
--- the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.insert@.
-module Network.Google.Resource.Compute.TargetVPNGateways.Insert
-    (
-    -- * REST Resource
-      TargetVPNGatewaysInsertResource
-
-    -- * Creating a Request
-    , targetVPNGatewaysInsert
-    , TargetVPNGatewaysInsert
-
-    -- * Request Lenses
-    , tvgiRequestId
-    , tvgiProject
-    , tvgiPayload
-    , tvgiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetVpnGateways.insert@ method which the
--- 'TargetVPNGatewaysInsert' request conforms to.
-type TargetVPNGatewaysInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetVpnGateways" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] TargetVPNGateway :>
-                         Post '[JSON] Operation
-
--- | Creates a target VPN gateway in the specified project and region using
--- the data included in the request.
---
--- /See:/ 'targetVPNGatewaysInsert' smart constructor.
-data TargetVPNGatewaysInsert =
-  TargetVPNGatewaysInsert'
-    { _tvgiRequestId :: !(Maybe Text)
-    , _tvgiProject   :: !Text
-    , _tvgiPayload   :: !TargetVPNGateway
-    , _tvgiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvgiRequestId'
---
--- * 'tvgiProject'
---
--- * 'tvgiPayload'
---
--- * 'tvgiRegion'
-targetVPNGatewaysInsert
-    :: Text -- ^ 'tvgiProject'
-    -> TargetVPNGateway -- ^ 'tvgiPayload'
-    -> Text -- ^ 'tvgiRegion'
-    -> TargetVPNGatewaysInsert
-targetVPNGatewaysInsert pTvgiProject_ pTvgiPayload_ pTvgiRegion_ =
-  TargetVPNGatewaysInsert'
-    { _tvgiRequestId = Nothing
-    , _tvgiProject = pTvgiProject_
-    , _tvgiPayload = pTvgiPayload_
-    , _tvgiRegion = pTvgiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-tvgiRequestId :: Lens' TargetVPNGatewaysInsert (Maybe Text)
-tvgiRequestId
-  = lens _tvgiRequestId
-      (\ s a -> s{_tvgiRequestId = a})
-
--- | Project ID for this request.
-tvgiProject :: Lens' TargetVPNGatewaysInsert Text
-tvgiProject
-  = lens _tvgiProject (\ s a -> s{_tvgiProject = a})
-
--- | Multipart request metadata.
-tvgiPayload :: Lens' TargetVPNGatewaysInsert TargetVPNGateway
-tvgiPayload
-  = lens _tvgiPayload (\ s a -> s{_tvgiPayload = a})
-
--- | Name of the region for this request.
-tvgiRegion :: Lens' TargetVPNGatewaysInsert Text
-tvgiRegion
-  = lens _tvgiRegion (\ s a -> s{_tvgiRegion = a})
-
-instance GoogleRequest TargetVPNGatewaysInsert where
-        type Rs TargetVPNGatewaysInsert = Operation
-        type Scopes TargetVPNGatewaysInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient TargetVPNGatewaysInsert'{..}
-          = go _tvgiProject _tvgiRegion _tvgiRequestId
-              (Just AltJSON)
-              _tvgiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetVPNGatewaysInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/TargetVPNGateways/List.hs b/gen/Network/Google/Resource/Compute/TargetVPNGateways/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/TargetVPNGateways/List.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.TargetVPNGateways.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)
---
--- Retrieves a list of target VPN gateways available to the specified
--- project and region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.targetVpnGateways.list@.
-module Network.Google.Resource.Compute.TargetVPNGateways.List
-    (
-    -- * REST Resource
-      TargetVPNGatewaysListResource
-
-    -- * Creating a Request
-    , targetVPNGatewaysList
-    , TargetVPNGatewaysList
-
-    -- * Request Lenses
-    , tvglOrderBy
-    , tvglProject
-    , tvglFilter
-    , tvglRegion
-    , tvglPageToken
-    , tvglMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.targetVpnGateways.list@ method which the
--- 'TargetVPNGatewaysList' request conforms to.
-type TargetVPNGatewaysListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "targetVpnGateways" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :>
-                             Get '[JSON] TargetVPNGatewayList
-
--- | Retrieves a list of target VPN gateways available to the specified
--- project and region.
---
--- /See:/ 'targetVPNGatewaysList' smart constructor.
-data TargetVPNGatewaysList =
-  TargetVPNGatewaysList'
-    { _tvglOrderBy    :: !(Maybe Text)
-    , _tvglProject    :: !Text
-    , _tvglFilter     :: !(Maybe Text)
-    , _tvglRegion     :: !Text
-    , _tvglPageToken  :: !(Maybe Text)
-    , _tvglMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'TargetVPNGatewaysList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'tvglOrderBy'
---
--- * 'tvglProject'
---
--- * 'tvglFilter'
---
--- * 'tvglRegion'
---
--- * 'tvglPageToken'
---
--- * 'tvglMaxResults'
-targetVPNGatewaysList
-    :: Text -- ^ 'tvglProject'
-    -> Text -- ^ 'tvglRegion'
-    -> TargetVPNGatewaysList
-targetVPNGatewaysList pTvglProject_ pTvglRegion_ =
-  TargetVPNGatewaysList'
-    { _tvglOrderBy = Nothing
-    , _tvglProject = pTvglProject_
-    , _tvglFilter = Nothing
-    , _tvglRegion = pTvglRegion_
-    , _tvglPageToken = Nothing
-    , _tvglMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-tvglOrderBy :: Lens' TargetVPNGatewaysList (Maybe Text)
-tvglOrderBy
-  = lens _tvglOrderBy (\ s a -> s{_tvglOrderBy = a})
-
--- | Project ID for this request.
-tvglProject :: Lens' TargetVPNGatewaysList Text
-tvglProject
-  = lens _tvglProject (\ s a -> s{_tvglProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-tvglFilter :: Lens' TargetVPNGatewaysList (Maybe Text)
-tvglFilter
-  = lens _tvglFilter (\ s a -> s{_tvglFilter = a})
-
--- | Name of the region for this request.
-tvglRegion :: Lens' TargetVPNGatewaysList Text
-tvglRegion
-  = lens _tvglRegion (\ s a -> s{_tvglRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-tvglPageToken :: Lens' TargetVPNGatewaysList (Maybe Text)
-tvglPageToken
-  = lens _tvglPageToken
-      (\ s a -> s{_tvglPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-tvglMaxResults :: Lens' TargetVPNGatewaysList Word32
-tvglMaxResults
-  = lens _tvglMaxResults
-      (\ s a -> s{_tvglMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest TargetVPNGatewaysList where
-        type Rs TargetVPNGatewaysList = TargetVPNGatewayList
-        type Scopes TargetVPNGatewaysList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient TargetVPNGatewaysList'{..}
-          = go _tvglProject _tvglRegion _tvglOrderBy
-              _tvglFilter
-              _tvglPageToken
-              (Just _tvglMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy TargetVPNGatewaysListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Delete.hs b/gen/Network/Google/Resource/Compute/URLMaps/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Delete.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.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 UrlMap resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.delete@.
-module Network.Google.Resource.Compute.URLMaps.Delete
-    (
-    -- * REST Resource
-      URLMapsDeleteResource
-
-    -- * Creating a Request
-    , urlMapsDelete
-    , URLMapsDelete
-
-    -- * Request Lenses
-    , umdRequestId
-    , umdURLMap
-    , umdProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.delete@ method which the
--- 'URLMapsDelete' request conforms to.
-type URLMapsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified UrlMap resource.
---
--- /See:/ 'urlMapsDelete' smart constructor.
-data URLMapsDelete =
-  URLMapsDelete'
-    { _umdRequestId :: !(Maybe Text)
-    , _umdURLMap    :: !Text
-    , _umdProject   :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umdRequestId'
---
--- * 'umdURLMap'
---
--- * 'umdProject'
-urlMapsDelete
-    :: Text -- ^ 'umdURLMap'
-    -> Text -- ^ 'umdProject'
-    -> URLMapsDelete
-urlMapsDelete pUmdURLMap_ pUmdProject_ =
-  URLMapsDelete'
-    { _umdRequestId = Nothing
-    , _umdURLMap = pUmdURLMap_
-    , _umdProject = pUmdProject_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-umdRequestId :: Lens' URLMapsDelete (Maybe Text)
-umdRequestId
-  = lens _umdRequestId (\ s a -> s{_umdRequestId = a})
-
--- | Name of the UrlMap resource to delete.
-umdURLMap :: Lens' URLMapsDelete Text
-umdURLMap
-  = lens _umdURLMap (\ s a -> s{_umdURLMap = a})
-
--- | Project ID for this request.
-umdProject :: Lens' URLMapsDelete Text
-umdProject
-  = lens _umdProject (\ s a -> s{_umdProject = a})
-
-instance GoogleRequest URLMapsDelete where
-        type Rs URLMapsDelete = Operation
-        type Scopes URLMapsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsDelete'{..}
-          = go _umdProject _umdURLMap _umdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Get.hs b/gen/Network/Google/Resource/Compute/URLMaps/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Get.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.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)
---
--- Returns the specified UrlMap resource. Gets a list of available URL maps
--- by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.get@.
-module Network.Google.Resource.Compute.URLMaps.Get
-    (
-    -- * REST Resource
-      URLMapsGetResource
-
-    -- * Creating a Request
-    , urlMapsGet
-    , URLMapsGet
-
-    -- * Request Lenses
-    , umgURLMap
-    , umgProject
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.get@ method which the
--- 'URLMapsGet' request conforms to.
-type URLMapsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   QueryParam "alt" AltJSON :> Get '[JSON] URLMap
-
--- | Returns the specified UrlMap resource. Gets a list of available URL maps
--- by making a list() request.
---
--- /See:/ 'urlMapsGet' smart constructor.
-data URLMapsGet =
-  URLMapsGet'
-    { _umgURLMap  :: !Text
-    , _umgProject :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umgURLMap'
---
--- * 'umgProject'
-urlMapsGet
-    :: Text -- ^ 'umgURLMap'
-    -> Text -- ^ 'umgProject'
-    -> URLMapsGet
-urlMapsGet pUmgURLMap_ pUmgProject_ =
-  URLMapsGet' {_umgURLMap = pUmgURLMap_, _umgProject = pUmgProject_}
-
-
--- | Name of the UrlMap resource to return.
-umgURLMap :: Lens' URLMapsGet Text
-umgURLMap
-  = lens _umgURLMap (\ s a -> s{_umgURLMap = a})
-
--- | Project ID for this request.
-umgProject :: Lens' URLMapsGet Text
-umgProject
-  = lens _umgProject (\ s a -> s{_umgProject = a})
-
-instance GoogleRequest URLMapsGet where
-        type Rs URLMapsGet = URLMap
-        type Scopes URLMapsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient URLMapsGet'{..}
-          = go _umgProject _umgURLMap (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Insert.hs b/gen/Network/Google/Resource/Compute/URLMaps/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Insert.hs
+++ /dev/null
@@ -1,127 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.Insert
--- 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 UrlMap resource in the specified project using the data
--- included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.insert@.
-module Network.Google.Resource.Compute.URLMaps.Insert
-    (
-    -- * REST Resource
-      URLMapsInsertResource
-
-    -- * Creating a Request
-    , urlMapsInsert
-    , URLMapsInsert
-
-    -- * Request Lenses
-    , umiRequestId
-    , umiProject
-    , umiPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.insert@ method which the
--- 'URLMapsInsert' request conforms to.
-type URLMapsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 QueryParam "requestId" Text :>
-                   QueryParam "alt" AltJSON :>
-                     ReqBody '[JSON] URLMap :> Post '[JSON] Operation
-
--- | Creates a UrlMap resource in the specified project using the data
--- included in the request.
---
--- /See:/ 'urlMapsInsert' smart constructor.
-data URLMapsInsert =
-  URLMapsInsert'
-    { _umiRequestId :: !(Maybe Text)
-    , _umiProject   :: !Text
-    , _umiPayload   :: !URLMap
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umiRequestId'
---
--- * 'umiProject'
---
--- * 'umiPayload'
-urlMapsInsert
-    :: Text -- ^ 'umiProject'
-    -> URLMap -- ^ 'umiPayload'
-    -> URLMapsInsert
-urlMapsInsert pUmiProject_ pUmiPayload_ =
-  URLMapsInsert'
-    { _umiRequestId = Nothing
-    , _umiProject = pUmiProject_
-    , _umiPayload = pUmiPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-umiRequestId :: Lens' URLMapsInsert (Maybe Text)
-umiRequestId
-  = lens _umiRequestId (\ s a -> s{_umiRequestId = a})
-
--- | Project ID for this request.
-umiProject :: Lens' URLMapsInsert Text
-umiProject
-  = lens _umiProject (\ s a -> s{_umiProject = a})
-
--- | Multipart request metadata.
-umiPayload :: Lens' URLMapsInsert URLMap
-umiPayload
-  = lens _umiPayload (\ s a -> s{_umiPayload = a})
-
-instance GoogleRequest URLMapsInsert where
-        type Rs URLMapsInsert = Operation
-        type Scopes URLMapsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsInsert'{..}
-          = go _umiProject _umiRequestId (Just AltJSON)
-              _umiPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/InvalidateCache.hs b/gen/Network/Google/Resource/Compute/URLMaps/InvalidateCache.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/InvalidateCache.hs
+++ /dev/null
@@ -1,144 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.InvalidateCache
--- 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)
---
--- Initiates a cache invalidation operation, invalidating the specified
--- path, scoped to the specified UrlMap.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.invalidateCache@.
-module Network.Google.Resource.Compute.URLMaps.InvalidateCache
-    (
-    -- * REST Resource
-      URLMapsInvalidateCacheResource
-
-    -- * Creating a Request
-    , urlMapsInvalidateCache
-    , URLMapsInvalidateCache
-
-    -- * Request Lenses
-    , umicRequestId
-    , umicURLMap
-    , umicProject
-    , umicPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.invalidateCache@ method which the
--- 'URLMapsInvalidateCache' request conforms to.
-type URLMapsInvalidateCacheResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   "invalidateCache" :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :>
-                         ReqBody '[JSON] CacheInvalidationRule :>
-                           Post '[JSON] Operation
-
--- | Initiates a cache invalidation operation, invalidating the specified
--- path, scoped to the specified UrlMap.
---
--- /See:/ 'urlMapsInvalidateCache' smart constructor.
-data URLMapsInvalidateCache =
-  URLMapsInvalidateCache'
-    { _umicRequestId :: !(Maybe Text)
-    , _umicURLMap    :: !Text
-    , _umicProject   :: !Text
-    , _umicPayload   :: !CacheInvalidationRule
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsInvalidateCache' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umicRequestId'
---
--- * 'umicURLMap'
---
--- * 'umicProject'
---
--- * 'umicPayload'
-urlMapsInvalidateCache
-    :: Text -- ^ 'umicURLMap'
-    -> Text -- ^ 'umicProject'
-    -> CacheInvalidationRule -- ^ 'umicPayload'
-    -> URLMapsInvalidateCache
-urlMapsInvalidateCache pUmicURLMap_ pUmicProject_ pUmicPayload_ =
-  URLMapsInvalidateCache'
-    { _umicRequestId = Nothing
-    , _umicURLMap = pUmicURLMap_
-    , _umicProject = pUmicProject_
-    , _umicPayload = pUmicPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-umicRequestId :: Lens' URLMapsInvalidateCache (Maybe Text)
-umicRequestId
-  = lens _umicRequestId
-      (\ s a -> s{_umicRequestId = a})
-
--- | Name of the UrlMap scoping this request.
-umicURLMap :: Lens' URLMapsInvalidateCache Text
-umicURLMap
-  = lens _umicURLMap (\ s a -> s{_umicURLMap = a})
-
--- | Project ID for this request.
-umicProject :: Lens' URLMapsInvalidateCache Text
-umicProject
-  = lens _umicProject (\ s a -> s{_umicProject = a})
-
--- | Multipart request metadata.
-umicPayload :: Lens' URLMapsInvalidateCache CacheInvalidationRule
-umicPayload
-  = lens _umicPayload (\ s a -> s{_umicPayload = a})
-
-instance GoogleRequest URLMapsInvalidateCache where
-        type Rs URLMapsInvalidateCache = Operation
-        type Scopes URLMapsInvalidateCache =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsInvalidateCache'{..}
-          = go _umicProject _umicURLMap _umicRequestId
-              (Just AltJSON)
-              _umicPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy URLMapsInvalidateCacheResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/List.hs b/gen/Network/Google/Resource/Compute/URLMaps/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/List.hs
+++ /dev/null
@@ -1,170 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.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)
---
--- Retrieves the list of UrlMap resources available to the specified
--- project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.list@.
-module Network.Google.Resource.Compute.URLMaps.List
-    (
-    -- * REST Resource
-      URLMapsListResource
-
-    -- * Creating a Request
-    , urlMapsList
-    , URLMapsList
-
-    -- * Request Lenses
-    , umlOrderBy
-    , umlProject
-    , umlFilter
-    , umlPageToken
-    , umlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.list@ method which the
--- 'URLMapsList' request conforms to.
-type URLMapsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :> Get '[JSON] URLMapList
-
--- | Retrieves the list of UrlMap resources available to the specified
--- project.
---
--- /See:/ 'urlMapsList' smart constructor.
-data URLMapsList =
-  URLMapsList'
-    { _umlOrderBy    :: !(Maybe Text)
-    , _umlProject    :: !Text
-    , _umlFilter     :: !(Maybe Text)
-    , _umlPageToken  :: !(Maybe Text)
-    , _umlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umlOrderBy'
---
--- * 'umlProject'
---
--- * 'umlFilter'
---
--- * 'umlPageToken'
---
--- * 'umlMaxResults'
-urlMapsList
-    :: Text -- ^ 'umlProject'
-    -> URLMapsList
-urlMapsList pUmlProject_ =
-  URLMapsList'
-    { _umlOrderBy = Nothing
-    , _umlProject = pUmlProject_
-    , _umlFilter = Nothing
-    , _umlPageToken = Nothing
-    , _umlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-umlOrderBy :: Lens' URLMapsList (Maybe Text)
-umlOrderBy
-  = lens _umlOrderBy (\ s a -> s{_umlOrderBy = a})
-
--- | Project ID for this request.
-umlProject :: Lens' URLMapsList Text
-umlProject
-  = lens _umlProject (\ s a -> s{_umlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-umlFilter :: Lens' URLMapsList (Maybe Text)
-umlFilter
-  = lens _umlFilter (\ s a -> s{_umlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-umlPageToken :: Lens' URLMapsList (Maybe Text)
-umlPageToken
-  = lens _umlPageToken (\ s a -> s{_umlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-umlMaxResults :: Lens' URLMapsList Word32
-umlMaxResults
-  = lens _umlMaxResults
-      (\ s a -> s{_umlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest URLMapsList where
-        type Rs URLMapsList = URLMapList
-        type Scopes URLMapsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient URLMapsList'{..}
-          = go _umlProject _umlOrderBy _umlFilter _umlPageToken
-              (Just _umlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Patch.hs b/gen/Network/Google/Resource/Compute/URLMaps/Patch.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Patch.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.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)
---
--- Patches the specified UrlMap resource with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.patch@.
-module Network.Google.Resource.Compute.URLMaps.Patch
-    (
-    -- * REST Resource
-      URLMapsPatchResource
-
-    -- * Creating a Request
-    , urlMapsPatch
-    , URLMapsPatch
-
-    -- * Request Lenses
-    , umpRequestId
-    , umpURLMap
-    , umpProject
-    , umpPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.patch@ method which the
--- 'URLMapsPatch' request conforms to.
-type URLMapsPatchResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] URLMap :> Patch '[JSON] Operation
-
--- | Patches the specified UrlMap resource with the data included in the
--- request. This method supports PATCH semantics and uses the JSON merge
--- patch format and processing rules.
---
--- /See:/ 'urlMapsPatch' smart constructor.
-data URLMapsPatch =
-  URLMapsPatch'
-    { _umpRequestId :: !(Maybe Text)
-    , _umpURLMap    :: !Text
-    , _umpProject   :: !Text
-    , _umpPayload   :: !URLMap
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsPatch' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umpRequestId'
---
--- * 'umpURLMap'
---
--- * 'umpProject'
---
--- * 'umpPayload'
-urlMapsPatch
-    :: Text -- ^ 'umpURLMap'
-    -> Text -- ^ 'umpProject'
-    -> URLMap -- ^ 'umpPayload'
-    -> URLMapsPatch
-urlMapsPatch pUmpURLMap_ pUmpProject_ pUmpPayload_ =
-  URLMapsPatch'
-    { _umpRequestId = Nothing
-    , _umpURLMap = pUmpURLMap_
-    , _umpProject = pUmpProject_
-    , _umpPayload = pUmpPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-umpRequestId :: Lens' URLMapsPatch (Maybe Text)
-umpRequestId
-  = lens _umpRequestId (\ s a -> s{_umpRequestId = a})
-
--- | Name of the UrlMap resource to patch.
-umpURLMap :: Lens' URLMapsPatch Text
-umpURLMap
-  = lens _umpURLMap (\ s a -> s{_umpURLMap = a})
-
--- | Project ID for this request.
-umpProject :: Lens' URLMapsPatch Text
-umpProject
-  = lens _umpProject (\ s a -> s{_umpProject = a})
-
--- | Multipart request metadata.
-umpPayload :: Lens' URLMapsPatch URLMap
-umpPayload
-  = lens _umpPayload (\ s a -> s{_umpPayload = a})
-
-instance GoogleRequest URLMapsPatch where
-        type Rs URLMapsPatch = Operation
-        type Scopes URLMapsPatch =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsPatch'{..}
-          = go _umpProject _umpURLMap _umpRequestId
-              (Just AltJSON)
-              _umpPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsPatchResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Update.hs b/gen/Network/Google/Resource/Compute/URLMaps/Update.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Update.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.Update
--- 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 UrlMap resource with the data included in the
--- request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.update@.
-module Network.Google.Resource.Compute.URLMaps.Update
-    (
-    -- * REST Resource
-      URLMapsUpdateResource
-
-    -- * Creating a Request
-    , urlMapsUpdate
-    , URLMapsUpdate
-
-    -- * Request Lenses
-    , umuRequestId
-    , umuURLMap
-    , umuProject
-    , umuPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.update@ method which the
--- 'URLMapsUpdate' request conforms to.
-type URLMapsUpdateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] URLMap :> Put '[JSON] Operation
-
--- | Updates the specified UrlMap resource with the data included in the
--- request.
---
--- /See:/ 'urlMapsUpdate' smart constructor.
-data URLMapsUpdate =
-  URLMapsUpdate'
-    { _umuRequestId :: !(Maybe Text)
-    , _umuURLMap    :: !Text
-    , _umuProject   :: !Text
-    , _umuPayload   :: !URLMap
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsUpdate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umuRequestId'
---
--- * 'umuURLMap'
---
--- * 'umuProject'
---
--- * 'umuPayload'
-urlMapsUpdate
-    :: Text -- ^ 'umuURLMap'
-    -> Text -- ^ 'umuProject'
-    -> URLMap -- ^ 'umuPayload'
-    -> URLMapsUpdate
-urlMapsUpdate pUmuURLMap_ pUmuProject_ pUmuPayload_ =
-  URLMapsUpdate'
-    { _umuRequestId = Nothing
-    , _umuURLMap = pUmuURLMap_
-    , _umuProject = pUmuProject_
-    , _umuPayload = pUmuPayload_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-umuRequestId :: Lens' URLMapsUpdate (Maybe Text)
-umuRequestId
-  = lens _umuRequestId (\ s a -> s{_umuRequestId = a})
-
--- | Name of the UrlMap resource to update.
-umuURLMap :: Lens' URLMapsUpdate Text
-umuURLMap
-  = lens _umuURLMap (\ s a -> s{_umuURLMap = a})
-
--- | Project ID for this request.
-umuProject :: Lens' URLMapsUpdate Text
-umuProject
-  = lens _umuProject (\ s a -> s{_umuProject = a})
-
--- | Multipart request metadata.
-umuPayload :: Lens' URLMapsUpdate URLMap
-umuPayload
-  = lens _umuPayload (\ s a -> s{_umuPayload = a})
-
-instance GoogleRequest URLMapsUpdate where
-        type Rs URLMapsUpdate = Operation
-        type Scopes URLMapsUpdate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsUpdate'{..}
-          = go _umuProject _umuURLMap _umuRequestId
-              (Just AltJSON)
-              _umuPayload
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy URLMapsUpdateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/URLMaps/Validate.hs b/gen/Network/Google/Resource/Compute/URLMaps/Validate.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/URLMaps/Validate.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.URLMaps.Validate
--- 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)
---
--- Runs static validation for the UrlMap. In particular, the tests of the
--- provided UrlMap will be run. Calling this method does NOT create the
--- UrlMap.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.urlMaps.validate@.
-module Network.Google.Resource.Compute.URLMaps.Validate
-    (
-    -- * REST Resource
-      URLMapsValidateResource
-
-    -- * Creating a Request
-    , urlMapsValidate
-    , URLMapsValidate
-
-    -- * Request Lenses
-    , umvURLMap
-    , umvProject
-    , umvPayload
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.urlMaps.validate@ method which the
--- 'URLMapsValidate' request conforms to.
-type URLMapsValidateResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "global" :>
-               "urlMaps" :>
-                 Capture "urlMap" Text :>
-                   "validate" :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] URLMapsValidateRequest :>
-                         Post '[JSON] URLMapsValidateResponse
-
--- | Runs static validation for the UrlMap. In particular, the tests of the
--- provided UrlMap will be run. Calling this method does NOT create the
--- UrlMap.
---
--- /See:/ 'urlMapsValidate' smart constructor.
-data URLMapsValidate =
-  URLMapsValidate'
-    { _umvURLMap  :: !Text
-    , _umvProject :: !Text
-    , _umvPayload :: !URLMapsValidateRequest
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'URLMapsValidate' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'umvURLMap'
---
--- * 'umvProject'
---
--- * 'umvPayload'
-urlMapsValidate
-    :: Text -- ^ 'umvURLMap'
-    -> Text -- ^ 'umvProject'
-    -> URLMapsValidateRequest -- ^ 'umvPayload'
-    -> URLMapsValidate
-urlMapsValidate pUmvURLMap_ pUmvProject_ pUmvPayload_ =
-  URLMapsValidate'
-    { _umvURLMap = pUmvURLMap_
-    , _umvProject = pUmvProject_
-    , _umvPayload = pUmvPayload_
-    }
-
-
--- | Name of the UrlMap resource to be validated as.
-umvURLMap :: Lens' URLMapsValidate Text
-umvURLMap
-  = lens _umvURLMap (\ s a -> s{_umvURLMap = a})
-
--- | Project ID for this request.
-umvProject :: Lens' URLMapsValidate Text
-umvProject
-  = lens _umvProject (\ s a -> s{_umvProject = a})
-
--- | Multipart request metadata.
-umvPayload :: Lens' URLMapsValidate URLMapsValidateRequest
-umvPayload
-  = lens _umvPayload (\ s a -> s{_umvPayload = a})
-
-instance GoogleRequest URLMapsValidate where
-        type Rs URLMapsValidate = URLMapsValidateResponse
-        type Scopes URLMapsValidate =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient URLMapsValidate'{..}
-          = go _umvProject _umvURLMap (Just AltJSON)
-              _umvPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy URLMapsValidateResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/VPNTunnels/AggregatedList.hs b/gen/Network/Google/Resource/Compute/VPNTunnels/AggregatedList.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/VPNTunnels/AggregatedList.hs
+++ /dev/null
@@ -1,173 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.VPNTunnels.AggregatedList
--- 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)
---
--- Retrieves an aggregated list of VPN tunnels.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.aggregatedList@.
-module Network.Google.Resource.Compute.VPNTunnels.AggregatedList
-    (
-    -- * REST Resource
-      VPNTunnelsAggregatedListResource
-
-    -- * Creating a Request
-    , vpnTunnelsAggregatedList
-    , VPNTunnelsAggregatedList
-
-    -- * Request Lenses
-    , vtalOrderBy
-    , vtalProject
-    , vtalFilter
-    , vtalPageToken
-    , vtalMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.vpnTunnels.aggregatedList@ method which the
--- 'VPNTunnelsAggregatedList' request conforms to.
-type VPNTunnelsAggregatedListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "aggregated" :>
-               "vpnTunnels" :>
-                 QueryParam "orderBy" Text :>
-                   QueryParam "filter" Text :>
-                     QueryParam "pageToken" Text :>
-                       QueryParam "maxResults" (Textual Word32) :>
-                         QueryParam "alt" AltJSON :>
-                           Get '[JSON] VPNTunnelAggregatedList
-
--- | Retrieves an aggregated list of VPN tunnels.
---
--- /See:/ 'vpnTunnelsAggregatedList' smart constructor.
-data VPNTunnelsAggregatedList =
-  VPNTunnelsAggregatedList'
-    { _vtalOrderBy    :: !(Maybe Text)
-    , _vtalProject    :: !Text
-    , _vtalFilter     :: !(Maybe Text)
-    , _vtalPageToken  :: !(Maybe Text)
-    , _vtalMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsAggregatedList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtalOrderBy'
---
--- * 'vtalProject'
---
--- * 'vtalFilter'
---
--- * 'vtalPageToken'
---
--- * 'vtalMaxResults'
-vpnTunnelsAggregatedList
-    :: Text -- ^ 'vtalProject'
-    -> VPNTunnelsAggregatedList
-vpnTunnelsAggregatedList pVtalProject_ =
-  VPNTunnelsAggregatedList'
-    { _vtalOrderBy = Nothing
-    , _vtalProject = pVtalProject_
-    , _vtalFilter = Nothing
-    , _vtalPageToken = Nothing
-    , _vtalMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-vtalOrderBy :: Lens' VPNTunnelsAggregatedList (Maybe Text)
-vtalOrderBy
-  = lens _vtalOrderBy (\ s a -> s{_vtalOrderBy = a})
-
--- | Project ID for this request.
-vtalProject :: Lens' VPNTunnelsAggregatedList Text
-vtalProject
-  = lens _vtalProject (\ s a -> s{_vtalProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-vtalFilter :: Lens' VPNTunnelsAggregatedList (Maybe Text)
-vtalFilter
-  = lens _vtalFilter (\ s a -> s{_vtalFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-vtalPageToken :: Lens' VPNTunnelsAggregatedList (Maybe Text)
-vtalPageToken
-  = lens _vtalPageToken
-      (\ s a -> s{_vtalPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-vtalMaxResults :: Lens' VPNTunnelsAggregatedList Word32
-vtalMaxResults
-  = lens _vtalMaxResults
-      (\ s a -> s{_vtalMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest VPNTunnelsAggregatedList where
-        type Rs VPNTunnelsAggregatedList =
-             VPNTunnelAggregatedList
-        type Scopes VPNTunnelsAggregatedList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient VPNTunnelsAggregatedList'{..}
-          = go _vtalProject _vtalOrderBy _vtalFilter
-              _vtalPageToken
-              (Just _vtalMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy VPNTunnelsAggregatedListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/VPNTunnels/Delete.hs b/gen/Network/Google/Resource/Compute/VPNTunnels/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/VPNTunnels/Delete.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.VPNTunnels.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 VpnTunnel resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.delete@.
-module Network.Google.Resource.Compute.VPNTunnels.Delete
-    (
-    -- * REST Resource
-      VPNTunnelsDeleteResource
-
-    -- * Creating a Request
-    , vpnTunnelsDelete
-    , VPNTunnelsDelete
-
-    -- * Request Lenses
-    , vtdRequestId
-    , vtdProject
-    , vtdVPNTunnel
-    , vtdRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.vpnTunnels.delete@ method which the
--- 'VPNTunnelsDelete' request conforms to.
-type VPNTunnelsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "vpnTunnels" :>
-                   Capture "vpnTunnel" Text :>
-                     QueryParam "requestId" Text :>
-                       QueryParam "alt" AltJSON :> Delete '[JSON] Operation
-
--- | Deletes the specified VpnTunnel resource.
---
--- /See:/ 'vpnTunnelsDelete' smart constructor.
-data VPNTunnelsDelete =
-  VPNTunnelsDelete'
-    { _vtdRequestId :: !(Maybe Text)
-    , _vtdProject   :: !Text
-    , _vtdVPNTunnel :: !Text
-    , _vtdRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtdRequestId'
---
--- * 'vtdProject'
---
--- * 'vtdVPNTunnel'
---
--- * 'vtdRegion'
-vpnTunnelsDelete
-    :: Text -- ^ 'vtdProject'
-    -> Text -- ^ 'vtdVPNTunnel'
-    -> Text -- ^ 'vtdRegion'
-    -> VPNTunnelsDelete
-vpnTunnelsDelete pVtdProject_ pVtdVPNTunnel_ pVtdRegion_ =
-  VPNTunnelsDelete'
-    { _vtdRequestId = Nothing
-    , _vtdProject = pVtdProject_
-    , _vtdVPNTunnel = pVtdVPNTunnel_
-    , _vtdRegion = pVtdRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-vtdRequestId :: Lens' VPNTunnelsDelete (Maybe Text)
-vtdRequestId
-  = lens _vtdRequestId (\ s a -> s{_vtdRequestId = a})
-
--- | Project ID for this request.
-vtdProject :: Lens' VPNTunnelsDelete Text
-vtdProject
-  = lens _vtdProject (\ s a -> s{_vtdProject = a})
-
--- | Name of the VpnTunnel resource to delete.
-vtdVPNTunnel :: Lens' VPNTunnelsDelete Text
-vtdVPNTunnel
-  = lens _vtdVPNTunnel (\ s a -> s{_vtdVPNTunnel = a})
-
--- | Name of the region for this request.
-vtdRegion :: Lens' VPNTunnelsDelete Text
-vtdRegion
-  = lens _vtdRegion (\ s a -> s{_vtdRegion = a})
-
-instance GoogleRequest VPNTunnelsDelete where
-        type Rs VPNTunnelsDelete = Operation
-        type Scopes VPNTunnelsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient VPNTunnelsDelete'{..}
-          = go _vtdProject _vtdRegion _vtdVPNTunnel
-              _vtdRequestId
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy VPNTunnelsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/VPNTunnels/Get.hs b/gen/Network/Google/Resource/Compute/VPNTunnels/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/VPNTunnels/Get.hs
+++ /dev/null
@@ -1,120 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.VPNTunnels.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)
---
--- Returns the specified VpnTunnel resource. Gets a list of available VPN
--- tunnels by making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.get@.
-module Network.Google.Resource.Compute.VPNTunnels.Get
-    (
-    -- * REST Resource
-      VPNTunnelsGetResource
-
-    -- * Creating a Request
-    , vpnTunnelsGet
-    , VPNTunnelsGet
-
-    -- * Request Lenses
-    , vtgProject
-    , vtgVPNTunnel
-    , vtgRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.vpnTunnels.get@ method which the
--- 'VPNTunnelsGet' request conforms to.
-type VPNTunnelsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "vpnTunnels" :>
-                   Capture "vpnTunnel" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] VPNTunnel
-
--- | Returns the specified VpnTunnel resource. Gets a list of available VPN
--- tunnels by making a list() request.
---
--- /See:/ 'vpnTunnelsGet' smart constructor.
-data VPNTunnelsGet =
-  VPNTunnelsGet'
-    { _vtgProject   :: !Text
-    , _vtgVPNTunnel :: !Text
-    , _vtgRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtgProject'
---
--- * 'vtgVPNTunnel'
---
--- * 'vtgRegion'
-vpnTunnelsGet
-    :: Text -- ^ 'vtgProject'
-    -> Text -- ^ 'vtgVPNTunnel'
-    -> Text -- ^ 'vtgRegion'
-    -> VPNTunnelsGet
-vpnTunnelsGet pVtgProject_ pVtgVPNTunnel_ pVtgRegion_ =
-  VPNTunnelsGet'
-    { _vtgProject = pVtgProject_
-    , _vtgVPNTunnel = pVtgVPNTunnel_
-    , _vtgRegion = pVtgRegion_
-    }
-
-
--- | Project ID for this request.
-vtgProject :: Lens' VPNTunnelsGet Text
-vtgProject
-  = lens _vtgProject (\ s a -> s{_vtgProject = a})
-
--- | Name of the VpnTunnel resource to return.
-vtgVPNTunnel :: Lens' VPNTunnelsGet Text
-vtgVPNTunnel
-  = lens _vtgVPNTunnel (\ s a -> s{_vtgVPNTunnel = a})
-
--- | Name of the region for this request.
-vtgRegion :: Lens' VPNTunnelsGet Text
-vtgRegion
-  = lens _vtgRegion (\ s a -> s{_vtgRegion = a})
-
-instance GoogleRequest VPNTunnelsGet where
-        type Rs VPNTunnelsGet = VPNTunnel
-        type Scopes VPNTunnelsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient VPNTunnelsGet'{..}
-          = go _vtgProject _vtgRegion _vtgVPNTunnel
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy VPNTunnelsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/VPNTunnels/Insert.hs b/gen/Network/Google/Resource/Compute/VPNTunnels/Insert.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/VPNTunnels/Insert.hs
+++ /dev/null
@@ -1,141 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.VPNTunnels.Insert
--- 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 VpnTunnel resource in the specified project and region using
--- the data included in the request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.insert@.
-module Network.Google.Resource.Compute.VPNTunnels.Insert
-    (
-    -- * REST Resource
-      VPNTunnelsInsertResource
-
-    -- * Creating a Request
-    , vpnTunnelsInsert
-    , VPNTunnelsInsert
-
-    -- * Request Lenses
-    , vtiRequestId
-    , vtiProject
-    , vtiPayload
-    , vtiRegion
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.vpnTunnels.insert@ method which the
--- 'VPNTunnelsInsert' request conforms to.
-type VPNTunnelsInsertResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "vpnTunnels" :>
-                   QueryParam "requestId" Text :>
-                     QueryParam "alt" AltJSON :>
-                       ReqBody '[JSON] VPNTunnel :> Post '[JSON] Operation
-
--- | Creates a VpnTunnel resource in the specified project and region using
--- the data included in the request.
---
--- /See:/ 'vpnTunnelsInsert' smart constructor.
-data VPNTunnelsInsert =
-  VPNTunnelsInsert'
-    { _vtiRequestId :: !(Maybe Text)
-    , _vtiProject   :: !Text
-    , _vtiPayload   :: !VPNTunnel
-    , _vtiRegion    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsInsert' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtiRequestId'
---
--- * 'vtiProject'
---
--- * 'vtiPayload'
---
--- * 'vtiRegion'
-vpnTunnelsInsert
-    :: Text -- ^ 'vtiProject'
-    -> VPNTunnel -- ^ 'vtiPayload'
-    -> Text -- ^ 'vtiRegion'
-    -> VPNTunnelsInsert
-vpnTunnelsInsert pVtiProject_ pVtiPayload_ pVtiRegion_ =
-  VPNTunnelsInsert'
-    { _vtiRequestId = Nothing
-    , _vtiProject = pVtiProject_
-    , _vtiPayload = pVtiPayload_
-    , _vtiRegion = pVtiRegion_
-    }
-
-
--- | An optional request ID to identify requests. Specify a unique request ID
--- so that if you must retry your request, the server will know to ignore
--- the request if it has already been completed. For example, consider a
--- situation where you make an initial request and the request times out.
--- If you make the request again with the same request ID, the server can
--- check if original operation with the same request ID was received, and
--- if so, will ignore the second request. This prevents clients from
--- accidentally creating duplicate commitments. The request ID must be a
--- valid UUID with the exception that zero UUID is not supported
--- (00000000-0000-0000-0000-000000000000).
-vtiRequestId :: Lens' VPNTunnelsInsert (Maybe Text)
-vtiRequestId
-  = lens _vtiRequestId (\ s a -> s{_vtiRequestId = a})
-
--- | Project ID for this request.
-vtiProject :: Lens' VPNTunnelsInsert Text
-vtiProject
-  = lens _vtiProject (\ s a -> s{_vtiProject = a})
-
--- | Multipart request metadata.
-vtiPayload :: Lens' VPNTunnelsInsert VPNTunnel
-vtiPayload
-  = lens _vtiPayload (\ s a -> s{_vtiPayload = a})
-
--- | Name of the region for this request.
-vtiRegion :: Lens' VPNTunnelsInsert Text
-vtiRegion
-  = lens _vtiRegion (\ s a -> s{_vtiRegion = a})
-
-instance GoogleRequest VPNTunnelsInsert where
-        type Rs VPNTunnelsInsert = Operation
-        type Scopes VPNTunnelsInsert =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient VPNTunnelsInsert'{..}
-          = go _vtiProject _vtiRegion _vtiRequestId
-              (Just AltJSON)
-              _vtiPayload
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy VPNTunnelsInsertResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/VPNTunnels/List.hs b/gen/Network/Google/Resource/Compute/VPNTunnels/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/VPNTunnels/List.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.VPNTunnels.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)
---
--- Retrieves a list of VpnTunnel resources contained in the specified
--- project and region.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.vpnTunnels.list@.
-module Network.Google.Resource.Compute.VPNTunnels.List
-    (
-    -- * REST Resource
-      VPNTunnelsListResource
-
-    -- * Creating a Request
-    , vpnTunnelsList
-    , VPNTunnelsList
-
-    -- * Request Lenses
-    , vtlOrderBy
-    , vtlProject
-    , vtlFilter
-    , vtlRegion
-    , vtlPageToken
-    , vtlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.vpnTunnels.list@ method which the
--- 'VPNTunnelsList' request conforms to.
-type VPNTunnelsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "regions" :>
-               Capture "region" Text :>
-                 "vpnTunnels" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] VPNTunnelList
-
--- | Retrieves a list of VpnTunnel resources contained in the specified
--- project and region.
---
--- /See:/ 'vpnTunnelsList' smart constructor.
-data VPNTunnelsList =
-  VPNTunnelsList'
-    { _vtlOrderBy    :: !(Maybe Text)
-    , _vtlProject    :: !Text
-    , _vtlFilter     :: !(Maybe Text)
-    , _vtlRegion     :: !Text
-    , _vtlPageToken  :: !(Maybe Text)
-    , _vtlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'VPNTunnelsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'vtlOrderBy'
---
--- * 'vtlProject'
---
--- * 'vtlFilter'
---
--- * 'vtlRegion'
---
--- * 'vtlPageToken'
---
--- * 'vtlMaxResults'
-vpnTunnelsList
-    :: Text -- ^ 'vtlProject'
-    -> Text -- ^ 'vtlRegion'
-    -> VPNTunnelsList
-vpnTunnelsList pVtlProject_ pVtlRegion_ =
-  VPNTunnelsList'
-    { _vtlOrderBy = Nothing
-    , _vtlProject = pVtlProject_
-    , _vtlFilter = Nothing
-    , _vtlRegion = pVtlRegion_
-    , _vtlPageToken = Nothing
-    , _vtlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-vtlOrderBy :: Lens' VPNTunnelsList (Maybe Text)
-vtlOrderBy
-  = lens _vtlOrderBy (\ s a -> s{_vtlOrderBy = a})
-
--- | Project ID for this request.
-vtlProject :: Lens' VPNTunnelsList Text
-vtlProject
-  = lens _vtlProject (\ s a -> s{_vtlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-vtlFilter :: Lens' VPNTunnelsList (Maybe Text)
-vtlFilter
-  = lens _vtlFilter (\ s a -> s{_vtlFilter = a})
-
--- | Name of the region for this request.
-vtlRegion :: Lens' VPNTunnelsList Text
-vtlRegion
-  = lens _vtlRegion (\ s a -> s{_vtlRegion = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-vtlPageToken :: Lens' VPNTunnelsList (Maybe Text)
-vtlPageToken
-  = lens _vtlPageToken (\ s a -> s{_vtlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-vtlMaxResults :: Lens' VPNTunnelsList Word32
-vtlMaxResults
-  = lens _vtlMaxResults
-      (\ s a -> s{_vtlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest VPNTunnelsList where
-        type Rs VPNTunnelsList = VPNTunnelList
-        type Scopes VPNTunnelsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient VPNTunnelsList'{..}
-          = go _vtlProject _vtlRegion _vtlOrderBy _vtlFilter
-              _vtlPageToken
-              (Just _vtlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy VPNTunnelsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ZoneOperations/Delete.hs b/gen/Network/Google/Resource/Compute/ZoneOperations/Delete.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ZoneOperations/Delete.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ZoneOperations.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 zone-specific Operations resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.delete@.
-module Network.Google.Resource.Compute.ZoneOperations.Delete
-    (
-    -- * REST Resource
-      ZoneOperationsDeleteResource
-
-    -- * Creating a Request
-    , zoneOperationsDelete
-    , ZoneOperationsDelete
-
-    -- * Request Lenses
-    , zodProject
-    , zodOperation
-    , zodZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.zoneOperations.delete@ method which the
--- 'ZoneOperationsDelete' request conforms to.
-type ZoneOperationsDeleteResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "operations" :>
-                   Capture "operation" Text :>
-                     QueryParam "alt" AltJSON :> Delete '[JSON] ()
-
--- | Deletes the specified zone-specific Operations resource.
---
--- /See:/ 'zoneOperationsDelete' smart constructor.
-data ZoneOperationsDelete =
-  ZoneOperationsDelete'
-    { _zodProject   :: !Text
-    , _zodOperation :: !Text
-    , _zodZone      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneOperationsDelete' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zodProject'
---
--- * 'zodOperation'
---
--- * 'zodZone'
-zoneOperationsDelete
-    :: Text -- ^ 'zodProject'
-    -> Text -- ^ 'zodOperation'
-    -> Text -- ^ 'zodZone'
-    -> ZoneOperationsDelete
-zoneOperationsDelete pZodProject_ pZodOperation_ pZodZone_ =
-  ZoneOperationsDelete'
-    { _zodProject = pZodProject_
-    , _zodOperation = pZodOperation_
-    , _zodZone = pZodZone_
-    }
-
-
--- | Project ID for this request.
-zodProject :: Lens' ZoneOperationsDelete Text
-zodProject
-  = lens _zodProject (\ s a -> s{_zodProject = a})
-
--- | Name of the Operations resource to delete.
-zodOperation :: Lens' ZoneOperationsDelete Text
-zodOperation
-  = lens _zodOperation (\ s a -> s{_zodOperation = a})
-
--- | Name of the zone for this request.
-zodZone :: Lens' ZoneOperationsDelete Text
-zodZone = lens _zodZone (\ s a -> s{_zodZone = a})
-
-instance GoogleRequest ZoneOperationsDelete where
-        type Rs ZoneOperationsDelete = ()
-        type Scopes ZoneOperationsDelete =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute"]
-        requestClient ZoneOperationsDelete'{..}
-          = go _zodProject _zodZone _zodOperation
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ZoneOperationsDeleteResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ZoneOperations/Get.hs b/gen/Network/Google/Resource/Compute/ZoneOperations/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ZoneOperations/Get.hs
+++ /dev/null
@@ -1,118 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ZoneOperations.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)
---
--- Retrieves the specified zone-specific Operations resource.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.get@.
-module Network.Google.Resource.Compute.ZoneOperations.Get
-    (
-    -- * REST Resource
-      ZoneOperationsGetResource
-
-    -- * Creating a Request
-    , zoneOperationsGet
-    , ZoneOperationsGet
-
-    -- * Request Lenses
-    , zogProject
-    , zogOperation
-    , zogZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.zoneOperations.get@ method which the
--- 'ZoneOperationsGet' request conforms to.
-type ZoneOperationsGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "operations" :>
-                   Capture "operation" Text :>
-                     QueryParam "alt" AltJSON :> Get '[JSON] Operation
-
--- | Retrieves the specified zone-specific Operations resource.
---
--- /See:/ 'zoneOperationsGet' smart constructor.
-data ZoneOperationsGet =
-  ZoneOperationsGet'
-    { _zogProject   :: !Text
-    , _zogOperation :: !Text
-    , _zogZone      :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneOperationsGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zogProject'
---
--- * 'zogOperation'
---
--- * 'zogZone'
-zoneOperationsGet
-    :: Text -- ^ 'zogProject'
-    -> Text -- ^ 'zogOperation'
-    -> Text -- ^ 'zogZone'
-    -> ZoneOperationsGet
-zoneOperationsGet pZogProject_ pZogOperation_ pZogZone_ =
-  ZoneOperationsGet'
-    { _zogProject = pZogProject_
-    , _zogOperation = pZogOperation_
-    , _zogZone = pZogZone_
-    }
-
-
--- | Project ID for this request.
-zogProject :: Lens' ZoneOperationsGet Text
-zogProject
-  = lens _zogProject (\ s a -> s{_zogProject = a})
-
--- | Name of the Operations resource to return.
-zogOperation :: Lens' ZoneOperationsGet Text
-zogOperation
-  = lens _zogOperation (\ s a -> s{_zogOperation = a})
-
--- | Name of the zone for this request.
-zogZone :: Lens' ZoneOperationsGet Text
-zogZone = lens _zogZone (\ s a -> s{_zogZone = a})
-
-instance GoogleRequest ZoneOperationsGet where
-        type Rs ZoneOperationsGet = Operation
-        type Scopes ZoneOperationsGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ZoneOperationsGet'{..}
-          = go _zogProject _zogZone _zogOperation
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ZoneOperationsGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/ZoneOperations/List.hs b/gen/Network/Google/Resource/Compute/ZoneOperations/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/ZoneOperations/List.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.ZoneOperations.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)
---
--- Retrieves a list of Operation resources contained within the specified
--- zone.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zoneOperations.list@.
-module Network.Google.Resource.Compute.ZoneOperations.List
-    (
-    -- * REST Resource
-      ZoneOperationsListResource
-
-    -- * Creating a Request
-    , zoneOperationsList
-    , ZoneOperationsList
-
-    -- * Request Lenses
-    , zolOrderBy
-    , zolProject
-    , zolZone
-    , zolFilter
-    , zolPageToken
-    , zolMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.zoneOperations.list@ method which the
--- 'ZoneOperationsList' request conforms to.
-type ZoneOperationsListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 "operations" :>
-                   QueryParam "orderBy" Text :>
-                     QueryParam "filter" Text :>
-                       QueryParam "pageToken" Text :>
-                         QueryParam "maxResults" (Textual Word32) :>
-                           QueryParam "alt" AltJSON :> Get '[JSON] OperationList
-
--- | Retrieves a list of Operation resources contained within the specified
--- zone.
---
--- /See:/ 'zoneOperationsList' smart constructor.
-data ZoneOperationsList =
-  ZoneOperationsList'
-    { _zolOrderBy    :: !(Maybe Text)
-    , _zolProject    :: !Text
-    , _zolZone       :: !Text
-    , _zolFilter     :: !(Maybe Text)
-    , _zolPageToken  :: !(Maybe Text)
-    , _zolMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZoneOperationsList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zolOrderBy'
---
--- * 'zolProject'
---
--- * 'zolZone'
---
--- * 'zolFilter'
---
--- * 'zolPageToken'
---
--- * 'zolMaxResults'
-zoneOperationsList
-    :: Text -- ^ 'zolProject'
-    -> Text -- ^ 'zolZone'
-    -> ZoneOperationsList
-zoneOperationsList pZolProject_ pZolZone_ =
-  ZoneOperationsList'
-    { _zolOrderBy = Nothing
-    , _zolProject = pZolProject_
-    , _zolZone = pZolZone_
-    , _zolFilter = Nothing
-    , _zolPageToken = Nothing
-    , _zolMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-zolOrderBy :: Lens' ZoneOperationsList (Maybe Text)
-zolOrderBy
-  = lens _zolOrderBy (\ s a -> s{_zolOrderBy = a})
-
--- | Project ID for this request.
-zolProject :: Lens' ZoneOperationsList Text
-zolProject
-  = lens _zolProject (\ s a -> s{_zolProject = a})
-
--- | Name of the zone for request.
-zolZone :: Lens' ZoneOperationsList Text
-zolZone = lens _zolZone (\ s a -> s{_zolZone = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-zolFilter :: Lens' ZoneOperationsList (Maybe Text)
-zolFilter
-  = lens _zolFilter (\ s a -> s{_zolFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-zolPageToken :: Lens' ZoneOperationsList (Maybe Text)
-zolPageToken
-  = lens _zolPageToken (\ s a -> s{_zolPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-zolMaxResults :: Lens' ZoneOperationsList Word32
-zolMaxResults
-  = lens _zolMaxResults
-      (\ s a -> s{_zolMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ZoneOperationsList where
-        type Rs ZoneOperationsList = OperationList
-        type Scopes ZoneOperationsList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ZoneOperationsList'{..}
-          = go _zolProject _zolZone _zolOrderBy _zolFilter
-              _zolPageToken
-              (Just _zolMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient
-                      (Proxy :: Proxy ZoneOperationsListResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Zones/Get.hs b/gen/Network/Google/Resource/Compute/Zones/Get.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Zones/Get.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Zones.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)
---
--- Returns the specified Zone resource. Gets a list of available zones by
--- making a list() request.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zones.get@.
-module Network.Google.Resource.Compute.Zones.Get
-    (
-    -- * REST Resource
-      ZonesGetResource
-
-    -- * Creating a Request
-    , zonesGet
-    , ZonesGet
-
-    -- * Request Lenses
-    , zgProject
-    , zgZone
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.zones.get@ method which the
--- 'ZonesGet' request conforms to.
-type ZonesGetResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               Capture "zone" Text :>
-                 QueryParam "alt" AltJSON :> Get '[JSON] Zone
-
--- | Returns the specified Zone resource. Gets a list of available zones by
--- making a list() request.
---
--- /See:/ 'zonesGet' smart constructor.
-data ZonesGet =
-  ZonesGet'
-    { _zgProject :: !Text
-    , _zgZone    :: !Text
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZonesGet' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zgProject'
---
--- * 'zgZone'
-zonesGet
-    :: Text -- ^ 'zgProject'
-    -> Text -- ^ 'zgZone'
-    -> ZonesGet
-zonesGet pZgProject_ pZgZone_ =
-  ZonesGet' {_zgProject = pZgProject_, _zgZone = pZgZone_}
-
-
--- | Project ID for this request.
-zgProject :: Lens' ZonesGet Text
-zgProject
-  = lens _zgProject (\ s a -> s{_zgProject = a})
-
--- | Name of the zone resource to return.
-zgZone :: Lens' ZonesGet Text
-zgZone = lens _zgZone (\ s a -> s{_zgZone = a})
-
-instance GoogleRequest ZonesGet where
-        type Rs ZonesGet = Zone
-        type Scopes ZonesGet =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ZonesGet'{..}
-          = go _zgProject _zgZone (Just AltJSON) computeService
-          where go
-                  = buildClient (Proxy :: Proxy ZonesGetResource)
-                      mempty
diff --git a/gen/Network/Google/Resource/Compute/Zones/List.hs b/gen/Network/Google/Resource/Compute/Zones/List.hs
deleted file mode 100644
--- a/gen/Network/Google/Resource/Compute/Zones/List.hs
+++ /dev/null
@@ -1,165 +0,0 @@
-{-# LANGUAGE DataKinds          #-}
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE NoImplicitPrelude  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-{-# LANGUAGE TypeOperators      #-}
-
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds      #-}
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-
--- |
--- Module      : Network.Google.Resource.Compute.Zones.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)
---
--- Retrieves the list of Zone resources available to the specified project.
---
--- /See:/ <https://developers.google.com/compute/docs/reference/latest/ Compute Engine API Reference> for @compute.zones.list@.
-module Network.Google.Resource.Compute.Zones.List
-    (
-    -- * REST Resource
-      ZonesListResource
-
-    -- * Creating a Request
-    , zonesList
-    , ZonesList
-
-    -- * Request Lenses
-    , zlOrderBy
-    , zlProject
-    , zlFilter
-    , zlPageToken
-    , zlMaxResults
-    ) where
-
-import           Network.Google.Compute.Types
-import           Network.Google.Prelude
-
--- | A resource alias for @compute.zones.list@ method which the
--- 'ZonesList' request conforms to.
-type ZonesListResource =
-     "compute" :>
-       "v1" :>
-         "projects" :>
-           Capture "project" Text :>
-             "zones" :>
-               QueryParam "orderBy" Text :>
-                 QueryParam "filter" Text :>
-                   QueryParam "pageToken" Text :>
-                     QueryParam "maxResults" (Textual Word32) :>
-                       QueryParam "alt" AltJSON :> Get '[JSON] ZoneList
-
--- | Retrieves the list of Zone resources available to the specified project.
---
--- /See:/ 'zonesList' smart constructor.
-data ZonesList =
-  ZonesList'
-    { _zlOrderBy    :: !(Maybe Text)
-    , _zlProject    :: !Text
-    , _zlFilter     :: !(Maybe Text)
-    , _zlPageToken  :: !(Maybe Text)
-    , _zlMaxResults :: !(Textual Word32)
-    }
-  deriving (Eq, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ZonesList' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'zlOrderBy'
---
--- * 'zlProject'
---
--- * 'zlFilter'
---
--- * 'zlPageToken'
---
--- * 'zlMaxResults'
-zonesList
-    :: Text -- ^ 'zlProject'
-    -> ZonesList
-zonesList pZlProject_ =
-  ZonesList'
-    { _zlOrderBy = Nothing
-    , _zlProject = pZlProject_
-    , _zlFilter = Nothing
-    , _zlPageToken = Nothing
-    , _zlMaxResults = 500
-    }
-
-
--- | Sorts list results by a certain order. By default, results are returned
--- in alphanumerical order based on the resource name. You can also sort
--- results in descending order based on the creation timestamp using
--- orderBy=\"creationTimestamp desc\". This sorts results based on the
--- creationTimestamp field in reverse chronological order (newest result
--- first). Use this to sort resources like operations so that the newest
--- operation is returned first. Currently, only sorting by name or
--- creationTimestamp desc is supported.
-zlOrderBy :: Lens' ZonesList (Maybe Text)
-zlOrderBy
-  = lens _zlOrderBy (\ s a -> s{_zlOrderBy = a})
-
--- | Project ID for this request.
-zlProject :: Lens' ZonesList Text
-zlProject
-  = lens _zlProject (\ s a -> s{_zlProject = a})
-
--- | A filter expression that filters resources listed in the response. The
--- expression must specify the field name, a comparison operator, and the
--- value that you want to use for filtering. The value must be a string, a
--- number, or a boolean. The comparison operator must be either =, !=, >,
--- or \<. For example, if you are filtering Compute Engine instances, you
--- can exclude instances named example-instance by specifying name !=
--- example-instance. You can also filter nested fields. For example, you
--- could specify scheduling.automaticRestart = false to include instances
--- only if they are not scheduled for automatic restarts. You can use
--- filtering on nested fields to filter based on resource labels. To filter
--- on multiple expressions, provide each separate expression within
--- parentheses. For example, (scheduling.automaticRestart = true)
--- (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND
--- expression. However, you can include AND and OR expressions explicitly.
--- For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel
--- Broadwell\") AND (scheduling.automaticRestart = true).
-zlFilter :: Lens' ZonesList (Maybe Text)
-zlFilter = lens _zlFilter (\ s a -> s{_zlFilter = a})
-
--- | Specifies a page token to use. Set pageToken to the nextPageToken
--- returned by a previous list request to get the next page of results.
-zlPageToken :: Lens' ZonesList (Maybe Text)
-zlPageToken
-  = lens _zlPageToken (\ s a -> s{_zlPageToken = a})
-
--- | The maximum number of results per page that should be returned. If the
--- number of available results is larger than maxResults, Compute Engine
--- returns a nextPageToken that can be used to get the next page of results
--- in subsequent list requests. Acceptable values are 0 to 500, inclusive.
--- (Default: 500)
-zlMaxResults :: Lens' ZonesList Word32
-zlMaxResults
-  = lens _zlMaxResults (\ s a -> s{_zlMaxResults = a})
-      . _Coerce
-
-instance GoogleRequest ZonesList where
-        type Rs ZonesList = ZoneList
-        type Scopes ZonesList =
-             '["https://www.googleapis.com/auth/cloud-platform",
-               "https://www.googleapis.com/auth/compute",
-               "https://www.googleapis.com/auth/compute.readonly"]
-        requestClient ZonesList'{..}
-          = go _zlProject _zlOrderBy _zlFilter _zlPageToken
-              (Just _zlMaxResults)
-              (Just AltJSON)
-              computeService
-          where go
-                  = buildClient (Proxy :: Proxy ZonesListResource)
-                      mempty
diff --git a/gogol-compute.cabal b/gogol-compute.cabal
--- a/gogol-compute.cabal
+++ b/gogol-compute.cabal
@@ -1,454 +1,862 @@
-name:                  gogol-compute
-version:               0.5.0
-synopsis:              Google Compute Engine SDK.
-homepage:              https://github.com/brendanhay/gogol
-bug-reports:           https://github.com/brendanhay/gogol/issues
-license:               OtherLicense
-license-file:          LICENSE
-author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay@gmail.com>
-copyright:             Copyright (c) 2015-2016 Brendan Hay
-category:              Network, Google, Cloud
-build-type:            Simple
-cabal-version:         >= 1.10
-extra-source-files:    README.md src/.gitkeep
-
-description:
-    Creates and runs virtual machines on Google Cloud Platform.
-    .
-    /Warning:/ This is an experimental prototype/preview release which is still
-    under exploratory development and not intended for public use, caveat emptor!
-    .
-    This library is compatible with version @v1@
-    of the API.
-
-source-repository head
-    type:     git
-    location: git://github.com/brendanhay/gogol.git
-
-library
-    default-language:  Haskell2010
-    hs-source-dirs:    src gen
-
-    ghc-options:       -Wall
-
-    exposed-modules:
-          Network.Google.Compute
-        , Network.Google.Compute.Types
-        , Network.Google.Resource.Compute.AcceleratorTypes.AggregatedList
-        , Network.Google.Resource.Compute.AcceleratorTypes.Get
-        , Network.Google.Resource.Compute.AcceleratorTypes.List
-        , Network.Google.Resource.Compute.Addresses.AggregatedList
-        , Network.Google.Resource.Compute.Addresses.Delete
-        , Network.Google.Resource.Compute.Addresses.Get
-        , Network.Google.Resource.Compute.Addresses.Insert
-        , Network.Google.Resource.Compute.Addresses.List
-        , Network.Google.Resource.Compute.Autoscalers.AggregatedList
-        , Network.Google.Resource.Compute.Autoscalers.Delete
-        , Network.Google.Resource.Compute.Autoscalers.Get
-        , Network.Google.Resource.Compute.Autoscalers.Insert
-        , Network.Google.Resource.Compute.Autoscalers.List
-        , Network.Google.Resource.Compute.Autoscalers.Patch
-        , Network.Google.Resource.Compute.Autoscalers.Update
-        , Network.Google.Resource.Compute.BackendBuckets.AddSignedURLKey
-        , Network.Google.Resource.Compute.BackendBuckets.Delete
-        , Network.Google.Resource.Compute.BackendBuckets.DeleteSignedURLKey
-        , Network.Google.Resource.Compute.BackendBuckets.Get
-        , Network.Google.Resource.Compute.BackendBuckets.Insert
-        , Network.Google.Resource.Compute.BackendBuckets.List
-        , Network.Google.Resource.Compute.BackendBuckets.Patch
-        , Network.Google.Resource.Compute.BackendBuckets.Update
-        , Network.Google.Resource.Compute.BackendServices.AddSignedURLKey
-        , Network.Google.Resource.Compute.BackendServices.AggregatedList
-        , Network.Google.Resource.Compute.BackendServices.Delete
-        , Network.Google.Resource.Compute.BackendServices.DeleteSignedURLKey
-        , Network.Google.Resource.Compute.BackendServices.Get
-        , Network.Google.Resource.Compute.BackendServices.GetHealth
-        , Network.Google.Resource.Compute.BackendServices.Insert
-        , Network.Google.Resource.Compute.BackendServices.List
-        , Network.Google.Resource.Compute.BackendServices.Patch
-        , Network.Google.Resource.Compute.BackendServices.SetSecurityPolicy
-        , Network.Google.Resource.Compute.BackendServices.Update
-        , Network.Google.Resource.Compute.DiskTypes.AggregatedList
-        , Network.Google.Resource.Compute.DiskTypes.Get
-        , Network.Google.Resource.Compute.DiskTypes.List
-        , Network.Google.Resource.Compute.Disks.AggregatedList
-        , Network.Google.Resource.Compute.Disks.CreateSnapshot
-        , Network.Google.Resource.Compute.Disks.Delete
-        , Network.Google.Resource.Compute.Disks.Get
-        , Network.Google.Resource.Compute.Disks.GetIAMPolicy
-        , Network.Google.Resource.Compute.Disks.Insert
-        , Network.Google.Resource.Compute.Disks.List
-        , Network.Google.Resource.Compute.Disks.Resize
-        , Network.Google.Resource.Compute.Disks.SetIAMPolicy
-        , Network.Google.Resource.Compute.Disks.SetLabels
-        , Network.Google.Resource.Compute.Disks.TestIAMPermissions
-        , Network.Google.Resource.Compute.Firewalls.Delete
-        , Network.Google.Resource.Compute.Firewalls.Get
-        , Network.Google.Resource.Compute.Firewalls.Insert
-        , Network.Google.Resource.Compute.Firewalls.List
-        , Network.Google.Resource.Compute.Firewalls.Patch
-        , Network.Google.Resource.Compute.Firewalls.Update
-        , Network.Google.Resource.Compute.ForwardingRules.AggregatedList
-        , Network.Google.Resource.Compute.ForwardingRules.Delete
-        , Network.Google.Resource.Compute.ForwardingRules.Get
-        , Network.Google.Resource.Compute.ForwardingRules.Insert
-        , Network.Google.Resource.Compute.ForwardingRules.List
-        , Network.Google.Resource.Compute.ForwardingRules.SetTarget
-        , Network.Google.Resource.Compute.GlobalAddresses.Delete
-        , Network.Google.Resource.Compute.GlobalAddresses.Get
-        , Network.Google.Resource.Compute.GlobalAddresses.Insert
-        , Network.Google.Resource.Compute.GlobalAddresses.List
-        , Network.Google.Resource.Compute.GlobalForwardingRules.Delete
-        , Network.Google.Resource.Compute.GlobalForwardingRules.Get
-        , Network.Google.Resource.Compute.GlobalForwardingRules.Insert
-        , Network.Google.Resource.Compute.GlobalForwardingRules.List
-        , Network.Google.Resource.Compute.GlobalForwardingRules.SetTarget
-        , Network.Google.Resource.Compute.GlobalOperations.AggregatedList
-        , Network.Google.Resource.Compute.GlobalOperations.Delete
-        , Network.Google.Resource.Compute.GlobalOperations.Get
-        , Network.Google.Resource.Compute.GlobalOperations.List
-        , Network.Google.Resource.Compute.HTTPHealthChecks.Delete
-        , Network.Google.Resource.Compute.HTTPHealthChecks.Get
-        , Network.Google.Resource.Compute.HTTPHealthChecks.Insert
-        , Network.Google.Resource.Compute.HTTPHealthChecks.List
-        , Network.Google.Resource.Compute.HTTPHealthChecks.Patch
-        , Network.Google.Resource.Compute.HTTPHealthChecks.Update
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.Delete
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.Get
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.Insert
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.List
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.Patch
-        , Network.Google.Resource.Compute.HTTPSHealthChecks.Update
-        , Network.Google.Resource.Compute.HealthChecks.Delete
-        , Network.Google.Resource.Compute.HealthChecks.Get
-        , Network.Google.Resource.Compute.HealthChecks.Insert
-        , Network.Google.Resource.Compute.HealthChecks.List
-        , Network.Google.Resource.Compute.HealthChecks.Patch
-        , Network.Google.Resource.Compute.HealthChecks.Update
-        , Network.Google.Resource.Compute.Images.Delete
-        , Network.Google.Resource.Compute.Images.Deprecate
-        , Network.Google.Resource.Compute.Images.Get
-        , Network.Google.Resource.Compute.Images.GetFromFamily
-        , Network.Google.Resource.Compute.Images.GetIAMPolicy
-        , Network.Google.Resource.Compute.Images.Insert
-        , Network.Google.Resource.Compute.Images.List
-        , Network.Google.Resource.Compute.Images.SetIAMPolicy
-        , Network.Google.Resource.Compute.Images.SetLabels
-        , Network.Google.Resource.Compute.Images.TestIAMPermissions
-        , Network.Google.Resource.Compute.InstanceGroupManagers.AbandonInstances
-        , Network.Google.Resource.Compute.InstanceGroupManagers.AggregatedList
-        , Network.Google.Resource.Compute.InstanceGroupManagers.Delete
-        , Network.Google.Resource.Compute.InstanceGroupManagers.DeleteInstances
-        , Network.Google.Resource.Compute.InstanceGroupManagers.Get
-        , Network.Google.Resource.Compute.InstanceGroupManagers.Insert
-        , Network.Google.Resource.Compute.InstanceGroupManagers.List
-        , Network.Google.Resource.Compute.InstanceGroupManagers.ListManagedInstances
-        , Network.Google.Resource.Compute.InstanceGroupManagers.Patch
-        , Network.Google.Resource.Compute.InstanceGroupManagers.RecreateInstances
-        , Network.Google.Resource.Compute.InstanceGroupManagers.Resize
-        , Network.Google.Resource.Compute.InstanceGroupManagers.SetInstanceTemplate
-        , Network.Google.Resource.Compute.InstanceGroupManagers.SetTargetPools
-        , Network.Google.Resource.Compute.InstanceGroups.AddInstances
-        , Network.Google.Resource.Compute.InstanceGroups.AggregatedList
-        , Network.Google.Resource.Compute.InstanceGroups.Delete
-        , Network.Google.Resource.Compute.InstanceGroups.Get
-        , Network.Google.Resource.Compute.InstanceGroups.Insert
-        , Network.Google.Resource.Compute.InstanceGroups.List
-        , Network.Google.Resource.Compute.InstanceGroups.ListInstances
-        , Network.Google.Resource.Compute.InstanceGroups.RemoveInstances
-        , Network.Google.Resource.Compute.InstanceGroups.SetNamedPorts
-        , Network.Google.Resource.Compute.InstanceTemplates.Delete
-        , Network.Google.Resource.Compute.InstanceTemplates.Get
-        , Network.Google.Resource.Compute.InstanceTemplates.GetIAMPolicy
-        , Network.Google.Resource.Compute.InstanceTemplates.Insert
-        , Network.Google.Resource.Compute.InstanceTemplates.List
-        , Network.Google.Resource.Compute.InstanceTemplates.SetIAMPolicy
-        , Network.Google.Resource.Compute.InstanceTemplates.TestIAMPermissions
-        , Network.Google.Resource.Compute.Instances.AddAccessConfig
-        , Network.Google.Resource.Compute.Instances.AggregatedList
-        , Network.Google.Resource.Compute.Instances.AttachDisk
-        , Network.Google.Resource.Compute.Instances.Delete
-        , Network.Google.Resource.Compute.Instances.DeleteAccessConfig
-        , Network.Google.Resource.Compute.Instances.DetachDisk
-        , Network.Google.Resource.Compute.Instances.Get
-        , Network.Google.Resource.Compute.Instances.GetIAMPolicy
-        , Network.Google.Resource.Compute.Instances.GetSerialPortOutput
-        , Network.Google.Resource.Compute.Instances.GetShieldedInstanceIdentity
-        , Network.Google.Resource.Compute.Instances.Insert
-        , Network.Google.Resource.Compute.Instances.List
-        , Network.Google.Resource.Compute.Instances.ListReferrers
-        , Network.Google.Resource.Compute.Instances.Reset
-        , Network.Google.Resource.Compute.Instances.SetDeletionProtection
-        , Network.Google.Resource.Compute.Instances.SetDiskAutoDelete
-        , Network.Google.Resource.Compute.Instances.SetIAMPolicy
-        , Network.Google.Resource.Compute.Instances.SetLabels
-        , Network.Google.Resource.Compute.Instances.SetMachineResources
-        , Network.Google.Resource.Compute.Instances.SetMachineType
-        , Network.Google.Resource.Compute.Instances.SetMetadata
-        , Network.Google.Resource.Compute.Instances.SetMinCPUPlatform
-        , Network.Google.Resource.Compute.Instances.SetScheduling
-        , Network.Google.Resource.Compute.Instances.SetServiceAccount
-        , Network.Google.Resource.Compute.Instances.SetShieldedInstanceIntegrityPolicy
-        , Network.Google.Resource.Compute.Instances.SetTags
-        , Network.Google.Resource.Compute.Instances.SimulateMaintenanceEvent
-        , Network.Google.Resource.Compute.Instances.Start
-        , Network.Google.Resource.Compute.Instances.StartWithEncryptionKey
-        , Network.Google.Resource.Compute.Instances.Stop
-        , Network.Google.Resource.Compute.Instances.TestIAMPermissions
-        , Network.Google.Resource.Compute.Instances.UpdateAccessConfig
-        , Network.Google.Resource.Compute.Instances.UpdateNetworkInterface
-        , Network.Google.Resource.Compute.Instances.UpdateShieldedInstanceConfig
-        , Network.Google.Resource.Compute.InterconnectAttachments.AggregatedList
-        , Network.Google.Resource.Compute.InterconnectAttachments.Delete
-        , Network.Google.Resource.Compute.InterconnectAttachments.Get
-        , Network.Google.Resource.Compute.InterconnectAttachments.Insert
-        , Network.Google.Resource.Compute.InterconnectAttachments.List
-        , Network.Google.Resource.Compute.InterconnectAttachments.Patch
-        , Network.Google.Resource.Compute.InterconnectLocations.Get
-        , Network.Google.Resource.Compute.InterconnectLocations.List
-        , Network.Google.Resource.Compute.Interconnects.Delete
-        , Network.Google.Resource.Compute.Interconnects.Get
-        , Network.Google.Resource.Compute.Interconnects.GetDiagnostics
-        , Network.Google.Resource.Compute.Interconnects.Insert
-        , Network.Google.Resource.Compute.Interconnects.List
-        , Network.Google.Resource.Compute.Interconnects.Patch
-        , Network.Google.Resource.Compute.LicenseCodes.Get
-        , Network.Google.Resource.Compute.LicenseCodes.TestIAMPermissions
-        , Network.Google.Resource.Compute.Licenses.Delete
-        , Network.Google.Resource.Compute.Licenses.Get
-        , Network.Google.Resource.Compute.Licenses.GetIAMPolicy
-        , Network.Google.Resource.Compute.Licenses.Insert
-        , Network.Google.Resource.Compute.Licenses.List
-        , Network.Google.Resource.Compute.Licenses.SetIAMPolicy
-        , Network.Google.Resource.Compute.Licenses.TestIAMPermissions
-        , Network.Google.Resource.Compute.MachineTypes.AggregatedList
-        , Network.Google.Resource.Compute.MachineTypes.Get
-        , Network.Google.Resource.Compute.MachineTypes.List
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.AggregatedList
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.Delete
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.Get
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.Insert
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.List
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.ListNetworkEndpoints
-        , Network.Google.Resource.Compute.NetworkEndpointGroups.TestIAMPermissions
-        , Network.Google.Resource.Compute.Networks.AddPeering
-        , Network.Google.Resource.Compute.Networks.Delete
-        , Network.Google.Resource.Compute.Networks.Get
-        , Network.Google.Resource.Compute.Networks.Insert
-        , Network.Google.Resource.Compute.Networks.List
-        , Network.Google.Resource.Compute.Networks.Patch
-        , Network.Google.Resource.Compute.Networks.RemovePeering
-        , Network.Google.Resource.Compute.Networks.SwitchToCustomMode
-        , Network.Google.Resource.Compute.NodeGroups.AddNodes
-        , Network.Google.Resource.Compute.NodeGroups.AggregatedList
-        , Network.Google.Resource.Compute.NodeGroups.Delete
-        , Network.Google.Resource.Compute.NodeGroups.DeleteNodes
-        , Network.Google.Resource.Compute.NodeGroups.Get
-        , Network.Google.Resource.Compute.NodeGroups.GetIAMPolicy
-        , Network.Google.Resource.Compute.NodeGroups.Insert
-        , Network.Google.Resource.Compute.NodeGroups.List
-        , Network.Google.Resource.Compute.NodeGroups.ListNodes
-        , Network.Google.Resource.Compute.NodeGroups.SetIAMPolicy
-        , Network.Google.Resource.Compute.NodeGroups.SetNodeTemplate
-        , Network.Google.Resource.Compute.NodeGroups.TestIAMPermissions
-        , Network.Google.Resource.Compute.NodeTemplates.AggregatedList
-        , Network.Google.Resource.Compute.NodeTemplates.Delete
-        , Network.Google.Resource.Compute.NodeTemplates.Get
-        , Network.Google.Resource.Compute.NodeTemplates.GetIAMPolicy
-        , Network.Google.Resource.Compute.NodeTemplates.Insert
-        , Network.Google.Resource.Compute.NodeTemplates.List
-        , Network.Google.Resource.Compute.NodeTemplates.SetIAMPolicy
-        , Network.Google.Resource.Compute.NodeTemplates.TestIAMPermissions
-        , Network.Google.Resource.Compute.NodeTypes.AggregatedList
-        , Network.Google.Resource.Compute.NodeTypes.Get
-        , Network.Google.Resource.Compute.NodeTypes.List
-        , Network.Google.Resource.Compute.Projects.DisableXpnHost
-        , Network.Google.Resource.Compute.Projects.DisableXpnResource
-        , Network.Google.Resource.Compute.Projects.EnableXpnHost
-        , Network.Google.Resource.Compute.Projects.EnableXpnResource
-        , Network.Google.Resource.Compute.Projects.Get
-        , Network.Google.Resource.Compute.Projects.GetXpnHost
-        , Network.Google.Resource.Compute.Projects.GetXpnResources
-        , Network.Google.Resource.Compute.Projects.ListXpnHosts
-        , Network.Google.Resource.Compute.Projects.MoveDisk
-        , Network.Google.Resource.Compute.Projects.MoveInstance
-        , Network.Google.Resource.Compute.Projects.SetCommonInstanceMetadata
-        , Network.Google.Resource.Compute.Projects.SetDefaultNetworkTier
-        , Network.Google.Resource.Compute.Projects.SetUsageExportBucket
-        , Network.Google.Resource.Compute.RegionAutoscalers.Delete
-        , Network.Google.Resource.Compute.RegionAutoscalers.Get
-        , Network.Google.Resource.Compute.RegionAutoscalers.Insert
-        , Network.Google.Resource.Compute.RegionAutoscalers.List
-        , Network.Google.Resource.Compute.RegionAutoscalers.Patch
-        , Network.Google.Resource.Compute.RegionAutoscalers.Update
-        , Network.Google.Resource.Compute.RegionBackendServices.Delete
-        , Network.Google.Resource.Compute.RegionBackendServices.Get
-        , Network.Google.Resource.Compute.RegionBackendServices.GetHealth
-        , Network.Google.Resource.Compute.RegionBackendServices.Insert
-        , Network.Google.Resource.Compute.RegionBackendServices.List
-        , Network.Google.Resource.Compute.RegionBackendServices.Patch
-        , Network.Google.Resource.Compute.RegionBackendServices.Update
-        , Network.Google.Resource.Compute.RegionCommitments.AggregatedList
-        , Network.Google.Resource.Compute.RegionCommitments.Get
-        , Network.Google.Resource.Compute.RegionCommitments.Insert
-        , Network.Google.Resource.Compute.RegionCommitments.List
-        , Network.Google.Resource.Compute.RegionDiskTypes.Get
-        , Network.Google.Resource.Compute.RegionDiskTypes.List
-        , Network.Google.Resource.Compute.RegionDisks.CreateSnapshot
-        , Network.Google.Resource.Compute.RegionDisks.Delete
-        , Network.Google.Resource.Compute.RegionDisks.Get
-        , Network.Google.Resource.Compute.RegionDisks.Insert
-        , Network.Google.Resource.Compute.RegionDisks.List
-        , Network.Google.Resource.Compute.RegionDisks.Resize
-        , Network.Google.Resource.Compute.RegionDisks.SetLabels
-        , Network.Google.Resource.Compute.RegionDisks.TestIAMPermissions
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.AbandonInstances
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.Delete
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.DeleteInstances
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.Get
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.Insert
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.List
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.ListManagedInstances
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.Patch
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.RecreateInstances
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.Resize
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
-        , Network.Google.Resource.Compute.RegionInstanceGroupManagers.SetTargetPools
-        , Network.Google.Resource.Compute.RegionInstanceGroups.Get
-        , Network.Google.Resource.Compute.RegionInstanceGroups.List
-        , Network.Google.Resource.Compute.RegionInstanceGroups.ListInstances
-        , Network.Google.Resource.Compute.RegionInstanceGroups.SetNamedPorts
-        , Network.Google.Resource.Compute.RegionOperations.Delete
-        , Network.Google.Resource.Compute.RegionOperations.Get
-        , Network.Google.Resource.Compute.RegionOperations.List
-        , Network.Google.Resource.Compute.Regions.Get
-        , Network.Google.Resource.Compute.Regions.List
-        , Network.Google.Resource.Compute.Routers.AggregatedList
-        , Network.Google.Resource.Compute.Routers.Delete
-        , Network.Google.Resource.Compute.Routers.Get
-        , Network.Google.Resource.Compute.Routers.GetNATMAppingInfo
-        , Network.Google.Resource.Compute.Routers.GetRouterStatus
-        , Network.Google.Resource.Compute.Routers.Insert
-        , Network.Google.Resource.Compute.Routers.List
-        , Network.Google.Resource.Compute.Routers.Patch
-        , Network.Google.Resource.Compute.Routers.Preview
-        , Network.Google.Resource.Compute.Routers.Update
-        , Network.Google.Resource.Compute.Routes.Delete
-        , Network.Google.Resource.Compute.Routes.Get
-        , Network.Google.Resource.Compute.Routes.Insert
-        , Network.Google.Resource.Compute.Routes.List
-        , Network.Google.Resource.Compute.SSLCertificates.Delete
-        , Network.Google.Resource.Compute.SSLCertificates.Get
-        , Network.Google.Resource.Compute.SSLCertificates.Insert
-        , Network.Google.Resource.Compute.SSLCertificates.List
-        , Network.Google.Resource.Compute.SSLPolicies.Delete
-        , Network.Google.Resource.Compute.SSLPolicies.Get
-        , Network.Google.Resource.Compute.SSLPolicies.Insert
-        , Network.Google.Resource.Compute.SSLPolicies.List
-        , Network.Google.Resource.Compute.SSLPolicies.ListAvailableFeatures
-        , Network.Google.Resource.Compute.SSLPolicies.Patch
-        , Network.Google.Resource.Compute.SecurityPolicies.AddRule
-        , Network.Google.Resource.Compute.SecurityPolicies.Delete
-        , Network.Google.Resource.Compute.SecurityPolicies.Get
-        , Network.Google.Resource.Compute.SecurityPolicies.GetRule
-        , Network.Google.Resource.Compute.SecurityPolicies.Insert
-        , Network.Google.Resource.Compute.SecurityPolicies.List
-        , Network.Google.Resource.Compute.SecurityPolicies.Patch
-        , Network.Google.Resource.Compute.SecurityPolicies.PatchRule
-        , Network.Google.Resource.Compute.SecurityPolicies.RemoveRule
-        , Network.Google.Resource.Compute.Snapshots.Delete
-        , Network.Google.Resource.Compute.Snapshots.Get
-        , Network.Google.Resource.Compute.Snapshots.GetIAMPolicy
-        , Network.Google.Resource.Compute.Snapshots.List
-        , Network.Google.Resource.Compute.Snapshots.SetIAMPolicy
-        , Network.Google.Resource.Compute.Snapshots.SetLabels
-        , Network.Google.Resource.Compute.Snapshots.TestIAMPermissions
-        , Network.Google.Resource.Compute.Subnetworks.AggregatedList
-        , Network.Google.Resource.Compute.Subnetworks.Delete
-        , Network.Google.Resource.Compute.Subnetworks.ExpandIPCIdRRange
-        , Network.Google.Resource.Compute.Subnetworks.Get
-        , Network.Google.Resource.Compute.Subnetworks.GetIAMPolicy
-        , Network.Google.Resource.Compute.Subnetworks.Insert
-        , Network.Google.Resource.Compute.Subnetworks.List
-        , Network.Google.Resource.Compute.Subnetworks.ListUsable
-        , Network.Google.Resource.Compute.Subnetworks.Patch
-        , Network.Google.Resource.Compute.Subnetworks.SetIAMPolicy
-        , Network.Google.Resource.Compute.Subnetworks.SetPrivateIPGoogleAccess
-        , Network.Google.Resource.Compute.Subnetworks.TestIAMPermissions
-        , Network.Google.Resource.Compute.TargetHTTPProxies.Delete
-        , Network.Google.Resource.Compute.TargetHTTPProxies.Get
-        , Network.Google.Resource.Compute.TargetHTTPProxies.Insert
-        , Network.Google.Resource.Compute.TargetHTTPProxies.List
-        , Network.Google.Resource.Compute.TargetHTTPProxies.SetURLMap
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.Delete
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.Get
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.Insert
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.List
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetQuicOverride
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLCertificates
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetSSLPolicy
-        , Network.Google.Resource.Compute.TargetHTTPSProxies.SetURLMap
-        , Network.Google.Resource.Compute.TargetInstances.AggregatedList
-        , Network.Google.Resource.Compute.TargetInstances.Delete
-        , Network.Google.Resource.Compute.TargetInstances.Get
-        , Network.Google.Resource.Compute.TargetInstances.Insert
-        , Network.Google.Resource.Compute.TargetInstances.List
-        , Network.Google.Resource.Compute.TargetPools.AddHealthCheck
-        , Network.Google.Resource.Compute.TargetPools.AddInstance
-        , Network.Google.Resource.Compute.TargetPools.AggregatedList
-        , Network.Google.Resource.Compute.TargetPools.Delete
-        , Network.Google.Resource.Compute.TargetPools.Get
-        , Network.Google.Resource.Compute.TargetPools.GetHealth
-        , Network.Google.Resource.Compute.TargetPools.Insert
-        , Network.Google.Resource.Compute.TargetPools.List
-        , Network.Google.Resource.Compute.TargetPools.RemoveHealthCheck
-        , Network.Google.Resource.Compute.TargetPools.RemoveInstance
-        , Network.Google.Resource.Compute.TargetPools.SetBackup
-        , Network.Google.Resource.Compute.TargetSSLProxies.Delete
-        , Network.Google.Resource.Compute.TargetSSLProxies.Get
-        , Network.Google.Resource.Compute.TargetSSLProxies.Insert
-        , Network.Google.Resource.Compute.TargetSSLProxies.List
-        , Network.Google.Resource.Compute.TargetSSLProxies.SetBackendService
-        , Network.Google.Resource.Compute.TargetSSLProxies.SetProxyHeader
-        , Network.Google.Resource.Compute.TargetSSLProxies.SetSSLCertificates
-        , Network.Google.Resource.Compute.TargetSSLProxies.SetSSLPolicy
-        , Network.Google.Resource.Compute.TargetTCPProxies.Delete
-        , Network.Google.Resource.Compute.TargetTCPProxies.Get
-        , Network.Google.Resource.Compute.TargetTCPProxies.Insert
-        , Network.Google.Resource.Compute.TargetTCPProxies.List
-        , Network.Google.Resource.Compute.TargetTCPProxies.SetBackendService
-        , Network.Google.Resource.Compute.TargetTCPProxies.SetProxyHeader
-        , Network.Google.Resource.Compute.TargetVPNGateways.AggregatedList
-        , Network.Google.Resource.Compute.TargetVPNGateways.Delete
-        , Network.Google.Resource.Compute.TargetVPNGateways.Get
-        , Network.Google.Resource.Compute.TargetVPNGateways.Insert
-        , Network.Google.Resource.Compute.TargetVPNGateways.List
-        , Network.Google.Resource.Compute.URLMaps.Delete
-        , Network.Google.Resource.Compute.URLMaps.Get
-        , Network.Google.Resource.Compute.URLMaps.Insert
-        , Network.Google.Resource.Compute.URLMaps.InvalidateCache
-        , Network.Google.Resource.Compute.URLMaps.List
-        , Network.Google.Resource.Compute.URLMaps.Patch
-        , Network.Google.Resource.Compute.URLMaps.Update
-        , Network.Google.Resource.Compute.URLMaps.Validate
-        , Network.Google.Resource.Compute.VPNTunnels.AggregatedList
-        , Network.Google.Resource.Compute.VPNTunnels.Delete
-        , Network.Google.Resource.Compute.VPNTunnels.Get
-        , Network.Google.Resource.Compute.VPNTunnels.Insert
-        , Network.Google.Resource.Compute.VPNTunnels.List
-        , Network.Google.Resource.Compute.ZoneOperations.Delete
-        , Network.Google.Resource.Compute.ZoneOperations.Get
-        , Network.Google.Resource.Compute.ZoneOperations.List
-        , Network.Google.Resource.Compute.Zones.Get
-        , Network.Google.Resource.Compute.Zones.List
-
-    other-modules:
-          Network.Google.Compute.Types.Product
-        , Network.Google.Compute.Types.Sum
-
-    build-depends:
-          gogol-core == 0.5.0.*
-        , base       >= 4.7 && < 5
+cabal-version:      2.2
+name:               gogol-compute
+version:            1.0.0
+synopsis:           Google Compute Engine SDK.
+homepage:           https://github.com/brendanhay/gogol
+bug-reports:        https://github.com/brendanhay/gogol/issues
+license:            MPL-2.0
+license-file:       LICENSE
+author:             Brendan Hay
+maintainer:
+  Brendan Hay <brendan.g.hay+gogol@gmail.com>, Toni Cebrián <toni@tonicebrian.com>
+
+copyright:          Copyright (c) 2015-2025 Brendan Hay
+category:           Google
+build-type:         Simple
+extra-source-files:
+  README.md
+  src/.gitkeep
+
+description:
+  Creates and runs virtual machines on Google Cloud Platform.
+  .
+  /Warning:/ This is an experimental prototype/preview release which is still
+  under exploratory development and not intended for public use, caveat emptor!
+  .
+  This library is compatible with version @v1@
+  of the API.
+
+source-repository head
+  type:     git
+  location: git://github.com/brendanhay/gogol.git
+  subdir:   gogol-compute
+
+flag field-selectors
+  description:
+    If record field selectors should be enabled. Disabling this requires GHC >=9.2 and the NoFieldSelectors extension.
+
+  default:     False
+  manual:      True
+
+library
+  default-language: GHC2021
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
+    -fwarn-unused-packages
+
+  if (!flag(field-selectors) && impl(ghc >=9.2))
+    default-extensions: NoFieldSelectors
+
+  exposed-modules:
+    Gogol.Compute
+    Gogol.Compute.AcceleratorTypes.AggregatedList
+    Gogol.Compute.AcceleratorTypes.Get
+    Gogol.Compute.AcceleratorTypes.List
+    Gogol.Compute.Addresses.AggregatedList
+    Gogol.Compute.Addresses.Delete
+    Gogol.Compute.Addresses.Get
+    Gogol.Compute.Addresses.Insert
+    Gogol.Compute.Addresses.List
+    Gogol.Compute.Addresses.Move
+    Gogol.Compute.Addresses.SetLabels
+    Gogol.Compute.Autoscalers.AggregatedList
+    Gogol.Compute.Autoscalers.Delete
+    Gogol.Compute.Autoscalers.Get
+    Gogol.Compute.Autoscalers.Insert
+    Gogol.Compute.Autoscalers.List
+    Gogol.Compute.Autoscalers.Patch
+    Gogol.Compute.Autoscalers.Update
+    Gogol.Compute.BackendBuckets.AddSignedUrlKey
+    Gogol.Compute.BackendBuckets.Delete
+    Gogol.Compute.BackendBuckets.DeleteSignedUrlKey
+    Gogol.Compute.BackendBuckets.Get
+    Gogol.Compute.BackendBuckets.GetIamPolicy
+    Gogol.Compute.BackendBuckets.Insert
+    Gogol.Compute.BackendBuckets.List
+    Gogol.Compute.BackendBuckets.Patch
+    Gogol.Compute.BackendBuckets.SetEdgeSecurityPolicy
+    Gogol.Compute.BackendBuckets.SetIamPolicy
+    Gogol.Compute.BackendBuckets.TestIamPermissions
+    Gogol.Compute.BackendBuckets.Update
+    Gogol.Compute.BackendServices.AddSignedUrlKey
+    Gogol.Compute.BackendServices.AggregatedList
+    Gogol.Compute.BackendServices.Delete
+    Gogol.Compute.BackendServices.DeleteSignedUrlKey
+    Gogol.Compute.BackendServices.Get
+    Gogol.Compute.BackendServices.GetHealth
+    Gogol.Compute.BackendServices.GetIamPolicy
+    Gogol.Compute.BackendServices.Insert
+    Gogol.Compute.BackendServices.List
+    Gogol.Compute.BackendServices.ListUsable
+    Gogol.Compute.BackendServices.Patch
+    Gogol.Compute.BackendServices.SetEdgeSecurityPolicy
+    Gogol.Compute.BackendServices.SetIamPolicy
+    Gogol.Compute.BackendServices.SetSecurityPolicy
+    Gogol.Compute.BackendServices.TestIamPermissions
+    Gogol.Compute.BackendServices.Update
+    Gogol.Compute.Disks.AddResourcePolicies
+    Gogol.Compute.Disks.AggregatedList
+    Gogol.Compute.Disks.BulkInsert
+    Gogol.Compute.Disks.CreateSnapshot
+    Gogol.Compute.Disks.Delete
+    Gogol.Compute.Disks.Get
+    Gogol.Compute.Disks.GetIamPolicy
+    Gogol.Compute.Disks.Insert
+    Gogol.Compute.Disks.List
+    Gogol.Compute.Disks.RemoveResourcePolicies
+    Gogol.Compute.Disks.Resize
+    Gogol.Compute.Disks.SetIamPolicy
+    Gogol.Compute.Disks.SetLabels
+    Gogol.Compute.Disks.StartAsyncReplication
+    Gogol.Compute.Disks.StopAsyncReplication
+    Gogol.Compute.Disks.StopGroupAsyncReplication
+    Gogol.Compute.Disks.TestIamPermissions
+    Gogol.Compute.Disks.Update
+    Gogol.Compute.DiskTypes.AggregatedList
+    Gogol.Compute.DiskTypes.Get
+    Gogol.Compute.DiskTypes.List
+    Gogol.Compute.ExternalVpnGateways.Delete
+    Gogol.Compute.ExternalVpnGateways.Get
+    Gogol.Compute.ExternalVpnGateways.Insert
+    Gogol.Compute.ExternalVpnGateways.List
+    Gogol.Compute.ExternalVpnGateways.SetLabels
+    Gogol.Compute.ExternalVpnGateways.TestIamPermissions
+    Gogol.Compute.FirewallPolicies.AddAssociation
+    Gogol.Compute.FirewallPolicies.AddRule
+    Gogol.Compute.FirewallPolicies.CloneRules
+    Gogol.Compute.FirewallPolicies.Delete
+    Gogol.Compute.FirewallPolicies.Get
+    Gogol.Compute.FirewallPolicies.GetAssociation
+    Gogol.Compute.FirewallPolicies.GetIamPolicy
+    Gogol.Compute.FirewallPolicies.GetRule
+    Gogol.Compute.FirewallPolicies.Insert
+    Gogol.Compute.FirewallPolicies.List
+    Gogol.Compute.FirewallPolicies.ListAssociations
+    Gogol.Compute.FirewallPolicies.Move
+    Gogol.Compute.FirewallPolicies.Patch
+    Gogol.Compute.FirewallPolicies.PatchRule
+    Gogol.Compute.FirewallPolicies.RemoveAssociation
+    Gogol.Compute.FirewallPolicies.RemoveRule
+    Gogol.Compute.FirewallPolicies.SetIamPolicy
+    Gogol.Compute.FirewallPolicies.TestIamPermissions
+    Gogol.Compute.Firewalls.Delete
+    Gogol.Compute.Firewalls.Get
+    Gogol.Compute.Firewalls.Insert
+    Gogol.Compute.Firewalls.List
+    Gogol.Compute.Firewalls.Patch
+    Gogol.Compute.Firewalls.Update
+    Gogol.Compute.ForwardingRules.AggregatedList
+    Gogol.Compute.ForwardingRules.Delete
+    Gogol.Compute.ForwardingRules.Get
+    Gogol.Compute.ForwardingRules.Insert
+    Gogol.Compute.ForwardingRules.List
+    Gogol.Compute.ForwardingRules.Patch
+    Gogol.Compute.ForwardingRules.SetLabels
+    Gogol.Compute.ForwardingRules.SetTarget
+    Gogol.Compute.GlobalAddresses.Delete
+    Gogol.Compute.GlobalAddresses.Get
+    Gogol.Compute.GlobalAddresses.Insert
+    Gogol.Compute.GlobalAddresses.List
+    Gogol.Compute.GlobalAddresses.Move
+    Gogol.Compute.GlobalAddresses.SetLabels
+    Gogol.Compute.GlobalForwardingRules.Delete
+    Gogol.Compute.GlobalForwardingRules.Get
+    Gogol.Compute.GlobalForwardingRules.Insert
+    Gogol.Compute.GlobalForwardingRules.List
+    Gogol.Compute.GlobalForwardingRules.Patch
+    Gogol.Compute.GlobalForwardingRules.SetLabels
+    Gogol.Compute.GlobalForwardingRules.SetTarget
+    Gogol.Compute.GlobalNetworkEndpointGroups.AttachNetworkEndpoints
+    Gogol.Compute.GlobalNetworkEndpointGroups.Delete
+    Gogol.Compute.GlobalNetworkEndpointGroups.DetachNetworkEndpoints
+    Gogol.Compute.GlobalNetworkEndpointGroups.Get
+    Gogol.Compute.GlobalNetworkEndpointGroups.Insert
+    Gogol.Compute.GlobalNetworkEndpointGroups.List
+    Gogol.Compute.GlobalNetworkEndpointGroups.ListNetworkEndpoints
+    Gogol.Compute.GlobalOperations.AggregatedList
+    Gogol.Compute.GlobalOperations.Delete
+    Gogol.Compute.GlobalOperations.Get
+    Gogol.Compute.GlobalOperations.List
+    Gogol.Compute.GlobalOperations.Wait
+    Gogol.Compute.GlobalOrganizationOperations.Delete
+    Gogol.Compute.GlobalOrganizationOperations.Get
+    Gogol.Compute.GlobalOrganizationOperations.List
+    Gogol.Compute.GlobalPublicDelegatedPrefixes.Delete
+    Gogol.Compute.GlobalPublicDelegatedPrefixes.Get
+    Gogol.Compute.GlobalPublicDelegatedPrefixes.Insert
+    Gogol.Compute.GlobalPublicDelegatedPrefixes.List
+    Gogol.Compute.GlobalPublicDelegatedPrefixes.Patch
+    Gogol.Compute.HealthChecks.AggregatedList
+    Gogol.Compute.HealthChecks.Delete
+    Gogol.Compute.HealthChecks.Get
+    Gogol.Compute.HealthChecks.Insert
+    Gogol.Compute.HealthChecks.List
+    Gogol.Compute.HealthChecks.Patch
+    Gogol.Compute.HealthChecks.Update
+    Gogol.Compute.HttpHealthChecks.Delete
+    Gogol.Compute.HttpHealthChecks.Get
+    Gogol.Compute.HttpHealthChecks.Insert
+    Gogol.Compute.HttpHealthChecks.List
+    Gogol.Compute.HttpHealthChecks.Patch
+    Gogol.Compute.HttpHealthChecks.Update
+    Gogol.Compute.HttpsHealthChecks.Delete
+    Gogol.Compute.HttpsHealthChecks.Get
+    Gogol.Compute.HttpsHealthChecks.Insert
+    Gogol.Compute.HttpsHealthChecks.List
+    Gogol.Compute.HttpsHealthChecks.Patch
+    Gogol.Compute.HttpsHealthChecks.Update
+    Gogol.Compute.ImageFamilyViews.Get
+    Gogol.Compute.Images.Delete
+    Gogol.Compute.Images.Deprecate
+    Gogol.Compute.Images.Get
+    Gogol.Compute.Images.GetFromFamily
+    Gogol.Compute.Images.GetIamPolicy
+    Gogol.Compute.Images.Insert
+    Gogol.Compute.Images.List
+    Gogol.Compute.Images.Patch
+    Gogol.Compute.Images.SetIamPolicy
+    Gogol.Compute.Images.SetLabels
+    Gogol.Compute.Images.TestIamPermissions
+    Gogol.Compute.InstanceGroupManagerResizeRequests.Cancel
+    Gogol.Compute.InstanceGroupManagerResizeRequests.Delete
+    Gogol.Compute.InstanceGroupManagerResizeRequests.Get
+    Gogol.Compute.InstanceGroupManagerResizeRequests.Insert
+    Gogol.Compute.InstanceGroupManagerResizeRequests.List
+    Gogol.Compute.InstanceGroupManagers.AbandonInstances
+    Gogol.Compute.InstanceGroupManagers.AggregatedList
+    Gogol.Compute.InstanceGroupManagers.ApplyUpdatesToInstances
+    Gogol.Compute.InstanceGroupManagers.CreateInstances
+    Gogol.Compute.InstanceGroupManagers.Delete
+    Gogol.Compute.InstanceGroupManagers.DeleteInstances
+    Gogol.Compute.InstanceGroupManagers.DeletePerInstanceConfigs
+    Gogol.Compute.InstanceGroupManagers.Get
+    Gogol.Compute.InstanceGroupManagers.Insert
+    Gogol.Compute.InstanceGroupManagers.List
+    Gogol.Compute.InstanceGroupManagers.ListErrors
+    Gogol.Compute.InstanceGroupManagers.ListManagedInstances
+    Gogol.Compute.InstanceGroupManagers.ListPerInstanceConfigs
+    Gogol.Compute.InstanceGroupManagers.Patch
+    Gogol.Compute.InstanceGroupManagers.PatchPerInstanceConfigs
+    Gogol.Compute.InstanceGroupManagers.RecreateInstances
+    Gogol.Compute.InstanceGroupManagers.Resize
+    Gogol.Compute.InstanceGroupManagers.ResumeInstances
+    Gogol.Compute.InstanceGroupManagers.SetInstanceTemplate
+    Gogol.Compute.InstanceGroupManagers.SetTargetPools
+    Gogol.Compute.InstanceGroupManagers.StartInstances
+    Gogol.Compute.InstanceGroupManagers.StopInstances
+    Gogol.Compute.InstanceGroupManagers.SuspendInstances
+    Gogol.Compute.InstanceGroupManagers.UpdatePerInstanceConfigs
+    Gogol.Compute.InstanceGroups.AddInstances
+    Gogol.Compute.InstanceGroups.AggregatedList
+    Gogol.Compute.InstanceGroups.Delete
+    Gogol.Compute.InstanceGroups.Get
+    Gogol.Compute.InstanceGroups.Insert
+    Gogol.Compute.InstanceGroups.List
+    Gogol.Compute.InstanceGroups.ListInstances
+    Gogol.Compute.InstanceGroups.RemoveInstances
+    Gogol.Compute.InstanceGroups.SetNamedPorts
+    Gogol.Compute.Instances.AddAccessConfig
+    Gogol.Compute.Instances.AddResourcePolicies
+    Gogol.Compute.Instances.AggregatedList
+    Gogol.Compute.Instances.AttachDisk
+    Gogol.Compute.Instances.BulkInsert
+    Gogol.Compute.Instances.Delete
+    Gogol.Compute.Instances.DeleteAccessConfig
+    Gogol.Compute.Instances.DetachDisk
+    Gogol.Compute.Instances.Get
+    Gogol.Compute.Instances.GetEffectiveFirewalls
+    Gogol.Compute.Instances.GetGuestAttributes
+    Gogol.Compute.Instances.GetIamPolicy
+    Gogol.Compute.Instances.GetScreenshot
+    Gogol.Compute.Instances.GetSerialPortOutput
+    Gogol.Compute.Instances.GetShieldedInstanceIdentity
+    Gogol.Compute.Instances.Insert
+    Gogol.Compute.Instances.List
+    Gogol.Compute.Instances.ListReferrers
+    Gogol.Compute.Instances.PerformMaintenance
+    Gogol.Compute.Instances.RemoveResourcePolicies
+    Gogol.Compute.Instances.ReportHostAsFaulty
+    Gogol.Compute.Instances.Reset
+    Gogol.Compute.Instances.Resume
+    Gogol.Compute.Instances.SendDiagnosticInterrupt
+    Gogol.Compute.Instances.SetDeletionProtection
+    Gogol.Compute.Instances.SetDiskAutoDelete
+    Gogol.Compute.Instances.SetIamPolicy
+    Gogol.Compute.Instances.SetLabels
+    Gogol.Compute.Instances.SetMachineResources
+    Gogol.Compute.Instances.SetMachineType
+    Gogol.Compute.Instances.SetMetadata
+    Gogol.Compute.Instances.SetMinCpuPlatform
+    Gogol.Compute.Instances.SetName
+    Gogol.Compute.Instances.SetScheduling
+    Gogol.Compute.Instances.SetSecurityPolicy
+    Gogol.Compute.Instances.SetServiceAccount
+    Gogol.Compute.Instances.SetShieldedInstanceIntegrityPolicy
+    Gogol.Compute.Instances.SetTags
+    Gogol.Compute.Instances.SimulateMaintenanceEvent
+    Gogol.Compute.Instances.Start
+    Gogol.Compute.Instances.StartWithEncryptionKey
+    Gogol.Compute.Instances.Stop
+    Gogol.Compute.Instances.Suspend
+    Gogol.Compute.Instances.TestIamPermissions
+    Gogol.Compute.Instances.Update
+    Gogol.Compute.Instances.UpdateAccessConfig
+    Gogol.Compute.Instances.UpdateDisplayDevice
+    Gogol.Compute.Instances.UpdateNetworkInterface
+    Gogol.Compute.Instances.UpdateShieldedInstanceConfig
+    Gogol.Compute.InstanceSettings.Get
+    Gogol.Compute.InstanceSettings.Patch
+    Gogol.Compute.InstanceTemplates.AggregatedList
+    Gogol.Compute.InstanceTemplates.Delete
+    Gogol.Compute.InstanceTemplates.Get
+    Gogol.Compute.InstanceTemplates.GetIamPolicy
+    Gogol.Compute.InstanceTemplates.Insert
+    Gogol.Compute.InstanceTemplates.List
+    Gogol.Compute.InstanceTemplates.SetIamPolicy
+    Gogol.Compute.InstanceTemplates.TestIamPermissions
+    Gogol.Compute.InstantSnapshots.AggregatedList
+    Gogol.Compute.InstantSnapshots.Delete
+    Gogol.Compute.InstantSnapshots.Get
+    Gogol.Compute.InstantSnapshots.GetIamPolicy
+    Gogol.Compute.InstantSnapshots.Insert
+    Gogol.Compute.InstantSnapshots.List
+    Gogol.Compute.InstantSnapshots.SetIamPolicy
+    Gogol.Compute.InstantSnapshots.SetLabels
+    Gogol.Compute.InstantSnapshots.TestIamPermissions
+    Gogol.Compute.InterconnectAttachments.AggregatedList
+    Gogol.Compute.InterconnectAttachments.Delete
+    Gogol.Compute.InterconnectAttachments.Get
+    Gogol.Compute.InterconnectAttachments.Insert
+    Gogol.Compute.InterconnectAttachments.List
+    Gogol.Compute.InterconnectAttachments.Patch
+    Gogol.Compute.InterconnectAttachments.SetLabels
+    Gogol.Compute.InterconnectLocations.Get
+    Gogol.Compute.InterconnectLocations.List
+    Gogol.Compute.InterconnectRemoteLocations.Get
+    Gogol.Compute.InterconnectRemoteLocations.List
+    Gogol.Compute.Interconnects.Delete
+    Gogol.Compute.Interconnects.Get
+    Gogol.Compute.Interconnects.GetDiagnostics
+    Gogol.Compute.Interconnects.GetMacsecConfig
+    Gogol.Compute.Interconnects.Insert
+    Gogol.Compute.Interconnects.List
+    Gogol.Compute.Interconnects.Patch
+    Gogol.Compute.Interconnects.SetLabels
+    Gogol.Compute.LicenseCodes.Get
+    Gogol.Compute.LicenseCodes.TestIamPermissions
+    Gogol.Compute.Licenses.Delete
+    Gogol.Compute.Licenses.Get
+    Gogol.Compute.Licenses.GetIamPolicy
+    Gogol.Compute.Licenses.Insert
+    Gogol.Compute.Licenses.List
+    Gogol.Compute.Licenses.SetIamPolicy
+    Gogol.Compute.Licenses.TestIamPermissions
+    Gogol.Compute.MachineImages.Delete
+    Gogol.Compute.MachineImages.Get
+    Gogol.Compute.MachineImages.GetIamPolicy
+    Gogol.Compute.MachineImages.Insert
+    Gogol.Compute.MachineImages.List
+    Gogol.Compute.MachineImages.SetIamPolicy
+    Gogol.Compute.MachineImages.TestIamPermissions
+    Gogol.Compute.MachineTypes.AggregatedList
+    Gogol.Compute.MachineTypes.Get
+    Gogol.Compute.MachineTypes.List
+    Gogol.Compute.NetworkAttachments.AggregatedList
+    Gogol.Compute.NetworkAttachments.Delete
+    Gogol.Compute.NetworkAttachments.Get
+    Gogol.Compute.NetworkAttachments.GetIamPolicy
+    Gogol.Compute.NetworkAttachments.Insert
+    Gogol.Compute.NetworkAttachments.List
+    Gogol.Compute.NetworkAttachments.Patch
+    Gogol.Compute.NetworkAttachments.SetIamPolicy
+    Gogol.Compute.NetworkAttachments.TestIamPermissions
+    Gogol.Compute.NetworkEdgeSecurityServices.AggregatedList
+    Gogol.Compute.NetworkEdgeSecurityServices.Delete
+    Gogol.Compute.NetworkEdgeSecurityServices.Get
+    Gogol.Compute.NetworkEdgeSecurityServices.Insert
+    Gogol.Compute.NetworkEdgeSecurityServices.Patch
+    Gogol.Compute.NetworkEndpointGroups.AggregatedList
+    Gogol.Compute.NetworkEndpointGroups.AttachNetworkEndpoints
+    Gogol.Compute.NetworkEndpointGroups.Delete
+    Gogol.Compute.NetworkEndpointGroups.DetachNetworkEndpoints
+    Gogol.Compute.NetworkEndpointGroups.Get
+    Gogol.Compute.NetworkEndpointGroups.Insert
+    Gogol.Compute.NetworkEndpointGroups.List
+    Gogol.Compute.NetworkEndpointGroups.ListNetworkEndpoints
+    Gogol.Compute.NetworkEndpointGroups.TestIamPermissions
+    Gogol.Compute.NetworkFirewallPolicies.AddAssociation
+    Gogol.Compute.NetworkFirewallPolicies.AddPacketMirroringRule
+    Gogol.Compute.NetworkFirewallPolicies.AddRule
+    Gogol.Compute.NetworkFirewallPolicies.AggregatedList
+    Gogol.Compute.NetworkFirewallPolicies.CloneRules
+    Gogol.Compute.NetworkFirewallPolicies.Delete
+    Gogol.Compute.NetworkFirewallPolicies.Get
+    Gogol.Compute.NetworkFirewallPolicies.GetAssociation
+    Gogol.Compute.NetworkFirewallPolicies.GetIamPolicy
+    Gogol.Compute.NetworkFirewallPolicies.GetPacketMirroringRule
+    Gogol.Compute.NetworkFirewallPolicies.GetRule
+    Gogol.Compute.NetworkFirewallPolicies.Insert
+    Gogol.Compute.NetworkFirewallPolicies.List
+    Gogol.Compute.NetworkFirewallPolicies.Patch
+    Gogol.Compute.NetworkFirewallPolicies.PatchPacketMirroringRule
+    Gogol.Compute.NetworkFirewallPolicies.PatchRule
+    Gogol.Compute.NetworkFirewallPolicies.RemoveAssociation
+    Gogol.Compute.NetworkFirewallPolicies.RemovePacketMirroringRule
+    Gogol.Compute.NetworkFirewallPolicies.RemoveRule
+    Gogol.Compute.NetworkFirewallPolicies.SetIamPolicy
+    Gogol.Compute.NetworkFirewallPolicies.TestIamPermissions
+    Gogol.Compute.NetworkProfiles.Get
+    Gogol.Compute.NetworkProfiles.List
+    Gogol.Compute.Networks.AddPeering
+    Gogol.Compute.Networks.Delete
+    Gogol.Compute.Networks.Get
+    Gogol.Compute.Networks.GetEffectiveFirewalls
+    Gogol.Compute.Networks.Insert
+    Gogol.Compute.Networks.List
+    Gogol.Compute.Networks.ListPeeringRoutes
+    Gogol.Compute.Networks.Patch
+    Gogol.Compute.Networks.RemovePeering
+    Gogol.Compute.Networks.SwitchToCustomMode
+    Gogol.Compute.Networks.UpdatePeering
+    Gogol.Compute.NodeGroups.AddNodes
+    Gogol.Compute.NodeGroups.AggregatedList
+    Gogol.Compute.NodeGroups.Delete
+    Gogol.Compute.NodeGroups.DeleteNodes
+    Gogol.Compute.NodeGroups.Get
+    Gogol.Compute.NodeGroups.GetIamPolicy
+    Gogol.Compute.NodeGroups.Insert
+    Gogol.Compute.NodeGroups.List
+    Gogol.Compute.NodeGroups.ListNodes
+    Gogol.Compute.NodeGroups.Patch
+    Gogol.Compute.NodeGroups.PerformMaintenance
+    Gogol.Compute.NodeGroups.SetIamPolicy
+    Gogol.Compute.NodeGroups.SetNodeTemplate
+    Gogol.Compute.NodeGroups.SimulateMaintenanceEvent
+    Gogol.Compute.NodeGroups.TestIamPermissions
+    Gogol.Compute.NodeTemplates.AggregatedList
+    Gogol.Compute.NodeTemplates.Delete
+    Gogol.Compute.NodeTemplates.Get
+    Gogol.Compute.NodeTemplates.GetIamPolicy
+    Gogol.Compute.NodeTemplates.Insert
+    Gogol.Compute.NodeTemplates.List
+    Gogol.Compute.NodeTemplates.SetIamPolicy
+    Gogol.Compute.NodeTemplates.TestIamPermissions
+    Gogol.Compute.NodeTypes.AggregatedList
+    Gogol.Compute.NodeTypes.Get
+    Gogol.Compute.NodeTypes.List
+    Gogol.Compute.PacketMirrorings.AggregatedList
+    Gogol.Compute.PacketMirrorings.Delete
+    Gogol.Compute.PacketMirrorings.Get
+    Gogol.Compute.PacketMirrorings.Insert
+    Gogol.Compute.PacketMirrorings.List
+    Gogol.Compute.PacketMirrorings.Patch
+    Gogol.Compute.PacketMirrorings.TestIamPermissions
+    Gogol.Compute.Projects.DisableXpnHost
+    Gogol.Compute.Projects.DisableXpnResource
+    Gogol.Compute.Projects.EnableXpnHost
+    Gogol.Compute.Projects.EnableXpnResource
+    Gogol.Compute.Projects.Get
+    Gogol.Compute.Projects.GetXpnHost
+    Gogol.Compute.Projects.GetXpnResources
+    Gogol.Compute.Projects.ListXpnHosts
+    Gogol.Compute.Projects.MoveDisk
+    Gogol.Compute.Projects.MoveInstance
+    Gogol.Compute.Projects.SetCloudArmorTier
+    Gogol.Compute.Projects.SetCommonInstanceMetadata
+    Gogol.Compute.Projects.SetDefaultNetworkTier
+    Gogol.Compute.Projects.SetUsageExportBucket
+    Gogol.Compute.PublicAdvertisedPrefixes.Announce
+    Gogol.Compute.PublicAdvertisedPrefixes.Delete
+    Gogol.Compute.PublicAdvertisedPrefixes.Get
+    Gogol.Compute.PublicAdvertisedPrefixes.Insert
+    Gogol.Compute.PublicAdvertisedPrefixes.List
+    Gogol.Compute.PublicAdvertisedPrefixes.Patch
+    Gogol.Compute.PublicAdvertisedPrefixes.Withdraw
+    Gogol.Compute.PublicDelegatedPrefixes.AggregatedList
+    Gogol.Compute.PublicDelegatedPrefixes.Announce
+    Gogol.Compute.PublicDelegatedPrefixes.Delete
+    Gogol.Compute.PublicDelegatedPrefixes.Get
+    Gogol.Compute.PublicDelegatedPrefixes.Insert
+    Gogol.Compute.PublicDelegatedPrefixes.List
+    Gogol.Compute.PublicDelegatedPrefixes.Patch
+    Gogol.Compute.PublicDelegatedPrefixes.Withdraw
+    Gogol.Compute.RegionAutoscalers.Delete
+    Gogol.Compute.RegionAutoscalers.Get
+    Gogol.Compute.RegionAutoscalers.Insert
+    Gogol.Compute.RegionAutoscalers.List
+    Gogol.Compute.RegionAutoscalers.Patch
+    Gogol.Compute.RegionAutoscalers.Update
+    Gogol.Compute.RegionBackendServices.Delete
+    Gogol.Compute.RegionBackendServices.Get
+    Gogol.Compute.RegionBackendServices.GetHealth
+    Gogol.Compute.RegionBackendServices.GetIamPolicy
+    Gogol.Compute.RegionBackendServices.Insert
+    Gogol.Compute.RegionBackendServices.List
+    Gogol.Compute.RegionBackendServices.ListUsable
+    Gogol.Compute.RegionBackendServices.Patch
+    Gogol.Compute.RegionBackendServices.SetIamPolicy
+    Gogol.Compute.RegionBackendServices.SetSecurityPolicy
+    Gogol.Compute.RegionBackendServices.TestIamPermissions
+    Gogol.Compute.RegionBackendServices.Update
+    Gogol.Compute.RegionCommitments.AggregatedList
+    Gogol.Compute.RegionCommitments.Get
+    Gogol.Compute.RegionCommitments.Insert
+    Gogol.Compute.RegionCommitments.List
+    Gogol.Compute.RegionCommitments.Update
+    Gogol.Compute.RegionDisks.AddResourcePolicies
+    Gogol.Compute.RegionDisks.BulkInsert
+    Gogol.Compute.RegionDisks.CreateSnapshot
+    Gogol.Compute.RegionDisks.Delete
+    Gogol.Compute.RegionDisks.Get
+    Gogol.Compute.RegionDisks.GetIamPolicy
+    Gogol.Compute.RegionDisks.Insert
+    Gogol.Compute.RegionDisks.List
+    Gogol.Compute.RegionDisks.RemoveResourcePolicies
+    Gogol.Compute.RegionDisks.Resize
+    Gogol.Compute.RegionDisks.SetIamPolicy
+    Gogol.Compute.RegionDisks.SetLabels
+    Gogol.Compute.RegionDisks.StartAsyncReplication
+    Gogol.Compute.RegionDisks.StopAsyncReplication
+    Gogol.Compute.RegionDisks.StopGroupAsyncReplication
+    Gogol.Compute.RegionDisks.TestIamPermissions
+    Gogol.Compute.RegionDisks.Update
+    Gogol.Compute.RegionDiskTypes.Get
+    Gogol.Compute.RegionDiskTypes.List
+    Gogol.Compute.RegionHealthChecks.Delete
+    Gogol.Compute.RegionHealthChecks.Get
+    Gogol.Compute.RegionHealthChecks.Insert
+    Gogol.Compute.RegionHealthChecks.List
+    Gogol.Compute.RegionHealthChecks.Patch
+    Gogol.Compute.RegionHealthChecks.Update
+    Gogol.Compute.RegionHealthCheckServices.Delete
+    Gogol.Compute.RegionHealthCheckServices.Get
+    Gogol.Compute.RegionHealthCheckServices.Insert
+    Gogol.Compute.RegionHealthCheckServices.List
+    Gogol.Compute.RegionHealthCheckServices.Patch
+    Gogol.Compute.RegionInstanceGroupManagers.AbandonInstances
+    Gogol.Compute.RegionInstanceGroupManagers.ApplyUpdatesToInstances
+    Gogol.Compute.RegionInstanceGroupManagers.CreateInstances
+    Gogol.Compute.RegionInstanceGroupManagers.Delete
+    Gogol.Compute.RegionInstanceGroupManagers.DeleteInstances
+    Gogol.Compute.RegionInstanceGroupManagers.DeletePerInstanceConfigs
+    Gogol.Compute.RegionInstanceGroupManagers.Get
+    Gogol.Compute.RegionInstanceGroupManagers.Insert
+    Gogol.Compute.RegionInstanceGroupManagers.List
+    Gogol.Compute.RegionInstanceGroupManagers.ListErrors
+    Gogol.Compute.RegionInstanceGroupManagers.ListManagedInstances
+    Gogol.Compute.RegionInstanceGroupManagers.ListPerInstanceConfigs
+    Gogol.Compute.RegionInstanceGroupManagers.Patch
+    Gogol.Compute.RegionInstanceGroupManagers.PatchPerInstanceConfigs
+    Gogol.Compute.RegionInstanceGroupManagers.RecreateInstances
+    Gogol.Compute.RegionInstanceGroupManagers.Resize
+    Gogol.Compute.RegionInstanceGroupManagers.ResumeInstances
+    Gogol.Compute.RegionInstanceGroupManagers.SetInstanceTemplate
+    Gogol.Compute.RegionInstanceGroupManagers.SetTargetPools
+    Gogol.Compute.RegionInstanceGroupManagers.StartInstances
+    Gogol.Compute.RegionInstanceGroupManagers.StopInstances
+    Gogol.Compute.RegionInstanceGroupManagers.SuspendInstances
+    Gogol.Compute.RegionInstanceGroupManagers.UpdatePerInstanceConfigs
+    Gogol.Compute.RegionInstanceGroups.Get
+    Gogol.Compute.RegionInstanceGroups.List
+    Gogol.Compute.RegionInstanceGroups.ListInstances
+    Gogol.Compute.RegionInstanceGroups.SetNamedPorts
+    Gogol.Compute.RegionInstances.BulkInsert
+    Gogol.Compute.RegionInstanceTemplates.Delete
+    Gogol.Compute.RegionInstanceTemplates.Get
+    Gogol.Compute.RegionInstanceTemplates.Insert
+    Gogol.Compute.RegionInstanceTemplates.List
+    Gogol.Compute.RegionInstantSnapshots.Delete
+    Gogol.Compute.RegionInstantSnapshots.Get
+    Gogol.Compute.RegionInstantSnapshots.GetIamPolicy
+    Gogol.Compute.RegionInstantSnapshots.Insert
+    Gogol.Compute.RegionInstantSnapshots.List
+    Gogol.Compute.RegionInstantSnapshots.SetIamPolicy
+    Gogol.Compute.RegionInstantSnapshots.SetLabels
+    Gogol.Compute.RegionInstantSnapshots.TestIamPermissions
+    Gogol.Compute.RegionNetworkEndpointGroups.AttachNetworkEndpoints
+    Gogol.Compute.RegionNetworkEndpointGroups.Delete
+    Gogol.Compute.RegionNetworkEndpointGroups.DetachNetworkEndpoints
+    Gogol.Compute.RegionNetworkEndpointGroups.Get
+    Gogol.Compute.RegionNetworkEndpointGroups.Insert
+    Gogol.Compute.RegionNetworkEndpointGroups.List
+    Gogol.Compute.RegionNetworkEndpointGroups.ListNetworkEndpoints
+    Gogol.Compute.RegionNetworkFirewallPolicies.AddAssociation
+    Gogol.Compute.RegionNetworkFirewallPolicies.AddRule
+    Gogol.Compute.RegionNetworkFirewallPolicies.CloneRules
+    Gogol.Compute.RegionNetworkFirewallPolicies.Delete
+    Gogol.Compute.RegionNetworkFirewallPolicies.Get
+    Gogol.Compute.RegionNetworkFirewallPolicies.GetAssociation
+    Gogol.Compute.RegionNetworkFirewallPolicies.GetEffectiveFirewalls
+    Gogol.Compute.RegionNetworkFirewallPolicies.GetIamPolicy
+    Gogol.Compute.RegionNetworkFirewallPolicies.GetRule
+    Gogol.Compute.RegionNetworkFirewallPolicies.Insert
+    Gogol.Compute.RegionNetworkFirewallPolicies.List
+    Gogol.Compute.RegionNetworkFirewallPolicies.Patch
+    Gogol.Compute.RegionNetworkFirewallPolicies.PatchRule
+    Gogol.Compute.RegionNetworkFirewallPolicies.RemoveAssociation
+    Gogol.Compute.RegionNetworkFirewallPolicies.RemoveRule
+    Gogol.Compute.RegionNetworkFirewallPolicies.SetIamPolicy
+    Gogol.Compute.RegionNetworkFirewallPolicies.TestIamPermissions
+    Gogol.Compute.RegionNotificationEndpoints.Delete
+    Gogol.Compute.RegionNotificationEndpoints.Get
+    Gogol.Compute.RegionNotificationEndpoints.Insert
+    Gogol.Compute.RegionNotificationEndpoints.List
+    Gogol.Compute.RegionOperations.Delete
+    Gogol.Compute.RegionOperations.Get
+    Gogol.Compute.RegionOperations.List
+    Gogol.Compute.RegionOperations.Wait
+    Gogol.Compute.Regions.Get
+    Gogol.Compute.Regions.List
+    Gogol.Compute.RegionSecurityPolicies.AddRule
+    Gogol.Compute.RegionSecurityPolicies.Delete
+    Gogol.Compute.RegionSecurityPolicies.Get
+    Gogol.Compute.RegionSecurityPolicies.GetRule
+    Gogol.Compute.RegionSecurityPolicies.Insert
+    Gogol.Compute.RegionSecurityPolicies.List
+    Gogol.Compute.RegionSecurityPolicies.Patch
+    Gogol.Compute.RegionSecurityPolicies.PatchRule
+    Gogol.Compute.RegionSecurityPolicies.RemoveRule
+    Gogol.Compute.RegionSecurityPolicies.SetLabels
+    Gogol.Compute.RegionSslCertificates.Delete
+    Gogol.Compute.RegionSslCertificates.Get
+    Gogol.Compute.RegionSslCertificates.Insert
+    Gogol.Compute.RegionSslCertificates.List
+    Gogol.Compute.RegionSslPolicies.Delete
+    Gogol.Compute.RegionSslPolicies.Get
+    Gogol.Compute.RegionSslPolicies.Insert
+    Gogol.Compute.RegionSslPolicies.List
+    Gogol.Compute.RegionSslPolicies.ListAvailableFeatures
+    Gogol.Compute.RegionSslPolicies.Patch
+    Gogol.Compute.RegionTargetHttpProxies.Delete
+    Gogol.Compute.RegionTargetHttpProxies.Get
+    Gogol.Compute.RegionTargetHttpProxies.Insert
+    Gogol.Compute.RegionTargetHttpProxies.List
+    Gogol.Compute.RegionTargetHttpProxies.SetUrlMap
+    Gogol.Compute.RegionTargetHttpsProxies.Delete
+    Gogol.Compute.RegionTargetHttpsProxies.Get
+    Gogol.Compute.RegionTargetHttpsProxies.Insert
+    Gogol.Compute.RegionTargetHttpsProxies.List
+    Gogol.Compute.RegionTargetHttpsProxies.Patch
+    Gogol.Compute.RegionTargetHttpsProxies.SetSslCertificates
+    Gogol.Compute.RegionTargetHttpsProxies.SetUrlMap
+    Gogol.Compute.RegionTargetTcpProxies.Delete
+    Gogol.Compute.RegionTargetTcpProxies.Get
+    Gogol.Compute.RegionTargetTcpProxies.Insert
+    Gogol.Compute.RegionTargetTcpProxies.List
+    Gogol.Compute.RegionUrlMaps.Delete
+    Gogol.Compute.RegionUrlMaps.Get
+    Gogol.Compute.RegionUrlMaps.Insert
+    Gogol.Compute.RegionUrlMaps.List
+    Gogol.Compute.RegionUrlMaps.Patch
+    Gogol.Compute.RegionUrlMaps.Update
+    Gogol.Compute.RegionUrlMaps.Validate
+    Gogol.Compute.RegionZones.List
+    Gogol.Compute.Reservations.AggregatedList
+    Gogol.Compute.Reservations.Delete
+    Gogol.Compute.Reservations.Get
+    Gogol.Compute.Reservations.GetIamPolicy
+    Gogol.Compute.Reservations.Insert
+    Gogol.Compute.Reservations.List
+    Gogol.Compute.Reservations.Resize
+    Gogol.Compute.Reservations.SetIamPolicy
+    Gogol.Compute.Reservations.TestIamPermissions
+    Gogol.Compute.Reservations.Update
+    Gogol.Compute.ResourcePolicies.AggregatedList
+    Gogol.Compute.ResourcePolicies.Delete
+    Gogol.Compute.ResourcePolicies.Get
+    Gogol.Compute.ResourcePolicies.GetIamPolicy
+    Gogol.Compute.ResourcePolicies.Insert
+    Gogol.Compute.ResourcePolicies.List
+    Gogol.Compute.ResourcePolicies.Patch
+    Gogol.Compute.ResourcePolicies.SetIamPolicy
+    Gogol.Compute.ResourcePolicies.TestIamPermissions
+    Gogol.Compute.Routers.AggregatedList
+    Gogol.Compute.Routers.Delete
+    Gogol.Compute.Routers.DeleteRoutePolicy
+    Gogol.Compute.Routers.Get
+    Gogol.Compute.Routers.GetNatIpInfo
+    Gogol.Compute.Routers.GetNatMappingInfo
+    Gogol.Compute.Routers.GetRoutePolicy
+    Gogol.Compute.Routers.GetRouterStatus
+    Gogol.Compute.Routers.Insert
+    Gogol.Compute.Routers.List
+    Gogol.Compute.Routers.ListBgpRoutes
+    Gogol.Compute.Routers.ListRoutePolicies
+    Gogol.Compute.Routers.Patch
+    Gogol.Compute.Routers.PatchRoutePolicy
+    Gogol.Compute.Routers.Preview
+    Gogol.Compute.Routers.Update
+    Gogol.Compute.Routers.UpdateRoutePolicy
+    Gogol.Compute.Routes.Delete
+    Gogol.Compute.Routes.Get
+    Gogol.Compute.Routes.Insert
+    Gogol.Compute.Routes.List
+    Gogol.Compute.SecurityPolicies.AddRule
+    Gogol.Compute.SecurityPolicies.AggregatedList
+    Gogol.Compute.SecurityPolicies.Delete
+    Gogol.Compute.SecurityPolicies.Get
+    Gogol.Compute.SecurityPolicies.GetRule
+    Gogol.Compute.SecurityPolicies.Insert
+    Gogol.Compute.SecurityPolicies.List
+    Gogol.Compute.SecurityPolicies.ListPreconfiguredExpressionSets
+    Gogol.Compute.SecurityPolicies.Patch
+    Gogol.Compute.SecurityPolicies.PatchRule
+    Gogol.Compute.SecurityPolicies.RemoveRule
+    Gogol.Compute.SecurityPolicies.SetLabels
+    Gogol.Compute.ServiceAttachments.AggregatedList
+    Gogol.Compute.ServiceAttachments.Delete
+    Gogol.Compute.ServiceAttachments.Get
+    Gogol.Compute.ServiceAttachments.GetIamPolicy
+    Gogol.Compute.ServiceAttachments.Insert
+    Gogol.Compute.ServiceAttachments.List
+    Gogol.Compute.ServiceAttachments.Patch
+    Gogol.Compute.ServiceAttachments.SetIamPolicy
+    Gogol.Compute.ServiceAttachments.TestIamPermissions
+    Gogol.Compute.Snapshots.Delete
+    Gogol.Compute.Snapshots.Get
+    Gogol.Compute.Snapshots.GetIamPolicy
+    Gogol.Compute.Snapshots.Insert
+    Gogol.Compute.Snapshots.List
+    Gogol.Compute.Snapshots.SetIamPolicy
+    Gogol.Compute.Snapshots.SetLabels
+    Gogol.Compute.Snapshots.TestIamPermissions
+    Gogol.Compute.SnapshotSettings.Get
+    Gogol.Compute.SnapshotSettings.Patch
+    Gogol.Compute.SslCertificates.AggregatedList
+    Gogol.Compute.SslCertificates.Delete
+    Gogol.Compute.SslCertificates.Get
+    Gogol.Compute.SslCertificates.Insert
+    Gogol.Compute.SslCertificates.List
+    Gogol.Compute.SslPolicies.AggregatedList
+    Gogol.Compute.SslPolicies.Delete
+    Gogol.Compute.SslPolicies.Get
+    Gogol.Compute.SslPolicies.Insert
+    Gogol.Compute.SslPolicies.List
+    Gogol.Compute.SslPolicies.ListAvailableFeatures
+    Gogol.Compute.SslPolicies.Patch
+    Gogol.Compute.StoragePools.AggregatedList
+    Gogol.Compute.StoragePools.Delete
+    Gogol.Compute.StoragePools.Get
+    Gogol.Compute.StoragePools.GetIamPolicy
+    Gogol.Compute.StoragePools.Insert
+    Gogol.Compute.StoragePools.List
+    Gogol.Compute.StoragePools.ListDisks
+    Gogol.Compute.StoragePools.SetIamPolicy
+    Gogol.Compute.StoragePools.TestIamPermissions
+    Gogol.Compute.StoragePools.Update
+    Gogol.Compute.StoragePoolTypes.AggregatedList
+    Gogol.Compute.StoragePoolTypes.Get
+    Gogol.Compute.StoragePoolTypes.List
+    Gogol.Compute.Subnetworks.AggregatedList
+    Gogol.Compute.Subnetworks.Delete
+    Gogol.Compute.Subnetworks.ExpandIpCidrRange
+    Gogol.Compute.Subnetworks.Get
+    Gogol.Compute.Subnetworks.GetIamPolicy
+    Gogol.Compute.Subnetworks.Insert
+    Gogol.Compute.Subnetworks.List
+    Gogol.Compute.Subnetworks.ListUsable
+    Gogol.Compute.Subnetworks.Patch
+    Gogol.Compute.Subnetworks.SetIamPolicy
+    Gogol.Compute.Subnetworks.SetPrivateIpGoogleAccess
+    Gogol.Compute.Subnetworks.TestIamPermissions
+    Gogol.Compute.TargetGrpcProxies.Delete
+    Gogol.Compute.TargetGrpcProxies.Get
+    Gogol.Compute.TargetGrpcProxies.Insert
+    Gogol.Compute.TargetGrpcProxies.List
+    Gogol.Compute.TargetGrpcProxies.Patch
+    Gogol.Compute.TargetHttpProxies.AggregatedList
+    Gogol.Compute.TargetHttpProxies.Delete
+    Gogol.Compute.TargetHttpProxies.Get
+    Gogol.Compute.TargetHttpProxies.Insert
+    Gogol.Compute.TargetHttpProxies.List
+    Gogol.Compute.TargetHttpProxies.Patch
+    Gogol.Compute.TargetHttpProxies.SetUrlMap
+    Gogol.Compute.TargetHttpsProxies.AggregatedList
+    Gogol.Compute.TargetHttpsProxies.Delete
+    Gogol.Compute.TargetHttpsProxies.Get
+    Gogol.Compute.TargetHttpsProxies.Insert
+    Gogol.Compute.TargetHttpsProxies.List
+    Gogol.Compute.TargetHttpsProxies.Patch
+    Gogol.Compute.TargetHttpsProxies.SetCertificateMap
+    Gogol.Compute.TargetHttpsProxies.SetQuicOverride
+    Gogol.Compute.TargetHttpsProxies.SetSslCertificates
+    Gogol.Compute.TargetHttpsProxies.SetSslPolicy
+    Gogol.Compute.TargetHttpsProxies.SetUrlMap
+    Gogol.Compute.TargetInstances.AggregatedList
+    Gogol.Compute.TargetInstances.Delete
+    Gogol.Compute.TargetInstances.Get
+    Gogol.Compute.TargetInstances.Insert
+    Gogol.Compute.TargetInstances.List
+    Gogol.Compute.TargetInstances.SetSecurityPolicy
+    Gogol.Compute.TargetPools.AddHealthCheck
+    Gogol.Compute.TargetPools.AddInstance
+    Gogol.Compute.TargetPools.AggregatedList
+    Gogol.Compute.TargetPools.Delete
+    Gogol.Compute.TargetPools.Get
+    Gogol.Compute.TargetPools.GetHealth
+    Gogol.Compute.TargetPools.Insert
+    Gogol.Compute.TargetPools.List
+    Gogol.Compute.TargetPools.RemoveHealthCheck
+    Gogol.Compute.TargetPools.RemoveInstance
+    Gogol.Compute.TargetPools.SetBackup
+    Gogol.Compute.TargetPools.SetSecurityPolicy
+    Gogol.Compute.TargetSslProxies.Delete
+    Gogol.Compute.TargetSslProxies.Get
+    Gogol.Compute.TargetSslProxies.Insert
+    Gogol.Compute.TargetSslProxies.List
+    Gogol.Compute.TargetSslProxies.SetBackendService
+    Gogol.Compute.TargetSslProxies.SetCertificateMap
+    Gogol.Compute.TargetSslProxies.SetProxyHeader
+    Gogol.Compute.TargetSslProxies.SetSslCertificates
+    Gogol.Compute.TargetSslProxies.SetSslPolicy
+    Gogol.Compute.TargetTcpProxies.AggregatedList
+    Gogol.Compute.TargetTcpProxies.Delete
+    Gogol.Compute.TargetTcpProxies.Get
+    Gogol.Compute.TargetTcpProxies.Insert
+    Gogol.Compute.TargetTcpProxies.List
+    Gogol.Compute.TargetTcpProxies.SetBackendService
+    Gogol.Compute.TargetTcpProxies.SetProxyHeader
+    Gogol.Compute.TargetVpnGateways.AggregatedList
+    Gogol.Compute.TargetVpnGateways.Delete
+    Gogol.Compute.TargetVpnGateways.Get
+    Gogol.Compute.TargetVpnGateways.Insert
+    Gogol.Compute.TargetVpnGateways.List
+    Gogol.Compute.TargetVpnGateways.SetLabels
+    Gogol.Compute.Types
+    Gogol.Compute.UrlMaps.AggregatedList
+    Gogol.Compute.UrlMaps.Delete
+    Gogol.Compute.UrlMaps.Get
+    Gogol.Compute.UrlMaps.Insert
+    Gogol.Compute.UrlMaps.InvalidateCache
+    Gogol.Compute.UrlMaps.List
+    Gogol.Compute.UrlMaps.Patch
+    Gogol.Compute.UrlMaps.Update
+    Gogol.Compute.UrlMaps.Validate
+    Gogol.Compute.VpnGateways.AggregatedList
+    Gogol.Compute.VpnGateways.Delete
+    Gogol.Compute.VpnGateways.Get
+    Gogol.Compute.VpnGateways.GetStatus
+    Gogol.Compute.VpnGateways.Insert
+    Gogol.Compute.VpnGateways.List
+    Gogol.Compute.VpnGateways.SetLabels
+    Gogol.Compute.VpnGateways.TestIamPermissions
+    Gogol.Compute.VpnTunnels.AggregatedList
+    Gogol.Compute.VpnTunnels.Delete
+    Gogol.Compute.VpnTunnels.Get
+    Gogol.Compute.VpnTunnels.Insert
+    Gogol.Compute.VpnTunnels.List
+    Gogol.Compute.VpnTunnels.SetLabels
+    Gogol.Compute.ZoneOperations.Delete
+    Gogol.Compute.ZoneOperations.Get
+    Gogol.Compute.ZoneOperations.List
+    Gogol.Compute.ZoneOperations.Wait
+    Gogol.Compute.Zones.Get
+    Gogol.Compute.Zones.List
+
+  other-modules:
+    Gogol.Compute.Internal.Product
+    Gogol.Compute.Internal.Sum
+
+  build-depends:    gogol-core ^>=1.0.0
